实践三 网络嗅探与协议分析
一、实验要求
1、动手实践tcpdump
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:
你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
2、动手实践Wireshark
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
(1)你所登录的BBS服务器的IP地址与端口各是什么?
(2)TELNET协议是如何向服务器传送你输入的用户名及登录口令?
(3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
3、取证分析实践,解码网络扫描器(listen.cap)
(1)攻击主机的IP地址是什么?
(2)网络扫描的目标IP地址是什么?
(3)本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
(4)你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
(5)在蜜罐主机上哪些端口被发现是开放的?
(6)攻击主机的操作系统是什么?
二、实验内容
1、动手实践tcpdump
打开kali,输入ifconfig查看ip地址为192.168.200.6,如下所示:
查看本机IP地址为192.168.43.223,ping 主机检验连通性
输入sudo tcpdump -n src 192.168.200.6 and tcp port 80 and "tcp[13] & 18 =2"指令并运行,开始嗅探
打开浏览器,输入www.tianya.cn载入网页
嗅探结果如下所示:
可见浏览器访问的web服务器IP有124.225.135.230、124.225.206.22、124.225.69.77、124.225.214.206等
2、动手实践Wireshark
打开kali虚拟机终端,输入luit -encoding gbk telnet bbs.fudan.edu.cn访问复旦大学BBS服务器,发现ip为202.120.225.9
打开wireshark开始捕获,在过滤信息中输入ip.addr==202.120.225.9来过滤
在终端中输入用户名和密码
在终端输入用户名和密码,在wireshark上抓包并进行tcp流追踪,如下所示,可以知道输入的用户名为zengjia,密码为kali
3、取证分析实践,解码网络扫描器(listen.cap)
首先,下载listen.pcap文件并将其复制到kali虚拟机中,
实验需要用到snort这一工具,首先换源并更新
然后使用sudo apt-get install snort安装
输入命令sudo chmod 777 /etc/snort/snort.conf给snort.conf可读可写可执行权限
输入sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap命令
其中参数意义:
-A 设置报警模式 console 控制台
-q 安静模式,不显示标志和状态报告
-u 初始化后改变Snort的UID
-c 设置snort的配置文件
-r 指定pcap格式的文件
SCAN扫描,nmap就是端口扫描工具,可以看到172.31.4.178使用了nmap工具对172.31.4.188进行端口扫描
所以攻击者就是172.31.4.178,被攻击者就是172.31.4.188,使用的工具就是nmap
用wireshark打开提供的listen.pcap文件
打开文件后开始分析,nmap每次开启扫描之前都会发送一个ARP请求包来确定靶机是否还活跃,所以ARP请求包可以作为攻击机开始的标志,所以首先就来找一下这个开始的标志,来看攻击机对靶机的攻击是什么时候开始的,进行了多少次扫描。
可以通过筛选ARP协议,筛选出ARP包
通过ctrl+f调出查找栏,输入攻击机的IP,快速定位
类似的包,为5、7、2071、133220号包
所以攻击机对靶机发动了四次攻击,第一次攻击是查看靶机是否活跃,使用命令nmap -sP
在第二次攻击的最后,攻击者构造了一系列带有标志位的数据包,可以判断攻击者对靶机进行了操作系统扫描,发送各种各样的包发给靶机,来看靶机的反应,来猜测靶机的系统,使用了nmap -O命令
第三次攻击,发现发送和接收的的数据包非常多,几乎全部都是syn包,攻击机向靶机发送了大量的SYN包,靶机对其进行逐一回复,其实是在做开放端口扫描,这种方式经常称之为半开扫描,使用了nmap -sS命令
观察第三次攻击的数据包,攻击机进行了大量的syn包发送,靶机进行回复,一共十三万多个包,我们知道端口号到65535,所以可以推测,这次攻击可能是在做全端口扫描具体命令为nmap -sV -p 1-65535
第四次攻击看上去很像之前的半开扫描,但是继续看可以发现,他不是仅仅发送ASK就结束了,对于能连接上的端口,他进行了一些更深入的交流,这其实是对靶机进行开放服务扫描,通过跟端口通信来尝试确定端口提供的服务,命令为nmap -sV
在wireshark筛选栏中输入tcp.flags.syn = =1 and tcp.flags.ack== 1 and ip.src ==172.31.4.188来筛选有syn和ack标志位的tcp包
可以看到21,22,23,25,53,80,139,445,3306,3632,5432,8009,8180,这些端口是靶机开放的端口
最后,使用p0f插件,这款工具是被动式的操作系统探测工具,通过攻击机向靶机发送的包寻找特征,来推测攻击机的操作系统
使用p0f -r listen.pcap命令
可以看到攻击机的操作系统为Linux 2.6
三、学习中遇到的问题及解决
问题1:kali虚拟机设置为桥接模式之后无法连接网络。
解决方案:直接使用NAT模式或者按照网上的教程设置虚拟机网络配置,将eth0网络设置成自己本机使用的网络
问题2:使用sudo apt-get install snort时无法安装snort
解决方案:查阅了同学的博客,尝试更换更新源后使用sudo apt-get update来进行更新,发现签名失效,又下载安装了签名,但还是不能安装。上网查阅资料感觉应该是一些安装包版本冲突,但没有找到很好的解决方法,另起一个新的虚拟机后完成。
四、学习感悟、思考
本次实验中学到了许多网络嗅探相关的知识以及实践的方法。在实验的过程中提高了我对于所学知识的理解,虽然遇到了一些问题,但通过查阅资料和询问同学,问题都有所解决。提高了我的动手能力和实践能力,但还有很多不足,需要继续学习。