Programmverhalten analysieren - VB

Transcrição

Programmverhalten analysieren - VB
Programmverhalten analysieren
Sinn und Zweck:
Mit diesem Tutorial möchte ich zeigen, wie man herausfindet, was ein unbekanntes Programm alles
macht. Das werde ich im Folgenden am Beispiel von Malware1 demonstrieren.
Hinweis:
Ich übernehme keinerlei Haftung für jegliche Schäden, die aus irgendwelchen Gründen entstehen
könnten. Es gibt bestimmt massig Fehler in diesem Dokument, die ich zu entschuldigen bitte.
Außerdem zeige ich nur ein beispielhaftes Vorgehen, welches man variieren kann.
Los geht’s:
Ich habe folgende Email erhalten:
VON: Deutsche Post <[email protected]>
BETREFF: Deutsche Post#Ein Fehler in der Lieferanschrift
Lieber Kunde,
Es ist unserem Boten leider misslungen einen Postsendung an Ihre Adresse
zuzustellen.
Grund: Ein Fehler in der Leiferanschrift.
Sie konnen Ihre Postsendung in unserer Postabteilung personlich kriegen.
Anbei finden Sie einen Postetikett.
Sie sollen dieses Postetikett drucken lassen, um Ihre Postsendung in der
Postabteilung empfangen zu konnen.
Vielen Dank!
Deutsche Post AG
Offensichtlich ist die Email SPAM und versucht uns mit einem Virus zu infizieren. Um mir das mal
genauer anschauen zu können, lade ich mir das Archiv herunter, in welchem ein Programm enthalten
ist.
Um meinen Computer nicht mit irgendwelcher Malware zu infizieren, starte ich meine VM2 .
1
Malware = Schadprogramme
VM: virtual maschine. Hierbei handelt es sich um eine Virtualisierungssoftware, mit welcher man ein separates
Betriebssystem in seinem originalen Betriebssystem installieren kann (quasi ein Windows im Windows). Dieses separate
Betriebssystem ist vom originalen getrennt, sodass jede Änderungen nicht auf das originale Betriebssystem übertragen
werden. Dadurch kann man alle möglichen Sachen dort ausprobieren, ohne sich Sorgen zu machen, dass sein PC
danach nicht mehr startet. Ich nutze VirtualBox von Oracle.
2
Damit man nicht jedes Mal seine VM neu aufsetzen muss, sollte man sein VM-Windows ausreichend
konfigurieren und mit der benötigten Software ausstatten. Wenn das geschafft ist, sollte man auf
jeden Fall einen Sicherungspunk erstellen. Wenn man sein VM-Windows also mal kaputt gemacht
hat, kann man einfach per Knopfdruck auf den alten Stand zurückgesetzt werden, ohne alles neu zu
installieren.
Je nach Virtualisierungssoftware kann man dann Dateien vom Originalwindows in die VM kopieren:
Das ist nun das Programm, welches aus dem Anhang der Email stammt und nun in meiner VM ist.
Direkt auffällig ist hier, dass die Datei ein Word-Icon hat, aber eine .exe-Dateiendung3 besitzt.
3
.exe-Dateien gehören zu den PE-Dateien (Portable Executable). PE-Dateien sind ausführbare Dateien, also
Programme, welche im schlimmsten Fall Malware sind und den PC verseuchen. Andere PE-Dateiendungen sind .com,
.pif, .scr etc.
Word-Dateien haben normalerweise eine .doc-Dateiendung. Hier versucht man uns also ein WordDokument vorzugaukeln, welches man eigentlich gefahrlos öffnen kann. Da es aber ein Programm
ist, sollte man es nicht gedankenlos öffnen. Dieser Trick mit dem „gefälschten“ Icon deutet eindeutig
auf Malware hin.
Wollen wir also mal schauen, was dieses Ding so alles macht.
Als erstes schau ich mir mit einem Packer Detector an, ob die Datei gepackt wurde. Wenn eine Datei
gepackt wurde, dann ist die Datei komprimiert und/oder verschlüsselt.
Ich nutze DiE 0.64 („Detect it easy“). Weitere Packer Detector sind beispielsweise PEiD oder
Protection ID. Im Bild sieht man nun, dass die Datei in der Programmiersprache C++ geschrieben
wurde und mit UPX 3.07 gepackt wurde. UPX ist frei herunterladbar, sodass es ein leichtes ist, die
Datei zu entpacken. Das hab ich dann mal gemacht und schaue, ob vielleicht noch ein weiterer
Packer verwendet wurde.
Hier sieht man, dass die Datei jetzt in ihrem Ursprungsformat vorhanden ist, also nicht verschlüsselt
oder ähnliches.
Aber wofür das ganze?
Wenn eine Datei nicht gepackt ist, besteht die Chance, dass man Informationen in der Datei findet,
z.B. IP-Adressen, FTP-Serverdaten, Nutzernamen oder was auch immer (sog. hardcoded strings).
Versuchen wir es mal. Grundsätzlich reicht dafür ein einfacher HEX-Editor, aber ich nutze eine dafür
ausgerichtete Software namens Bintext von McAfee.
Jetzt kann man nach nützlichen Informationen suchen, die einen etwas über die Funktionsweise oder
die Art des Programms sagen. Findet man beispielsweise einen Text 1337Stealer, kann man sich
denken, dass das Programm versuchen wird, Passwörter oder ähnliches zu stehlen.
In diesem Fall hatte ich allerdings kein Glück. Es waren keine verwertbaren Informationen enthalten.
Was fällt bis zu diesem Zeitpunkt auf? Richtig, das Programm wurde noch nicht gestartet. Das wird
aber jetzt passieren. Keine Sorge, wir sind ja in der VM, sodass unser richtiges Windows keinen
Schaden nimmt.
Zuerst starte ich zwei Programme: ProcessHacker 2 von wj32 und ProcessMonitor von Mark
Russinovich und Bryce Cogswell.
Der ProcessMonitor listet nun alle Ereignisse auf, die stattfinden. Das sind alles viel zu viele, sodass
wir filtern müssen. Dazu gehen wir in das Filtermenu (das türkise Symbol links vom „A“).
Am wichtigsten ist zu wissen, was für neue Dateien entstehen, also setzten wir einen Filter auf
Category is Write then Include und drücken Add und OK. Die angezeigten Ereignisse sollten sich nun
enorm vermindert haben. Um alle bereits vergangenen Ereignisse zu löschen, klicken wir auf das
Symbol links neben dem Filter-Symbol, sodass wir bei 0 anfangen können. Jetzt starten wir das
Programm aus dem Email-Anhang. Im ProcessHacker sieht man nun in Echtzeit, was für Prozesse
entstehen und beendet werden. Die anfängliche DeutschePost_ID789456-353.exe startet
svchost.exe, welche wiederum notepad.exe startet. DeutschePost_ID789456-353.exe beendet sich
dann.
Das ganze sieht dann nach dem Ausführen so aus:
Das soll dann das angebliche Postetikett sein, welches in der Email erwähnt wurde. Soll natürlich
den Anschein erwecken, dass es sich wirklich nur um ein Etikett handeln, aber wir sehen ja, dass im
Hintergrund noch was anderes läuft. Dieses „Etikett“ findet man nun im Verzeichnis wieder, wo
vorher die DeutschePost_ID789456-353.exe war. Diese ist aber nun verschwunden.
Wir schließen das Textdokument und lassen nun alle verdächtigen Prozesse pausieren. Dazu
schauen wir beim ProcessHacker nach den neu entstandenen Prozessen. Dies wäre jetzt
svchost.exe. Rechtsklick auf den Prozess und Suspend drücken. Nun ist der Prozess eingefroren
und kann nichts machen. Bei ProcessHacker ist er jetzt grau unterlegt.
Jetzt unterbrechen wir auch den ProcessMonitor, damit keine weiteren Einträge hinzugefügt werden,
die nichts mit der Malware zu tun haben. Dazu klicken wir auf das Lupen-Symbol (3. von links). Wir
haben nun alle Einträge mit dem Filter „nur Einträge zeigen, bei denen Dateien oder RegistryEinträge geschrieben werden“ (Category is Write then Include).
Der markierte Eintrag zeigt, dass eine Datei im Anwendungsdaten-Ordner erstellt wurde. Etwas
weiter unten sieht man, dass die DeutschePost_ID789456-353.exe gelöscht wird (unter Detail:
Delete: True) und dass eine DeutschePost_ID789456-353.txt erstellt wird. Soweit so gut. Wir haben
einen Überblick, was alles so geschrieben wurde.
Gehen wir nun im Menu auf Tools – Process Tree. Hier sehen wir, was wir auch schon im
ProcessHacker in Echtzeit gesehen haben. Die anfängliche DeutschePost_ID789456-353.exe startet
svchost.exe, welche wiederum notepad.exe startet.
Da uns nur diese 3 Prozesse interessieren, setzen wir wieder einen Filter:
Und dieses Mal wollen wir nicht nur die erstellten Dateien und Registryeinträge sehen, also nehmen
wir den Haken bei dem Filter heraus und drücken Apply.
Jetzt schauen wir uns mal die Prozess-Events an. Dazu klicken wir oben alle nicht gebrauchten Icons
weg, sodass nur noch Prozess-Events gezeigt werden:
Hier kann man nun schön nachschauen, wer was wann gestartet hat und was wann beendet wurde.
Nun schauen wir uns die Netzwerk-Aktivitäten an:
Jetzt wollen wir die Datei- und Registryänderungen sehen. Da das zu viele sind, beschränken wir uns
auf die geschriebenen Sachen. Wir setzen also wieder den Haken beim Category-is-write-theninclude-Filter. Bei den Dateien sehen wir nun wieder, dass eine Datei in den AnwendungsdatenOrdner geschrieben wurde und dass die DeutschePost_ID789456-353.exe vom svchost.exe-Prozess
gelöscht wurde, sowie eine DeutschePost_ID789456-353.txt erstellt wurde. Das haben wir ja auch
im Ordner gesehen.
Weiter unten sieht man, dass einige Internet-Einstellungen in der Registry verändert werden.
Außerdem schreibt notepad.exe seine Einstellung in die Registry, was aber vollkommen legitim ist.
OK, damit wissen wir eigentlich schon, was alles passiert ist.
Schauen wir mal nach, ob das auch stimmt, was uns da so angezeigt wird:
Jawohl.
Aber schauen wir uns jetzt mal den Prozess svchost.exe genauer an. Dazu nutzen wir den
ProcessHacker. Rechtsklick auf den Prozess und dann Properties.
Aber was ist das? Die Datei ist eine Windows-Datei und ist wichtiger Bestandteil von Windows
(Achtung: Die Windowsdatei befindet sich im Systemverzeichnis „\Windows\System32\svchost.exe“,
wenn sie sich in einem anderen Verzeichnis z.B. unter „\Windows\svchost.exe“ befindet oder
„\Windows\System32\scvhost.exe“ heißt, dann wird es wahrscheinlich ein Virus sein, der sich
versucht, anhand des Namens zu tarnen.)
Aber wie kann das sein? Eine Windows-Datei erstellt Viren im Anwendungsdaten-Ordner?!
Nein! Der Prozess DeutschePost_ID789456-353.exe hat svchost.exe gestartet und Schadcode in
diesem Prozess versteckt (injected). Das bedeutet, dass der Prozess getarnt ist und nicht unter
seinem Originalnamen im Taskmanager zu sehen ist, sondern sich hinter einem legitimen Prozess
versteckt. Oft versteckt sich Malware auch im Standartbrowser, sodass man damit die Firewall
umgeht.
Also: „C:\Windows\System32\svchost.exe“ nicht versuchen zu löschen!
Schauen wir aber mal in den Prozess hinein. Dazu gehen wir auf den Reiter Memory.
Und dort klicken wir auf Strings… Jetzt setzen wir den Filter wie folgt:
(PS: Screenshot kommt nicht aus der VM, hat deswegen keinen XP-Style. Unwichtig.)
Es folgt ein Klick auf OK und es werden alle möglichen Texte aufgelistet, die so im Arbeitsspeicher
geladen sind. Hier kann man zum Beispiel Texte finden, die in der Ursprungsdatei verschlüsselt sind
und nachdem das Programm gestartet wurde, entschlüsselt werden (sich also entschlüsselt im
Arbeitsspeicher befinden).
Hier sehen wir eine Internetadresse, mit der sich vermutlich verbunden wird (bei ProcessMonitor sah
man im Netzwerkfilter eine Seite namens static.174.178.4.46.clients.your-server.de:8080, welche mit
der IP 46.4.178.174 übereinstimmt).
Man kann hier jetzt etwas rumsuchen, vielleicht findet man ja etwas Interessantes.
Hier findet man beispielsweise noch mal den Inhalt der erstellten Textdatei mit dem „Postetikett“ oder
ein paar URL-Stücke.
Außerdem findet man den Registryeintrag Software/Microsoft/Windows/CurrentVersion/Run. Dieser
ist ein Autorun-Eintrag, welcher bewirkt, dass die Datei, welche unter diesem Zweig eingespeichert
wird, bei jedem Windowsstart mitstartet. Was mich allerdings gewundert hat, war, dass keinerlei
Autostart hinzugefügt worden ist, was für einen Bot oder Trojaner eigentlich essentiell ist (Autostarts
kann man wunderbar mit Autoruns von Mark Russinovich nachsehen). Dazu ist mir dann eingefallen,
dass viele Malware heutzutage Anti-VM Funktionen haben. Sie erkennen, dass sie innerhalb einer
VM gestartet werden und beenden sich dann direkt wieder oder benehmen sich vollkommen
harmlos. Ich könnte mir vorstellen, dass so etwas auch hier benutzt wurde, zumal man sehr oft den
Text You fag!!!!! findet (dt.: Du Schwuchtel!). Womöglich scheint da jemand nicht erfreut zu sein, in einer
VM gestartet zu werden. Das ist allerdings nur Spekulation meinerseits.
So, genug analysiert. Wir haben ausreichend Informationen, wie sich dieses „Postetikett“ verhält und
was es so macht. Man kann jetzt noch nach dem Inhalt der Textdatei, der IP oder dem Dateinamen
googlen, um weitere Informationen zu finden, aber das spar ich mir jetzt.
So, VM ausschalten und auf den letzten Sicherungspunkt zurückkehren. Fertig.
Zum Schluss noch einen Videotip: Malware Hunting with the Sysinternals Tools | TechEd Europe
2012 | Channel 9