实验要求
(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地址是什么?
-
本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
-
你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
-
在蜜罐主机上哪些端口被发现是开放的?
-
攻击主机的操作系统是什么?
实验过程
动手实践tcpdump
使用命令查看本机IP地址
ifconfig
使用tcpdump对本机向外的通信进行抓包,然后再浏览器中访问www.tianya.cn。
sudo tcpdump -n src 192.168.238.128 and tcp port 80 and "tcp[13]&18=2"
可以看到访问www.tianya.cn过程中访问问了多个服务器。
动手实践Wireshark
使用命令访问BBS服务器
sudo luit -encoding GBK telnet bbs.fudan.edu.cn
我们先选择new注册一个账户,用户名为luoleqi,密码是20211909,然后开启wireshark抓包,重新访问BBS服务器
可以从ip报头中的得知BBS服务器的ip为202.120.225.9,从tcp报头中得知服务的端口是23。
从前两个包可以看出,telnet是通过明文的方式一个个字符传输数据的,输入用户名时,我在键盘中键入“l”时,telnet协议使用明文的方式将“l”传输给服务器,服务器回复“l”回显在我们的命令行中。
对于输入密码时的情况,传输时还是以明文传输,只不过回显的时候服务器回显“*”而不是对应的明文。
由以上原理,我们挨个查看telnet包,就可以获得完整的用户名“luoleqi”和密码“20211909”。
取证分析实践,解码网络扫描器
使用wireshark打开listen.pcap
可以看到都是ip 172.31.4.178向ip 172.31.4.188发送包,然后ip 172.31.4.188给ip 172.31.4.178回复,所以ip 172.31.4.178是攻击机,ip 172.31.4.178是靶机。
这里应该是使用nmap端口扫描,原理是tcp半开放扫描。攻击机向靶机发出握手申请,如果靶机回复[SYN,ACK],说明该端口开放,比如图中的80端口,这时候攻击机就就不需要回复第三次握手的确认[ACK]了,因为这里只是为了探测端口是否开放,而不是为了真的建立连接,所以回复[RST]即可。攻击机向靶机发出握手申请,如果靶机回复[RST,ACK],说明该端口是关闭的,比如图中的110端口。通过这个原理,我们可以用以下命令进行筛选确认靶机哪些端口是开启的。
tcp.flags.syn == 1 and tcp.flags.ack == 1
可以看到10、12、18、21等端口都是开放的。
使用“ssh”、“mysql”、“smtp”等进行筛选,发现都有对应的包,说明应该是使用了nmap的-sV扫描探测端口开启的服务以及版本信息。
tcp包太多了,我们使用“!tcp”筛选一下看一下其他包
发现有ping四次的ICMP包,这可能是攻击机判断与靶机的网络连通性,以及靶机是否在线的。
攻击机还访问了靶机上的web服务。
半连接长度为60的包太多了,排除一下看还剩哪些包
发现唯一一个udp包,传输的数据是一串“A”,不知道啥作用。
还有三次握手成功的,访问的是80端口,应该是前面所说的访问http网站。
发现ajp13包挺多的,这里会不会是攻击者在尝试AJP13漏洞攻击呢。
还有一些PGSQL、SMB之类的包,估计是之前说的探测服务及版本相关的。
最后使用p0f看看攻击机是什么操作系统。
sudo p0f -r listen.pcap | grep "os"
心得体会
这次实验让我感受到了取证分析的乐趣。