Befehls- und Kontrollserver in sozialen Medien (Twitter, Instagram, Youtube + Telegramm)

Zu neuem Blog migriert

TL; DR Als Proof of Concept habe ich ein Skript geschrieben, das soziale Medien missbraucht, um Befehle an infizierte Computer, dh Bots, zu senden. Es verwendet Plattformen wie Twitter, Instagram, Youtube und die Ergebnisse werden an Telegram gesendet. Darüber hinaus kann es als legitimes Tool für die Remoteverwaltung Ihres Computers verwendet werden.

EINFÜHRUNG

Als ich nach Inspiration und Herausforderung suchte, stieß ich auf einen Artikel von ESET, in dem beschrieben wurde, wie die Turla Group (mehr dazu hier) Instagram nutzte und ihre Adresse auf ihrem Befehls- und Kontrollserver veröffentlichte. "Bösartige Nutzlast" wurde in einem Kommentar auf einem der Fotos von Britney Spears versteckt. Sie überprüften jeden Kommentar, berechneten den Hash und wenn es eine Übereinstimmung gab, führten sie Regex gegen den ausgewählten Kommentar aus. Endziel war es, einen Link zu bit.ly zu erhalten (beliebtes Tool zum Kürzen von Links). Wahrscheinlich testeten sie nur neue Methoden für die Bereitstellung von Nutzdaten und C & C-Adressen und ob diese in größerem Maßstab bereitgestellt werden können. Ich denke, es ist schwierig, ein massives Botnetz auf diese Weise zu verwalten. Es ist nützlicher bei heimlichen und verdeckten Operationen. Darüber hinaus wird nur Datenverkehr zu Social Media-Plattformen generiert, und wir wissen, wie schwierig es sein kann, diese Websites zu blockieren.

Ich war daran interessiert und fragte mich, ob es eine Möglichkeit gibt, den Computer nur mithilfe von Twitter oder anderen beliebten Websites zum Austausch von Fotos oder Videos zu steuern. Es stellte sich heraus, dass es einfach ist und ziemlich viel Spaß macht. Mit meinem Proof of Concept können Sie beispielsweise Ihren Verlaufsbrowser mit nur einem Tweet mit dem Hashtag #history aus der Ferne löschen. Um zu zeigen, wie es auf schändliche Weise verwendet werden kann, habe ich es ein wenig bewaffnet, indem ich ein Modul hinzugefügt habe, das für das Abrufen der MAC-Adresse und des Speicherorts basierend auf ipify.org und den zuletzt verbundenen SSIDs verantwortlich ist.

Ich wollte es einfach halten, damit folgende Befehle verfügbar sind: Verlauf, Speicherort, Mac und Update, die ich später beschreiben werde. Jedes Modul wurde mit API geschrieben und verfügt über fest codierte Schlüssel. Ich glaube, Sie können ähnliche Ergebnisse mit dem Anforderungsmodul oder BeautifulSoup erzielen. Da es sich nur um einen Proof of Concept handelt, wurde es nur auf einer Maschine geschrieben und getestet, und es gibt keine Identifikationsnummern, Herzschläge und andere Dinge, die in typischen Botnetzen verwendet werden.

TELEGRAMM

Dies ist die einfachste, trivialste und am einfachsten zu implementierende Methode für den Remotezugriff auf Ihren Computer. Sie senden einfach eine Nachricht an den Telegramm-Bot und das richtige Modul wird aufgerufen. Telecrypt Ransomware verwendete diese Technik, jedoch nur zum Empfangen von Nachrichten (Computername, Infektions-ID und Schlüsselsamen) von infizierten Computern. In meinem Fall wartet das Telegramm im festgelegten Zeitlimit auf neue Befehle und ruft dann die entsprechende Funktion auf. Erwähnenswert ist, dass Sie nur neue Nachrichten überprüfen und sicherstellen müssen, dass vorherige Befehle nicht immer wieder ausgeführt werden. Wir können erreichen, dass Codementor mit dem Offset-Parameter ein gutes Tutorial über Python und Telegramm erstellt hat.

