20199122 2019-2020-2 《网络攻防实践》第四周作业
1.实践内容
1.1网络嗅探
-
网络嗅探技术
网络嗅探是黑客常用的窃听技术,主要利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。
网络嗅探器是把双刃剑。作为攻击者经常使用的内网渗透技术,通常在攻击者获得内部网络的一台主机的访问主权后,能够被动地、静默地嗅探网络上传输的数据。作为网络管理员,可以利用网络嗅探器来捕获与分析网络的流量信息,找出网络中潜在的问题。
网络嗅探技术按照监听的链路层网络分为以太网有线局域网和Wi-Fi无线局域网。这两类嗅探器唯一的区别是无线嗅探器可以读取和分析符合如IEEE 802.11等无线传输协议的数据包。
-
网络嗅探器的原理
1)以太网工作原理
以太网以帧为单位传播数据,当站点发送数据,通过协议栈进行应用数据TCP/IP封包,并在数据链路层加上帧头和帧尾,发送到共享通信介质上,其中帧头包括发送源的MAC地址和目标MAC地址,当网络接口设备,通常是网卡在正常驱动程序下,只会接受目标MAC地址与网卡自身MAC地址相匹配的数据帧,或目标MAC地址是广播地址。当网卡处于混杂模式,能够接受一切通过它连接共享通信媒介的数据帧。
2)以太网部署方式
以太网在部署有线局域网时,根据部署方式分为共享式网络与交换式网络。
共享式网络主要使用集线器连接,其网络拓扑是基于总线方式,物理上是广播的。
交互式则主要使用交换机组建,数据帧通过交换机进行数据转发,交换机内存中保存有“MAC地址-端口映射表”。
可以采用以下技术手段使得本不应到达的数据包到达本地,实现嗅探。
- MAC地址泛洪攻击
- MAC欺骗
- ARP欺骗
3)类UNIX平台的网络嗅探技术实现
主要通过内核态的BPF包嗅探与过滤机制和用户态的libpcap抓包工具库相配合,为类UNIX平台上的应用程序提供标准的网络嗅探接口。
-
网络嗅探器软件
- 类UNIX平台:libpcap抓包开发库、tcpdump以及wireshark嗅探器软件
- windows平台: tcpdump嗅探器、windump、wireshark、SnifferPro
-
网络嗅探的监测与防范
- 检查网卡是否运行在混杂模式下;根据混杂模式下操作系统和协议栈的不同特性,检测网络中其他主机的嗅探器
- 采用安全的网络拓扑,尽量用交换式网络
- 用静态ARP或者MAC端口映射表代替动态机制
- 避免使用明文传输口令或敏感信息的网络协议
1.2网络协议分析
-
网络协议分析是指对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法.典型过程如下:
-
网络嗅探得到原始数据,一般是以太网数据帧
-
对数据帧结构分析,根据帧头的Type字段确定网络层协议类型,提取网络层数据内容
-
进一步对IP数据包进行分析,确定传输层协议类型,提取IP数据包中的传输层数据内容
-
根据TCP或UDP目的端口确定具体的应用层协议,得到应用层特定协议的应用交互内容
-
对数据进行整合,得到实际传输的数据
-
-
网络协议分析技术实现: Tcpdump, Wireshark和Snort
Snort中的网络协议分析处理过程如下:
-
解析以太网数据帧
-
解析IP数据包
-
解析TCP数据包
-
-
网络协议分析工具wireshark
wireshark功能很强大
- 支持多种类型网络接口
- 从网络中截取数据包以及从离线的记录文件中读取网络数据包
- 通过网络协议解析框架支持开源社区提交网络协议的解析插件
- 拥有强大的包过滤功能
2.实践过程
2.1 tcpdump
-
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问该网站首页时,浏览器将访问多少个Web服务器?他们的IP地址时什么?
-
访问网站首页的过程解析,通过DNS服务获取IP地址,建立TCP三次握手,HTTP请求报文,HTTP响应报文,TCP四次挥手离开 .
-
浏览器将访问多少个web服务器,即TCP三次握手时抓取syn不等于0并且ack不等于0的包.
tcpdump -nn 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0 and(host 192.168.200.3)and(port 80)'
,其中192.168.200.3为目标主机地址,80端口用于网页浏览,如果不加端口名,还将会查询出经443端口的IP, 443端口为网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。
- 其主要的IP地址为:
124.225.135.230
124.225.214.214
124.225.65.154
124.225.214.206
124.225.65.170
218.77.130.200
72.21.202.25
52.85.107.85
- 其中个别ip地址每次访问都不太一样,根据天涯网首页的源代码可以找到相关服务器域名,如passport.tian.cn , static.tianya.cn ,用nslookup验证tcpdump的正确性.
2.2 Wireshark实践
使用wireshark对在本机上以telnet方式登录BBS进行嗅探与协议分析。
1)登录的BBS服务器的IP地址与端口各是什么?
2)telnet协议是如何向服务器传送你输入的用户名及登录口令?
3)如何利用wireshark分析嗅探的数据包,并从中获取用户名及登录口令?
解答:
- 将物理机上的telnet打开,在控制面板,程序,打开或关闭windows功能里
- 打开wireshark, 并在主机上进行telnet连接
telnet bbs.fudan.edu.cn
- 此时在wireshark过滤telnet,可得该BBS服务器IP地址为202.120.225.9, 端口为23
- 查看wireshark中的data,可以看到telnet是以明文的形式传输报文的
- 利用TCP追踪流,设置主机向BBS服务器发送的数据流,获取主机向BBS发送的用户名为guest,密码为空
2.3实践作业
分析由人为构造的到一台蜜罐主机的5次不同类型端口扫描.
- 攻击主机的IP地址是什么?
- 网络扫描的目标IP地址是什么?
- 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
- 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
- 在蜜罐主机上哪些端口被发现是开放的?
- 攻击主机的操作系统是什么?
解答:
- 利用wireshark对tcpdump格式二进制网络日志文件进行分析,打开统计里的conversation,可得两个IP地址 172.31.4.178和172.31.4.188来往最密切, 通过端口扫描响应的内容可得攻击者ip地址为172.31.4.178, 目标IP地址为172.31.4.188
2.通过snort扫描发现是nmap攻击,最初用apt-get install snort
安装失败了,后来解决了
3.在wireshark中筛选ARP,nmap扫描前是通过ARP确定MAC地址,且每次扫描前会检测目标ip是否活跃. 在图中找到目的地为broadcast, 形式为who has 172.31.4.188?Tell 172.31.4.178 . 地址扫描探测是指利用ARP请求目标网段,如果目标网段没有过滤规则,则可以通过回应消息获取目标网段中存活机器的IP
地址和MAC
地址,进而掌握拓扑结构。
如:172.31.4.178
向指定网段发起ARP请求,如果IP不存在,则无回应, 因存在,所有回应为MAC地址. 可以看出攻击机第一次nmap扫描和第二次nmap扫描之间没有数据包,则第一次nmap扫描为探测目标IP是否活跃nmap -sP 172.31.4.188
4.第二次扫描的时间没有第三次扫描时间长,应该不是对所有端口进行扫描. 同时发现攻击机向靶机发送精心设计的TCP/UDP/ICMP数据包, 根据nmap -O
的原理, Nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中), 根据返回的数据包生成系统指纹与样本库作比较,查找匹配的系统, 如果无法匹配,以概率形式列举出可能的系统。猜测第二次扫描为主动探测操作系统, nmap -O
扫描.
5.第三次扫描 往返的是13W数据包, 大致扫描了6W多端口, 所以猜测为TCP SYN扫描,即半开连接扫描, 即为nmap -sS
, 半连接扫描不使用完整的TCP连接。攻击方发起SYN请求包;如果端口开启,目标主机回应SYN ACK包,攻击方再发送RST包。如果端口未开启,目标主机直接返回RST包结束会话
6.第四次扫描, 筛选端口tcp.port==80
, 80端口是用于万维网(WWW)服务的超文本传输协议(HTTP) ,发现第四次扫描建立了HTTP连接,即猜测该次扫描为nmap -sV
,确定目标主机开放端口上绑定的网络应用服务类型与版本. 网络服务探查主要依据网络服务在实现应用层协议时所包含的特殊指纹信息. 扫描主机向目标主机发送特制的数据包,根据反馈包中包含的指纹特征,识别开放端口的网络服务.
7.通过筛选tcp.flags.syn == 1 and tcp.flags.ack == 1
确定开放端口为21 , 22 , 23, 25, 53, 80, 139, 445,3306, 5432, 8009 , 8180 ,
- 用
p0f -r listen.pcap
进行探测得该操作系统为linux 2.6.X,p0f工具为监听网卡收发的数据包,能从数据包中读取远端机器操作系统服务版本等信息。
2.4 攻防实践
攻击方用nmap扫描,防守方用tcpdump进行嗅探,用wireshark分析并分析出攻击方的扫描目的及每次使用的nmap命令
- 运用kali 当防守方,IP地址为 192.168.200.3,用tcpdump截获攻击机和目标机之间的通信
tcpdump host 192.168.200.3 and 192.168.200.125
用linux靶机当攻击方,IP地址为192.168.200.125 .
- 根据上述分析方法可得进行了二次扫描,第一次为
nmap -sP
,第二次为nmap -O
- 事实上, 攻击机也只进行了这两次扫描
3.学习中遇到的问题及解决
- 问题1:kali无法上网
- 问题1解决方案:打开蜜网网关
- 问题2:snort安装不上,显示无法找到安装包
- 问题2解决方案:是因为没有更新APT库,更新一下
4.实践总结
1.要多实践,同时在做实验的时候要弄清楚为什么.
2.不懂就问,遇到问题要及时与同学交流
3.学一门新的技术真的有点难