WireShark是一款网络封包分析工具。用于分析网络数据包,功能十分强大。他的强大之处在于它不仅能捕获数据包,还能对捕获的数据进行进一步的分析。
需要注意的是,wireshark能获取HTTP相关的数据(如账号和密码等信息)。当然也能获取HTTPS的数据包,但是不能解密HTTPS,所以WireShark是看不到HTTPS中的内容的。
在kali Linux中,WireShark已经默认安装。我们在开始菜单中即可运行程序。运行后效果如下。

双击选择我们的目标网卡,即可进入程序界面。wireshark启动后,wireshark默认处于抓包状态中。


在WireShark中使用过滤是非常重要的,WireShark在抓包时将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。这时就需要对信息进行过滤了。
筛选出MAC地址是00:0c:29:c6:27:59的数据包,包括源MAC地址或者目的MAC地址使用的是00:0c:29:c6:27:59的全部数据包。
eth.addr == 00:0c:29:c6:27:59

筛选出源MAC地址是00:0c:29:c6:27:59的数据包
eth.src==00:0c:29:c6:27:59
筛选出目的MAC地址是00:0c:29:c6:27:59的数据包
eth.dst==00:0c:29:c6:27:59
常用命令如下:
ip.addr==192.168.123.1 #根据IP地址筛选,包括源ip或者目的IP
ip.src==192.168.123.1 #根据源IP地址筛选
ip.dst==192.168.123.1 #根据目的IP地址筛选

端口过滤。如过滤80端口,在Filter中输入,tcp.port==80,这条规则是把源端口和目的端口为80的都过滤出来。使用tcp.dstport==80只过滤目的端口为80的,tcp.srcport==80只过滤源端口为80的包;
tcp.port==80 # 根据TCP端口筛选数据包,包括源端口或者目的端口
tcp.dstport==80 #根据目的TCP端口筛选数据包。
tcp.srcport==80 #根据源TCP端口筛选数据包。
udp.port==8888 #根据UDP端口筛选数据包,包括源端口或者目的端口
udp.srcport==8888 #根据源UDP端口筛选数据包。
udp.dstport==8888 #根据目的UDP端口筛选数据包。

常见的协议有udp tcp arp icmp smtp pop dns ip ssl http ftp telnet ssh rdp如下,我们只筛选出http的数据包。

通过筛选相应的get/post请求,我们可以得到某些站点的登录密码。
http.request.method==GET #get请求
http.request.method==POST #post请求


下面我们用一张图,简单说明WireShark的封包情况。

Frame: 物理层的数据帧概况Ethernet II: 数据链路层以太网帧头部信息Internet Protocol Version 4: 互联网层IP包头部信息Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCPHypertext Transfer Protocol: 应用层的信息,此处是HTTP协议。WireShark的使用,我们在前期也写过几篇文章。感兴趣的可以移步阅读。
《防诈指南之获取微信好友IP》
《Wireshark从入门到放弃之如何分析别人浏览的图片》 《大表哥教你怎样勾搭隔壁新搬来的妹纸》