20199113 2019-2020-2 《网络攻防实践》第四周作业
姚泽 人气:120199113 2019-2020-2 《网络攻防实践》第四次作业
1.实践内容
1.1 网络嗅探
网络嗅探概述: 网络嗅探是指利用计算机的网络接口截获其它计算机的数据报文的一种手段。攻击者使用网络嗅探截获传输的数据,防御者使用网络嗅探捕获与分析网络的流量信息,以便找出所关心网络中潜在的问题,加以解决。嗅探捕获的数据报文是经过封包处理之后二进制数据,结合网络协议分析技术恢复出TCP/IP协议栈上各层网络协议的内容,以及实际发送的应用层信息。
网络嗅探分类:
以监听的数据链路层网络进行分类:以太网和WiFi是目前网络嗅探器的主要监听对象。
以实现的形式分类:软件与硬件。
网络嗅探技术原理与实现:
以太网工作原理介绍:IEEE组织的IEEE 802.3标准制定了以太网的技术标准,以太网中的数据以帧为单位,将上层的数据包装配上帧头和帧尾,通过MAC地址匹配数据包的目标。当网卡处于混杂模式下,能够接受一切通过它连接的以太网络的数据帧。
共享式网络和交换式网络:共享式以太网的典型代表是使用10Base2/10Base5的总线型网络和以集线器为核心的星型网络。使用集线器的以太网中,集线器将很多以太网设备集中到一台中心设备上,这些设备都连接到集线器中的同一物理总线结构中。从本质上讲,以集线器为核心的以太网同原先的总线型以太网无根本区别。在交换式以太网中,交换机根据收到的数据帧中的MAC地址决定数据帧应发向交换机的哪个端口。因为端口间的帧传输彼此屏蔽,因此节点就不担心自己发送的帧在通过交换机时是否会与其他节点发送的帧产生冲突
网络嗅探技术实现: 在Windows平台上,通过内核态的NPF和与libpcap兼容的抓包接口WinPcap。
在类UNIX平台上,主要通过内核态的BPF和用户态的libpcap抓包工具库实现。
网络嗅探软件:UNIX平台:libpcap,tcpdump,wireshark
Windows平台:tcpdump
1.2 网络协议分析
网络协议分析技术原理:对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
网络协议分析技术步骤:
1.网络嗅探得到的原始数据是在链路层传输的二进制数据包,大多数情况下是以太网数据帧;
2.对以太网数据帧进行结构分析,定位出帧头各字段结构,根据帧头的Type字段确定网络层协议类型,大多数情况下是IP协议(0800), 并提取数据帧中包含的网络层数据
3.进一步对IP数据包进行分析,如果设置了分片位,则进行IP分片重组,根据IP协议头中的Protocol字段,确定传输层协议类型。
4.根据TCP或UDP的目标端口确定具体的应用层协议,并对TCP或者UDP数据包进行拼接重组,得到应用层特定协议的应用交互内容。
5.依据相应的应用层协议对数据进行整合恢复,得到实际传输的数据。
2.实践过程
任务1:利用tcpdump对在本机上访问www.tianya.cn网站过程进行嗅探。在访问网站首页时,浏览器将访问多少个web服务器,IP地址是什么?
先确定虚拟机的ip,然后在terminal运行命令sudo tcpdump src 192.168.200.8 and tcp dst port 80
由图可以看到,系统主要访问了
221.182.218.244
221.182.218.238
221.182.218.229
39.156.66.179
221.182.218.151
52.94.234.174
通过nslookup tianya.cn命令查看www.tianya.cn对应的IP地址,验证我们tcpdump的正确性。
任务2 动手实践Wireshark
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
- 你所登录的BBS服务器的IP地址与端口各是什么?
- TELNET协议是如何向服务器传送你输入的用户名及登录口令?
- 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令
Telnet是位于OSI模型的第7层--应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证,是Internet远程登陆服务的标准协议。Telnet是一个明文传送协议,它将用户的所有内容,包括用户名和密码都明文在互联网上传送,具有一定的安全隐患,所以我们才能利用网络协议分析得到用户名、口令等私密信息。
首先打开在”启动或关闭Windows功能“中打开telnet。
打开cmd输入命令行telnet bbs.fudan.edu.cn
进入界面如下图,发现其IP为202.120.225.9
,然后注册再重新登录,通过查看wireshark里面可知其端口号为23
TELNET协议在传输用户名和口令的时候,通过明文进行传输在上有图和下图中部可以看到用户名guest,密码为空
任务3 取证分析实践:解码网络扫描
- 攻击主机的IP地址是什么?
- 网络扫描的目标IP地址是什么?
- 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
- 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
- 在蜜罐主机上哪些端口被发现是开放的?
- 攻击主机的操作系统是什么?
下载云班课上分享的listen.pcap
,用wireshark打开待分析的二进制记录文件
1.攻击的IP地址是172.31.4.178
, 网络扫描的目标IP是172.31.4.188
。 下图可以看出数据流量主要出现在上述两者之间,二张图显示出172.31.4.178
为攻击方。
打开 kali 实验环境,安装 snort 工具,对上述 pcap 包进行入侵检测:sudo apt-get install snort给予所有权限:sudo chmod 777 /etc/snort/snort.conf进入 pcap 包所在目录后,执行:sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap
由此可见,攻击机使用 nmap 扫描目标网络。筛选 ARP 数据包,下图中第5、6、7、8号数据包之间没有额外的其他数据包,所以可以知道这是采用 namp -sP 探测活跃主机。
由于我们已经确定了这些扫描是由nmap所发起的,而nmap在发起端口扫描之前总是先通过Ping扫描
和针对80端口
的探测确定目标主机是否活跃。
通过过滤器搜索icmp
,可以定位ICMP协议对应的Ping扫描
,实现两次Ping扫描。
接下来筛选 tcp.port == 57738 and tcp.flags.syn == 1 and tcp.flags.ack == 0 ,表示tcp 端口 57738 发送 tcp 请求但无回应。此次扫描基本囊括了靶机上的所有协议和服务,所以猜测是进行了 namp -O扫描靶机上安装的操作系统。
扫描大致的往返包是 12W,大致扫描了 6W 个端口。由于 nmap 默认只能扫描 1000 个端口,因此可以猜测第三次扫描应该是用命令 nmap -sS 人为指定端口数量
筛选 tcp.port == 23,现攻击机对靶机进行 4 次扫描过程。第四次扫描的时候出现了 telnet 连接;如果使用命令 tcp.port == 22(22 为 ssh 端口)同样可知第1.2.3次都是建立连接,第四次出现了 ssh 连接,所以猜测第四次 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:sudo apt-get install p0f
使用以下命令探测:sudo p0f -r listen.pcap
由上图可知,系统为 Linux 2.6.x
任务4 攻防对战实践
攻击方用nmap扫描,防守方用tcpdump嗅探,用wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令。
- 攻击方IP为
192.168.124.128
,用metasploitable作为嗅探IP为172.16.245.128
。 - 在metasploitable上利用指令
tcpdump -i eth0 -w dump.pcap
监听并且保存文件为dump.pcap。 - 在kali主机上用nmap进行攻击,包括
-sP,-sV,-sS,-O
攻击。 - 利用
tcpdump -r dump.pcap
查看和分析,或者导出利用Wireshark进行分析查看
3.学习中遇到的问题及解决
安装p0f出现找不到包的问题,通过sudo apt-get update解决
4.实践总结
发现了自己有很多不懂得地方,接下来需要逐步学习。
加载全部内容