20199310 2019-2020-2 《网络攻防实践》第4周作业
作业课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
---|---|
作业要求 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10518 |
课程目标 | 学习《网络攻防技术与实践》教材第四章,并完成课后作业 |
这个作业在哪个具体方面帮助我实现目标 | 学习了网络嗅探与协议分析的相关技术手段 |
作业正文:
1 知识点梳理
1.1 网络嗅探
网络嗅探:一种黑客常用的窃听技术,利用计算机IDE网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。嗅探捕获的数据报文是经过封包处理之后二进制数据,结合网络协议分析技术恢复出TCP/IP协议栈上各层网络协议的内容,以及实际发送的应用层信息。
以太网:是美国电气及电子工程师学会制定的有线网络协议标准,802.3协议,共享通信信道,采用了载波侦听/冲突检测技术(CSMA/CD)避免共享连路上的通信冲突。网络中的站点在信道上的广播机制来发送自己的数据,计算机能够接收到在共享媒介上发送给其他计算机的信息。以太网中数据传播以帧为单位进行,网络接口设备通常是一个拥有48位MAC地址的网卡,以太网帧头中包括发送源的MAC地址与目标MAC地址,发送到共享通信介质上。网卡的驱动程序只接受目标MAC地址与自身MAC地址相匹配的数据帧,再由其产生中断信号通过CPU,由操作系统根据设置的网卡中断程序地址调用驱动程序接收数据,放入信号堆栈中让操作系统进行性反向的拆包处理,并将解包后的数据交给响应的应用程序。
混杂模式:接受一切通过它连接共享通信媒介的数据帧,嗅探以太网的流量。
以太网部署方式:共享式网络(集线器Hub,接收到数据后发送到所有接口),交换式网络(交换机,可以检查映射表每一个收到的数据帧并发给指定端口,如果没有则会广播到所有端口,拥有该MAC地址的网卡会做出应答,避免了网络广播风暴)。
MAC地址洪泛攻击:向交换机发送大量含有虚构MAC地址和IP地址的数据包,致使交换机的MAC地址-端口映射表溢出无法处理,开始类似集线器的工作方式。
MAC欺骗:让交换机相信攻击者主机的MAC地址就是目标主机的MAC地址,也就是假冒所要监听的主机网卡,攻击者通过将源MAC地址伪造成目标地址的源MAC地址,并将这样的数据包通过交换机发送出去。
2 实验内容
2.1 网络嗅探
网络嗅探:一种被动式非干扰性的攻击手段,具有很高隐蔽性。
- 类UNIX平台的网络嗅探技术:
主要通过内核态的BPF和用户态的libpcap抓包工具库 - Windows平台的网络嗅探实现技术:
与BPF模块兼容的NPF,libpcap库相兼容的标准抓包接口WinPcap
嗅探软件:能够进行网络嗅探的软件。
-
类UNIX平台的网络嗅探器:
libpcap抓包开发库:libpcap是unix/linux平台下的网络数据包捕获函数包,提供了系统独立的用户级别网络数据包捕获接口,Libpcap可以在绝大多数类unix平台下工作。
tcpdump嗅探器:提供命令行模式,支持使用BFP语法的过滤条件进行网络上数据包的选择性嗅探,然后进行TCP/IP协议栈的协议分析,并以每行一个数据包捕获内容的方式呈现嗅探结果。
wireshark嗅探器:当前类UNIX平台下最好的基于图形界面的嗅探软件,在Windows平台上也有其已知版本。 -
其他嗅探软件:开源网络入侵检测系统Snort,dsniff,sniffit,linux_sniffer
-
Windows平台的网络嗅探器:NPF/winpcap/windump,wireshark也有Windows版本,其他还有Buttsniffer,NetMon,Network Associates Sniffer
tcpdump使用参考:在kali机上使用tcpdump src 192.168.200.103 and tcp dst port 80
命令对IP地址为192.168.200.103
的Windows靶机进行网络嗅探,然后在Windows靶机浏览器上登录www.baidu.com
,由于靶机浏览器版本过低,会出现页面读取错误,是否纠正该错误点击否。
攻击机上嗅探情况,靶机从80端口与目标IP地址建立HTTP协议会话。
网络嗅探检测方法:
1.检查网卡运行模式是否存在混杂模式
2.利用混杂模式下操作系统和协议栈的不同特性,看目标主机是否检查MAC地址。
3.检测以太网MAC地址前八位是否为0xff。
4.检测目标主机的响应时间是否处于异常状态。
5.识别嗅探器的工具软件AntiSniff。
动手操作:tcpdump
使用tcpdump
开源软件对在本机上访问www.tianya.cn
网站过程进行嗅探,回答问题:你在访问www.tianya.cn
网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
对本机IP进行网络嗅探
在浏览器访问网站后,出现4个Web服务器,IP分别为124.225.65.154
,200.130.77.218
,124.225.135.230
,124.225.214.206
其中124.225.65.154
是www.tianya.cn
对应的IP地址
2.2 网络协议分析技术
网络协议分析:指对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法,类似于数据包的解压过程。
网络协议分析的典型过程:
1)网络嗅探得到原始数据,即链路层传输的二进制数据包;
2)对数据帧进行结构分析,定位帧头个字段结构,根据帧头的Type字段确定网络层协议类型,IP协议为0800,并提取数据帧中包含的网络层数据内容;
3)进一步对IP数据包进行分析,根据分片位进行重组,根据IP协议头中Protocol字段确定传输层协议类型;
4)根据TCP或UDP的目标端口确定具体的应用层协议;
5)根据应用层协议对数据进行整合恢复,得到实际传输的数据。
动手操作:Wireshark
任务:使用Wireshark开源软件对在本机上以talnet方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
1)你所登录的BBS服务器的IP地址与端口各是什么?
在水木社区注册用户
用telnet bbs.newsmth.net连接社区论坛,同时通过wireshark抓捕网络包
在wireshark上的菜单栏中调用视图
,过滤器工具栏
,在搜索框中搜索telnet即可从数据包中筛选出Protocol为TELNET的数据包。
IP地址为:120.92.212.76 端口为:23
2)telnet协议是如何向服务器传送你输入的用户名及登录口令的?
根据捕获的数据包,可以看到用户名和登录口令是由本地一个字符逐次明文传送到服务器,并由服务器返回确认信息。
3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
由于该BBS对于用户名和登录口令有字符限制,较为复杂,故只展示用户名部分(louhao123)的截取如下:
3.实践作业
取证分析实践——解码网络扫描
下载云班课上分享的listen.pcap
,用wireshark打开待分析的二进制记录文件,使用菜单栏中Statistics(统计)下的Conversation(会话),选择IPV4得到如下图:
只有172.31.4.178
和172.31.4.188
之间有大量的双向网络数据包,因此可初步确定两者为攻击主机IP和目标主机IP。
再选择过滤TCP数据包,查看会话数据包内容,所有的请求数据包则是从172.31.4.178
发起,所以响应数据包均是从172.31.4.188
发出, 可以确定172.31.4.178
是攻击主机,172.31.4.188
是被扫描的目标主机。
1.攻击主机的IP地址是什么?
攻击主机的IP地址是172.31.4.178
2.网络扫描的目标IP地址是什么?
网络扫描目标的IP地址是172.31.4.188
3.本次案例中是使用了那个扫描工具发起这些端口扫描?你是如何确定的?
首先执行sudo apt-get update
和sudo apt-get install pip
,然后参考snort和websnort安装通过snort工具解析wireshark的pcap文件,可以得出通过nmap工具对端口进行了扫描
也可以通过websnort在网页中进行查看
4.你所分析的日志文件中,攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述工作原理。
由于是模拟实验,扫描机和目标机在同一网段,Nmap也可以对该类目标采用arp协议进行探测,可以直接在广播域内广播arp request报文,如果收到arp response报文即为活跃。可以得到目标主机mac地址。
由于我们已经确定了这些扫描是由nmap所发起的,而nmap在发起端口扫描之前总是先通过Ping扫描
和针对80端口
的探测确定目标主机是否活跃。
通过过滤器搜索icmp
,可以定位ICMP协议对应的Ping扫描
,实现两次Ping扫描。
在数据包中存在大量SYN请求包,这是攻击机57738端口向目标主机进行的TCP SYN扫描
,目的是用于扫描目标主机的端口是否活跃,如果活跃则目标主机会反馈一个SYN|ACK包,攻击机端口会立刻发送一个RST包关闭这个链接,目标端口不活跃则会反馈RST|ACK包,指令可能为nmap -sS -p XXX端口 172.31.4.188
。
5.在蜜罐主机上发现那些端口是开放的?
tcp.flags.syn == 1 and tcp.flags.ack == 1
可以过滤出SYN | ACK的数据包,即为目标主机反馈扫描机的端口活跃信息。可以确定21,22,23,25,53,80,139,445,3306,3632,5432,8009,8180
这几个端口是活跃的。
6.额外奖励问题:攻击主机的操作系统是什么?
通过p0f /home/kali/listen.pcap
可以查询到攻击主机的操作系统为linux 2.6.x
攻防对抗实践
攻击方用nmap扫描(达到特定目的),防守方用tcpdump嗅探,用Wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令。
由于防守方需要通过Wireshark分析,故将kali机复制一份,一台192.168.200.7
作为扫描机,一台192.168.200.6
作为检测机
执行ping扫描,检测出ICMP协议数据包,用Wireshark进行分析,可以推测为ping
命令:
可以发现第4,5个数据包为在广播域内广播arp request报文,tcpdump和Wireshark均有捕获。
对目标机进行TCP端口扫描,不知道是不是因为kali有特殊的端口设置,扫描的1000个TCP端口均为关闭。
tcpdump捕获TCP中RST包,用Wireshark分析捕获大量[RST ACK]包,表明端口不活跃,可以推测扫描命令为nmap -sS 192.168.200.6
。
对目标机进行UDP端口扫描,目标机上tcpdump侦测出大量UDP数据包,根据Wireshark可得大量长度为60的UDP包,即为侦测nmap -sU 192.168.200.6
4.学习中遇到的问题及解决
- 问题1:无法找到合适的BBS进行telnet登录
问题1解决方案:参考了关于telnet逛bbs论坛这篇博客提供的BBS网站
- 问题2:使用snort工具解析wireshark的pcap文件,snort安装时出现若干错误
问题2解决方案:一开始找的安装教程是源码安装,步骤非常复杂,而且当前环境因为缺少很多依赖包会经常安装失败,后来参考了Snort安装教程,可以通过sudo apt-get install snort
以及sudo pip install websnort
直接安装,省去不少步骤。
- 问题3:取证分析实践作业中对于nmap扫描分析
问题3解决方案:参考了网络嗅探与协议分析这篇资料
5.学习感悟和思考
本次学习内容主要包括网络嗅探与协议分析的相关技术手段,网络嗅探主要用到了tcpdump和snort这些软件,而协议分析主要通过wireshark对不同数据包进行分析,进而推测出一些网络扫描和连接的行为,对于协议分析这方面,自我感觉掌握的还不够深入和全面,有待提高。