0%

wireshark

一、快捷键

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
2
3
|<----------原语--------->|<操作符>|<-----原语---->|
dst host 192.168.0.10 && tcp port 80
|限定词|限定词|<----ID---->| |限定词|限定词|ID|

可以使用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协议了,而且通信主机少容易分析。

利用导出对象可以快速的判断这段流量在干嘛。

image-20191103145931434

选择HTTP…

image-20191103155828631

很清晰的可以看到http请求。

很明显是个攻击者对服务器发起了sql注入攻击

根据它的HTTP请求,攻击者获得了那些数据我们同样也能得到。

而且传输过程中的所有文件都能截获。

image-20191103170050584

通过右下角的SAVA可以完整的保存传输的文件。

四、实战

流量分析就是个大杂烩,什么都能加。

比如php语言,http,tcp/ip协议,各种加解密,隐写,sql注入等等

3CTF复赛的一道流量分析题

ok.pcapng 提取码: 7y3a

先使用 统计-协议分级功能,查看流量包具体的有哪些协议。

image-20191107184246441

百分之九十以上是TCP协议。

然后使用 文件-导出对象-HTTP 查看具体的HTTP请求和是否有文件传输

image-20191107184812717

从这些HTTP请求中,应该是通过upload.php上传了file_5d81f9f4d22d41.67475082.php

然后一直与file_5d81f9f4d22d41.67475082.php进行交互。

利用 追踪流的功能查看完整的报文

image-20191107221151317

选择HTTP流

image-20191107221334510

一个标准的冰蝎马

冰蝎马会先从客户端得到一个加密密匙,用于流量加密。

image-20191107222451205

我们追踪一下pass=790的流量。这里我们选择追踪TCP流,方便后面查看其他流

image-20191107223755881

得到解密密匙 d59042be6e437849

解密脚本如下

1
2
3
4
5
6
7
<?php
$post=''; # 放入你要解密的内容
$str=openssl_decrypt($post, "AES128", 'd59042be6e437849');
$file=fopen("1.txt","w+");
fwrite($file,$str);
fclose($file);
?>

然后发现第二个流的最后一个流量

image-20191111115823331

image-20191111115909128

image-20191111120005244

image-20191107234940949

得到一个字符串但目前不知道有什么用

应该在流量包中还有我们没有发现的东西

一、可以通过搜索关键字的16进制,二、可以通过查阅完整TCP流。

1.flag的16进制为 666c6167

image-20191107235545698

第521个包

2.调整流,大致浏览报文。

在第8个流 ,发现了不一样的东西

image-20191107235710539

通过导出对象,把这个SQLite文件导出

然后这题主要是解密Chrome浏览器的保存密码的Login Data数据库(就是个SQLIte3数据库),

可以通过离线的方式导出密码。需要使用用户登录密码解密master key file 获得master key。再用master key解密DPAPI blob 。
解这题主要需要明文密码、blobmaster key。主要是322,524,654号数据包:

使用DB Browser for SQLite打开SQLite文件

image-20191109230229511

导出加密后的blob

在最后一个流中(11),发现返回的字符串和之前的不一样,

解密POST包

image-20191109233659468

得到文件路径

返回的密文就是master key

image-20191109231824174

复制到文件或者导出对象

最后利用 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
然后解密

在这里插入图片描述

在这里插入图片描述

参考文章1

参考文章2

-------------本文结束感谢您的阅读-------------