20231901 2023-2024-2 《网络攻防实践》第三周作业
1.知识点梳理与总结
1.1实验内容
(1)动手实践tcpdump
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
(2)动手实践Wireshark
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
- 你所登录的BBS服务器的IP地址与端口各是什么?
- TELNET协议是如何向服务器传送你输入的用户名及登录口令?
- 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
(3)取证分析实践,解码网络扫描器(listen.cap)
-
攻击主机的IP地址是什么?
-
网络扫描的目标IP地址是什么?
-
本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
-
你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
-
在蜜罐主机上哪些端口被发现是开放的?
-
攻击主机的操作系统是什么?
1.3实验过程
1.3.1动手实践tcpdump
-
(1)使用命令
ifconfig
查看本机IP地址为192.168.32.3。
-
(2)使用tcpdump对本机向外的通信进行抓包,然后再浏览器中访问https://blog.csdn.net(由于暂时访问不上学校官网,因此使用csdn官网)。可以看到抓到包前几项是打开浏览器时的记录,后面才是访问csdn是访问的Web服务器,IP地址如图所示为:152.195.38.76,203.200.49.66,116.163.41.132,203.208.41.34。
1.3.2动手实践Wireshark
(1)输入命令访问BBS服务器,这里我使用telnet访问水木社区,命令如下:
luit -encoding GBK telnet bbs.newsmth.net
可以得到如图所示界面:
(2)打开Kali自带的Wireshark抓包,选择eth0网卡,然后在终端输入guest以访客登入水木社区,然后在Wireshark过滤器中输入telnet对telnet协议的数据包进行过滤,抓包结果如图所示,由此可知水木社区服务器的IP地址为120.92.212.76,端口为23即telnet服务的端口。
(3)继续追踪TCP流可以发现,输入的guest以明文方式向服务器进行传输,如图所示,其中在输入用户名的时候,telnet使用的模式为一次一个字符方式,即客户端输入一个字符,服务器即回显相同的字符,下图为输入gue时的显示:
下图为输入guest时的显示:
而在输入密码的时候服务器则不显示,通过这个特点即可获取到用户名和密码,在这里由于使用了guest账户,所以没有密码,因此用户名为guest。:
1.3.3取证分析实践,解码网络扫描器(listen.cap)
(1)将 listen.pcap 复制到kali虚拟机中,使用snort对二进制记录文件进行入侵检测。
- sudo apt-get update // 更新APT库
- sudo apt-get install snort // 安装snort
- 使用sudo apt-get install snort进行安装(出现紫红色框后强制关闭终端再打开)
- 使用cp命令将listen.pcap复制到/etc/snort/这个路径下
- 在/etc/snort/目录下输入以下指令:snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap (-A开启报警模式,-q不显示状态报告,,-u为初始化后改变snort的UID,-c为使用后面的配置文件,进入IDS模式,-r从pcap格式的文件中读取数据包 )
从图中可以发现本次攻击是使用nmap扫描,攻击机ip是172.31.4.178,靶机ip 是172.31.4.188。
(2)使用arp包更新目标的MAC地址,如图所示使用Wireshark的过滤器扫描出arp包,可以看到攻击机对靶机进行了4次询问,如下图,其中的蓝色框画出来的部分是靶机询问攻击机的MAC地址。
- 可以看出攻击机第一次nmap扫描和第二次nmap扫描之间没有数据包,则第一次nmap扫描为探测目标IP是否活跃,指令为 nmap -sP 172.31.4.188。
- 以tcp作为过滤条件
从数据包中观察到攻击机使用了许多构造的标志位,以触发不同的响应包,因此可能是攻击机进行远程主机的操作系统检测,其攻击命令为nmap -O(这里用回kali,seed界面太小啦!)
- 查看ICMP包
发现攻击机Ping了靶机两次,这可能是攻击机判断与靶机的网络连通性,以及靶机是否在线。
- 查看SSH、MySQL、SMTP包
发现都有对应的包,说明应该是使用了nmap的-sV扫描探测端口开启的服务以及版本信息。
- 用以下命令进行筛选确认靶机哪些端口是开启的。
tcp.flags.syn == 1 and tcp.flags.ack == 1
可以看到3306,139,23,80,25,22,53,21,445等端口活跃
(3)查看攻击主机的操作系统
- 在终端中输入命令 sudo apt-get install p0f,安装p0f工具。
- 进入listen.pcap所在目录中使用命令 sudo p0f -r listen.pcap,得出攻击机系统为 Linux 2.6.x。
3.学习中遇到的问题及解决
问题1: 在kali虚拟机下,下载snort后,无法找到snort.conf。
解决方案1: 利用同学提供的方案,在seed中可以找到snort.conf。
问题2: 在seed虚拟机中安装snort时,选择默认窃听口eth0显示错误。
解决方案2: 直接关闭终端,再次打开即可。
问题3: 在移动listen.pcap到/etc/snort文件下时,无权限。且无法使用snort对二进制记录文件进行入侵检测。
解决方案3: 在命令前加sudo,并随后移动到snort文件下进行操作。
4.学习感悟、思考等
通过本次实验我学习了tcpdump相关命令、wireshark的过滤等功能,尤其是在wireshark分析攻击者和靶机之间的问询所表示的含义,同时在本实验中遇到了不少的问题,也锻炼了我解决问题的能力,总的来说本次实验非常有意义!
5.参考资料
[诸葛建伟. 网络攻防技术与实践[M]. 电子工业出版社, 2011-6.]