咱也不知道题目叫啥,就用文件名命名了
WEB 流量分析 Q3.pcap 打开首先按照协议排一下序,在 HTTP 协议中,前面一堆 404,后面几个是 200,着重看一下
image.png
执行了三条命令, phpinfo() 是就不说了后面的先 base64decode,然后 file_get_contents 读进来,然后 gzcompress 压缩字符串,经过 base64 解码,第一个压缩的是 index.php,第二个是 flag.txt,那么把压缩的字符串保存出来
image.png
然后写个 php 的脚本还原一下
1 2 3 4 5 <?php $a = file_get_contents('./flag' ); $b = gzuncompress($a); echo $b;?>
image.png
知识点:有耐心的看流量 2333
1.pcap 这个流量包比较大,可以看看哪些流量大,统计 -> Conversations
image.png
挨个看看比较大的包,追踪流,正好在这个 10M 的地方看出了 rar
image.png
原始数据显示并保存出来
image.png
但是打开会要求输入密码 这时候别忘了上面还有一些 base64,解码一下没啥东西
image.png
别气馁,再找找别的 base64,最终在 流 18 中的 z2 找到了这样一串字符串
image.png
image.png
1 cd /d "c:\inetpub\wwwroot\"&C:\progra~1\WinRAR\rar a C:\Inetpub\wwwroot\backup\wwwroot.rar C:\Inetpub\wwwroot\backup\1.gif -hpJJBoom&echo [S]&cd&echo [E]
参考:命令行下 winrar 用法 得到密码是 JJBoom
打开 rar,拿到一张 gif,但是打不开,winhex 打开发现是 MDMP 开头,是个 DUMP 的文件,使用 mimikatz 获取明文密码
1 2 3 privilege::debug sekurlsa::minidump D:\anquan\Atemp\1. gif sekurlsa::logonpasswords full
image.png
知识点:统计 -> Conversations 可以比较方便的查看数据包的大小 winrar 的命令行用法 hp 后面跟的是密码 文件头 MDMP 是 dump 文件,可以用 mimikatz 获取明文
attachment 附件有个提示,私钥
image.png
在 2016 这里,有一串超级长的 base64,解码前几个字符是 png
image.png
使用 python 写个脚本转成图片
1 2 3 4 5 6 7 import base64fp = open('base64.txt' ,'r' ) png = open('1.png' ,'wb' ) bin_png = base64.b64decode(fp.read()) png.write(bin_png) fp.close() png.close()
生成图片如下
image.png
照着敲出文字来,加上私钥的头尾得
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQDCm6vZmclJrVH1AAyGuCuSSZ8O+mIQiOUQCvN0HYbj8153JfSQ LsJIhbRYS7+zZ1oXvPemWQDv/u/tzegt58q4ciNmcVnq1uKiygc6QOtvT7oiSTyO vMX/q5iE2iClYUIHZEKX3BjjNDxrYvLQzPyGD1EY2DZIO6T45FNKYC2VDwIDAQAB AoGAbtWUKUkx37lLfRq7B5sqjZVKdpBZe4tL0jg6cX5Djd3Uhk1inR9UXVNw4/y4 QGfzYqOn8+Cq7QSoBysHOeXSiPztW2cL09ktPgSlfTQyN6ELNGuiUOYnaTWYZpp/ QbRcZ/eHBulVQLlk5M6RVs9BLI9X08RAl7EcwumiRfWas6kCQQDvqC0dxl2wIjwN czILcoWLig2c2u71Nev9DrWjWHU8eHDuzCJWvOUAHIrkexddWEK2VHd+F13GBCOQ ZCM4prBjAkEAz+ENahsEjBE4+7H1HdIaw0+goe/45d6A2ewO/lYH6dDZTAzTW9z9 kzV8uz+Mmo5163/JtvwYQcKF39DJGGtqZQJBAKa18XR16fQ9TFL64EQwTQ+tYBzN +04eTWQCmH3haeQ/0Cd9XyHBUveJ42Be8/jeDcIx7dGLxZKajHbEAfBFnAsCQGq1 AnbJ4Z6opJCGu+UP2c8SC8m0bhZJDelPRC8IKE28eB6SotgP61ZqaVmQ+HLJ1/wH /5pfc3AmEyRdfyx6zwUCQCAH4SLJv/kprRz1a1gx8FR5tj4NeHEFFNEgq1gmiwmH 2STT5qZWzQFz8NRe+/otNOHBR2Xk4e8IS+ehIJ3TvyE= -----END RSA PRIVATE KEY-----
给 wireshark 加上私钥:编辑 -> 首选项 -> protocols -> TLS(wireshark2.x 的是 ssl)
image.png
先添加,然后设置好 key 文件的位置
image.png
这时候随便追踪一个 TLS 流就能找到 flag 了
image.png
知识点:base64 解码是图片数据的脚本 wireshark 私钥导入直接看 TLS 明文
lx100.pcap 随便追踪 TCP 流,发现了一些视频相关的字符串,如:4K、MP4 等
image.png
视频流量走的是 UDP,所以随便追踪一个 UDP 流,发现 &’()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz 这表示有个 jpg 文件
image.png
保存出来之后通过脚本提取 jpg(按照文件头找)
1 2 3 4 5 6 7 8 9 10 11 12 13 f = open('1.jpg', 'rb') data = f.read() sub = 0 f.seek(0) while 1: if f.read(3) == b'\xff\xd8\xff': f1 = open(str(sub) + '.jpg', 'wb') f1.write(data[f.tell()-3:]) f1.close() sub += 1 else: f.seek(-2, 1)
有很多,其中几张会有 flag
image.png
不知道为啥,binwalk 和 foremost 识别不出来? 知识点:视频流量是 UDP 协议 jpg 中含有 &’()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz 编写脚本拆分 jpg
USB 流量分析 区分鼠标与键盘协议看数据包间隔时间:鼠标一般是 0.001 级别,键盘一般是 0.1 级别 tshark 提取:tshark -r xxxx.pcapng -T fields -e usb.capdata >1.txt 关于 usb.capdata 怎么找,即我这里应该是 usbhid.data
image.png
键盘流量 tshark 提取数据 tshark -r keyboard.pcapng -T fields -e usbhid.data > 1.txt 然后是用脚本读取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 mappings = {0x04 :"A" , 0x05 :"B" , 0x06 :"C" , 0x07 :"D" , 0x08 :"E" , 0x09 :"F" , 0x0a :"G" , 0x0b :"H" , 0x0c :"I" , 0x0d :"J" , 0x0e :"K" , 0x0f :"L" , 0x10 :"M" , 0x11 :"N" , 0x12 :"O" , 0x13 :"P" , 0x14 :"Q" , 0x15 :"R" , 0x16 :"S" , 0x17 :"T" , 0x18 :"U" , 0x19 :"V" , 0x1a :"W" , 0x1b :"X" , 0x1c :"Y" , 0x1d :"Z" ,0x1e :"!" , 0x1f :"@" , 0x20 :"#" , 0x21 :"$" , 0x22 :"%" , 0x23 :"^" ,0x24 :"&" ,0x25 :"*" ,0x26 :"(" ,0x27 :")" ,0x28 :"<RET>" ,0x29 :"<ESC>" ,0x2a :"<DEL>" , 0x2b :"\t" ,0x2c :"<SPACE>" ,0x2d :"_" ,0x2e :"+" ,0x2f :"{" ,0x30 :"}" ,0x31 :"|" ,0x32 :"<NON>" ,0x33 :"\"" ,0x34 :":" ,0x35 :"<GA>" ,0x36 :"<" ,0x37 :">" ,0x38 :"?" ,0x39 :"<CAP>" ,0x3a :"<F1>" ,0x3b :"<F2>" , 0x3c :"<F3>" ,0x3d :"<F4>" ,0x3e :"<F5>" ,0x3f :"<F6>" ,0x40 :"<F7>" ,0x41 :"<F8>" ,0x42 :"<F9>" ,0x43 :"<F10>" ,0x44 :"<F11>" ,0x45 :"<F12>" } nums = [] keys = open('1.txt' ) for line in keys: if line[0 ]!='0' or line[1 ]!='0' or line[2 ]!='0' or line[3 ]!='0' or line[6 ]!='0' or line[7 ]!='0' or line[8 ]!='0' or line[9 ]!='0' or line[10 ]!='0' or line[11 ]!='0' or line[12 ]!='0' or line[13 ]!='0' or line[14 ]!='0' or line[15 ]!='0' : continue nums.append(int(line[4 :6 ],16 )) keys.close() output = "" for n in nums: if n == 0 : continue if n in mappings: output += mappings[n] else : output += '[unknown]' print 'output :\n' + output
image.png
鼠标流量 同样提取数据 tshark -r mouse.pcapng -T fields -e usbhid.data > 1.txt 可以通过 notepad++ 的编辑 -> 行操作 -> 移除空行 通过脚本分析 x 与 y 最终生成的 result.txt 是一个 x y 形式的坐标集合,直接用 gnuplot 画图
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 nums = [] keys = open('1.txt' ,'r' ) result = open('result.txt' ,'w' ) posx = 0 posy = 0 for line in keys: x = int(line[6 :8 ],16 ) y = int(line[10 :12 ],16 ) if x > 127 : x -= 256 if y > 127 : y -= 256 posx += x posy += y btn_flag = int(line[4 :6 ],16 ) if btn_flag == 1 : result.write(str(posx)+' ' +str(-posy)+'\n' ) keys.close()
x、y、btn_flag 的位置需要自己试出来 然后用 gnuplot -e "plot 'result.txt'" -p
画出图片出来
image.png
gnuplot 直接官网下安装就行
知识点:通过 tshark 提取鼠标键盘流量,通过脚本分析流量 gnuplot 根据坐标画图
image.png
image.png
无线流量 MISC-datapack 打开流量包,发现了都是 802.11 的协议
image.png
使用 aircrack-ng 破解密码: 首先 aircrack-ng cacosmia.cap
获取 MAC 地址(BSSID)与 ESSID
image.png
使用 -w 指定字典 -b 指定 BSSID 地址破解密码aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 1A:D7:17:98:D0:51 cacosmia.cap
image.png
然后使用 airdecap-ng cacosmia.cap -e mamawoxiangwantiequan -p 12345678
提取流量包 -e 指定 ESSID,-p 指定密码
image.png
用 wireshark 打开解密出来的流量包,追踪一下 TCP 流看到有张 png,同时下面还有个压缩包
image.png
保存出来以后分离出压缩包,然而有密码
image.png
这时候回头看数据包开头那一串 session 是 jwt 格式的
1 session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJoaW50IjoiZm9yIHNlY3VyaXR5LCBJIHNldCBteSBwYXNzd29yZCBhcyBhIHdlYnNpdGUgd2hpY2ggaSBqdXN0IHBpbmdlZCBiZWZvcmUifQ.P3xOErNrUkYqdMBoo8WvU63kUVyOkZjiTK-hwOIIS5A
image.png
然后就去找 DNS 里面的网址,发现是 26rsfb.dnslog.cn,打开即可
知识点:无线数据包需要先用 aircrack-ng 跑出密码,然后 airdecap-ng 提取流量包再进行分析 jwt 格式是三部分每部分用 . 分隔开