def getMessage (self, offset): wenn offset: update = self.bot.getUpdates (offset = offset) else: update = self.bot.getUpdates ()
update_json = json.loads (update [2]) gibt update_json zurück
 
Gespräch mit bot

Es gibt einen ziemlich coolen Trick, um den Standort zu ermitteln, ohne das Internet zu erreichen. Sie können nach den Namen der letzten Netzwerke suchen, mit denen er oder sie verbunden war. Wie jeder bereits weiß, werden SSIDs in der Registrierung unter SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkList \ Profiles \ gespeichert. Wenn wir diese Werte haben, können wir sie in wigle.net überprüfen, das eine Karte mit 400 Millionen WLAN-Netzwerken enthält. Wenn auf SSIDs nicht zugegriffen werden kann, sind wir sicher, dass der Benutzer keine Administratorrechte hat.

INSTAGRAM

Die nächste Technik basiert auf Instagram. Das Modul wird aufgerufen, wenn Sie ein Foto mit einer Beschreibung (Hashtags zählen auch) mögen, die einen der verfügbaren Befehle enthält. Es ist wirklich verstohlen, weil es unmöglich ist, in Echtzeit zu überwachen, wer was mag, außerdem können Sie Ihr "Gefällt mir" löschen, nachdem der Befehl ausgeführt wurde. Es spielt keine Rolle, welche Art von Foto Ihnen gefallen hat, aber es muss den angegebenen Befehl in der Beschreibung enthalten. Für dieses Modul habe ich die Instagram API für Python verwendet. In diesem Fall müssen Sie Ihre Anmeldeinformationen anstelle von API-Schlüsseln übergeben.

Wie führt zur Ausführung

TWITTER

Die Dinge mit Twitter sind unkompliziert und ähneln dem vorherigen Konzept. Um einen Befehl auszuführen, müssen Sie retweeten oder einen Tweet erstellen, der Schlüsselwörter enthält: Speicherort, Verlauf, Mac oder Update. Die Einschränkung hierbei ist, dass Tweepy nur die ersten 150 Zeichen des Tweets abrufen kann, sodass Ihre Nutzlast am Anfang stehen muss. Wie bei Instagram können Sie Ihre Nachricht sofort nach Ausführung des Befehls löschen. Ich fand nur zwei dokumentierte Fälle, in denen ein böswilliger Schauspieler Twitter für das Senden seiner Nutzdaten missbrauchte. Die Nachrichten enthielten Links zu bit.ly, das als nächstes auf Infostealer-Malware umgeleitet wurde, aber alles war base64-codiert. Es ist einfach herauszufinden, was los ist, wenn Sie Tweets mit seltsamen Zeichenfolgen sehen. Im Youtube-Fall werde ich zeigen, wie diese Art von Links diskreter abgerufen werden können. Mit diesem Modul können Sie (erneut) twittern, was Sie möchten, aber Ihr (erneuter) Tweet muss einen der auszuführenden Befehle enthalten. Wenn Sie das Gefühl haben zu sterben, können Sie Ihren Browserverlauf mit einem Tweet löschen.

