Malware-Angriff auf das RR-Team

Gestern landete in den PN-Fächern von den (Super-)/Moderatoren des RR-Teams eine PN mit einem sehr interessanten Inhalt. Ein User bot den Moderatoren ein Programm an mit dem das Moderieren vereinfacht werden sollte. Es war aber nicht nur ein 0815 Text, sondern die PN war relativ gut geschrieben und vertrauenerweckend. Das Produkt wurde gut beschrieben und die Funktionen hörten sich sinnvoll an.
Einige Ausschnitte aus dieser PN:

ich nehme an, dass du mich schon aus YourWire kennst.. bin dort selbst SMOD. Mein zweiter Nick ist haze. Habe für unseren Moderatorenteam ein kleines Programm geschrieben, um ihnen die Arbeit erheblich leichter zu machen. Habe an dem Programm weitergearbeitet und die Version 1.1 fertiggestellt. Diese gebe ich auch anderen Moderatoren/Super Moderatoren um ihnen die Arbeit zu erleichtern.

3 Boards benutzen zzt. meine Software.. und aus den internen Bereichen höre ich nur Gutes darüber.

// MyGully / BoerseBZ und YourWire nutzen meine Software.

Natürlich wurden direkt Downloads Links zu dieser tollen Software angeboten. Als erstes lädt man als misstrauischer Nutzer natürlich so etwas auf virustotal.com hoch und schaut mal was 41 Virenscanner dazu sagen. Tja leider versagten alle Virenscanner und meldeten eine „saubere“ Datei (0 /41 (0.0%)).

Schädlich oder nicht?

Die Virenscanner versagen mal wieder, aber wer sich ein bisschen auskennt weiß sofort, dass diese Datei niemals „sauber“ sein kann. Man sieht es direkt im Virustotal.com Ergebnis, wenn man auf „Show all additional information“ klickt. Die Import Liste ist schon mal äußerst verdächtig. Es werden viel zu wenig Windows APIs importiert. Eine normale Windows GUI Applikation hat mindestens 100 API Imports und diese gerade mal 42. Auch die APIs die importiert werden deuten auf eine schädliche Datei hin (GetProcAddress, LoadLibraryA in Kombination mit den anderen).

Analyse der Datei

Die Datei ist doch recht interessant, es lohnt sich also mal OllyDbg anzuwerfen und das Teil zu zerlegen. Die Hauptdatei wurde mit Visual C++ 6 programmiert. Am besten man setzt am Anfang ein Breakpoint auf GetProcAddress, weil mit dieser API neue APIs nachgeladen werden. Interessant wird es in der Methode 0x004010A0 dort befindet sich der Kern. Am Anfang der Methode findet man schon einen tollen Anti-Virenscanner Trick, ein Virenscanner führt eine Datei ein Stück weit aus um schädliche Funktionen zu erkennen und durch eine funktionslose Schleife (mit so ca. 100000 Iterationen) kann man da eine unschädliche Datei vorgaukeln.

Direkt danach findet man nochmal so eine Schleife.

Entschlüsseln

Nach den sinnlosen Schleifen wird der eigentliche Schädling entschlüsselt. Diese Hauptdatei ist also nur ein Crypter, der den Schädling in sich trägt und ihn vor den Antivirenscannern schützt. Als Entschlüsselungsfunktion wird eine windows-eigene verwendet. Microsoft bietet eine ganze Reihe von speziellen APIs an mit denen man bekannte Algorithmen (Von AES bis RSA wird alles unterstützt) verwenden kann. Das Programm verwendet dafür folgende APIs: CryptAcquireContext, CryptCreateHash, CryptDeriveKey, CryptHashData und CryptDecrypt. Das Programm verwendet den RC4 Algorithmus.
Danach wird eine DLL ins Temp Verzeichnis geschrieben und mit LoadLibrary geladen. Mit GetProcAddress wird eine Funktion geladen mit dem Namen „AfroTech“. AfroTech scheint wohl der Name oder die Gruppe des Entwicklers zu sein, dieser Name taucht öfters auf. Die Funktion der DLL wird aufgerufen und nun geht es in der DLL weiter. Die Aufgabe der Hauptdatei (Crypter) ist damit erledigt.

In der DLL

