20199117 2019-2020-2《网络攻防实践》第四次作业
1、实践内容
1.1网路嗅探
1.1.1 定义
网络嗅探(Sniff)是一种窃听技术,利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。
1.1.2 网络嗅探的原理与实现
-
以太网共享通信信道,采用载波侦听/冲突检测技术避免共享链路上的通信冲突。以太网中数据的传播是以“帧”为单位进行,以太网的帧头中包括发送源的MAC地址与目标地址。当网络上的站点需要发送数据时,会通过协议栈进行应用数据TCP/IP封包,并在数据链路层“装配”上帧头与帧尾,发送到共享通信介质上。在网卡收到以太网共享媒介上传输的数据时,网卡驱动程序在正常模式设置下,只会接受目标MAC地址与网卡自身MAC地址相配的数据帧,或目标MAC地址为广播地址的广播帧。
-
共享式网络与交换式网络中的嗅探:共享式网络主要使用集线器(Hub)连接,其网络拓扑是基于总线方式,物理上是广播的。交互是网络主要使用交换机组建,所以数据帧都能通过交换机进行数据转发。
-
类UNIX平台的网络嗅探技术:主要通过内核态的BPF和用户态的libpcap抓包工具库实现。
-
Windows平台的网络嗅探技术:通过增加一个驱动程序或网络组件来访问内核网卡驱动中捕获的数据包,最常用的是NPF.
1.1.3 网络嗅探器软件
-
类UNIX平台网络嗅探器软件:一般都是基于标准接口BPF与libpcap,最常用的包括libpcap抓包开发库、tcpdump以及wireshark嗅探器软件。
-
Windows平台网络嗅探器软件:NPF/winpcap/windump、wireshark、Snifferpro等
1.1.4 网络嗅探的检测与防范
- 网络嗅探的检测:在同一主机上,可以通过检查网卡是否运行在混杂模式下,来发现正在运行监听的嗅探器。也可以基于混杂模式下操作系统和协议栈的不同特性,检测出网络中其他的嗅探器
- 网络嗅探的防护措施:采用安全的网络拓扑,对网络进行合理分段;用静态ARP或MAC-端口映射表代替动态机制;重视网络数据传输的集中位置点的安全防范;避免使用明文传输口令或敏感信息的网络协议。
1.2网络协议分析
1.2.1 网络协议分析技术
-
网络协议分析技术原理:对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。需要解析与保存各个网络层次上所有包头字段信息,以及最高层的应用层数据内容,并提供给用户用以了解网络数据包的全方位信息。
-
网络协议分析技术具体步骤:在链路层传输的二进制数据包作为原始数据;对以太网数据帧进行结构分析;对IP数据包进行分析;根据TCP或UDP的目标端口确定具体的应用层协议;依据相应的应用层协议对数据进行整合恢复,得到实际传输的数据。
1.2.2 网络协议分析工具Wireshark
-
监听指定主机为源地址(或目的地址或者两者)
[src|dst] host <host>
-
选择长度符合要求的包(大于等于或小于等于)
less|greater <length>
-
过滤tcp,udp及端口号
[tcp|udp][src|dst] port <port>
2、实践过程
2.1 tcpdump
问题:使用tcpdump开源软件对本机上访问 www.tianya.cn 网站过程进行嗅探,回答问题:你在访问 www.tianya.cn 网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
- 使用
ifconfig
命令查询本机IP地址为192.168.200.6。
- 在浏览器中打开www.tianya.cn ,在终端输入
sudo su
授权后输入tcpdump src 192.168.200.6 and tcp dst port 80
,可以查看与从源主机192.168.200.6向外连接的http网络流量情况。
- 输入
nslookup tianya.cn
查询 www.tianyawww..cn 的IP地址
- 浏览器访问了4个Web服务器,IP地址如下
124.225.65.124
124.225.135.230
124.225.214.206
218.77.130.200
2.2 Wireshark
问题:使用Wireshark开源软件对在本机上以telent方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
(1)你所登录的BBS服务器的IP地址与端口各是什么?
(2)telent协议是如何向服务器传送你输入的用户名及登录口令的?
(3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
- 首先打开控制面板——程序——启用或关闭Windows功能——选择Telnet,并打开Wireshark软件
- 在终端输入
telnet bbs.fudan.edu.cn
,可以在页面中看到服务器的IP地址为202.120.225.9,通过Wireshark扫描可以得出端口为23
- 输入new注册用户名及密码后进入页面
-
TCP进行三次握手后,传输telnet协议
第一次握手:客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认。
第二次握手:服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN_ACK包,向服务器发送确认包ACK,此包发送完毕,完成三次握手。
- 在过滤器中输入
telnet
,过滤后可以查到刚刚注册的用户名为qyhabc,密码为123456(步骤一致,只截取部分)
- 可以通过追踪TCP流,明文传输也可以看到用户名及密码,所以明文传输方式并不安全。
2.3取证分析实践:解码网络扫描
问题:1、攻击主机的IP地址是什么?
2、网络扫描的目标IP是什么?
3、本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
4、你所分析的日志文件中,攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述其工作原理。
5、在蜜罐主机上发现哪些端口是开放的?
6、额外奖励问题:攻击主机的操作系统是什么?
- 将listen.pcap文件在Wireshark中打开,根据图一得知数据流主要出现在IP地址为172.31.4.178和172.31.4.188中,根据图二得知攻击主机的IP地址为172.31.4.178,网络扫描的目标IP为172.31.4.188
- 在终端安装snort后,输入
snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap
,得出采用nmap攻击
- 使用Wireshark过滤器搜索arp包,因为每次nmap扫描前都会使用arp确定目标的MAC地址,选出四次
who has 172.31.4.188? tell 172.31.4.178
,确定四次扫描的起点分别为5、7、2071、133220
-
由于第一次扫描与第二次扫描之间没有数据包,所以确定第一次扫描所用的命令
nmap -sP
来探测主机是否活跃,回应172.31.4.188 is at (mac地址),说明该IP处于活跃状态 -
在Wireshark过滤器中输入
tcp.port == 57738 and tcp.flags.syn == 1 and tcp.flags.ack == 0
,表示tcp端口57738发送tcp请求但无回应,根据过滤后得到的数据包表明,此次扫描基本包括靶机上所有的协议和服务,所以第二次扫描所用的命令是nmap -O
,扫描靶机上安装的操作系统。
-
第三次扫描大概扫描6w多端口,往返13w的数据包,所以第三次扫描命令为
nmap -sS
,半连接扫描。 -
在Wireshark过滤器中输入
tcp.port == 80
,过滤后发现第四次扫描建立了HTTP连接,所以第四次扫描为nmap -sV
- 在过滤器中输入
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
3.学习中遇到的问题及解决
-
更新kali出现问题,困扰好久!!!!
-
百度并与老师同学进行探讨后,发现是联网问题!最后得到解决!
-
取证分析实验安装snort过程中有很多问题
-
更新ART库
4.学习感想和体会
还需要反复实践,把知识掌握的更透彻吧