20212920 2021-2022-2 《网络攻防实践》实践三 网络嗅探与协议分析

20212920 2021-2022-2 《网络攻防实践》第三次(第五周)作业

1.实验内容

网络嗅探与协议分析

  • 在Linux环境中,使用tcpdump进行网络嗅探
  • 使用Wireshark进行嗅探与协议分析
  • 取证分析实践

2.实验过程

2.1 实验环境

  • 第一次作业中配置的蜜网环境

2.2 实验一:动手实践tcpdump

2.2.1 网络配置的修改

在主机中打开“命令提示符”,输入ipconfig,可查看到本机IP地址为192.168.11.197

开启Kali Linux虚拟机,修改该虚拟机的网络配置(“NAT”或“桥接”)。
打开虚拟机中的终端,运行命令ping 192.168.11.197,观察虚拟机能否ping通主机。

如上图所示,说明该虚拟机能ping通主机。

2.2.2 使用tcpdump

tcpdump的命令详解可参考此链接
在虚拟机的终端中输入并运行命令:sudo tcpdump -n src 192.168.11.197 and tcp port 80 and "tcp[13] & 18 =2"
(可以先用sudo su提权,提权之后就不再需要sudo了)
终端中出现这个提示,说明虚拟机正在监听主机。

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes

主机打开浏览器,在地址栏中输入http://www.tianya.cn/,访问天涯论坛。
在终端中可以看到以下信息:

篇幅较长,点我展开
07:23:21.036020 IP 192.168.11.197.12075 > 124.225.206.22.80: Flags [S], seq 1902392591, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3343456 ecr 0], length 0
07:23:21.036021 IP 192.168.11.197.12075 > 124.225.206.22.80: Flags [S], seq 1902392591, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3343456 ecr 0], length 0
07:23:21.038790 IP 192.168.11.197.12076 > 124.225.206.22.80: Flags [S], seq 468843240, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3343458 ecr 0], length 0
07:23:21.038791 IP 192.168.11.197.12076 > 124.225.206.22.80: Flags [S], seq 468843240, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3343458 ecr 0], length 0
07:23:21.873704 IP 192.168.11.197.12077 > 124.225.135.230.80: Flags [S], seq 3734167285, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344292 ecr 0], length 0
07:23:21.873705 IP 192.168.11.197.12077 > 124.225.135.230.80: Flags [S], seq 3734167285, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344292 ecr 0], length 0
07:23:21.873768 IP 192.168.11.197.12078 > 124.225.135.230.80: Flags [S], seq 1480105615, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344292 ecr 0], length 0
07:23:21.873769 IP 192.168.11.197.12078 > 124.225.135.230.80: Flags [S], seq 1480105615, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344292 ecr 0], length 0
07:23:21.873854 IP 192.168.11.197.12079 > 124.225.135.230.80: Flags [S], seq 2786594118, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344292 ecr 0], length 0
07:23:21.873855 IP 192.168.11.197.12079 > 124.225.135.230.80: Flags [S], seq 2786594118, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344292 ecr 0], length 0
07:23:22.147288 IP 192.168.11.197.12081 > 18.64.156.63.80: Flags [S], seq 1021605508, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344565 ecr 0], length 0
07:23:22.147289 IP 192.168.11.197.12081 > 18.64.156.63.80: Flags [S], seq 1021605508, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344565 ecr 0], length 0
07:23:22.332392 IP 192.168.11.197.12082 > 18.64.156.63.80: Flags [S], seq 2866682160, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344749 ecr 0], length 0
07:23:22.332393 IP 192.168.11.197.12082 > 18.64.156.63.80: Flags [S], seq 2866682160, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 3344749 ecr 0], length 0
通过上面的信息可以看出,在本主机访问天涯社区http://www.tianya.cn/的过程中,总共访问了三个主机,它们的IP地址分别为:124.225.206.22、124.225.135.230和18.64.156.63。其中,124.225.135.230就是天涯社区的登录界面。

