HTTP Beacon and HTTPS Beacon

The HTTP and HTTPS beacons download tasks with an HTTP GET request. These beacons send data back with an HTTP POST request. This is the default. You have incredible control over the behavior and indicators in this payload via Malleable C2.

HTTP(S) Listener Setup

To create a HTTP or HTTPS Beacon listener select Cobalt Strike -> Listeners on the main menu and press the Add button at the bottom of the Listeners tab display.

The New Listener panel displays.

figure 28 - HTTP Beacon Options

Select Beacon HTTP or Beacon HTTPS as the Payload type and give the listener a Name. Make sure to give the new listener a memorable name as this name is how you will refer to this listener through Cobalt Strike’s commands and workflows.

Manual HTTP Proxy Configuration

The (Manual) Proxy Settings dialog offers several options to control the proxy configuration for Beacon’s HTTP and HTTPS requests. The default behavior of Beacon is to use the Internet Explorer proxy configuration for the current process/user context.

A screenshot of a cell phone  Description automatically generated

figure 30 - Manual Proxy Settings

The Type field configures the type of proxy. The Host and Port fields tell Beacon where the proxy lives. The Username and Password fields are optional. These fields specify the credentials Beacon uses to authenticate to the proxy.

Check the Ignore proxy settings; use direct connection box to force Beacon to attempt its HTTP and HTTPS requests without going through a proxy.

Press Set to update the Beacon dialog with the desired proxy settings. Press Reset to set the proxy configuration back to the default behavior.

NOTE:

The manual proxy configuration affects the HTTP and HTTPS Beacon payload stages only. It does not propagate to the payload stagers.

Redirectors

A redirector is a system that sits between your target’s network and your team server. Any connections that come to the redirector are forwarded to your team server to process. A redirector is a way to provide multiple hosts for your Beacon payloads to call home to. A redirector also aids operational security as it makes it harder to trace the true location of your team server.

Cobalt Strike’s listener management features support the use of redirectors. Simply specify your redirector hosts when you setup an HTTP or HTTPS Beacon listener. Cobalt Strike does not validate this information. If the host you provide is not affiliated with the current host, Cobalt Strike assumes it’s a redirector. One simple way to turn a server into a redirector is to use socat.

Here’s the socat syntax to forward all connections on port 80 to the team server at 192.168.12.100 on port 80:

socat TCP4-LISTEN:80,fork TCP4:192.168.12.100:80

Beacon Runtime Configuration

In Cobalt Strike 4.10, round robin and random rotation strategies will temporarily stop using hosts that have failed until all listed hosts have failed connections, then all hosts will be re-enabled again. This should help stabilize beacons hosts that cannot connect. Some additional tools have been provided reconfigure beacon settings of a running beacon.

From the beacon console (and with similar aggressor script commands), you can get runtime information about beacon callback host connections that failover and change some of the attributes of a running beacon.

You can configure beacons to return host failover information when a connection can be re-established with "beacon_config failover_notification ....".

  • To see the current status of the option (disabled by default):

    beacon_config failover_notification

  • To enable the option:

    beacon_config failover_notification true

  • To disable the option:

    beacon_config failover_notification false

You can view and update beacon configuration attributes with "beacon_config host ..."

  • To get information about the current beacon hosts:

    beacon_config host info

  • To add additional hosts to the beacon host list:
    • Maximum of 32 hosts allowed
    • The uri must be known by the Team Server.

      beacon_config host add [host] [uri]

  • To change a host and/or the hosts assigned uri:

    beacon_config host update [from-host] [to-host]

    beacon_config host update [from-host] [to-host] [to-uri]

  • To remove a host from the beacon host list:

    beacon_config host remove [host]

  • To see the Host Profiles that the beacon has been pre-configured with:

    beacon_config host profiles

    NOTE:

    Host Profiles are only initially configured. They cannot be added/updated/removed in running beacons.

  • To hold a host from being used (random and round-robin only):

    beacon_config host hold [host]

    NOTE:

    All held hosts are automatically released when all hosts have been held.

  • To release a held host (random and round-robin only):

    beacon_config host release [host]

  • To reset the held status (release) and/or statistics shown with the "info" command for all hosts or a named host:

    beacon_config host reset
    [all|status|statistics]

    beacon_config host reset
    [all|status|statistics] [host]

For additional information see the beacon command help for beacon_config host.

See the corresponding aggressor function bbeacon_config for automation of this.

 

Related Topics