20211913-冯馨茹-2021-2022-2 《网络攻防实践》第三次作业
一、实验内容
网络嗅探:
1、网络嗅探基本介绍
网络嗅探是攻击者经常使用的内网渗透技术,通常在攻击者获得内部网络中的一台主机的访问权后实施。可以静默地、被动地嗅探网络上传输的数据。所以针对网络嗅探的检测与防范还是比较困难的。基本的检测防范方法包括:1、网络嗅探的检测:如检查网卡是否运行在混杂模式下。也可以通过操作系统和协议栈对混杂模式的香型不同来判断。2、网络嗅探的防范:采用安全的网络拓扑(交换式网络),用静态ARP代替动态,避免明文传输,重视网络集中节点的保护(路由器,交换机等)。
2、原理及实现
原理:
以太网是共享通信信道数据以帧为单位传输,以太网帧头中包括发送源的MAC地址与目标MAC地址。当站点需要发送数据时,通过协议栈进行TCP/IP封包,在数据链路层“装配”帧头与帧尾,发送至共享通信介质上。网卡驱动程序在正常模式下,只会接受目标MAC地址与自身MAC地址相匹配的数据帧。但是网卡的混杂模式将会接收一切通过它连接共享通信媒介的数据帧。
网络嗅探实现:
1、共享式网络嗅探:使用集线器连接,集线器上任意一台主机都能够嗅探整个集线器上的全部网络流量。
2、交互式网络嗅探:通过MAC地址映射表来发送数据。通常有以下三种方式实现嗅探:①MAC地址泛洪攻击:向交换机发送大量含有虚构MAC地址和IP地址的数据包,使映射表溢出无法处理,交换机进入类似集线器的工作方式。②MAC欺骗:通常用于突破基于MAC地址的局域网访问控制。③ARP欺骗:利用IP地址与MAC地址之间进行转换时的协议漏洞,达到MAC欺骗。
3、类Unix网络嗅探:数据链路层上的交换(switched)网络与非交换(unswitched)网络之间也存在区别。在非交换网络中,以太网数据包经过网络上的每个设备,期望每个系统设备只查看以其作为目的地址发送的数据包。然而,将设备设置为混杂模式(promiscuous mode)是相当容易的,该模式允许设备查看所有数据包,而不管其目的地址是什么。大多数的数据包捕获程序,例如tcpdump,默认情况下将它们监听的设备设置为混杂模式。
4、Windows网络嗅探:Windows系统不提供嗅探与抓包接口,但又有一个内核态虚拟设备驱动程序,NPF可以过滤数据包。使用Winpcap来生成数据包比使用原始套接字更加灵活,功能更加丰富。在基于原始套接字方法中,由于原始套接字的某些限制,其构造的数据包最底层协议的数据包只能是IP数据包不能够构造IP层以下的协议数据包,例如链路层数据包就不能构造,而使Winpcap可以构造基于链路层的数据包。
网络协议分析技术:
网络协议分析技术原理:对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
网络协议分析技术的具体流程:通过嗅探得到链路层原始二进制数据包、对以太网帧进行结构分析、对IP数据包进行分析、确定具体的应用层协议、对数据进行整合恢复,得到实际传输数据。常用的工具如Wireshark。
二、实验步骤
- (1)动手实践tcpdump,使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探
打开kali虚拟机,在kali虚拟机上查看本机IP地址
在kali虚拟机中使用浏览器Firefox ESR进入天涯
在终端输入tcpdump host www.tianya.cn
命令,然后打开天涯网站,开始嗅探,反复出现192.168.214.3与124.225.206.22两个IP地址
输入nslookup www.tianya.cn
获得天涯的IP地址
- 动手实践Wireshark,使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析
打开kali虚拟机中的wireshark
在kali虚拟机终端输入luit -encoding gbk telnet bbs.fudan.edu.cn
命令
筛选协议为telnet
,开始抓包。连接bbs.fudan.edu.cn
。可见WireShark与BBS服务器同时显示IP为:202.120.225.9。
输入new进行注册
账号为fengxinru,密码为123456,注册完成后重新登录
返回WireShark,暂停抓包,开始分析以及获取的数据包。找到202.120.225.9,右键打开follow,选择分析TCP跟踪流
可以看到我的用户名和口令
通过追踪TCP流也可以看到用户名和密码
- 取证分析实践,解码网络扫描器(listen.cap)
打开下载好的listen.pacp,在wireshark软件中点击统计>会话>IPV4,得到如下界面
可以看到主机172.31.4.178和主机172.31.4.188之间的数据包是最多的,所以172.31.4.178和172.31.4.188即为攻击主机和靶机主机对应的IP
从上图数据交换的情况可以看出:网络扫描的目标IP地址为172.31.4.188,攻击主机的IP地址为172.31.4.178。
将listen.pacp文件移到kali里
首先通过
sudo apt-get update
和
sudo apt-get install snort
安装snort,并给予snort.conf可读可写可执行权限sudo chmod 777 /etc/snort/snort.conf
运行指令sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap
查询,通过snort可以看出是采用namp发起的扫描。
在wireshark中筛选,筛选条件为ARP协议,可以看到,一共找了四次,who has 172.31.4.188?tell172.31.4.178
从而可得知一共由四次扫描。
第一次扫描在5和6之后,紧接着又是一次arp,第一个和第二次之间并没有数据包。所以第一次扫描的目的仅仅是确认主机活跃,所用的命令应该是nmap -sP
接下来使用筛选条件tcp.port == 57738 and tcp.flags.syn == 1 and tcp.flags.ack == 0
进行筛选,表示tcp 端口 57738 发送 tcp 请求但无回应。通过wireshark过滤出来的数据包可知,此次扫描基本囊括了靶机上的所有协议和服务,所以猜测是进行了namp -O
扫描靶机上安装的操作系统
第三次扫描大致的往返包是 12W,大致扫描了 6W 个端口。nmap 默认只能扫描 1000 个端口,因此可以猜测第三次扫描应该是用命令nmap -sS
人为指定端口数量
接下来使用筛选条件tcp.port == 23
过滤数据
发现攻击机对靶机进行 4 次扫描过程。在第前三次扫描都只是建立了连接就结束了,但在第四次扫描的时候出现了 telnet 连接,所以猜测第四次 nmap 扫描使用了命令nmap -sV
来探测靶机上开放的网络服务。
接下来使用筛选条件tcp.flags.syn == 1 and tcp.flags.ack == 1
可以得到端口有:21、22、23、25、53、80、139、445、3306、5432、8009、8180
确定操作系统,首先安装p0f。在kali终端输入sudo apt-get install p0f
安装p0f工具,输入命令sudo p0f -r listen.pcap
得到如下检测结果
可知系统为 Linux 2.6.x
三、学习中遇到的问题及解决
问题一:在kali虚拟机中安装p0f时出现问题,无法安装成功,
原因是没有更新APT库。
问题二:一开始kali虚拟机无法联网,在虚拟机的网络适配器中将特定虚拟网络改为VMnet0即可。
三、学习感想和体会
在网络协议分析实践中发现了自己对于IP地址与端口扫描的分析中还有不足,在以后的学习中应该多查找资料。