目录
压缩文件分析
伪加密
如果压缩文件是加密的,或者文件头正常但解压错误,首先尝试文件是否是伪加密,ZIP文件时候加密是通过标识符来显示的,在每个文件的文件目录字段有一位专门标识了文件是否加密,将其设置为00标识该文件未加密。如果成功解压则表示文件为伪加密,如果解压出错则证明文件是真加密。
使用场景:文件伪加密
操作方法:使用winhex打开压缩文件,找到文件头第九第十个字符,将其修改为0000。使用winhex打开文件搜索十六进制504B0102,可以看到每个加密的文件的文件头字段。从50开始计算,第九第十个字符为加密字段,将其设置为0000,即变成无加密状态。
RAR文件由于有头部校验,使用伪加密时打开文件会出现报错,使用winhex修改标志位后如报错消失且正常解压缩,说明时伪加密, 使用winhex打开RAR文件,找到第24个字符,该字节尾数为4表示加密,0表示无加密,将尾数改为0即可破解伪加密。
暴力破解
通常我们使用ARCHPR.exe工具来破解zip文件。使用场景:windows下加密过的zip文件。
攻击类型选择暴力破解,在范围位置根据提示选择暴力批结范围选项设置暴力破解包含的类型、开始于和结束于选项具体范围,如果没有定义则全范围暴力破解。点击打开选择要破解的文件,点击开始进行破解。建议使用1~9位的数字密码,以及系统自带的英文字典作为密码字典。
攻击类型选择掩码可以进行复杂的暴力破解,比如知道密码前3位是abc,后3位是数字,则在攻击类型选择掩码,在掩码处输入abc???,暴力范围选项选择所有数字,打开要破解的文件,点击破解,此时???的部分会被我们选择的暴力破解范围中的字符替代。
明文攻击
明文攻击是指知道加密的ZIP中部分文件的明文内容,利用这些内容推测出密钥并解密ZIP文件的攻击方法,相比于暴力破解,这种方法在破解密钥比较复杂的压缩包时比较方便。还是使用的是ARCHPR.exe工具。攻击类型选择明文攻击。
使用场景:已知加密的部分ZIP文件的部分明文内容。
有时不能够破解出文件口令,但是能够找到加密密钥等信息,可以直接将文件解密,点击保存解密后的文件即可。
使用该方法有两个注意的地方:
1. 有一个明文文件,压缩后CRC值要与加密压缩包中的文件一致。
2. 明文文件的压缩算法需要于加密压缩文件的压缩算法一致。
RAR文件格式
有时候给出的RAR文件的头部各个字块会故意给错导致无法识别。
HEAD_CRC 2字节 所有块或者块部分的CRC
HEAD_TYPE 1字节 块类型
HEAD_FLAGS 2字节 块标记
HEAD_SIZE 2字节 块大小
ADD_SIZE 4字节 可选结构--增加块大小
-----------------------------------------
那么文件块的第三个字节位块类型,也叫做头类型
头类型是0x72表示是标记块
头类型是0x73表示是压缩文件头块
头类型是0x74表示是文件头块
头类型是0x75表示是注释头
......
流量包文件分析
CTF比赛中,流量包的取证分析是另一项重要的考察方向。
通常比赛中会提供一个包含流量数据的PCAP文件,有时候也会需要我们先进行修复或者重构传输文件后,再进行分析。利用wireshark强大的报文过滤器,帮助我们筛选出想要的报文。
常用的过滤命令:
1. 过滤IP,如源IP或者目标IP
ip.src eq x.x.x.x or ip.dst eq x.x.x.x 或者 ip.addr eq x.x.x.x
2. 过滤端口
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80 //只显示tcp协议的目标端口80
tcp.srcport == 80 //只显示tcp协议的源端口80
tcp.port >=1 and tcp.port <=80
3. 过滤协议
tcp/udp/arp/icmp/http/ftp/dns/ip......
4. 过滤MAC
eth.dst == A0:00:00:04:C5:84 //过滤目标MAC
5. 包长度过滤
udp.length ==26 //这个长度是指UDP本身固定长度8加上UDP下面那块数据包的长度之和
tcp.len >= 7 //指的是IP数据包(TCP下面的那块数据),不包含TCP自身的长度
ip.len ==94 //除了以太网头固定长度14,其他都算ip.len,也就是说从IP自身开始。
frame.len ==119 //整个数据包长度,从eth开始到最后
6. HTTP模式过滤
http.request.method == "GET"
http.request.method == "POST"
http.request.uri == "/img/logo.gif"
http contains "GET"
http contains "HTTP1."
http contains "flag"
http contains "key"
tcp contains "flag"
wireshark协议分析
我们可以通过wireshark的协议分析来整体上把握流量包中的大致信息。
英文版:Statistics->Protocol Hierachy
中文版:统计->协议分级
根据数据包的特征进行筛选,比如说查看数据包的时候,有的数据包有着某些特征,比如有Source Port: 6182。就可以筛选出这种特征来。通过右击->作为过滤器应用->选中。
wireshark流汇聚
在关注的HTTP数据包或者是TCP数据包中选择流汇聚,可以将HTTP流或者是TCP流汇聚或者还原成数据,在弹出的框中可以看到数据内容。
常见的HTTP流关键内容:
1. HTML中直接包含重要信息。
2. 上传或者下载文件内容,通常包含文件名、hash值等关键内容,常用POST请求上传。
3. 一句话木马,POST请求,内容包含eval,内容使用base64加密。
wireshark数据提取
1. wireshark可以自动提取通过HTTP传输的文件内容。点击文件->导出对象->http
2. 还可以手动提取文件内容,点击想要的数据包,右键->导出分组字节流,或者点击菜单栏文件->导出分组字节流,快捷方式Ctrl+H,在弹出的框中将文件保存成二进制文件。
无线流量包跑密码
aircrack-ng工具进行wifi密码破解
首先用aircrack-ng检查cap包:aircrack-ng xxx.cap;然后用aircrack-ng袍子点进行握手包破解:aircrack-ng xxx.cap -w 字典名
USB流量包文件分析
USB流量
USB流量也是流量分析题的考察点,一般考察的流量涉及键盘击键,鼠标移动与点击,存储设备的明文传输通信,USB无线网卡网络传输内容等。USB协议的数据部分在Leftover Capture Data域之中。右键Leftover Capture Data->应用为列。
这样就可以将该域的值在主面板上显示,键盘数据包的数据长度为8个字节,击键信息集中在第3个字节,每次key stroke都会产生一个keyboard event usb packet。
USB键盘流量抓取分析
使用wireshark提供的命令行工具tshark,可以将Leftover Capture Data数据单独复制出来。
tshark -r 文件名 -T fields -e usb.capdata > 导出文件名
鼠标流量与键盘流量不同,鼠标移动时表现为连续性,但是键盘离散性的。但是实际上鼠标产生的数据是离散的,所以同样可以把数据抓取出来,构成二维坐标画出轨迹。鼠标数据包的数据长度为4个字节,第一个字节代表按键,当取0x00时,代表着没有按键,当取0x01时,代表按左键,当为0x02时,代表着当前的按键为右键。
第二个字节代表着左右偏移,当值为正时,代表右移多少像素。当值为负时,代表着左移多少像素。同理第三个字节代表着上下偏移。
在二维坐标画出轨迹的过程中,可以采用python脚本,也可以采用kali--gnuplot工具,终端输入gnuplot即可运行该工具,然后输入plot 文件名即可。
kali安装gnuplot: