pcap 恶意HTTP流量资源管理器
## CapTipper v0.3
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是一个用于分析,探索和恢复HTTP恶意流量的python工具。
CapTipper设置一个Web服务器,其作用与PCAP文件中的服务器完全相同,
并包含内部工具和强大的交互式控制台,用于分析和检查找到的主机,对象和对话。
该工具为安全研究人员提供了对文件的轻松访问和对网络流的理解,
在尝试研究漏洞利用程序,前提条件,版本,混淆,插件和shellcode时非常有用。
使用偷渡式流量捕获(例如,漏洞利用工具包)向CapTipper提供向用户显示已发送的请求URI和响应元数据。
此时用户可以浏览到http://127.0.0.1/(host]/[URI]并将响应接收回浏览器。
此外,还启动了交互式shell,以便使用各种命令进行更深入的调查,例如:hosts,hexdump,info,ungzip,body,client,dump等等......
文档:http://captipper.readthedocs.org
###分析示例
用法:./ CapTipper.py < PCAP_file > [-p] [web_server_port = 80]
让我们分析下面的核EK驱动感染PCAP 2014-11-06-Nuclear-EK-traffic.pcap
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 <omriher@gmail.com>
[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>
Initialization以下列格式输出客户端和服务器之间的对话:
[ID]:REQUEST URI - >服务器响应类型(FILENAME)[字节大小]
ID:特定会话的已分配ID
REQUEST URI:在GET请求中发送到服务器的URI
SERVER RESPONSE TYPE:服务器响应头中返回的内容类型
FILENAME:文件名可以是以下几种:
- 响应标头中给出的Filename属性
- 源自URI
- 由CapTipper指定,如果找不到上述任何内容
尺寸:BYTES:响应体型
在初始化之后,发生了两件事:
- CapTipper创建一个伪Web服务器,其行为类似于pcap中的Web服务器
- 解释器已启动
解释器包含用于进一步调查pcap中对象的内部工具。
在浏览器中打开URI只需输入“open”和对象id即可
CT >开0
CT >日志
[2015-01-09T18:01:28.878000] 127.0.0.1 : GET / HTTP / 1.1
- 没有任何命令(“打开”除外)实际上要求服务器运行。您可以通过键入“server off”或在调用CapTipper时添加-s来关闭服务器。
让我们看看我们可以在不使用浏览器的情况下找到什么。
首先,我们将使用命令'hosts'对流量进行鸟瞰
CT >主机
找到的主机:
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 / 3000melburn.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]
似乎www.magmedia.com.au是受感染的网站。
通过交换此信息和我们在对话列表中获得的文件类型,看起来像grannityrektonaver.co.vu是感染主机。
那么pixeltouchstudios.tk是什么?
好吧,了解漏洞利用工具包通常如何工作,这可能是TDS(流量分配系统)服务器。
让我们仔细看看。
我们可以通过输入'head'和'body'来打印页面的标题和正文:
CT >头2
显示对象2的标题(seedadmin17.html):
找到HTTP / 1.1 302
服务器:nginx
日期:星期四,2014年11月6日15:02:38 GMT
内容类型:text / html ; 字符集= ISO-8859-1
内容长度:354
连接:保持活力
Set-Cookie:ehihm = _YocADE3AAIAAgCvjVtU __。vjVtUQAABAAAAr41bVAA- ; expires =星期五,06-Nov-2015 15:03:11 GMT ; path = / ; 域= pixeltouchstudios.tk
地点:http://grannityrektonaver.co.vu/15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html
CT >身体2
显示对象2的主体(seedadmin17.html)[256字节]:
< !DOCTYPE HTML PUBLIC “ - // IETF // DTD HTML 2.0 // EN ” >
< html> <head >
< title > 302 Found < / title >
< / head> <body >
< h 1> Found < / h 1>
< p >该文件已经移动< A HREF = “ http://grannityrektonaver.co.vu/15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html ” >这里< / A >。<
小时
- 通过deafult,body命令返回第一个256字节,您可以通过键入body 2 1000来更改它 - 这将打印前1000个字节
我们看到对象2返回302重定向到感染主机。
所以我们的假设可能是真的。
让我们输入'info'来获取有关对象2的更多信息:
CT >信息2
对话信息2:
服务器IP : 108.61.196.84 : 80
主持人 : pixeltouchstudios.tk
URI : /seedadmin17.html
参考 : http : //www.magmedia.com.au/
结果编号 : 302找到
结果类型: text / html
文件名 : seedadmin17.html
长度 : 354 B
该页面的推荐人当然是magmedia.co.au,但究竟是什么重定向了我们?
通过查看对话,它可能是索引页面或javascript文件。
让我们快速浏览一下javascript文件(对象1)
CT >身体1
显示对象1的主体(jquery.js)[256字节]:
▼♦♥─╜i{ # ╟ס╢√}〜♣X╓t♥═“HJצg♀░→ؽ%Y▓╡ם║m┘CR║
@a ! ▒P╪כ╬o ? ≈!╣TJ ≥£≈ \ g╞jó╢ \“ # cן╚πg÷ry≤~5↔O6םμ╦Vπ├ףףh|╛*ך╞½σh≤6_§╧╧╖╖╛╛╛╛╛↨↨↨↨↨l▌ ¥ππ╤z╘^«╞╟÷∞°▀F╖כב▐hככ═╦σ≥zZ4≤╓▌¢|╒Φg├σαv^,6φב=h╧≤═`╥\¶o
←▀↨π╧ ▐▌4ףf»≤π╢█h%חy {U▄╠≥A╤ < n₧_┤ ?Φ=█▐▌_4/Z↨τ↨ק↨↨↨╟↨ ?^╢מ╟IRQ±┴i
嗯......发生了什么事?我们来看看标题
CT >头1
显示对象1的标题(jquery.js):
HTTP / 1.1 200好的
内容编码:gzip
变化:接受编码
日期:星期四,2014年11月6日15:03:41 GMT
服务器:LiteSpeed
Accept-Ranges:字节
连接:保持活力
Keep-Alive:超时= 5,最大= 100
Last-Modified:Mon,10 Feb 2014 12:34:10 GMT
内容类型:应用程序/ javascript
内容长度:39562
Cache-Control:public,max-age = 604800
到期日:2014年11月13日星期四15:03:41 GMT
响应是gzip压缩。
让我们解开它:
CT > ungzip 1
GZIP对象1(jquery.js)的解压缩成功!
创建新对象:15
大。创建了一个新对象(15)。
我们来看看吧。
CT >身体15
显示对象15的主体(ungzip-jquery.js)[256字节]:
/ *
版权所有(C)2007 Free Software Foundation,Inc。http://fsf.org/
* /
功能 的getCookie的(a){风险 B = document.cookie.match(新正则表达式(“(?:^ |) ” + a.replace(/([ \ ?$ * | {} \(\)\ [\] \\\ / \ + ^])/ g,“ \\ $ 1 ”)+ “ =([^;] *)”)); 返回 b ?decodeU
RIComponent(B [1]):}未定义(本功能
所以这是JS文件的解压缩版本。
请记住,我们想要找出将我们重定向到TDS的内容,
安全假设它是iframe,所以让我们使用命令'iframes'搜索新对象中的iframe
CT > iframes 15
搜索对于 I帧 的对象15(ungzip-的jquery.js)...
找到1个iframe !
[I] 1 : http : //pixeltouchstudios.tk/seedadmin17.html
你去了,攻击者种植/改变了这个javascript并让它将用户发送到TDS。
现在让我们看一下来自感染服务器的文件。
再次输入'convs'将显示对话:
CT >转换
发现对话:
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:/seadadmin17.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]
那么我们在这里有什么......
看起来我们有1个PDF文件,2个SWF文件和4个可能由shellcode下载的EXE文件。
我们可以使用'dump'函数将所有文件转储到文件夹以进行更深入的检查,我们可以添加'-e'以避免转储EXE文件,因此我们不会意外启动它们。
CT > dump all c:\ N uclearFiles -e
对象0写入c:\ N uclearFiles \ 0 -0.html
对象1写入c:\ N uclearFiles \ 1 -jquery.js
对象2写入c:\ N uclearFiles \ 2 -seedadmin17.html
对象3写入c:\ N uclearFiles \ 3 -15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html
对象4写入c:\ N uclearFiles \ 4 -MetroWest_COVER_Issue2_Feb2014.jpg
对象5写入c:\ N uclearFiles \ 5 -3000melbourne.png
对象6写入c:\ N uclearFiles \ 6 -3207portmelbourne.png
写入到c物体7:\ n uclearFiles \ 7 -background1.jpg
对象8写入c:\ N uclearFiles \ 8 -00015d76.swf
对象9写入c:\ N uclearFiles \ 9 -XykpdWhZZ2.pdf
对象13写入c:\ N uclearFiles \ 1 3-00015d76.swf
对象15写入c:\ N uclearFiles \ 1 5-ungzip-jquery.js
如您所见,它还会转储新创建的未压缩的javascript文件。
我们还可以使用CapTipper检查文件。
我们来看看使用'hexdump'的第一个SWF文件。
CT > hexdump 8
显示对象8(00015d76.swf)正文[256字节]的hexdump:
0000 5A 57 53 17 E4 1B 01 01 4A 7B 00 00 5D 00 00 00 ZWS ..... J {..] ......
0010 01 00 3B FF FC 8E 19 FA DF E7 66 08 A0 3D 3E 85 .. ; ....... f .. = >。
0020 F5 75 6F D2 74 6B 7F 7F 31 2C 92 04 FD 10 0A EE .uo.tk..1,......
0030 E2 C5 C2 C9 4C 83 91 74 AE C8 7C 80 F6 31 A6 CE .... L..t .. | ..1 ..
0040 C0 15 CB 62 8D 76 42 8B 28 96 D3 83 FE 20 DE 57 ... b.vB。(.... .W
0050 7B E4 D2 F1 D8 BC E6 45 CF DC 7B 79 38 41 60 1F {......Ë.. {y8A `。
0060 0A E9 E4 10 8B F8 DA 0D A6 32 CF E1 E6 E9 78 AB ......... 2 .... x。
0070 8B A7 8A C5 62 8F 0B 31 84 41 10 75 B1 33 35 9D .... b..1.Au35。
0080 6E BA 30 B8 AE EB 78 33 31 67 36 42 01 36 4A A3 n.0 ... x31g6B.6J。
0090 C8 CB 29 B5 36 6E BF A7 D2 3B 9F 5C 6B A8 4A 9F ..)。6n ...... ; 。\ k。
00A0 A5 59 5F 7F 43 98 39 43 E8 90 69 C7 9D 84 3A 9C .Y_.C.9C..i ... :.
00B0 36 1D E6 12 F8 EB 03 EA F4 59 2A FD 71 9F 15 DB 6 ........ Y * .q ...
00C0 4B F3 C3 C4 4C 70 11 A1 19 25 C8 79 6E 4A 5E 4C ķ... ...的Lp%。延吉^大号
00D0 10 F5 A2 F9 1A E0 18 42 9D 87 9D 39 12 39 57 89 ....... B ... 9.9W。
00E0 CF EF 41 78 2E 57 88 C9 A5 BA F2 0E FC E0 5E B5 ..Ax.W ........ ^。
00F0 66 0C B4 7E A2 0B C4 D7 65 F8 12 57 98 58 16 16 f ..~ .... e..WX。
现在让我们来看看第二个:
CT > hexdump 13
显示对象13(00015d76.swf)正文[256字节]的hexdump:
0000 50 4B 03 04 14 00 00 08 08 00 81 7A 5D 45 6F 8B PK ......... z] Eo。
0010 BE 6C D2 00 00 00 6B 01 00 00 10 00 00 00 41 70 .l .... k ....... Ap
0020 70 4D 61 6E 69 66 65 73 74 2E 78 61 6D 6C 85 8F pManifest.xaml ..
0030 C1 4A 03 31 10 86 EF 42 DF 21 E4 01 92 50 6A 95 .J.1 ... B. !...点Pj。
0040 C5 2D 14 F4 2A A5 8A F7 98 9D DA 60 66 12 32 69 .- .. * ...... ` f.2i
0050 9B 7D 36 0F 3E 92 AF E0 D6 A2 EC 61 C1 EB 37 FF。 } 6。> ...... a..7。
0060 C7 C7 7C 7D 7C DE DD 43 0A B1 47 A0 22 2A 06 E2 .. | } | ..C..G。“ * ..
0070 56 EE 4B 49 8D D6 EC F6 80 96 15 7A 97 23 C7 5D V.KI ....... z。#。]
0080 51 2E A2 76 C1 0F 53 3D 37 E6 46 77 7F AA BC B8 Q..v..S = 7.Fw ....
0090 4D FD C7 3E 79 DA D5 B3 BC D4 D5 62 90 E2 81 4A M ..> y ...... b ... J
00A0 EE 37 D1 53 59 33 03 BE 86 BE 95 15 F2 D1 A2 25 .7.SY3 .........%
00B0 48 B0 00 7A F7 E3 D5 73 9F A0 95 96 BB 37 EE D4 H ..z内容S ..... 7 ..
00C0 3A 25 29 B6 07 2A 1E E1 05 32 FB 48 AD 5C 28 A3:%).. * ... 2.H。\(。
00D0 AE CD ED 7C A9 8C 5C CD AE 84 18 7D A8 36 36 17 ...... | .. \ ....}。
66.00E0 FE A1 03 FF 2D 9E A1 A8 CD A3 45 98 8A 3F C5 43 ....-..... E ..?。C
00F0 76 13 17 D5 85 E1 01 7D 69 E8 89 C8 18 AE BE 01 v ......} i .......
有意思......这个文件以'PK'魔术字节开头,这意味着它实际上是一个zip文件,可以是一些东西。
让我们使用命令'ziplist'来查看zip中的文件
CT > ziplist 13
2文件发现在拉链对象13(00015d76.swf):
[Z] 1 : AppManifest.xaml
[Z] 2 : xervamanepe4enki.dll
好吧,这似乎是一个Silverlight漏洞。
现在我们可以使用它的真正扩展来转储它:
CT > dump 13 c:\ N uclearFiles \ S ilver_exp.xap
对象13写入c:\ N uclearFiles \ S ilver_exp.xap
我们还可以使用命令'vt'将文件的md5哈希发送到VirusTotal以查看是否被任何反病毒提供程序识别。
这些需要VirusTotal公共API密钥。
(文件本身不会发送到VT,只发送文件的哈希!)
CT > vt 13
VirusTotal结果为对象物13(00015d76.swf):
检测:37/56
最后分析日期:2014-12-11 13:15:33
报告链接:https://www.virustotal.com/file/5bcb20f506ce854eb3191ca87a14c5777cdcb0f96ffec0b6 ...
扫描结果:
MicroWorld-eScan Trojan.GenericKD.1962112 12.0.250.0 20141211
nProtect Trojan.GenericKD.1962112 2014-12-11.01 20141211
CAT-QuickHeal Trojan.Generic.r3 14.00 20141210
McAfee RDN / Generic Exploit !1ns 6.0.5.614 20141211
Malwarebytes Trojan.Agent 1.75.0.1 20141211
VIPRE Trojan.Win32.Generic !BT 35624 20141211
K7AntiVirus Exploit(004b06661)9.186.14309 20141211
K7GW Exploit(004b06661)9.186.14308 20141211
Agnitum Exploit.CVE-2013-0074 ! 5.5.1.3 20141210
F-Prot W32 / CVE130074.I 4.7.1.166 20141211
Symantec Trojan.Gen.2 20141.1.0.330 20141211
Norman CVE-2013-0074.D 7.04.04 20141211
TotalDefense Win32 / Tnega.DPSQOR 37.0.11324 20141211
TrendMicro-HouseCall Suspicious_GEN.F47V1112 9.700.0.1001 20141211
Avast Win32:Malware-gen 8.0.1489.320 20141211
ClamAV SILVERLIGHT.Exploit.Nuclear 0.98.5.0 20141211
BitDefender Trojan.GenericKD.1962112 7.2 20141211
NANO-Antivirus Exploit.Win32.CVE20130074.dikfyh 0.28.6.63850 20141211
Ad-Aware Trojan.GenericKD.1962112 12.0.163.0 20141211
Sophos Mal / Generic-S 4.98.0 20141211
Comodo UnclassifiedMalware 20333 20141211
F-Secure Trojan.GenericKD.1962112 11.0.19100.45 20141211
DrWeb Exploit.CVE2013-0074.36 7.0.10.8210 20141211
McAfee-GW-Edition RDN / Generic Exploit !1ns v2014.2 20141211
Emsisoft Trojan.GenericKD.1962112(B)3.0.0.600 20141211
Cyren W32 / CVE130074.MCZQ-2806 5.4.1.7 20141211
Avira EXP / Silverlight.Gen2 7.11.194.74 20141211
Antiy-AVL Trojan / Win32.SGeneric 1.0.0.1 20141211
Microsoft Exploit:MSIL / CVE-2013-0074.F 1.11202 20141211
GData Trojan.GenericKD.1962112 24 20141211
ALYac Exploit.CVE-2013-0074 1.0.1.4 20141211
AVware Trojan.Win32.Generic !BT 1.5.0.21 20141211
Panda Exploit / CVE-2013-0074 4.6.4.2 20141211
ESET-NOD32是Win32 / Exploit.CVE-2013-0074.BZ的变体10861 20141211
Ikarus Exploit.CVE-2013-0074 T3.1.8.5.0 20141211
AVG Exploit_c.ABKR 15.0.0.4235 20141211
百度国际特洛伊木马.Win32.CVE-2013-0074.bBZ 3.5.1.41473 20141211
我们注意到大多数Anti-Viruses都将此文件检测为恶意文件,而有些甚至提供了漏洞CVE(2013-0074)。
- 如果您没有VirusTotal公共API密钥,则可以使用命令'hashes',并手动将哈希发送到VirusTotal。
软件地址:https://github.com/omriher/CapTipper
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