2.3 实验二:动手实践wireshark

在Kali Linux的终端中运行命令luit -encoding gbk telnet bbs.fudan.edu.cn,访问复旦大学BBS。
提示:如果直接输入telnet bbs.fudan.edu.cn,那么会出现乱码的问题,luit -encoding gbk这一前缀就是用来解决这一问题的

从上图中可以看到该论坛的IP地址为202.120.225.9,如果试着访问其他论坛(比如水木清华论坛bbs.newsmth.net)时出现了“清屏”的情况,可以另开一个终端,使用ping 论坛域名命令获取其IP地址。获取IP地址后,要记得关闭这个新开的终端。
输入“new”,注册一个新账号,按照屏幕提示输入用户名、密码。
论坛提示“请重新登录并填写注册信息”,并自动退出BBS。

在终端中输入luit -encoding gbk telnet bbs.fudan.edu.cn,重新进入BBS,先不登录。
虚拟机中打开wireshark,双击选择eth0这个网卡,wireshark开始抓包。


输入刚刚注册的账号和密码,登录进BBS中。
成功登录后,按红色的方块键停止抓包。
在上方输入框中输入ip.addr == 202.120.225.9,按回车,筛选出IP地址为220.120.225.9的数据包。
在其中一个destination为202.120.225.9的数据包中可以看出,该BBS论坛(IP地址为202.120.225.9)的端口号为23

随便选择一个Telnet分组,单击鼠标右键,选择“追踪流”>“TCP流”。
我们可以从一堆乱码中找到我们的用户名“shiyanthree”和密码(这里我打马赛克了)。
从这里可以看出,Telnet协议以NVT的格式传输我们输入的用户名和密码到远程主机。在NVT(网络虚拟终端)的格式下,用户每敲一个字符,远程主机都会对此做出响应。所以我们可以看到一红一蓝两两重复的字符。

提示:修改“Show data as”后的选项卡为“GBK”,可以从追踪的TCP流中看到中文字符。

2.4 实验三:取证分析实验

将listen.pcap复制到Kali Linux虚拟机中。

2.4.1 使用snort查看攻击机和靶机的IP地址、攻击者采用的工具

启动Kali Linux的终端,运行命令sudo apt install snort,安装入侵检测工具snort。
安装snort时,屏幕中会出现一个配置菜单,将光标移动至“确定”,按回车即可。(我忘截图了)
在listen.pcap所在文件夹中单击鼠标右键,选择“在这里打开终端”。

在终端处输入并运行命令:sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap
在终端中我们可以看到如下信息:

