Honeyp0tse und b0tse
Wir versuchen durch die Verwendung von Honeypots Botnetze zu finden und zu analysieren.
Anwendung findet dabei nepenthes (nicht zu verwechseln mit der fleischfressenden Pflanze, von der der Honeypot aber wohl seinen Namen hat.
Aufgesetzt ist das ganze auf einem linux server in einer beliebten, deutschen IP range. :-)
Nepenthes Honeypot fungiert dabei als server, der auf allen ports lauscht die für einen Angreifer attraktiv sein könnten.
Unter anderem sind dies:
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-11-29 02:41 CET
Interesting ports on ip-honeypot.de (honeypot):
Not shown: 1656 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp filtered smtp
42/tcp open nameserver
53/tcp open domain
80/tcp open http
110/tcp open pop3
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
143/tcp open imap
220/tcp open imap3
443/tcp open https
445/tcp filtered microsoft-ds
465/tcp open smtps
993/tcp open imaps
995/tcp open pop3s
1023/tcp open netvenuechat
1025/tcp open NFS-or-IIS
2105/tcp open eklogin
3372/tcp open msdtc
4444/tcp filtered krb524
5000/tcp open UPnP
10000/tcp open snet-sensor-mgmt
17300/tcp open kuang2
Nmap finished: 1 IP address (1 host up) scanned in 9.974 seconds
BTW: Man beachte, dass die ports 139 und 445 gefiltert werden! Das ist KEINE Einstellung von uns, sondern scheint generell ein Filter von diversen Providern zu sein. Getestet haben wir dabei 4 verschiedene. Bei allen werden die netten netbios Sachen gefiltert, was recht schade ist wenn man bedenkt, dass darüber die meisten exploits ansetzen...
Damit sind die meisten gängisten Sicherheitslücken vertreten. Nepenthes macht jetzt den lieben langen Tag nichts anderes als sich darum zu kümmern die Ports offen zu halten und jeglichen Angriff oder Connect zu protokollieren und zu archivieren.
Nepenthes führt dabei erstmal logs über besondere events. Zum einen loggt nepenthes Aufforderungen Dateien herunterzuladen:
[2006-11-06T09:33:44] tftp://82.224.XX.180/winmsfws.exe 1acb01f89fdee44bddde439c8b4437ca
[2006-11-06T11:13:24] tftp://217.XXX.233.54/winmsfws.exe 06133e07fbc11763f69b10391d2c9c68
[2006-11-06T11:51:46] tftp://85.225.XXX.169/winmsfws.exe 1acb01f89fdee44bddde439c8b4437ca
[2006-11-06T13:00:10] creceive://85.XX.68.50:3949 7dc73bfa4d78284155dd5101991eeb34
[2006-11-06T13:07:55] tftp://213.XXX.200.153/winmsfws.exe 1acb01f89fdee44bddde439c8b4437ca
[2006-11-06T15:24:09] creceive://85.XXX.65.70:1763 7dc73bfa4d78284155dd5101991eeb34
[2006-11-06T15:35:11] ftp://a:a@85.24.XX.88:5253/ms0x1.exe 51bad4670fdac0ea1d53bd7a650626a9
[2006-11-06T17:34:49] creceive://85.47.XX.98:3984 7dc73bfa4d78284155dd5101991eeb34
[2006-11-06T20:36:42] ftp://1:1@85.144.XXX.8:28881/infors32.exe 2421b62f9ebd6ee43d4f3c65d6b7d523
Wie man sehr schön sehen kann werden uns da jede Menge files angeboten. Egal ob über http / ftp / tftp / oder http, Bots sprechen eigentlich alles was nötig ist um sich mit updates aus dem Netz zu versorgen. Meist steckt dies direkt im Payload des Exploits, also download and execute um dann die malware zu installieren.
Nepenthes macht natürlich gute Miene zum bösen Spiel und lädt sich brav die angebotene malware runter. Bei Erfolg wird dies ebenfalls geloggt:
[2006-11-06T04:06:00] ftp://1:1@85.XXX.67.159:28876/faleh32.exe
[2006-11-06T05:18:15] ftp://1:1@85.XXX.140.60:46345/wulogin.exe
[2006-11-06T05:52:18] tftp://10.0.XX.162/winmsfws.exe
[2006-11-06T06:42:55] link://85.XXX.79.149:5548/AQAAAA==
[2006-11-06T09:32:39] tftp://82.XX.158.180/winmsfws.exe
[2006-11-06T10:43:21] tftp://192.168.1.5/teekids.exe
[2006-11-06T10:46:12] http://213.XXX.214.106/CMD.gif
Interessant ist dabei auch immer wieder zu sehen:
[2006-11-07T00:38:19] tftp://192.168.116.2/h3110.411
- offensichtliche config Fehler, man beachte zB die IP... *duh*
ftp://1:1@85.25.XXX.150:13334/rxbot.exe
- nicht mal die Mühe gemacht dem Bot einen anderen Namen zu geben. rxbot ist übrigens eine relativ verbreitete Variante...
[2006-11-06T06:42:55] link://85.XXX.79.149:5548/AQAAAA==
- hier wurde die endgültige exe verschlüsselt. Meist recht einfach zu knacken...
Ist dann die binary heruntergeladen fertigt nepenthes eine md5sum an und legt das binary in ein folder. Ist die autosubmit Funktion in der config aktiviert schickt nepenthes die binary auch gleich an eine Antivir Firma und man erhält wenig später ein Log zurück, was über die binary in Erfahrung zu bringen war...
Was kann man aus diesem Log sehen?
nepenthes-76389087a2f500a7eccca868e5aa7724-MsnWin32e.exe : W32/Spybot.gen3 (Signature: W32/Spybot.ZYI)
[ General information ]
* Decompressing Mew.
* **Locates window "NULL [class mIRC]" on desktop.
* File length: 79748 bytes.
* MD5 hash: 76389087a2f500a7eccca868e5aa7724.
[ Changes to filesystem ]
* Creates file C:\WINDOWS\SYSTEM32\MsnWin32e.exe.
* Deletes file 1.
[ Changes to registry ]
* Creates value "Microsoft Update Emulator"="MsnWin32e.exe" in key "HKLM\Software\Microsoft\Windows\CurrentVersion\Run".
* Creates value "Microsoft Update Emulator"="MsnWin32e.exe" in key "HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices".
* Creates value "Microsoft Update Emulator"="MsnWin32e.exe" in key "HKCU\Software\Microsoft\Windows\CurrentVersion\Run".
[ Network services ]
* Looks for an Internet connection.
* Connects to "iso.XXX.net" on port 12347 (TCP).
* Sends data stream (12 bytes) to remote address "iso.XXX.net", port 12347.
* Connects to IRC Server.
* IRC: Uses nickname ezkieyac.
* IRC: Uses username ezkieyac.
[ Security issues ]
* Possible backdoor functionality [Authenticate] port 113.
[ Process/window information ]
* Creates a mutex kh.
* Will automatically restart after boot (I'll be back...).
[ Signature Scanning ]
* C:\WINDOWS\SYSTEM32\MsnWin32e.exe (79748 bytes) : W32/Spybot.ZYI.
Da steht alles was man wissen muss... Jetzt kann man sich theoretisch den Spass machen ein solches Botnetz mal live zu besuchen, davon rate ich aber nachdringlich ab!!! Wen es dennoch brennend interessiert muss wissen was er tut und auf was er sich einlässt, mit einem M$ OS wär ich da sehr vorsichtig....
Connectet man also auf den server (wenn man weiss was man tut), dann findet sich dort ein meist bis ins letzte verkrüppelter IRCd, der ungefähr GARKEINE Informationen mehr zurückgibt. Teilweise sind die IRCds so stark in der Funktionalität eingeschränkt, dass man nicht mal merkt das man connectet ist. Im Channel bietet sich dann meist das gleiche Bild. Über das topic werden den Bots kryptische Befehle gegeben, die die Zombies dann gnadenlos ausführen. Ich hatte einmal das Glück einen Botmaster anzutreffen (also der Typ dem das Botnet gehört), ich werde bei Gelegenheit das Log von meinem Chat mit ihm auszugsweise posten. Auch ein paar Bilder...
Siehe Diskussionsseite... --Yorn 22:11, 4. Apr. 2008 (CEST)
Die nepenthes Logs sind enorm hilfreich und erleichtern einen eventuelles reverse engineeren oder testen des bots in einer vmware. Diese Biester wehren sich übrigens mittlerweile aktiv dagegen und erkennen ob sie in einer vmware laufen oder am debugger hängen. Zudem sind die binaries zusätzlich verändert um möglichst wenig infos preiszugeben.
Nepenthes hat auch noch einen Log Ordner in dem die kompletten Hexdumps der Zugriffe auf die offenen ports verzeichnet sind. Von dort aus erkennt man dann auch gut um welchen Exploit es sich handelt:
GET XXX/../../../../../../../../../../../x/x HTTP/1.1
- webmin exploit, verändert...
70c3b207bf8a5e1e23f99738aae11600.bin:GET //scgi-bin/awstats/awstats.pl HTTP/1.1
- awstats remote command execution...
Durchaus eine sehr interessante Sache sich einmal auf die Jagd nach Bots zu begeben. Ich werde weiterhin updaten wenn sich etwas interessantes findet...
--Yorn 03:47, 29. Nov. 2006 (CET)
Update 28.10.2008
Die letzten Tage ist das hier ja mehr oder minder heftig eingeschlagen. Ich hab meinen Honeypot mal aufgestellt und siehe da: Kabel-BW blockt port 135 nicht mehr! :) Ich hatte ca. 300 hits auf DCOM in einer Stunde. Der Shellcode war loader, der sich von link://78.42.73.190:18635/b1ew1Q oder ftp://rlyjma:rlyjma@78.42.187.137:1364/wmsoft40137.exe lustige Spielsachen zieht. Letzteres ist ein verkrüppelter ftp. Ein Botnet via irc war auch wieder dabei. Zur Zeit lohnt sich das honeypotten! --Yorn 20:23, 28. Okt. 2008 (CET)