Incompetent Basterd

Agents

6. Agents

Het Agent-systeem is een lichtgewicht C2-framework. “Lichtgewicht” in de zin dat het precies doet wat het moet doen en verder zijn mond houdt. Dat klinkt alsof het normaal is. Het is niet normaal. De meeste C2-frameworks hebben genoeg features om er een doctoraalstudie over te schrijven, en je hébt een doctoraalstudie nodig om ze te begrijpen. Dit is het tegenovergestelde. Dit is een C2 dat je begrijpt terwijl je de README nog aan het lezen bent. Verfrissend als een koud biertje op een warme dag, behalve dat het geen bier is maar een command-and-control systeem. De metafoor houdt niet helemaal stand, maar je snapt het.

Een agent is een script — Bash, PowerShell, Python, C#, Go, Rust, Ruby, het maakt de applicatie niet uit — dat periodiek contact opneemt met jouw server:

  1. CheckinPOST /agent/checkin met hostname, username, OS. De server retourneert een agent_id.
  2. PollGET /agent/cmd/{agent_id} voor commando’s. 204 = niks te doen. 200 = werk aan de winkel.
  3. ResultaatPOST /agent/res/{cmd_id} met de output.
  4. HeartbeatPOST /agent/heartbeat/{agent_id}. “Ik leef nog.” Drie woorden. Meer hoeft een agent niet te zeggen.

Statussen: Active (minder dan 30 seconden geleden gezien), Idle (minder dan 5 minuten), Dead (langer stil dan jij in een vergadering na de lunch). Het dashboard /dashboard/agents toont alles in een overzichtstabel. Commando’s sturen, geschiedenis bekijken, agents opruimen. De sidebar toont dezelfde Command Library als de rest van de applicatie — klik op “Inject” en de bevestigingsmodal laat je elke regel bekijken, bewerken, en apart of in bulk naar de agent sturen.

Elk commando en elke response wordt gelogd als asciicast v2-recording. Stel je voor: je opdrachtgever vraagt om bewijs van de aanvalsketen. Je geeft hem geen screenshot waarop hij — als hij heel goed kijkt en zijn leesbril opzet — misschien de helft van een commando kan ontcijferen. Je geeft hem een afspelbare recording. Met kleuren. En timing. En hij kan het pauzeren. Dat is het verschil tussen “geloof me” en “kijk maar.”

Op de hoogte blijven?

Ontvang maandelijks cybersecurity-inzichten in je inbox.

← Incompetent Bastard ← Home

Klaar voor de volgende stap?

Praat over je beveiliging.

Een vrijblijvend gesprek van 30 minuten — geen sales, alleen technische sparring.

Plan een gesprek →