08/08-05:51:12.752155  [**] [1:1421:11] SNMP AgentX/tcp request [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 172.31.4.178:57738 -> 172.31.4.188:705
08/08-05:51:12.776262  [**] [1:1418:11] SNMP request tcp [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 172.31.4.178:57738 -> 172.31.4.188:161
08/08-05:51:13.653262  [**] [1:1228:7] SCAN nmap XMAS [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 172.31.4.178:57932 -> 172.31.4.188:1
08/08-05:51:41.836335  [**] [1:1421:11] SNMP AgentX/tcp request [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 172.31.4.178:52374 -> 172.31.4.188:705
08/08-05:51:44.415145  [**] [1:249:8] DDOS mstream client to handler [**] [Classification: Attempted Denial of Service] [Priority: 2] {TCP} 172.31.4.178:52374 -> 172.31.4.188:15104
08/08-05:51:48.411562  [**] [1:1418:11] SNMP request tcp [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 172.31.4.178:52374 -> 172.31.4.188:161
08/08-05:51:50.960400  [**] [1:1420:11] SNMP trap tcp [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 172.31.4.178:52374 -> 172.31.4.188:162
08/08-05:52:11.825631  [**] [1:1421:11] SNMP AgentX/tcp request [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 172.31.4.178:36892 -> 172.31.4.188:705
08/08-05:52:11.859131  [**] [1:1418:11] SNMP request tcp [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 172.31.4.178:36892 -> 172.31.4.188:161
08/08-05:52:12.026098  [**] [1:716:13] INFO TELNET access [**] [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 172.31.4.188:23 -> 172.31.4.178:50879

从上面的信息可以看出,攻击主机的IP地址为172.31.4.178,网络扫描目标的IP地址为172.31.4.188。
从第三行SCAN nmap XMAS中可看出,攻击者使用nmap工具进行端口扫描。

2.4.2 使用wireshark分析攻击者所采用的攻击方式

这一部分也可以在Windows下完成
用wireshark打开这个listen.pcap(云班课上老师发的资源)文件。
首先,在输入框中输入筛选条件arp or nbns,回车。
我们看到,NBNS协议和ARP协议包分为多段:1-8,2069-2072,133220-133221,135286-135287、135315-135316、135573-135579,通过ARP协议和NBNS协议,攻击者可以得到目标主机的IP地址,进而对其发起攻击。

进一步分析,可以得出攻击者的方式为:活跃主机检测、扫描操作系统、扫描开放端口、扫描开放服务

  • 在1-8段中,攻击者发出了很多广播信息,详细信息均有“Who has 172.31.4.188?”说明这一段中,攻击者通过ARP广播的方式进行了活跃主机检测。
  • 在9-2068段中,我们可以看到,TCP的SYN包与ACK包有时候是一个SYN一个ACK,有时候是一堆SYN一堆ACK,还出现了如下图所示的特殊标记,况且总的数据包数目并不多。我们有理由推测,攻击者在这一段扫描了目标主机的操作系统。因为不同的操作系统有不同的端口和服务,攻击者通过这种方式,探测目标主机存在哪些服务来基本确定目标主机操作系统的范围。
  • 在2073-133220段中,也出现了许多如9-2068段所示的SYN包和ACK包,而且这一段的长度略大于65535*2,我们可以推测,攻击者在这一次攻击中使用了全端口扫描的指令。
  • 在133220-135579段中,我们发现了一些诸如HTTP、DNS等协议,这说明攻击者通过与检测出的端口进行上层的交流,检测到了一些网络服务,我们可以得出,攻击者在这一次攻击中扫描了服务。

    如果靶机的活跃端口是开放的,那么靶机会给攻击机发送一个带有SYN=1和ACK=1标志的数据包。
    所以,在wireshark中输入筛选条件tcp.flags.ack==1 and tcp.flags.syn==1 and ip.src==172.31.4.188,回车。

    可以根据info中发出的端口来判断活跃的端口到底有哪些。比如在这一段中,活跃的端口是3306。
10	56.746636	172.31.4.188	172.31.4.178	TCP	60	3306 → 57738 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460

不难看出,所有活跃的端口有:21、22、23、25、53、80、139、445、3306、5432、8009、8180。

2.4.3 使用p0f分析攻击机的操作系统

进入Kali Linux虚拟机。
在listen.pcap所在文件夹中打开终端,在终端中输入sudo apt install p0f,安装被动检测工具p0f。
然后输入命令p0f -r listen.pcap,回车运行。

从上图中可以看到,攻击机的操作系统为Linux 2.6.x。

3.学习中遇到的问题及解决

  • 问题1:Linux终端中访问BBS出现乱码
  • 问题1解决方案:在Telnet命令前加入luit -encoding gbk这一前置,使其变为gbk编码。

4.学习感悟、思考等)

我们可以用很多工具对网络上的数据包进行嗅探和抓取,这说明我们所使用的网络并不安全,稍有不慎就有可能泄露密码等隐私。所以,日常网络生活中,我们应该格外注意自己的隐私安全,不要轻易地登录、访问不安全的网站。

参考资料

posted @ 2022-03-29 08:36  言午召耳  阅读(159)  评论(0编辑  收藏  举报