20211911 2021-2022-2 《网络攻防实践》实践三报告

1.实验内容

网络嗅探

--定义:网络嗅探是一种黑客常用的窃听技术,利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。
--网络嗅探器:实现网络嗅探技术的工具称为网络嗅探器。嗅探器捕获的数据报文是经过封包处理之后的二进制数据,因此通常会结合网络协议分析技术来解析嗅探到的网络数据,这样才能恢复出TCP/IP协议栈上各层网络协议的内容,以及事件发送的应用层信息。
--网络嗅探器的原理和实现
--以太网工作原理:以太网采用了CSMA/CD技术,由于使用了广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。网卡是网络中主机接收发送数据的硬件设备。网卡完成收发数据包的工作。网卡对于数据的接收有四种模式:
--广播模式:该模式下的网卡能够接收网络中的广播数据。
--组播模式:该模式下的网卡能够接收组播数据。
--直接模式:只有匹配目的MAC地址的。网卡才能接收该数据。
--混杂模式:无论其目的MAC地址是什么,网卡都能够接收一切监听到的数据。
--网络监听的原理:
--利用以太网的特性把网卡置为混杂模式状态的工具,一旦网卡设置为这种模式,它就能接收经过它的每一个信息包。
--共享式网络嗅探:使用集线器连接,集线器上任意一台主机都能够嗅探整个集线器上的全部网络流量。
--交互式网络嗅探:通过MAC地址映射表来发送数据。通常有以下三种方式实现嗅探:
--MAC地址泛洪攻击
MAC欺骗
ARP欺骗
--网络嗅探器软件
--类UNIX平台网络嗅探器软件
--libpcap抓包开发库:类UNIX平台上基于内核态BPF向应用程序提供的标准抓包开发库。
--tcpdump嗅探器软件:最老的也是最通用的嗅探器程序。是通用的命令行网络嗅探与数据包分析程序,允许用户能够从主机所在网络上截取和显示特定的TCP/IP数据包。善用BPF过滤器规则也是利用tcpdump进行深入网络数据包与分析的关键所在。
--wireshark嗅探器软件:是当前类UNIX平台下最好的基于图形界面的嗅探器软件。可以捕获网络数据包,并进行详细的协议分析。
--Windows平台上有类UNIX平台上对应的移植版本,此外还有snifferPro等。
--网络嗅探的检测与防范
--检测:网络嗅探是一种被动攻击手段,检测困难。可以通过探测网卡是否处于混杂模式来进行检测;可通过构建MAC地址不合法但是IP地址有效的ICMP Echo请求进行测试网卡是否处于混杂状态。Windows平台,mac地址前8位是否为0xff。
--防范措施:使用安全的网络拓扑;用静态ARP和“MAC-端口映射表”;重视网络安全中集中位置点的安全防范;避免使用明文传输口令或敏感信息的网络协议。

网络协议分析

--定义:网络协议分析是网络嗅探器进一步解析与理解捕获数据包必须的技术手段,是指对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
--原理:网络协议分析需要从底向上逐层解析网络协议,同时进行IP分片包以及TCP会话的重组,需要解析与保存各个网络层次上的所有包头字段信息,以及最高层的应用层数据,并提供给用户以了解网络数据包的全方位信息。
数据包的解包过程图示:

--技术实现:在开源的软件如Tcpdump、Wireshark和Snort中都有相应源码实现。
--网络协议分析工具:Wireshark
--过滤源ip、目的ip:在wireshark的过滤规则框Filter中输入过滤条件。例如:查找源/目的地址为192.168.200.2的包 ip.src/dst192.168.200.2
--端口过滤:
把源端口和目的端口为80的包都过滤出来:tcp.port
80
只过滤目的端口为80的包:tcp.dstport80
只过滤源端口为80的包:tcp.srcport
80
协议过滤:在Filter框中直接输入协议名即可
--http模式过滤:
过滤get包:http.request.method"GET"
过滤post包:http.request.method
"POST"
可以使用and、or、not连接多个条件

2.实验过程

(1)使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?

先在kail上访问www.tianya.cn网站

在terminal运行命令 sudo tcpdump src 192.168.200.3 and tcp dst port 80 ,其中 src 和 dst 是确定传输方向的关键字,指明ip包中源地址是 192.168.200.3 ,表示只捕获80端口的TCP协议数据包,监听192.168.200.3的http通信。


成功得到浏览器访问的Web服务器的IP地址 124.225.206.22 、 124.225.135.230 、 124.225.214.206 、 124.225.214.214。
通过 nslookup tianya.cn 命令查看www.tianya.cn对应的IP地址。

