20199305 2019-2020-2 《网络攻防实践》第四周作业
《网络攻防实践》第四周作业
一、前言
问题 | 回答 |
---|---|
作业属于 | https://edu.cnblogs.com/campus/besti/19attackdefense |
作业要求 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10518 |
课程目标 | 学习教材第四章,完成课后实践 |
二、知识梳理
1、网络嗅探
定义:一种黑客常用的窃听技术,利用计算机IDE网络接口截获目的地为其他计算机的数据报文,嗅探需要用到网络嗅探器,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。网络嗅探是网络监控系统的实现基础。
共享式网络嗅探:共享式网络主要使用集线器连接,其网络拓扑是基于总线方式,集线器上任意一台主机都能够嗅探整个集线器上的全部网络流量
交互式网络嗅探:交互式则主要使用交换机组建,数据帧通过交换机进行数据转发,交换机内存中保存有“MAC地址-端口映射表”。这种嗅探有三种实现方式:MAC地址洪泛攻击、MAC欺骗、ARP欺骗
嗅探的防范措施:(1)使用更加安全的网络拓扑,使用交换式网络,对网络进行分段;(2)使用静态ARP或MAC-端口映射表;(3)重视网络安全中集中位置点的安全防范;(4)避免使用明文传输口令或敏感信息的网络协议,使用加密及安全的网络协议。
2、网络协议分析
定义:网络协议分析是对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
技术实现: Tcpdump, Wireshark和Snort
分析流程:(1)首先网络嗅探得到的原始数据;(2)对以太网数据帧进行结构分析,定位出帧头各字段结构,根据帧头的Type字段确定网络层协议类型;(3)对IP数据包进行分析,如果设置了分片位,则进行IP分片重组,根据IP协议头中的Protocol字段,并提取IP数据包中的传输层数据内容;(4)继续根据TCP或UDP的目标端口确定具体的应用层协议,如http、ftp、telnet等协议数据包,并对TCP或者UDP数据包进行拼接重组,得到应用层特定协议的应用交互内容;(5)依据相应的应用层协议对数据进行整合恢复,得到实际传输的数据。
三、动手实践tcpdump
1、任务要求
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
2、使用tcpdump对在kali攻击机上访问天涯网站的过程进行嗅探,在终端输入指令sudo tcpdump src 192.168.200.4 and tcp dst port 80
,在kali中访问天涯官网(一开始没网,解决方法见第七章问题与解决)。
sudo tcpdump src 192.168.200.4 and tcp dst port 80
,在kali中访问天涯官网(一开始没网,解决方法见第七章问题与解决)。
共计访问了两个web服务器,地址为124.225.135.230
和124.225.65.154
124.225.135.230
和124.225.65.154
3、通过nslookup tianya.cn
命令查看天涯官网对应的IP地址,确认为124.225.65.154
,验明正确性
nslookup tianya.cn
命令查看天涯官网对应的IP地址,确认为124.225.65.154
,验明正确性4、用openGPS/埃文科技进行一个精确定位(这两款APP的确要安利一下,定位相对于其他产品好得多),发现IP地址位于海南省海口市
四、动手实践Wireshark
1、任务要求
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
(1)你所登录的BBS服务器的IP地址与端口各是什么?
(2)TELNET协议是如何向服务器传送你输入的用户名及登录口令?
(3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
2、在终端输入命令luit -encoding gbk telnet bbs.fudan.edu.cn
,进入复旦大学BBS论坛,一开始的时候我进去是乱码,解决方法会在第七章问题与解决中提到
luit -encoding gbk telnet bbs.fudan.edu.cn
,进入复旦大学BBS论坛,一开始的时候我进去是乱码,解决方法会在第七章问题与解决中提到3、打开kali自带的WireShark,筛选telnet,然后在论坛中注册登录,使用账号guest,通过查看wireshark可知IP地址为202.120.225.9
,端口号为23
202.120.225.9
,端口号为23
4、Telnet协议明文传输用户名和密码,分析嗅探的数据包,点击202.120.225.9
,选择追踪TCP流,可以看到我们的用户名为guest,而密码为一堆乱码
202.120.225.9
,选择追踪TCP流,可以看到我们的用户名为guest,而密码为一堆乱码
五、解码网络扫描器
1、任务要求
(1)攻击主机的IP地址是什么?
(2)网络扫描的目标IP地址是什么?
(3)本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
(4)你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
(5)在蜜罐主机上哪些端口被发现是开放的?
(6)攻击主机的操作系统是什么?
2、在wireshark中打开文件listen.pcap
,会观察到IP地址,为了找出重点,我们筛选ipv4
listen.pcap
,会观察到IP地址,为了找出重点,我们筛选ipv4
3、然后我们会发现流量主要是集中在两个地址172.4.31.178
和172.4.31.188
之间,接下来要做的就是找出谁是源地址,谁是目的地址,从上图可知发送SYN的一方是172.4.31.178
(TCP协议三次握手中发送此标志位的即为源地址)
172.4.31.178
和172.4.31.188
之间,接下来要做的就是找出谁是源地址,谁是目的地址,从上图可知发送SYN的一方是172.4.31.178
(TCP协议三次握手中发送此标志位的即为源地址)4、接下来我们要弄清楚这次攻击中用的什么工具发起端口扫描,根据参考书内容,我决定使用入侵检测系统snort
下面为它的安装步骤:先更新sudo apt-get update
,再安装sudo apt-get install snort
,然后输入 snort -A console -q -u snort -c /etc/snort/snort.conf -r /home/kali/listen.pcap
(更新一开始没法实现,解决方法请见第七章问题与解决),然后发现工具是nmap
sudo apt-get update
,再安装sudo apt-get install snort
,然后输入 snort -A console -q -u snort -c /etc/snort/snort.conf -r /home/kali/listen.pcap
(更新一开始没法实现,解决方法请见第七章问题与解决),然后发现工具是nmap
5、使用Wireshark的过滤器过滤arp包,这样做的原因是每次扫描之前nmap都会使用地址解析协议ARP。攻击者使用了四次扫描,因为Who has 172.4.31.188?Tell 172.4.31.178
这句话广播了四次。同时通过序号我们就可以发掘一些信息,比如第一次扫描与第二次扫描之间序号相连,没有其他的数据包了,这就说明这次扫描的目的仅仅是为了测试主机是否活跃,故判断这次扫描的命令为namp -sP
Who has 172.4.31.188?Tell 172.4.31.178
这句话广播了四次。同时通过序号我们就可以发掘一些信息,比如第一次扫描与第二次扫描之间序号相连,没有其他的数据包了,这就说明这次扫描的目的仅仅是为了测试主机是否活跃,故判断这次扫描的命令为namp -sP
6、继续观察第二次扫描的数据包,在末尾发现了TCP、ICMP和UDP协议数据包,根据查询资料,这是进行远程主机的操作系统探测中的操作系统扫描,其构造一系列数据包返回给nmap,nmap对其中的一些反馈信息与自己的数据库进行比对,最后判断操作系统。所以判断该扫描的命令为nmap -O
。
nmap -O
。7、第三次扫描比较好判断,它的跨度很大(No.2071~No.133220)达到了12万,这种流量基本可以判定为全端口扫描,该扫描的命令为nmap -sS
nmap -sS
8、第四次扫描中,不仅有TCP协议数据包,还有HTTP、TELNET、SMB等其他层的协议数据包,另外之前几次扫描都是先是半开扫描,但这次在收到ACK之后并没有发送RST结束,而是发送ACK建立了链接,故判断这是操作系统探测中的网络服务扫描,其命令为nmap -sV
nmap -sV
9、通过命令 tcp.flags.syn == 1 and tcp.flags.ack == 1
可以过滤出活跃的端口(即回复ACK+SYN的端口),开放的端口有:21
,22
,23
, 25
,53
,80
,139
,445
,3306
,3632
,5432
,8009
,8180
tcp.flags.syn == 1 and tcp.flags.ack == 1
可以过滤出活跃的端口(即回复ACK+SYN的端口),开放的端口有:21
,22
,23
, 25
,53
,80
,139
,445
,3306
,3632
,5432
,8009
,8180
10、p0f是一款被动探测工具(需要单独安装),能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别
工作原理:当被动地拦截原始的TCP数据包中的数据,如可以访问数据包流经的网段,或数据包发往,或数据包来自你控制的系统;就能收集到很多有用的信息:TCP SYN 和SYN/ACK数据包就能反映TCP的链接参数,并且不同的TCP协议栈在协商这些参数的表现不同。
从上图可以看出操作系统为Linux2.6.x
六、攻防对抗实践
1、任务要求
攻击方用nmap扫描(达到特定目的),防守方用tcpdump嗅探,用Wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令
2、先选定攻击方的IP地址为192.168.200.7
(之前设定为192.168.200.4,结果攻击机ping靶机总是失败,后查看kali的IP地址已经变为了192.168.200.7,我搜索了一下资料,这似乎与DHCP分配的地址有时限有关),选定Linux靶机作为被攻击方,地址为192.168.200.125
。然后再kali里面开启两个终端,一个用于nmap扫描,一个用于tcpdump嗅探。首先用运行nmap -sT 192.168.200.125
,可以看到所有TCP协议端口的状态
192.168.200.7
(之前设定为192.168.200.4,结果攻击机ping靶机总是失败,后查看kali的IP地址已经变为了192.168.200.7,我搜索了一下资料,这似乎与DHCP分配的地址有时限有关),选定Linux靶机作为被攻击方,地址为192.168.200.125
。然后再kali里面开启两个终端,一个用于nmap扫描,一个用于tcpdump嗅探。首先用运行nmap -sT 192.168.200.125
,可以看到所有TCP协议端口的状态3、另外一个终端中运行tcpdump -i eth0 -w *.pcap
,发现之间有2066个数据包流通
tcpdump -i eth0 -w *.pcap
,发现之间有2066个数据包流通运行tcpdump -r *.pcap
,查看具体内容
tcpdump -r *.pcap
,查看具体内容4、同时打开wireshark,可以看到大量的TCP协议数据包,,且有完整的三次握手过程。不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect()端口扫描
5、我们再用相似的方法运行nmap -sS 192.168.200.125
nmap -sS 192.168.200.125
同时打开wireshark,可以观察到许多TCP协议的半开链接,这是TCP SYN扫描的显著特征,与TCP connect()相比,它的操作不会被记录而安全性更高
七、问题与解决
本周因电脑崩溃等客观原因,电脑恢复后需要调试的地方很多,出现的问题也较多
1、kali里面无法打开网页(没网)
我的处理办法是在设置中将NAT模式改为桥接模式,这样子基本能稳定上网,但之后使用nmap系列扫描时,我们仍然需要将模式改回来,否则kali的IP地址会变到192.168.0.101
,之前为192.168.200.7
192.168.0.101
,之前为192.168.200.7
2、在安装snort之前,系统提示apt-get update
操作失败,如果无法定位软件。之前在上Linux课时也遇到过同的状况,需要更新kali系统自带的软件源
apt-get update
操作失败,如果无法定位软件。之前在上Linux课时也遇到过同的状况,需要更新kali系统自带的软件源输入 vim /etc/apt/sources.list
,添加软件源,建议选择国内镜像源
vim /etc/apt/sources.list
,添加软件源,建议选择国内镜像源保存退出:Esc
+·:wq!`,然后更新软件,我选择的是清华大学
Esc
+·:wq!`,然后更新软件,我选择的是清华大学3、登录复旦大学BBS论坛之后,文字内容全部为乱码,导致无法注册账号,这个时候需要进行调试,步骤如下:
(1)安装locales,apt-get install locales
apt-get install locales
(2)输入dpkg-reconfigure locales
,进入图形化界面,选择en_US.UTF-8 UTF-8
和zh_CN.UTF-8 UTF-8
,同时将en_US.UTF-8
选为默认其中按空格键为选中,按回车键为确定。
dpkg-reconfigure locales
,进入图形化界面,选择en_US.UTF-8 UTF-8
和zh_CN.UTF-8 UTF-8
,同时将en_US.UTF-8
选为默认其中按空格键为选中,按回车键为确定。(3)然后安装字体apt-get install -y xfonts-intl-chinese ttf-wqy-microhei
,最后重启就可以了,可以看到乱码全部恢复为简体汉字
apt-get install -y xfonts-intl-chinese ttf-wqy-microhei
,最后重启就可以了,可以看到乱码全部恢复为简体汉字