在网络分析中Wireshark是一个功能强大的抓包分析工具,它可以显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。这次主要运用wireshark进行网络安全方面的分析工作。
一、网络侦查
在网络攻击中,攻击者通常采取的第一步行动就是信息收集,也可以理解成在网络中“踩点”,通常会使用各式各样的公开资源来完成,比如目标公司的主页或者百度。这个研究完成后,攻击者会开始扫描目标IP地址或者域名的开放端口。通过扫描攻击者可以确定目标是否在线,和开放了哪些端口。
二、SYN扫描
首先对目标系统做TCP SYN扫描,又称为隐秘扫描或半开扫描。SYN扫描是最常见的扫描类型,有以下几个原因:
1.快速可靠
2.在所有平台上都很准确,与TCP协议栈的实现无关
3.比其他扫描技术更安静,不容易被发现。
TCP SYN扫描依赖于三次握手过程,可以确定目标主机的哪些端口是开放的。攻击者发送TCP SYN数据包到受害者的一个范围端口上,就像要在这些端口上建立用于正常通信的连接似的。一旦受害者收到这个数据包,就可能发生一些事情,如下图是一次TCP SYN扫描结果
如果受害者机器上某个服务正在监听的端口收到了SYN的数据包,它将向攻击者回复一个TCP SYN/ACK数据,也就是TCP三次握手包中的第二个包。这样攻击者就知道了这个端口是开放的,并且有一个服务在上面监听。正常情况下会发送一个TCP ACK包完成握手连接,但此时攻击者并不想这样,因为他还不想与主机通信,所以,攻击者没有发送第三个握手包。
如果没有服务在被扫描的端口监听,那攻击者就收不到SYN/ACK包。按照受害者操作系统的不同配置,攻击者可能会受到响应的RST数据包,表示端口关闭了,或者攻击者看不到任何响应。这意味着端口被某个中间设备过滤了,例如防火墙或主机本身。
三、实例分析
下面用wireshark对一次nmap的端口扫描分析:
在wireshark中打开已捕获到的pcap文件,打开统计中的conversations(对话)
如下,IPv4的会话只有一个,TCP会话有1994个。对Packets降序排列,可以看到对端口号53,80,22,分别有5个数据包
回到主界面,对数据包过滤,过滤公式:
ip.addr==172.16.0.8 && tcp.port==36050 && ip.addr==64.13.134.52 && tcp.port==53
可以看到第一个数据包是攻击者发送的SYN包,第二个则是受害者的响应,这是一个TCP SYN/ACK数据包,三次握手包中的第二个,在正常情况下,第三个数据包应该是三次握手中的第三个ACK包。然而,在截图中可以看到,攻击者并不想建立连接,因而没有发送响应。受害者重传了3次SYN/ACK包后才放弃。由于尝试与主机的53端口通信时收到SYN/ACK响应,所有可以确定53端口是开放的并有一个服务在监听该端口。
如果接收到的是RST/ACK包,则说明该端口关闭
所以再次回到conversations(对话)界面,可以快速发现会话中有个5个数据包的是开放端口,只有2个数据包的是关闭端口。