# Beacon

{% hint style="danger" %}
This version of the Beacon agent is not designed for AV or EDR evasion and is therefore not OPSEC compliant. Beacon is primarily intended to test and demonstrate the capabilities of AdaptixC2. However, the Beacon agent can be easily extended and modified, making it compatible with various AV evasion methods.
{% endhint %}

## Configuration

HTTP Beacon can connect through a Proxy server.

<figure><img src="/files/MSjvlBOSNwvwgxSqqSHX" alt=""><figcaption></figcaption></figure>

DNS Beacon can connect only via DNS or DoH, and can also switch from DoH to DNS and from DNS to DoH if the first option does not work.

<figure><img src="/files/REebQZNSA8V55jpLBIBL" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/yYrN1NHWABX4Ft2SAD9r" alt=""><figcaption></figcaption></figure>

### Main configuration

{% tabs %}
{% tab title="EXE" %}

<figure><img src="/files/DXEI0w2Ezgxy5GQ6M9SN" alt="" width="484"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="SHELLCODE" %}

<figure><img src="/files/xDeadtwrkM1Jjnrw7n6Y" alt="" width="484"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="DLL" %}

<figure><img src="/files/9J5jMWbSBGrG8L8DJZjZ" alt="" width="484"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="SERVICE" %}

<figure><img src="/files/wJUmOEQBPGH63HwmH8Gx" alt="" width="484"><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

Beacon currently **only supports Windows OS**.&#x20;

The Beacon can be generated **for x64 and x86** architectures in the following formats: EXE, DLL, Service Executable, Shellcode.&#x20;

The **KillDate** parameter sets the date and time of the beacon's death (GMT+0 format).&#x20;

The **WorkingTime** parameter sets the time interval during which the beacon will be active (local time on the target host).

* The **Service Name** is set for the Service Executable.
* The **Legit-DLL** is set for the DLL. This option will generate a DLL for Sideloading that will contain all exports from the specified DLL.

## Commands

Beacon currently supports the following commands.&#x20;

<figure><img src="/files/3PMXXYOTYYFhRualSao7" alt=""><figcaption></figcaption></figure>

Commands marked with `*` have subcommands.

<figure><img src="/files/V80P5SSsC8UtCBfTFBIZ" alt=""><figcaption></figcaption></figure>

### Filesystem Commands

<table><thead><tr><th width="156">Command</th><th>Description</th></tr></thead><tbody><tr><td>cat</td><td>Read first 2048 bytes of the specified file</td></tr><tr><td>cd</td><td>Change current working directory</td></tr><tr><td>cp</td><td>Copy file</td></tr><tr><td>disks</td><td>Lists mounted drives on current system</td></tr><tr><td>ls</td><td>Lists files in a folder</td></tr><tr><td>mv</td><td>Move file</td></tr><tr><td>mkdir</td><td>Make a directory</td></tr><tr><td>pwd</td><td>Print current working directory</td></tr><tr><td>rm</td><td>Remove a file or folder</td></tr></tbody></table>

<figure><img src="/files/9yMf0v1AwENeyA639qC8" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/W9Yfx94NiavzsV9xSagi" alt=""><figcaption></figcaption></figure>

### Exfiltration commands

<table><thead><tr><th width="251">Command</th><th>Description</th></tr></thead><tbody><tr><td>download</td><td>Download a file</td></tr><tr><td>upload</td><td>Upload a file</td></tr><tr><td>profile download.chunksize</td><td>Change the exfiltrate data size for download request (default 128000)</td></tr><tr><td>exfil cancel</td><td>Cancels a download</td></tr><tr><td>exfil start</td><td>Resumes a download that's has been stoped</td></tr><tr><td>exfil stop</td><td>Stops a download that's in-progress</td></tr></tbody></table>

<figure><img src="/files/CdMBEHFJwjhU2STBgCe3" alt=""><figcaption></figcaption></figure>

### Tunnel commands

<table><thead><tr><th width="163">Command</th><th>Description</th></tr></thead><tbody><tr><td>socks start</td><td>Start a SOCKS4/5 proxy server (with/out auth) and listen on a specified port</td></tr><tr><td>socks stop</td><td>Stop a SOCKS proxy server</td></tr><tr><td>lportfwd start</td><td>Start local port forwarding from server via agent</td></tr><tr><td>lportfwd stop</td><td>Stop local port forwarding</td></tr><tr><td>rportfwd start</td><td>Start remote port forwarding from agent via server</td></tr><tr><td>rportfwd stop</td><td>Stop remote port forwarding</td></tr></tbody></table>

{% hint style="info" %}
Since Bacon is an asynchronous agent, proxy scanning should be performed with no more than four threads. Tested on NetExec SMB...\
\
Agent does not switch sleep time automatically. Use `sleep 0`
{% endhint %}

<figure><img src="/files/2p7q55idq8xJTjznv6mo" alt=""><figcaption></figcaption></figure>

### Process commands

<table><thead><tr><th width="184">Command</th><th>Description</th></tr></thead><tbody><tr><td>ps list</td><td>Show process list</td></tr><tr><td>ps kill</td><td>Kill a process with a given PID</td></tr><tr><td>ps run</td><td>Run a program</td></tr></tbody></table>

<figure><img src="/files/yHnwaIFHK36SxhVYyzqR" alt=""><figcaption></figcaption></figure>

### Link commands

<table><thead><tr><th width="185">Command</th><th>Description</th></tr></thead><tbody><tr><td>link smb</td><td>Connect to an SMB agent and re-establish control of it</td></tr><tr><td>link tcp</td><td>Connect to an TCP agent and re-establish control of it</td></tr><tr><td>unlink</td><td>Disconnect from an pivot agent</td></tr></tbody></table>

<figure><img src="/files/ThfzMD4b0e2A4LVjherP" alt=""><figcaption></figcaption></figure>

### Post-exploitation commands

<table><thead><tr><th width="185">Command</th><th>Description</th></tr></thead><tbody><tr><td>jobs list</td><td>List of jobs</td></tr><tr><td>jobs kill</td><td>Kill a specified job</td></tr><tr><td>execute bof</td><td>Execute Beacon Object File</td></tr><tr><td>getuid</td><td>Prints the User ID associated with the current token</td></tr><tr><td>rev2self</td><td>Revert to your original access token</td></tr></tbody></table>

<figure><img src="/files/CCpXRvsnhSHDBbbSBcM7" alt=""><figcaption></figcaption></figure>

### Agent command

<table><thead><tr><th width="186">Command</th><th>Description</th></tr></thead><tbody><tr><td>sleep</td><td>Sets sleep time</td></tr><tr><td>terminate thread</td><td>Terminate the main beacon thread (without terminating the process)</td></tr><tr><td>terminate process</td><td>Terminate the beacon process</td></tr><tr><td>profile workingtime</td><td>Set the start and end time of the beacon activity.<br>Time interval in the format 'HH:mm(start)-HH:mm(end)'. Set 0 to disable the option.</td></tr><tr><td>profile killdate</td><td>Set the date and time for the beacon to stop working.<br>Datetime 'DD.MM.YYYY hh:mm:ss' in <strong>GMT format</strong>. Set 0 to disable the option</td></tr></tbody></table>

<figure><img src="/files/1fEnblvJwCl0MVyZ5zbq" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://adaptix-framework.gitbook.io/adaptix-framework/extenders/agents/beacon.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
