Wireshark指南和备忘单

在对网络或应用程序级别的问题进行故障排除时,即使对Wireshark程序及其过滤器的肤浅了解也可以节省一个数量级的时间。 Wireshark对于网络工程师,安全专家或系统管理员的许多任务很有用。 以下是一些用法示例:

网络连接故障排除


  • 可视化显示丢包情况
  • TCP中继分析
  • 长延迟包图

探索应用程序级别的会话(即使使用SSL / TLS加密,也请参见下文)


  • HTTP会话的完整视图,包括请求和响应的所有标头和数据
  • 查看Telnet会话,查看密码,输入的命令和响应
  • 查看SMTP和POP3流量,阅读电子邮件

使用数据包级数据对DHCP进行故障排除


  • 探索广播DHCP转换
  • 使用地址和参数进行DHCP交换的第二步(DHCP提供)
  • 客户要求的建议地址
  • 来自服务器的确认请求的确认

从HTTP会话中提取文件


  • 从HTTP导出对象,例如JavaScript,图像甚至可执行文件

从SMB会话中提取文件


  • 与HTTP导出选项类似,但是提取通过SMB传输的文件,SMB是Windows中的文件共享协议

恶意软件检测和扫描


  • 检测可能表明恶意软件的异常行为
  • 搜索不寻常的域或最终IP
  • I / O图表,用于检测与管理服务器的持久连接(信标)
  • 过滤掉“正常”数据并检测异常
  • 检索大型DNS响应和其他可能表明恶意软件的异常

检查端口扫描和其他扫描类型的漏洞


  • 了解哪些网络流量来自扫描仪
  • 分析漏洞验证程序以区分误报和误报

这些例子只是冰山一角。 在指南中,我们将告诉您如何使用这种功能强大的工具。

安装Wireshark


Wireshark可在各种操作系统上运行,并且易于安装。 仅提及Ubuntu Linux,Centos和Windows。

在Ubuntu或Debian上安装


#apt-get update #apt-get install wireshark tshark 

在Fedora或CentOS上安装


 #yum install wireshark-gnome 

Windows安装


下载页面包含用于安装的可执行文件。 数据包捕获驱动程序的安装也非常简单,借助该驱动程序,网卡将进入“听不清”模式(混杂模式使您可以接收所有数据包,而不管它们寻址到谁)。

过滤器入门


第一次拦截时,您将在Wireshark界面中看到标准模板和软件包详细信息。

捕获HTTP会话后,停止记录并使用Analyze | 跟随| HTTP流

过滤器的名称说明一切。 只需在过滤器行中输入适当的表达式(如果使用tshark,则在命令行中输入)。 过滤器的主要优点是消除噪声(流量对我们而言并不重要)。 您可以按MAC地址,IP地址,子网或协议过滤流量。 最简单的过滤器是输入http ,因此仅显示HTTP流量(tcp端口80)

IP过滤器示例


 ip.addr == 192.168.0.5 !(ip.addr == 192.168.0.0/24) 

协议过滤器示例


 tcp udp tcp.port == 80 || udp.port == 80 http not arp and not (udp.port == 53) 

请尝试使用组合过滤器,以显示除HTTP和HTTPS之外的所有传出流量,这些流量是在本地网络外部路由的。 这是检测通过异常协议与Internet交互的软件(甚至是恶意软件)的好方法。

跟随流


一旦捕获了多个HTTP数据包,就可以使用其中一个的Analyze |菜单项。 跟随| HTTP流 。 它将显示整个HTTP会话。 在这个新窗口中,您将看到来自浏览器的HTTP请求和来自服务器的HTTP响应。



Wireshark中的DNS解析


默认情况下,Wireshark不会在控制台中解析网络地址。 可以在设置中更改。

编辑 首选项| 名称解析| 启用网络名称解析

tcpdump ,解析过程将减慢数据包的显示速度。 同样重要的是要了解,当您在线捕获数据包时,来自主机的DNS查询将成为可被拦截的其他流量。

Tshark用于命令行


如果您还没有涉足tshark ,请查看我们的指南以及过滤器示例 。 尽管此程序非常适合捕获远程系统上的会话,但通常会被忽略。 与tcpdump不同,它允许您即时捕获和查看应用程序级会话:Wireshark协议解码器也可用于tshark。

制定防火墙规则


这是从命令行创建规则的快速方法,因此您无需在Internet上搜索特定的语法。 选择适当的规则,然后转到工具| 防火墙ACL规则 。 支持各种防火墙,例如Cisco IOS, ipfilteripfwiptablespf甚至是通过netsh Windows防火墙。



使用基于地理的GeoIP


如果Wireshark是在GeoIP支持下编译的,并且您有免费的Maxmind数据库,则该程序可以通过计算机的IP地址确定计算机的位置。 签入关于| Wireshark ,即使用可用的版本编译程序。 如果GeoIP在列表中,则检查磁盘上是否存在GeoLite City,Country和ASNum数据库。 在“ 编辑” |“指定”中指定基础的位置。 首选项| 名称解析