Die DLL hat nur eine Größe von 2,5KB. Sie dient auch nur zum Laden anderer Komponenten. Die DLL wurde wahrscheinlich direkt mit einem Assembler erstellt. Zunächst mal werden hier einige interessante APIs mit GetProcAddress geladen: CreateProcessA, GetThreadContext, SetThreadContext, WriteProcessMemory, ResumeThread, VirtualAllocEx, NtUnmapViewOfSection. Mit diesen APIs kann man Prozesse erstellen und diese beliebig manipulieren. Als erstes erstellt die DLL einen neuen eigenen Prozess der Hauptdatei im Suspended Mode.

Dort wird der zuvor entschlüsselte Speicherbereich reingeschrieben. Mit Hilfe von SetThreadContext wird dann der Entrypoint angepasst und der Prozess wird gestartet mit ResumeThread. Eine ziemlich gute Methode um die Virenscanner zu täuschen.

Der 2. Prozess

Nachdem ich diese erste Schicht erfolgreich bewältigt hatte, machte sich doch etwas Enttäuschung breit. Die Datei des 2. Prozesses beinhaltet eine Versionsinformation „Aurodrion Works“ „OldMan’s Tales“. Nach kurzem googlen nach Aurodrion findet man schnell eine Produktbeschreibung „Aurodrion Crypter“. Gute Arbeit von dem Coder, d.h. aber auch, dass der PN-Ersteller nur ein üblicher „Noob“ ist der keine Ahnung von der Materie hat und sich diesen Crypter gekauft hat. Durch die Produktbeschreibung des Crypters wird auch die Analyse viel einfacher:

+ little stub size
+ Downloader
+ Firewall Bypass
+ Binder ( all types of files .txt .exe etc.. )
+ Injection ( PE Files )
+ Compression ( RtlCompressBuffer API )
+ Delay Execution
+ File Cloner + Icon Changer
+ File Bloater ( pumper )
+ Fake Error Message
+ Anti - VM / Emulator / Debugger
+ EOF Support
+ Command Line Support + dll injection
+ Unicode support ( e.g. chinese or arabic systems )
+ Drag and Drop your Files for Crypting & Binding
+ Bypass Kaspersky Proactive Defense
+ works on all systems x86/x64 even Linux via Wine

Aber zurück zum 2. Prozess. Dieser ist wohl die Hauptkomponente des Aurodrion Crypters. Nach bisschen rumschauen findet man auch schnell eine Stelle wo ein 3. Prozess gestartet wird.

Die Initialisierung des 3. Prozesses funktioniert mit denselben APIs und genau gleich wie vorhin.

Der 3. Prozess – Password Stealer

Das hier ist nun endlich was Schädliches, wir sind also am Ziel und damit wäre der Crypter erfolgreich umgangen. Ein Passwort Stealer, programmiert in Delphi 2007. Ein sehr schlechter Password Stealer, dieser Screenshot spricht schon für sich:

Das Interessanteste findet man schon ganz am Anfang nach einer Funktion:

APPDATA#foldername#uploadingtool.exe#http://gotoannonym.go.funpic.de/creater.php#Server Platzhalter#User Platzhalter#Pass Platzhalter#Directory Platzhalter#Title...#Message...#1#-1#-1#-1#-1#-1#-1#-1#-1#-1#-1#-1#-1#-1#-1#-1#0#-1#Steam

Da steht auch schon eine Server URL. Die gestohlenen Daten werden per HTTP multipart/form-data an ein PHP Skript gesendet. Funpic als Hoster zu wählen sagt schon mal einiges über den Ersteller aus… Den Password Stealer zu analysen stellt keine Herausforderung dar, weil absolut nichts versteckt wurde. Allein die Textstrings in der Datei verraten schon was er so alles klauen kann, z.B. Firefox, Chrome, IE, SmartFTP, JDownloader, usw. Der Password Stealer wurde sicher von irgendeinem Scriptkiddie zusammengeklaut bzw. programmiert, der Entwickler wusste nicht wirklich was er da tut. Die Strings in deutscher Sprache lassen auf einen deutschen Entwickler schließen.

Schluss

Ich habe euch alle Dateien in ein RAR Archiv gepackt. Die einzelnen Komponenten findet ihr separat in dem Archiv. Der PN-Ersteller war also ein Scriptkiddie mit ernsten Absichten. Er hat sich wohl einen Crypter gekauft um einen Password Stealer vor den Virenscannern zu verstecken. Am Anfang dachte ich er hätte tatsächlich selber was programmiert (die PN wirkte so professionell), aber das ist nicht möglich. Er kann nicht den Crypter programmiert haben, weil der Password Stealer viel zu schlecht ist. Der Crypter Programmierer hat viel Ahnung von der Materie und würde niemals so ein Müll da reinmachen. Der PN-Ersteller kann auch nicht den Password Stealer programmiert haben, weil das Teil ein typischer idiotensicherer Baukasten Password Stealer ist, wäre er der Programmierer hätte er wohl wenigstens diese Baukasten Form entfernt. Wahrscheinlich hat er den Password Stealer auch gekauft. Schade, hatte mir irgendwie mehr versprochen. Falls noch Fragen auftauchen, einfach per Kommentar stellen.

