> For the complete documentation index, see [llms.txt](https://baric6.gitbook.io/barics-knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://baric6.gitbook.io/barics-knowledge-base/security-programs/command-and-control/python-weasel-dns-beacon-c2.md).

# Python Weasel DNS beacon C2

WEASEL is a small in-memory implant using Python 3 with no dependencies. The beacon client sends a small amount of identifying information about its host to a DNS zone you control. WEASEL server can task clients to execute pre-baked or arbitrary commands.

WEASEL is a stage 1 payload, meant to be difficult to detect and useful for regaining access when your noisy full-featured stages are caught.

Status

* Has been successfully used on an operation and evaded detections.
* Client can initialize a session with the server and establish bi-directional communication.
* Server has a fully working CLI.
* Client supports a number of functions that the server can task.
* Client is 5.2KB when minified + obfuscated.
* Automatic obfuscation is lacking and needs manual fixing (see Limitations in client README).
* Server does not have multi-player (simultaneous multiple operator) support.

{% embed url="<https://github.com/facebookarchive/WEASEL>" %}