通过选择统计|检查系统是否有流量转储 端点| IPv4 。 IP地址的位置和ASN信息应显示在右侧的列中。



GeoIP的另一个功能是使用ip.geoip过滤器按位置过滤流量。 例如,通过这种方式,您可以排除来自特定ASN的流量。 以下命令排除了来自ASN 63949网络单元(Linode)的数据包。

 ip and not ip.geoip.asnum == 63949 

当然,相同的过滤器可以应用于各个城市和国家 。 消除噪音,只留下真正有趣的流量。

SSL / TLS会话解密


解密SSL / TLS会话的一种方法是使用客户端连接到的服务器上的私钥。

当然,您并不总是可以访问私钥。 但是还有另一种选择,可以简单地查看本地系统上的SSL / TLS通信。 如果使用特殊的环境变量加载Firefox或Chrome,则单个SSL / TLS会话的对称密钥将写入Wireshark可以读取的文件中。 有了这些密钥,Wireshark将显示一个完全解密的会话!

1.设置环境变量


Linux / Mac

 export SSLKEYLOGFILE=~/sslkeylogfile.log 

窗户

系统属性| 单击高级,单击环境变量按钮,然后添加变量名称(SSLKEYLOGFILE)和文件路径作为值。

2. Wireshark设置


从弹出菜单中,选择编辑| 首选项| 协议| SSL | (主)-主秘密日志文件名-通过指定您在环境变量中指定的文件进行浏览

开始捕获本地系统上的流量。

3.重新启动Firefox或Chrome


转到HTTPS网站后,日志文件将开始增加大小,因为它写入了对称会话密钥。

看一下先前启动的Wireshark会话。 您应该会看到类似于下面带有解密会话的屏幕截图的内容。 解密的数据包-在底部面板的选项卡上。



查看会话的另一种方法是通过Analysis | 跟随| 流| SSL协议 如果会话被成功解密,您将看到SSL选项。

当然,编写这些密钥和软件包时要小心。 如果外部人可以访问该日志文件,则可以在其中轻松找到您的密码和身份验证Cookie。

访问基本HTTP流量的另一种方法是使用Burp Suite工具,并在浏览器中加载CA证书。 在这种情况下,代理在客户端上解密连接,然后在服务器上建立新的SSL / TLS会话。 有很多方法可以对自己进行这种MiTM攻击,这是最简单的两种。

使用导出功能(HTTP或SMB)从包中提取文件


通过导出菜单可以轻松提取文件。

档案| 导出对象| HTTP

找到的所有文件将显示在新窗口中。 在这里,您可以保存单个文件或一次保存所有文件。 使用类似的方法从SMB会话中提取文件。 正如我们已经提到的,这是Microsoft Server Message Block协议,用于Windows下的文件共享。



状态栏


窗口右侧的状态栏允许您通过单击颜色指示符快速转到网络转储中的所需位置。 例如,有错误的数据包在状态栏中以红色标记。



PCAP样本


当您第一次开始使用Wireshark时,我想看看一些带有软件包的有趣转储。 可以在Wireshark样本页面上找到它们。 将会有足够的带有不同协议的示例进行几个月的分析,甚至还有蠕虫和漏洞利用的流量示例。

环境设定


默认情况下,控制台的外观是高度可定制的。 您可以添加或删除列,甚至可以添加诸如UTC time列之类的简单内容,如果您分析软件包的历史记录,则可以立即增加日志的信息内容。

在“ 编辑” |“配置”中配置列 首选项| 外观| 专栏 常规模板,字体和颜色也在此处更改。

视频中-设置环境的有用技巧,包括对TCP序列号进行故障排除。


capinfos


Wireshark附带了方便的capinfos命令行capinfos 。 该实用程序生成批处理转储统计信息,以及开始/结束记录时间和其他详细信息。 使用-T选项,它会生成选项卡式文本-适用于导入到电子表格或在控制台中进行分析。

 test@ubuntu:~$ capinfos test.pcap File name: test.pcap File type: Wireshark/tcpdump/... - pcap File encapsulation: Ethernet File timestamp precision: microseconds (6) Packet size limit: file hdr: 262144 bytes Number of packets: 341 k File size: 449 MB Data size: 444 MB Capture duration: 3673.413779 seconds First packet time: 2018-12-01 11:26:53.521929 Last packet time: 2018-12-01 12:28:06.935708 Data byte rate: 120 kBps Data bit rate: 967 kbps Average packet size: 1300.72 bytes Average packet rate: 93 packets/s SHA256: 989388128d676c329ccdbdec4ed221ab8ecffad81910a16f473ec2c2f54c5d6e RIPEMD160: 0742b6bbc79735e57904008d6064cce7eb95abc9 SHA1: d725b389bea044d6520470c8dab0de1598b01d89 Strict time order: True Number of interfaces in file: 1 

结论


本文最初发表于2011年,然后进行了认真的更新。 如果您对备忘单有任何意见,改进或提示,请给我写信 。 Wireshark是许多必不可少的工具之一,但很少能熟练使用。 在这里,您可以做得越来越深。

Source: https://habr.com/ru/post/zh-CN436226/


All Articles