20211904 2021-2022-2 《网络攻防实践》第三次作业
网络嗅探及协议分析是很多网络攻击和分析使用的底层技术,通过嗅探不仅可以掌握网络中的实际情况,还可以查找网络漏洞和检测网络性能,当网络性能出现不平衡或者异常的时候,可以通过网络嗅探以及分析网络流量,把使用抓包工具抓取到的流量数据包,通过软件工具分析等方式,可以找出网络阻塞的来源并解决问题。
-
通过实践掌握tcpdump工具的使用
-
通过实践掌握wireshark抓包工具的使用
-
分析流量数据包获取信息
3.实验过程
3.0 基础内容
-
TCP 头部结构图如下 【来源网络】
-
TCP三次握手图 【来源网络】
-
本机IP地址
3.1 tcpdump工具的使用
实验要求:
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探
回答问题:
你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?
他们的IP地址都是什么?
-
直接使用指令 tcpdump 会监听默认网口所有流过的数据包,所以需要过滤才能找到所需的IP
-
过滤主机访问www.tianya.cn数据包中握手的数据包,找ACK=0 SYN=1也就是第一次握手的包,
便可以知道浏览器要访问多少个web服务器
-
使用指令 tcp -n src 192.168.25.4 and tcp port 80 and "tcp[13]&18 =2" 进行过滤
-
tcp -n : 将每个监听到数据包中的域名转换成IP地址后显示,不把网络地址转换成名字。
-
src :设置源主机
-
port :浏览器默认端口号80
-
"tcp[13]&18 =2"
-
这里的tcp[13]中的13是第13个字节的数据,也就是保留位后两位和标识位一起构成,从右往左:
保留位和标识符 | C | E | U | A | P | R | S | F |
---|---|---|---|---|---|---|---|---|
& 18 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
= 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
这里的条件就是找ACK = 0 SYN = 1的包
-
过滤结果
3.2 wireshark抓包工具的使用
实验要求:
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析
回答如下问题并给出操作过程:
你所登录的BBS服务器的IP地址与端口各是什么?
TELNET协议是如何向服务器传送你输入的用户名及登录口令?
如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
-
BBS 教程里说的是复旦的BBS,所以直接telnet登录bbs.fudan.edu.cn,发现出现中文乱码,使用指令:
sudo luit -encoding GBK telnet bbs.fudan.edu.cn 更改编码后登录
-
开启wireshark 设置过滤条件 ip.addr == 192.168.25.4 and tcp.port == 23 开启监控
输入guest尝试以游客身份登录
可以看到在抓取的TELNET包中存在以明文形式传输的数据
-
现在尝试输入new创建用户 发现telnet不仅会后台监控输入框传输信息并且以明文的形式传输设置的用户名和密码
在输入用户时输入框曾经输入过 woshinidie虽然没有提交,但是竟然也被传输了,TELNET太不安全了。
3.3 分析流量数据包获取扫描器信息
实验要求:
取证分析实践,解码网络扫描器(listen.cap)
回答问题:
攻击主机的IP地址是什么?
网络扫描的目标IP地址是什么?
本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
在蜜罐主机上哪些端口被发现是开放的?
攻击主机的操作系统是什么?
-
前置知识
-
snort
Snort 是一个开源入侵防御系统(IPS),Snort IPS 使用一系列规则来帮助定义恶意网络活动,并利用这些规则来查找与之匹配的数据包,并为用户生成警报,也可以在线部署来阻止这些数据包。Snort有3个主要用途:
-
1.作为一个像tcpdump一样的数据包嗅探器
-
2.作为一个数据包记录器--这对网络流量调试很有用
-
3.作为一个完整的网络入侵防御系统
-
-
-
使用指令 sudo apt-get install snort 安装snort,安装完毕后输入以下指令:
sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap
-
-A alert设置报警模式
-
-q 安静模式,不显示标志和状态报告
-
-c 使用后面的配置文件
-
-r 从pcap格式的文件中读取数据包
-
-
读取结果 可知是由IP为 172.31.4.178 使用 nmap扫描 IP为 172.31.4.188 的结果
-
用wireshark打开listen.cap
-
分析过程
-
首先nmap工具在每次开启扫描之前都会向靶机发送arp请求包,确认靶机是否还是活跃的状态,所以以arp请求包作为参考攻击机开启攻击的标志 [Who has 靶机IP ? Tell 攻击机IP ]
-
两个攻击标志之间攻击机没有向靶机发送任何数据包,说明只是单纯的查看靶机是否活跃,可以考虑对应nmap的命令: nmap -R 靶机IP
-
第二次攻击的后期攻击机发送了很多构造标识位的tcp包,是为了以此来判断靶机大概是什么操作系统,可以考虑对应的nmap命令:nmap -O 靶机IP
-
第三次攻击发送了大量的数据包,从2071开始直到133220,这些数据包几乎都是SYN包,并且靶机也逐一回复了,一次访问两次连接,所以一共大概进行了65000次连接,而我们知道端口号从0-65535,估计攻击机进行了全端口扫描,可以考虑对应nmap命令:nmap -sS -P 1-65535 靶机IP
-
第四次攻击与第三次类似,但是可以发现针对开放的端口进行的更加深入的连接,尝试了其他的连接方式,根据协议可看出攻击机在扫描靶机开启了哪些服务,可以考虑对应的nmap命令:nmap - sV 靶机IP
-
筛选靶机上开放了哪些端口,也就是在数据包中查找所有SYN==1 ACK==1的TCP包(第二次握手)
使用过滤条件 tcp.flags.ack == 1 and tcp.flags.syn == 1 and ip.src == 172.31.4.188
-
根据攻击机发送的包从接收方靶机的角度去反推攻击机的特征,使用工具 p0f [sudo apt install p0f]
p0f -r 数据包
-
4.学习中遇到的问题及解决
-
问题:无法安装p0f软件
-
问题解决方案:更新kali的软件源
5.学习感悟
经过这次实验,我学会了如何使用tcpdump和snort工具进行嗅探以及分析数据包,实践了分析wireshark抓取数据包反推攻击方式以及攻击IP之类的方法,这不仅扩展了我的网络攻防技巧,在实验中还温习了一遍计算机网络的基础知识,收获满满。