20199301 2019-2020-2 《网络攻防实践》 第四周作业
一、实践内容
1、网络嗅探
- 网络嗅探技术定义:网络嗅探(Sniff)是一种黑客常用的窃听技术,与传统的电话窃听在电话线路上对特定号码的内容进行监听类似,网络嗅探利用计算机的网络接口目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。
- 网络嗅探技术与工具分类:按照所监听的链路层网络进行分类,以太网(Ethernet)与Wi-Fi是目前有线局域网(Local Access Network,LAN)与无线局域网(Wireless Local Access Network,WLAN)最流行的链路层协议,也是目前的网络嗅探器主要监听对象。按照实现形式分为软件嗅探器和硬件嗅探器两种。
2、网络嗅探的原理
- 以太网工作原理:共享通信信道,它采用了载波侦听/冲突检测技术(CSMA/CD)避免共享链路的通信冲突。以太网中传输的数据是以“帧”为单位,帧头中包含发送源和目标的MAC地址。共享信道中,网卡在收到数据时只会收到与网卡自身的MAC地址匹配的数据。
- 共享式网络嗅探:主要是用集线器(Hub)连接,其网络拓扑是基于总线方式,物理上是广博的。
- 交换式网络嗅探:主要是用交换机组建,所以数据帧都通过交换机进行数据转发。
- MAC地址洪泛攻击;是指向交换机发送大量含有虚构MAC地址和IP地址的数据包,致使交换机的“MAC地址-端口映射表”溢出无法处理,使得交换机进入所谓的“打开失败”模式,也就是开始了类似集线器的工作方式,向所有端口广播数据包,这使得网络嗅探就会变得和在共享式网络环境下一样容易。
3、网络嗅探器
- 类UNIX平台上的网络嗅探器软件一般都是基于标准接口BPF与libcap,最常用的包括libcap抓包开发库、tcpdump以及wireshark嗅探器软件。
- Windows平台上也有非常多的网络嗅探器软件,类UNIX平台上的BPF/libpcap/tcpdump标准嗅探接口与程序在Windows平台上有对应的移植版本,即NPF/winpcap/windump,著名的开源网络嗅探软件wireshark也有Windows版本。
4、网络嗅探的检测与防范
- 网络嗅探的检测:在同一主机上,可以通过检查网卡是否运行在混杂模式下,来发现正字啊进行监听的嗅探器。此外也可以基于混杂模式下操作系统和协议栈的不同特性,来检测网络中其他主机上的嗅探器。
- 网络嗅探的防范措施:
- 采用安全的网络拓扑
- 用静态ARP或者MAC-端口映射表代替动态机制
- 重视网络数据中传输的集中位置点的安全防范
- 避免使用明文传输口令或敏感信息的网络协议
二、实践过程
实践一:tcpdump
- 实践要求:使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
实践二:Wireshark
-
实践任务:使用Wireshark开源软件对本机上以telnet方式登录BBS进行嗅探与协议分析,回答 如下问题并给出操作过程:
- (1)你所登录的BBS服务器的IP地址与端口各是什么?
- (2)telnet协议是如何向服务器传送你输入的用户名及登录口令的?
- (3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
首先开启XP的wireshark,在cmd下输入telnet bbs.fudan.edu.cn
账号:luoqu 密码:1234
-
可以看到IP地址为:202.120.225.9。端口号:23
利用follow tcp stream来获取用户名和密码如图:
- 获取的用户名(luoqu)和密码(1234)与注册时的相同。
实践三:取证分析实践(解码网络扫描)
- 问题:
- 1.攻击主机的IP地址是什么?
- 2.网络扫描的目标IP地址是什么?
- 3.本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
- 4.你所分析的日志文件中,攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述其工作原理。
- 5.在蜜罐主机上发现哪些端口是开放的?
- 6.额外奖励问题:攻击主机的操作系统是什么?
下载班课中的listen.pcap,利用Wireshark打开分析得:
可以看出172.31.4.178和172.31.4.188之间发送了大量的包
-
所以攻击主机的IP地址是:172.31.4.178
-
目标IP地址是:172.31.4.188
-
通过nmap工具对端口进行扫描。进入共享文件夹,运行
sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap
结果得到:
用arp做过滤,寻找目标IP地址:172.31.4.188的主机:
过滤出icmp,确定目标主机在活跃状态下:
过滤出tcp
利用tcp.flags.syn == 1 and tcp.flags.ack == 1
找出出SYN | ACK包。
- 可以确定一下端口开放:21,22,23,25,53,80,139,445,3306,3632,5432,8009,8180
- 所以靶机使用的是Linux系统。
三、学习中遇到的问题及解决方法:
- 问题一:与往常不一样kali一直连不上网
- 解决方法:找到的方法链接
- 问题二:kali的
ifconfig
命令一直有问题- 解决方法:使用
Whereis ifconfig
找到这个命令在那个目录下
发现在/sbin下
添加环境变量export PATH=$PATH:/sbin
(但是重启还是会还原,需要重复操作。再慢慢找方法吧!)
- 解决方法:使用
四、实践总结
对 Wireshark有了初步的认识,对本章的嗅探原理也在实践中慢慢的理解了一点(实践还真是很重要)。
发现在做网络攻防实践时需要有那种类似“八卦的心”。就会想方设法利用各种渠道找到自己想要的答案。
不懂就问、就查。