C2 / C&C Server verständlich erklärt

C2 / C&C Server verständlich erklärt

Im heutigen Blogpost werden wir uns das Thema C2 Server (Command and Control Server) mal genauer anschauen. Das Ziel dieses Blogposts ist euch so viel wie möglich so kompakt wie möglich mitzugeben.

Was ist ein C2 (Command and Control) Server?

Erstmal klären wir den Begriff C2 oder auch C&C, C2 heißt er deswegen, weil wie oben zulesen ist 2 große C's vorkommen nämlich einmal in Command und in Control. Dies ist ein Begriff in der IT-Security meistens von Red-Teamern benutzt welche sich mit dem pentesting oder dem direkten Angreifen von Zielen beschäftigen.

Welche Malware nutzt C2 Server?

  • - Ransomware (Schlüsselaustausch & Lösegeldkommunikation)
  • - Botnets (Steuerung der Bots)
  • - RATs (Remote Administration Tools) (Steuerung der Victims / Ausführen von neuen Stubs)
  • - Kryptomining (Steuerung von Minern, Laden/Ausführen von neuen Stubs)
  • - Banking Trojaner (Austausch von Daten)


Bekannte Trojaner die C&C Server verwendeten:

  • - Mirai (Zentrale C2-Server in Go/C, TCP-Heartbeat für IoT-DDoS-Botnet).
  • - Stuxnet (HTTP-Beaconing zu Microsoft.com-Mirrors für Air-Gap-Updates).
  • - Zeus (HTTP-POST zu C&C-Servern mit RC4-Verschlüsselung)


Das Szenario aufgebrochen:

Stellen wir uns mal folgendes Szenario vor. Ein Virus infiziert ein sogenanntes "Opfer" auch Victim genannt. Im laufe der Infizierung verrichtet die Malware Ihre Dienste und verschlüsselt das System oder stiehlt Daten. Verzeiht mir bitte den selbstgemalten Fleck, Excalidraw hat soweit ich weiß leider klein Füllwerkzeug:(

Was macht die Malware nun aber mit dem Schlüssel für die Verschlüsselung oder mit den Daten die es stiehlt? Für sich behalten wäre selten dämlich und erfüllt nicht seinen Zweck. Hier kommt nämlich der C2 ins Spiel.


Der C2 agiert hier als Schnittstelle zwischen Angreifer und dem Victim. Im falle unseres Szenarios ist nun der Zeitpunkt gekommen wo der Datenaustausch stattfindet.(Sei es der Schlüssel oder die gestohlenen Nutzerdaten).


Dieser Datenaustausch muss reibungslos sein deswegen wählt man hier TCP als Standard da es sich besonders eignet durch z.B eine Gesicherte Übertragung (SYN/ACK/SYN). Des Weiteren hat sich in der Vergangenheit gezeigt das oft der Weg über HTTP/S gegangen wird um der Firewall vorzugaukeln es handle sich um normalen Traffic.

Malware-Victim Screenshot

Einfache Malware oder Malware bei der der Funktionsrahmen ausreicht handled dies über einmalige Callbacks (Verbindungen an den Server). Die Vergangenheit hat aber gezeigt das Angreifer immer raffinierter werden und heutzutage sogenannte Beacons fast schon standard sind. Bacon was?


Beacon

Ein Beacon können wir uns als eine Komponente in der Malware vorstellen der regelmäßig an den C2-Server pingt um Informationen zu senden oder Befehle abzurufen. Das ganze erfolgt in zufälligen Intervallen um nicht sofort verdächtig zu wirken. Das Beacon selbst kann Befehle vom C2-Server erhalten wie etwa das Nachladen eines neuen Stubs das Einleiten von Angriffen oder das Exfiltrieren von Daten. BeaconAdded
Ein Ausschnitt aus einer vereinfachten Version eines Beacons in der Programmiersprache Rust könnte so aussehen:
BeaconInRustExample

Was läuft auf so einem C2?

Auf dem C2 Server was eigentlich ein VPS oder ein dedizierter Root Server ist, für Angreifer bestenfalls Bulletproof gehostet, läuft eine weitere Software nämlich der Server. Dies ist eine Software die je nach Aufwand z.B in einem Loop eingehende Verbindungen annimmt. liest und dann die gelesenen Informationen zu seinen Nöten weiterbearbeitet.

Praktisch genau das was ein Login Server tun würde, die Intention und die Nutzung macht den C2 zu einem C2. Der C2 Server ist ähnlich aufgebaut wie ein normales Login System was den Verbindungsaufbau angeht.

In der Regel hat ein C2 Server die Aufgabe die Health-Checks und Informationen zu empfangen sowie das versenden der Befehle wenn der Angreifer z. B einen Payload oder eine neu gecryptete FUD .exe nachladen will.


Wie verbinden sich Angreifer zu einem C2?

Unser Angreifer kann sich über die verschiedensten Wege auf zum C2 verbinden. Über die Jahre habe ich einige Wege kennen lernen dürfen die geläufigsten waren:
  • - Login Zugang / Web Panel
  • - ssh
  • - RDP
ShowingAttacker

Detection:

  • - Netzwerksignaturen / Regeln
  • - EDR
  • - Regelmäßige Untersuchung
  • - Intrusion Detection Prevention System
  • - Regelmäßige Softwareupdates
  • - Spezifisch geschultes Personal


Was nehmen wir mit und merken uns?

C2 wegen 2 C's Command and Control,Schnittstelle zwischen Opfer/Malware und Angreifer, Protokolle meist HTTPS / DNS, Gibt dem Angreifer die Möglichkeit speziellen Zugang zu seinen Victims zu haben, Zugang meist per Webpanel, ssh, RDP., Detection möglich mit strukturiertem System, Überwachung & Personal.


Fazit

Super spannendes Thema welchem man definitiv bei der Analyse von Malware über den Weg stolpern kann. Mir persönlich sind die Dinger bestimmt ein Begriff seit 2013. Nichtsdestotrotz hat die Technik sich über die Jahre weiterentwickelt was bedeutet das auch das Lernen nicht endet :)