查看相关资料,发现还可以用命令 tcpdump host tianya.cn 、 tcpdump -nn '(tcp[tcpflags] & tcp-syn !=0 and tcp[tcpflags] & tcp-ack!=0) and (host 192.168.0.11)' 等实现。其中 后者中的-nn 指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示, (tcp[tcpflags] & tcp-syn !=0 and tcp[tcpflags] & tcp-ack!=0) 是同时抓取带有SYN和ACK的数据包。

(2)使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:

你所登录的BBS服务器的IP地址与端口各是什么?
TELNET协议是如何向服务器传送你输入的用户名及登录口令?
如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
打开wireshark
以 bbs.fudan.edu.cn 为例,在命令行输入 telnet bbs.fudan.edu.cn 进入论坛

发现所登录的BBS服务器的IP为 202.120.225.9 ,然后输入 new 进行注册,再重新进入
在wireshark的过滤器直接输入 telnet ,即可过滤显示telnet相关的数据包,通过查看wireshark里面可知其端口号为23

可以发现这里传递用户名和密码时,是一个字符一个字符传递的。





可以看到传递密码是用明文传输的,很容易被获取,可知telnet是明文传输非常的不安全。






也可以通过追踪TCP流可以看到用户名和密码

telnet协议是如何向服务器传送你输入的用户名及登录口令的?
Telnet是一个简单的远程终端协议,Telnet服务是建立在tcp基础之上的
终端用户通过键盘输入的数据传给操作系统内核的终端驱动进程,由终端驱动进程再将数据传给Telnet客户进程,Telnet客户进程把收到的数据传送TCP,由TCP在客户端和服务器端建立TCP连接,数据就通过TCP连接送到了服务器端,服务器的TCP层将收到的数据送到相应的应用层Telnet服务器进程。

(3)取证分析实践,解码网络扫描器(listen.cap)

攻击主机的IP地址是什么?

网络扫描的目标IP地址是什么?

本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?

你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。

在蜜罐主机上哪些端口被发现是开放的?

攻击主机的操作系统是什么?
将listen.pcap放入kali,并且配置snort


使用snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap 可以看到攻击者的IP地址是172.31.4.178,扫描的目标IP地址是172.31.4.188,是用nmap工具进行扫描的

通过Wireshark打开listen.pcap文件,在过滤器内输入arp,可以看到共进行4次nmap扫描

可以看到攻击机第一次扫描和第二次扫描间没有数据包,则第一次扫描是探测目标IP是否活跃,对应的指令为nmap -sP

再看第二次扫描的末尾数据包,发现有大量的TCP协议、ICMP协议、UDP协议数据,并使用了大量构造的标志位,以触发不同的响应包,从而判断是对目标主机的操作系统的探测,对应的指令为nmap -O


第三次扫描ARP后均是TCP协议数据包,并且数据量庞大,可以看到在数据包中存在大量SYN请求包,对每个端口扫描,对应的指令为== nmap -sS -p 1-65535


第四次扫描ARP后有TCP协议数据包,还有HTTP、TELNET、SMB应用层协议数据包,这是为了探测靶机的网络服务,对应的指令为namp -sV



在过滤器内输入tcp.flags.syn == 1 and tcp.flags.ack == 1,可以看到目标主机的开放端口有:21 22 23 25 53 80 139 445 3306 3632 5432 8009 8180

在Kali终端输入sudo apt-get install p0f安装p0f


再输入p0f -r listen.pcap进行探测,发现版本是Linux 2.6.X

3.学习中遇到的问题及解决

  • 问题1:从实验室到宿舍之间移动后,每次网络都ping不通
  • 问题1解决方案:重置网络,重新配置即可解决
  • 问题2:每次重启之后,nat网络不服务
  • 问题2解决方案:主机win+r输入services.msc,找到vmare nat服务,打开即可

4.学习感悟、思考等)

--本周学习了tcpdump的一些命令,还有wireshark的过滤等功能全部实践下来,对wireshark还是不够熟悉,其中使用nmap进行网络服务类型探查时wireshark抓包的分析还是不很清楚。还要多加努力。

参考资料

  • 网络信息对抗第三章网络嗅探与协议分析
  • Linux tcpdump命令详解
  • tcpdump参数解析及使用详解
  • Telnet协议分析
  • Telnet百度百科
  • Wireshark 如何捕获网络流量数据包
  • linux的p0f检测,分析抓包信息
  • p0f - 被动探测操作系统工具
  • 端口对照表
posted @ 2022-04-01 20:15  两面包+芝士  阅读(103)  评论(0编辑  收藏  举报