一、快捷键
Ctrl+M 标记/取消标记
shift+ctrl+N/B 下/上一个被标记的数据包
二、过滤器语法
1.捕获过滤器的BPF(Berkeley Packet Filter)语法
限定词 说明 例子
Type 指出名字或数字所代表的意义 host、net、port
Dir 指明传输方向是前往还是来自名字或数字 src、dst
Proto 限定所要匹配的协议 ether、ip、tcp、udp、http、ftp
使用BPF语法创建的过滤器被称为表达式,每个表达式包含一个或多个原语。每个原语包含一个或多个限定词,然后跟着一个ID名字或者数字
1 | |<----------原语--------->|<操作符>|<-----原语---->| |
可以使用3中逻辑运算符对原语进行组合
- 连接运算符 &&
- 选择运算符 ||
- 否定运算符 !
例:
src 192.168.0.10 && port 80
只捕获源地址是192.168.0.10和源端口或目的端口是80的流量
ether host 00-1a-a0-52-e2-a0
根据MAC地址捕获
常用捕获过滤器表达式样例
过滤器 说明
tcp[13]&32==32 设置URG位的TCP数据包
tcp[13]&16==16 设置ACK位的TCP数据包
tcp[13]&8==8 设置PSH位的TCP数据包
tcp[13]&4==4 设置RST位的TCP数据包
tcp[13]&2==2 设置SYN位的TCP数据包
tcp[13]&1==1 设置FIN位的TCP数据包
tcp[13]==18 TCP SYN-ACK数据包
ether host 00:00:00:00:00:00(你的MAC地址) 流入或流出你MAC地址的流量
!ether host 00:00:00:00:00:00(你的MAC地址) 不流入或流出你MAC地址的流量
broadcast 仅广播流量
icmp ICMP流量
icmp[0:2]==0x0301 ICMP目标不可达、主机不可达
ip 仅IPv4流量
ip6 仅IPv6流量
udp 仅UDP流量
2.协议域过滤器
BPF语法还提供了协议域过滤器,可以坚持协议头中的每一字节来过滤
例:
icmp[0]==3
返回icmp包的第1个字节的整形值比较,只捕获代表目标不可达信息(类型3)的ICMP数据包
icmp[0:2]==0x0301
捕获所有类型3代码1表示的目标不可达、主机不可达的ICMP数据包
tcp[13]&4==4
只捕获带有RST标志的TCP数据包(RST标志位在TCP包偏移13字节,00000100)
3.显示过滤器
常用显示过滤器
过滤器 说明
!tcp.port==3389 排除RDP流量
tcp.flags.syn==1 具有SYN标志位的TCP数据包
tcp.flags.rst==1 具有RST标志位的TCP数据包
!arp 排除ARP流量
http 所有HTTP流量
tcp.port==23 || tcp.port==21 文本管理流量(Telnet或FTP)
smtp || pop || imap 文本email流量(SMTP、POP或IMAP)
三、导出对象
CTF竞赛中最常见的就是HTTP协议了,而且通信主机少容易分析。
利用导出对象可以快速的判断这段流量在干嘛。
选择HTTP…
很清晰的可以看到http请求。
很明显是个攻击者对服务器发起了sql注入攻击
根据它的HTTP请求,攻击者获得了那些数据我们同样也能得到。
而且传输过程中的所有文件都能截获。
通过右下角的SAVA可以完整的保存传输的文件。
四、实战
流量分析就是个大杂烩,什么都能加。
比如php语言,http,tcp/ip协议,各种加解密,隐写,sql注入等等
3CTF复赛的一道流量分析题
ok.pcapng 提取码: 7y3a
先使用 统计-协议分级功能,查看流量包具体的有哪些协议。
百分之九十以上是TCP协议。
然后使用 文件-导出对象-HTTP 查看具体的HTTP请求和是否有文件传输
从这些HTTP请求中,应该是通过upload.php上传了file_5d81f9f4d22d41.67475082.php
然后一直与file_5d81f9f4d22d41.67475082.php进行交互。
利用 追踪流的功能查看完整的报文
选择HTTP流
一个标准的冰蝎马
冰蝎马会先从客户端得到一个加密密匙,用于流量加密。
我们追踪一下pass=790的流量。这里我们选择追踪TCP流,方便后面查看其他流
得到解密密匙 d59042be6e437849
解密脚本如下
1 |
|
然后发现第二个流的最后一个流量
得到一个字符串但目前不知道有什么用
应该在流量包中还有我们没有发现的东西
一、可以通过搜索关键字的16进制,二、可以通过查阅完整TCP流。
1.flag的16进制为 666c6167
第521个包
2.调整流,大致浏览报文。
在第8个流 ,发现了不一样的东西
通过导出对象,把这个SQLite文件导出
然后这题主要是解密Chrome
浏览器的保存密码的Login Data
数据库(就是个SQLIte3数据库),
可以通过离线的方式导出密码。需要使用用户登录密码解密master key file 获得master key。再用master key解密DPAPI blob 。
解这题主要需要明文密码、blob
、master key
。主要是322,524,654号数据包:
使用DB Browser for SQLite打开SQLite文件
导出加密后的blob
在最后一个流中(11),发现返回的字符串和之前的不一样,
解密POST包
得到文件路径
返回的密文就是master key
复制到文件或者导出对象
最后利用 windows password recovery来解密
(没有 windows password recovery所以图是盗的yyqx大佬的)
选择Utils -> DPAPI Decoder and Analyser -> Decrypt DPAPI data blob
SID就是之前路径中的S-1-5-21-2127750816-4215895028-2373289296-1001
password就是p@ssw0rd
然后解密