
Explorer für schädlichen HTTP-Verkehr

CapTipper v0.3: http://www.omriher.com/2015/08/captipper-v03-is-out.html
CapTipper v0.2: http://www.omriher.com/2015/03/captipper-02-released.html
CapTipper v0.1: http://www.omriher.com/2015/01/captipper-malicious-http-traffic.html
CapTipper ist ein Python-Tool zur Analyse, Erkundung und Wiederbelebung von bösartigem HTTP-Verkehr.
CapTipper richtet einen Webserver ein, der sich exakt wie der Server in der PCAP-Datei verhält,
und enthält interne Werkzeuge mit einer leistungsstarken interaktiven Konsole zur Analyse und Untersuchung der gefundenen Hosts, Objekte und Konversationen.
Das Tool bietet dem Sicherheitsforscher einfachen Zugriff auf die Dateien und das Verständnis des Netzwerkflusses
und ist nützlich bei der Erforschung von Exploits, Vorbedingungen, Versionen, Verschleierungen, Plugins und Shellcodes.
Die Einspeisung eines Drive-by-Verkehrsmitschnitts (z.B. eines Exploit-Kits) in CapTipper zeigt dem Benutzer die gesendeten Anforderungs-URIs und die Antwort-Metadaten an.
Der Benutzer kann zu diesem Zeitpunkt zu http://127.0.0.1/[host]/[URI] navigieren und die Antwort im Browser empfangen.
Zusätzlich wird eine interaktive Shell für tiefere Untersuchungen gestartet, die verschiedene Befehle wie hosts, hexdump, info, ungzip, body, client, dump und mehr verwendet.
Dokumentation: http://captipper.readthedocs.org
Update vom 02.10.2020:
CapTipper unterstützt jetzt Python3 und ist im folgenden Branch zu finden: https://github.com/omriher/CapTipper/tree/python3_support

Usage: ./CapTipper.py <PCAP_file> [-p] [web_server_port=80]
Analysieren wir die folgende Nuclear EK-Drive-by-Infektion PCAP [2014-11-06-Nuclear-EK-traffic.pcap](http://malware-traffic-analysis.net/2014/11/06/2014-11-06-Nuclear-EK-traffic.pcap.zip)```sh
C:\CapTipper> CapTipper.py "C:\NuclearFiles\2014-11-06-Nuclear-EK-traffic.pcap"
CapTipper v0.1 - Malicious HTTP traffic explorer tool
Copyright 2015 Omri Herscovici <[email protected]>
[A] Analyzing PCAP: C:\NuclearFiles\2014-11-06-Nuclear-EK-traffic.pcap
[+] Traffic Activity Time: Thu, 11/06/14 17:02:35
[+] Conversations Found:
0: / -> text/html (0.html) [5509 B]
1: /wp-includes/js/jquery/jquery.js?ver=1.7.2 -> application/javascript (jquery.js) [39562 B]
2: /seedadmin17.html -> text/html (seedadmin17.html) [354 B]
3: /15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html -> text/html (15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html) [113149 B]
4: /wp-content/uploads/2014/01/MetroWest_COVER_Issue2_Feb2014.jpg -> image/jpeg (MetroWest_COVER_Issue2_Feb2014.jpg) [350008 B]
5: /images/footer/3000melbourne.png -> image/png (3000melbourne.png) [2965 B]
6: /images/footer/3207portmelbourne.png -> image/png (3207portmelbourne.png) [3092 B]
7: /wp-content/uploads/2012/09/background1.jpg -> image/jpeg (background1.jpg) [33112 B]
8: /00015d76d9b2rr9f/1415286120 -> application/octet-stream (00015d76.swf) [31579 B]
9: /00015d766423rr9f/1415286120 -> application/pdf (XykpdWhZZ2.pdf) [9940 B]
10: /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6 -> application/octet-stream (5.exe) [139264 B]
11: /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6;1 -> application/octet-stream (5.exe) [139264 B]
12: /00015d76rr9f/1415286120/7 -> application/octet-stream (7.exe) [139264 B]
13: /00015d761709rr9f/1415286120 -> application/octet-stream (00015d76.swf) [8064 B]
14: /00015d76rr9f/1415286120/8 -> application/octet-stream (8.exe) [139264 B]
[+] Started Web Server on http://localhost:80
[+] Listening to requests...
CapTipper Interpreter
Type 'open <conversation id>' to open address in browser
type 'hosts' to view traffic flow
Type 'help' for more options
CT>
Die Initialisierung gibt die zwischen Client und Server gefundenen Gespräche im folgenden Format aus:
[ID] : REQUEST URI -> SERVER RESPONSE TYPE (DATEINAME) [GRÖSSE IN BYTES]
ID: Eine zugewiesene ID für das jeweilige Gespräch
REQUEST URI: Der URI, der im GET-Request an den Server gesendet wurde
SERVER RESPONSE TYPE: Der im Server-Response-Header zurückgegebene content-type
DATEINAME: Der Dateiname kann verschiedene Werte annehmen:
GRÖSSE IN BYTES: Größe des Response-Bodys
Nach der Initialisierung geschehen 2 Dinge:
Der Interpreter enthält interne Werkzeuge zur weiteren Untersuchung der Objekte im pcap.
Das Öffnen eines URIs im Browser erfolgt einfach durch Eingabe von 'open' zusammen mit der Objekt-ID.```sh CT> open 0 CT> log [2015-01-09T18:01:28.878000] 127.0.0.1 : GET / HTTP/1.1
* Keiner der Befehle (außer 'open') erfordert tatsächlich, dass der Server läuft. Sie können den Server ausschalten, indem Sie 'server off' eingeben oder -s hinzufügen, wenn Sie CapTipper aufrufen.
Sehen wir uns an, was wir ohne Verwendung des Browsers herausfinden können.
Zunächst verschaffen wir uns mit dem Befehl 'hosts' einen Überblick über den Datenverkehr.```sh
CT> hosts
Found Hosts:
www.magmedia.com.au
├-- / [0]
├-- /wp-includes/js/jquery/jquery.js?ver=1.7.2 [1]
├-- /wp-content/uploads/2014/01/MetroWest_COVER_Issue2_Feb2014.jpg [4]
├-- /images/footer/3000melbourne.png [5]
├-- /images/footer/3207portmelbourne.png [6]
└-- /wp-content/uploads/2012/09/background1.jpg [7]
pixeltouchstudios.tk
└-- /seedadmin17.html [2]
grannityrektonaver.co.vu
├-- /15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html [3]
├-- /00015d76d9b2rr9f/1415286120 [8]
├-- /00015d766423rr9f/1415286120 [9]
├-- /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6 [10]
├-- /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6;1 [11]
├-- /00015d76rr9f/1415286120/7 [12]
├-- /00015d761709rr9f/1415286120 [13]
└-- /00015d76rr9f/1415286120/8 [14]
Es scheint, dass www.magmedia.com.au die kompromittierte Website ist.
Durch die Kreuzung dieser Informationen und der Dateitypen, die wir in der Gesprächsliste erhalten haben, sieht es so aus, als ob grannityrektonaver.co.vu der infizierende Host ist.
Was ist dann pixeltouchstudios.tk ?
Nun, da man weiß, wie exploit-kits normalerweise funktionieren, ist dies wahrscheinlich der TDS-Server (Traffic Distribution System).
Schauen wir uns das genauer an.
Wir können den Header und den Body der Seite ausdrucken, indem wir 'head' und 'body' eingeben:```sh CT> head 2 Displaying header of object 2 (seedadmin17.html):
HTTP/1.1 302 Found Server: nginx Date: Thu, 06 Nov 2014 15:02:38 GMT Content-Type: text/html; charset=iso-8859-1 Content-Length: 354 Connection: keep-alive Set-Cookie: ehihm=YocADE3AAIAAgCvjVtU_.vjVtUQAABAAAAr41bVAA-; expires=Fri, 06-Nov-2015 15:03:11 GMT; path=/; domain=pixeltouchstudios.tk Location: http://grannityrektonaver.co.vu/15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html
CT> body 2 Displaying body of object 2 (seedadmin17.html) [256 bytes]:
302 FoundThe document has moved here.