LOnils风迷 's Blog

hacking for fun

数据包分析for CTF

    没见过有人写过类似的文章,数据包分析还是比较有趣的,所以写了这篇总结,如果文章中有不对的地方请在下方留言讨论= =。

    下面所有的pcap文件都上传到网盘(https://pan.baidu.com/s/1qW5T9TE),大家可以下载做实验。

    如果你没做过题目那也可以先不看本文章,先自己做实验,会收获很多 :)

0x01 字符串提取

 

    这类题比较简单,直接搜索关键字字符串,如Pwnium2014的 USB if Fun,直接搜Pwnium有关的信息。

$ strings -a for1.pcapng | grep -i Pwnium


Pwnium{408158c115a82175de37e8b3299d1f93}

    或者直接用wireshark搜索。



0x02 加点小难度:)

 

    这题目是自己玩nebula的时候看到的,后来也作为jd107的题了, 直接follow TCP Stream


    乍一看好像直接得到答案了,切换到 Hex Dump看看。


    7F对应的ASCII是嘛呢,原来是DEL,0D表示的是回车。



    所以flag就是backdOORmate  


0x03文件简单提取1

    文件提取类型的题目在ctf中还是比较常见的,一个ISG2014的题目,数据包不多,首先看下大概内容,抓的是浏览器向某网站请求页面下载的数据帧。第二段(tcp.stream eq 1)Follow TCP Stream发现存在一个名为x.tar.gz 的文件。



    之后继续分析,发现下载了该文件。


所以我们需要从数据包提取该文件,使用winhex来提取(->|和|<-之间的)。

之后保存为tar.gz文件



0x04文件提取2

    这个题目是SCTF的题Misc400a,wireshark打开后发现有1w多的数据包,其中包含很多TCP错误包(黑底红字),我们忽略它。


    wireshark缺省的数据包颜色定义(View-->Coloring Rules...)


    随便找个正常的TCP数据包(绿的~), Follow TCP Stream


    当然没那么巧我一下就选中了这个数据包,大家注意Filter过滤参数,是第21个TCP回话包。

 

    我们先来看  Statistics -->Conversations


    从图中我们可以看出,在数据传输过程中,我们经过了27个TCP会话(0~26)以及数据包的流向、目的端口、数据传输量等等。

    发现其中一个会话流量特别大,我们点击这个个包,之后Follow TCP Steam就找到了上面我们那个rar文件了。


    之后提取该文件发现需要密码= =,我们继续往上翻,找到第17个会话



    URL decode后,再base64 decode 后,发现原来的rar文件为1.gif加密打包的,使用密码JJBoom解密,得到1.gif (后续对该文件还有各种OOXX,和数据包无关就不提了)。


0x05文件提取3

    下面这个是IDF的题,又是一堆数据包,进Statistics -->Conversations进一步分析,发现是一堆上传数据(bytes A-->B)


    直接Follow TCP Stream


    发现是用POST上传文件的, 选择Save AS 保存。


    对POST数据包进行过滤(http.request.method==POST)

    发现上传文件名为rar文件,还有文件的MD5值、SHA值等。

    选择File-->Export Objects-->HTTP



    选择Content Type为 octer-stream类型的数据包 分别进行Save As (5个文件),打开第一个文件搜索关键字 Rar  (rar文件头)设为选块起始,拉到最后为结束,保存为另一个文件。


    根据上图选中不需要的数据包的类比,之后的4个数据包,从00之后选中复制到新文件末尾,以此类推,最终保存为rar文件。


    校验其MD5值与数据包中的一致表示文件提取无误(之后是RAR伪加密,和数据包分析无关)。



====

0x06数据包分析再造

没写完= =有些ctf例子的pcap包实在找不到...有机会再补充




评论(1)
热度(13)