def deleteBrowserHistory (self): Firefox = os.path.join ("C:", os.sep, "Benutzer", os.getenv ('Benutzername'), "AppData", "Roaming", "Mozilla", "Firefox" "," Profile ") # Pfad zu Firefox abrufen list_profiles = os.listdir (Firefox) # Listenverzeichnis für i in list_profiles: # für jedes gegründete Profil sqlite_path =" C: \ Users \\ "+ os.getenv ('Benutzername' ) + "\ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \\" + i + "\ sites.sqlite" # Pfad abrufen try: os.remove (sqlite_path) # Versuch, den Verlauf zu entfernen - Orte.sqlite-Datei return "Erfolgreich! "" außer WindowsError als e: return "Error:" + e.strerror # Datei kann von einem anderen Prozess verwendet werden
Browserverlauf mit Tweet löschen

Wenn es auf Twitter so viele (russische?) Bots gibt, wäre es jedoch interessant, sie zur Steuerung des Botnetzes zu verwenden.

Youtube

Mit dem 'Update'-Modul können wir die Adresse des CnC-Servers wie im Beispiel einer Turla-Gruppe abrufen. Wenn ich jedoch eines ihrer Mitglieder wäre, würde ich Youtube wählen, um meine Kommentare zu platzieren. Wir befinden uns immer noch auf dem Weg, uns in Sichtweite zu verstecken. Der beste Ort, um unsere „Nutzlast“ zu verstecken, sind unter anderem Bots. Seltsame Scheiße, die gerade auf Youtube läuft. Dieses Video (das Sie auf eigene Verantwortung ansehen) hat in vier Monaten 8 Millionen Aufrufe und Kommentare sind verrückt, meistens von Bots oder Kindern erstellt. Wenn Sie sich die Kommentare zu diesem Video ansehen, werden Sie sehen, wie durcheinander es ist und wie einfach es ist, dort etwas zu verstecken.

Meine KommentareAntwort vom Bot

Sie können diesen Link überprüfen: bit.ly/2EwXQEu oder das zweite bit.ly/2EfGoAU. Erstens führt zu meinem Blog und zweitens zu einer zufälligen Seite über Infogalactic.

Der Einfachheit halber habe ich keinen Hashing-Algorithmus wie Russen verwendet, aber Sie können ihn selbst implementieren. Ich überprüfe, ob der Kommentar mit einer bestimmten Phrase, einem Buchstaben oder einem Symbol beginnt. Ich wähle lahmen Anfang "HHey Hey", zuerst wurde "H" für einzigartig hinzugefügt, aber es kann alles sein.

def getKeyword (self, comment): keyword = "" if comment.startswith (self.COMMENT_START): # if comment beginnt mit der oben definierten Variablen COMMENT_START new_string = comment [len (COMMENT_START) + 1:] für i in new_string. split (""): # Liste aus verbleibenden Wörtern erstellen Schlüsselwort + = i [0] # Schlüsselwort aus dem ersten Buchstaben jedes Wortes in new_string.split () erstellen Schlüsselwort zurückgeben

Wenn die erste Bedingung erfüllt ist, erhält das Skript den ersten Buchstaben der verbleibenden Wörter aus dem Rest des Kommentars. Verbunden in eins, geben Sie bit.ly eine Adresse. Mit dieser Technik können Sie verschiedene Adressen, Chat-IDs für den Telegramm-Bot (im Falle eines Verbots) oder Befehle direkt übergeben.

Fazit

Wie Sie sehen konnten, ist es sehr einfach, Instagram, Twitter, Youtube und Telegramm zu missbrauchen, um unser Verwaltungstool zu steuern. Darüber hinaus wird nur Datenverkehr zu vertrauenswürdigen Servern generiert, die in den meisten Fällen nicht blockiert sind. In Protokollen wird das Verhalten angezeigt, als hätte jemand Social-Media-Websites durchsucht. Es gibt jedoch Einschränkungen, z. B. dass Ihr Konto gesperrt werden kann, Kommentare gelöscht werden können oder Sie API-Schlüssel fest codieren müssen (ich glaube, dass jemand sie mit etwas Aufwand verwalten kann).

Sie können das Skript hier finden. Ich bin nicht verantwortlich für das, was Sie damit machen werden. Seien Sie vorsichtig.

Weiterführende Literatur

  • https://wildfire.blazeinfosec.com/bt2-leveraging-telegram-as-a-command-control-platform/
  • https://zeltser.com/bots-command-and-control-via-social-media/
  • https://pentestlab.blog/2017/09/26/command-and-control-twitter/