20241905 2024-2025-2 《网络攻防实践》 第3次作业
1. 实验内容
- 实践tcpdump:使用tcpdump开源软件对在本机上访问网站过程进行嗅探,并回答问题:
- 你在访问网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
- 实践wireshark:使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,并回答问题:
- 你所登录的BBS服务器的IP地址与端口各是什么?
- TELNET协议是如何向服务器传送你输入的用户名及登录口令?
- 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
- 取证分析实践,解码网络扫描器,并回答问题:
- 攻击主机的IP地址是什么?
- 网络扫描的目标IP地址是什么?
- 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
- 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
- 在蜜罐主机上哪些端口被发现是开放的?
- 攻击主机的操作系统是什么?
2. 实验过程
2.1 实践tcpdump
通过ifconfig
查看kali机的ip地址为172.20.10.4
通过下面的命令进行向外的通信抓包,再在浏览器中访问www.baidu.com
。观察记录的内容,可以看到,第一项为打开浏览器时的记录,然后在访问到百度网时,经过了2个web服务器,它们的IP地址如图所示为:36.131.132.89
和36.153.95.158
.
tcpdump -n src 172.20.10.4 and tcp port 80 and "tcp[13] & 18 =2"
2.2 实践wireshark
打开wireshark,双击选择eth0网卡
通过下面的命令可以通过telnet方式进入清华大学BBS论坛
luit -encoding gbk telnet bbs.mysmth.net
通过输入guest
可以以访客登录,进入后点击红框停止wireshark的抓包
在过滤器中输入telnet
对数据包进行过滤,非常清晰的可以看到,登录的BBS服务器IP地址是120.92.212.76
,端口是23
打开一个记录,选择追踪TCP流
可以看到我们输入的登录用户名guest。这里我们会发现每个字母都有两个,且颜色一红一蓝。这是因为telnet协议在传输数据时使用明文传输,且是一个一个字母传输,我们每敲一个字符,远程主机都会做出响应。红色的就是我们敲下的字符,蓝色的就是远程主机做出的响应。这里我们以访客身份进入,没有输入密码。如果以用户方式进入,输入了用户名和密码,则在数据包中也会显示密码的明文信息。
这个时候我们选择GBK编码方式,可以发现返回的内容即我们在登录过程中返回的信息
通过利用wireshark分析嗅探到的数据包以及telnet的明文传输,可以通过上面的方式取得输入的用户名及登录口令。
2.3 取证分析实践,解码网络扫描器
通过wireshark打开listen.pcap文件,观察到172.31.4.178
向172.31.4.188
发起了TCP连接,可以得知172.31.4.178
为攻击机IP地址,172.31.4.188
为网络扫描的目标IP地址。
通过下面的命令安装snort,中间选择y
apt-get update
apt-get install snort
通过下面的命令可以看到攻击机使用nmap进行的扫描
snort -c /etc/snort/snort.lua -r /etc/snort/listen.pcap -A alert_full
通过wireshrk分析pcap文件通过过滤arp,可以发现这几次广播行为,且第一次和第二次之间没有其余数据包,所以可以推测这里进行了主机活跃探测
通过9到2068段,可以观察到,TCP数据包中有大量SYN和ACK标识符,显示了网络层面的交互,推测正在查询操作系统
查看SSH、Mysql和SMTP包,说明使用了nmap扫描探测端口开启的服务和版本信息
通过下面的命令可以看到有哪些端口是开放的活跃的。可以观察到有3306,139,23,80,25,22,53,21,445,5432,8009,8180
tcp.flags.syn == 1 and tcp.flags.ack == 1
通过下面的命令安装p0f工具
apt-get install p0f
在listen.pcap所在文件夹进入终端,通过下面的命令查看攻击机的操作系统为2.6.x
p0f -r listen.pcap
3. 学习中遇到的问题及解决
-
问题1:kali虚拟机改桥接模式后连不上网
-
问题1解决方法:尝试了很多配置,最后重装一台kali虚拟机,在干净的环境下直接改为桥接模式就连上网了
-
问题2:snort的安装,更新包的更新均不行
-
问题2解决方法:原因在于这一句
E: The repository 'http://http.kali.org/kali kali-rolling InRelease' is not signed.
也就是没有signed解决方法是输入下面的命令获取官网的key
wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add
- 问题3:apt-get update下载速度非常缓慢
-
问题3解决方法:解决办法是换国内源,首先要注释掉原来的源,再添加下面的阿里云源。然后再update
vim /etc/apt/sources.list#阿里云 deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
- 问题4:安装出现
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
错误
- 问题4解决方法:分析这句话
The following packages have unmet dependencies: libc6-dev : Breaks: binutils (< 2.38) but 2.37-10.1 is to be installed
也就是说有个相关的依赖包需要安装
输入下面的安装命令,中间选择yes,也就是直接重启使生效
apt-get install binutils
再安装snort即可
-
问题5:snort3无法输出数据信息到终端
-
问题5解决方法:输入下面的命令,修改snort配置文件
vim /etc/snort/snort.lua
增加这一条配置,打开snort内置规则
enable_builtin_rules = true
4. 学习感想和体会
这次实验在处理snort3的安装配置和使用时多费了很多功夫,由于网络上关于snort3的信息很少,安装时出现的报错有时候需要根据error信息自己分析,使用时由于语法不一样需要作出修改,改完发现还是得不到结果,又研究了很久配置和规则文件,最后终于搞出来解决了,也让我感受到做实验,耐心非常重要。很多问题看着只是一条配置没加,却要耗费非常多的时间和精力去一一排查。总体来说,还是非常有意义的,学习到了关于嗅探和取证分析等很重要的知识和技能。
参考资料
https://zhuanlan.zhihu.com/p/1785597956
https://blog.csdn.net/lzmo123/article/details/145802456