Download auf eigene Gefahr: XUP Download
Passwort: infected

15 Gedanken zu „Malware-Angriff auf das RR-Team“

  1. Wow, du bist mein idol n0s, schreibst da nen 1km langen text, als hättest du ne neue welt entdeckt… Als ob ollydbg nicht einfach wäre…

    Mfg,
    Ljuska Team

  2. I’m OldMan, the coder of that shitty Crypter, want to send me email?
    Have fun guys, i love what i do

  3. Das ist ja mal ein glatter fail gewesen das er das jemannden schickt der sogar noch ahnung davon hat xD

    Muss Dir nochmal sagen das ich es auch bewundere wie du mit Ollydbg umgehst als währe es Gar nichts^^
    nice nice^^

  4. hallo, raidrush hat sich top positionen erkämpft, und da gibt es leider im biz viele neider – auch ganz nette, aber hier hat man es mit einem klientel zu tun, was alle mittel einsetzt, mangels eigener leistung, um die site zu schädigen, leider habe ich das auch schon erlebt, als alles gute weiterhin, stefan

  5. Leuten wir die gebührt wirklich mein größter Respekt!
    Finde es total faszinierend wie du mit dem Ollydbg hantierst als wäre es die einfachste Sache der Welt. Habe mich auch schon ein paar mal an das Thema ran gewagt aber immer ziemlich schnell wieder aufgegeben. Bin nur ein C# Weichspüler da kann man wohl nichts machen ;-)

    Freue mich schon auf deinen nächsten Beitrag!

  6. Nebenbei, keiner vom Team hat die Datei ausgeführt.

    Jetzt wärs interessant zu wissen, wenn man weiß – oder zumindest du weißt wie die Datei funktioniert, ob man sich dann dagegen dann schützen kann, denn die Antivirs sind ja drauf nicht angesprungen.

    Oder kurz gesagt, kann man auf Grund deiner Erkenntnisse einen Schutz erstellen?

  7. Hallo,

    der Account wurde nicht gelöscht sondern gesperrt.
    Also Daten sind noch da, diese können wir aber nur an die Polizei ausgeben.

    Mit freundlichen Grüßen
    Funpic Support

  8. Sehr interessant. Und kompliziert^^

    Würd auch gern mehr davon lesen..

    Wer schreibt die ganzen Blogs? S/Mods?

  9. Traurig nur, das er den Namen „Haze“ nutzt, denn der echte Haze hat damit null zu tun. Er ist nicht mal mehr in der Scene tätig. Schon garnicht als Mod oder S-Mod.

  10. mh, ich hatte mir mehr mehr erhofft ^^ trotzdem interessant zu lesen. vielleicht meldet sich ja das scriptkiddie mal ^^

    just got owned ^^

  11. Hey, ich finds echt cool wie du an die Sache ran gegangen bist und das ganze Teil auseinander genommen hast. Ich lerne auch grade php und vb.net und außerdem interessiert mich Reserve Engineering sehr und es begeistert mich einfach =). Ich hab auch schon angefangen mir die Video-Tutorials von ‚Lena‘ von Tut4You anzugucken, bin beim 5. Video glaub ich, und ich finde auch die anderen Analyse und allgemein Ollydbg Artikel sehr interessant.

    Ich würde mich über weitere Artikel der Art freuen :) Weiter so!

    r0ckThiz

  12. Hm, scheint sich wohl um einen „social Hacker“ zu handeln, eigentlich schade. Würde er mehr Wert auf Programmierung legen, oder sich wenigstens eine crew mit skills in dieser Richtung suchen, könnte er mit seinen formulierten Texten bestimmt effektiver sein.
    Trotzdem sehr schön auseinander genommen, hätte nicht gedacht dass diese Baukastenstealer immer noch umherschwirren, oder besser gesagt ernsthaft zum Einsatz kommen…

  13. Der Account, an welche der Stealer die Daten geschickt hat wurde mittlerweile gelöscht, wie mir der Funpic-Support per Mail mitgeteilt hat.

    Mfg
    TuXiFiED

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *