20199112 2019-2020-2 《网络攻防实践》第 4 周作业

实践内容及过程

网络嗅探技术定义

网络嗅探(Sniff)是一种黑客常用的窃听技术,它利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。

网络嗅探的危害和作用

危害:

  • 被动地、静默地嗅探数据,窃取机密信息;
  • 嗅探底层网络协议信息,为发起进一步攻击收集信息;
  • 为攻击者进行中间人攻击提供帮助;
  • 隐蔽性强,难以被发现。

应用价值:

  • 网络管理员可以找出网络中的潜在问题,并加以解决;
  • 为网络入侵检测系统提供底层数据来源基础,捕获原始网络传输报文,由检测系统发现入侵迹象;
  • 开发网络应用的程序员,可用于实际捕获与分析所开发应用程序的网络报文收发情况,并对之进行分析。

网络嗅探技术与工具分类

按照所监听的链路层网络分类 按照实现形式分类
以太网、Wi-Fi 软件嗅探器、硬件嗅探器

以太网

以太网是一种计算机局域网技术。IEEE 组织的 IEEE 802.3 标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI 和 ARCNET。

类 Unix 平台网络嗅探器软件

(1)libpcap 抓包开发库
libpcap 是类 Unix 平台上基于内核态 BPF 向应用程序提供的标准抓包开发库。

(2)tcpdump 嗅探器软件
tcpdump 是最老的也是最通用的嗅探器程序。它提供命令行模式,支持使用 BFP 语法的过滤条件进行网络上数据包的选择性嗅探,然后进行 TCP/IP 协议栈的协议分析,并以每行一个数据包捕获内容的方式呈现嗅探结果。

(3)wireshark 嗅探器软件
wireshark 是当前类 Unix 平台下最好的基于图形界面的嗅探器软件。

Tcpdump 嗅探器软件

TCPDump 可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来帮助你去掉无用的信息。

网络嗅探的检测

  • 在同一主机上,可以检查网卡是否运行在混杂模式下,来发现正在进行监听的嗅探器;
  • 基于混杂模式下操作系统和协议栈的不同特性,来检测出网络中其他主机上的嗅探器。

网络嗅探器的防范措施

  • 采用安全的网络拓扑,尽量采用交换式网络,并通过在交换机上设置 VLAN 等技术手段,对网络进行合理的分段,从而尽量使得网络包只被转发到目的主机上;
  • 用静态 ARP 或者 MAC-端口 映射表代替动态机制;
  • 重视网络数据传输的集中位置点的安全防范,如网关、路由器、交换机等;
  • 避免使用明文传输口令或敏感信息的网络协议,而使用加密及安全增强的网络协议进行替代。

实践:Tcpdump

使用 Tcpdump 对在本机上访问 www.tianya.cn 网站过程进行嗅探,回答问题:浏览器将访问多少个 Web 服务器?它们的 IP 地址是什么?

打开终端,输入以下命令:

sudo tcpdump -nn '(tcp[tcpflags] & tcp-syn !=0 and tcp[tcpflags] & tcp-ack!=0) and (host 192.168.1.12)'

其中 192.168.1.12 是本机的 IP 地址,上述命令抓取 SYN 和 ACK 不为 0 的数据包,关于二者的含义详见参考文献。

输入命令后,浏览器访问 www.tianya.cn ,终端有如下输出:

可知访问的 Web 服务器有:

IP 位置
124.225.65.154 海南省海口市 电信
124.225.214.206 海南省海口市 电信
106.120.159.126 北京市 电信
124.225.135.230 海南省三亚市 电信
103.79.25.53 北京市海淀区 BGP多线
218.77.130.200 海南省海口市 电信
124.225.214.214 海南省海口市 电信

网络协议分析技术原理

  1. 首先网络嗅探得到的原始数据是在链路层传输的二进制数据包,大多数情况是以太网数据帧;
  2. 对以太网数据帧进行结构分析,定位出帧头各字段结构,根据帧头的 type 字段确定网络层协议类型,大多数情况是 IP 协议,并提取数据帧中包含的网络层数据内容;
  3. 进一步对 IP 数据包进行分析,如果设置了分位片,则进行 IP 分片重组,根据 IP 协议头中的 Protocol 字段,确定传输层协议类型,通常情况是 TCP 或 UDP,并提取 IP 数据包中的传输层数据内容;
  4. 继续根据 TCP 或 UDP 的目标端口确定具体的应用层协议,如 http、ftp、telnet 等协议数据包,并对 TCP 或 UDP 数据包进行拼接重组,得到应用层特定协议的应用交互内容;
  5. 依据相应的应用层协议对数据进行整合恢复,得到实际传输的数据。

Wireshark

Wireshark(前称 Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark 使用 WinPCAP 作为接口,直接与网卡进行数据报文交换。在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal 的出现改变了这一切。在 GNUGPL 通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal 是全世界最广泛的网络封包分析软件之一。

实践:Wireshark

使用 Wireshark 软件对在本机上以 telnet 方式登录 BBS 进行嗅探与协议分析,回答:

  1. 你所登录的 BBS 服务器的 IP 地址与端口各是什么?
  2. telnet 协议是如何向服务器传送你输入的用户名及登录口令的?
  3. 如何利用 Wireshark 分析嗅探的数据包,并从中获取你的登录名及登录口令?

打开 Wireshark,开启捕获。

打开终端,输入以下命令访问复旦大学 BBS:

telnet bbs.fudan.edu.cn


抓包结果:

由上可知,服务器 IP 为 202.120.225.9,端口为 23

Telnet 使用明文传输用户名和密码。

在终端中,使用“guest”用户登录 BBS。

在 Wireshark 的过滤规则中输入 telnet,可查看所有使用该协议的数据包,如下图,依次可找到 Data 项中刚才登录的 “guest” 用户名字符串(单字符传送):



其他字符数据截图省略。

取证分析实践:解码网络扫描

下载老师提供的 pcap 包,使用 Wireshark 打开,依次打开 Statistics - Conversations

可知,攻击机 IP:172.31.4.178,网络扫描的目标 IP:172.31.4.188

打开 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 探测活跃主机。

接下来筛选 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(23 为 telnet 端口)过滤文件数据。发现攻击机对靶机进行 4 次扫描过程。不难看出在第一、二、三次扫描都只是建立了连接就结束了,但在第四次扫描的时候出现了 telnet 连接;如果使用命令 tcp.port == 22(22 为 ssh 端口)同样可知第一、二、三次都是建立连接,第四次出现了 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

攻防对抗实践

kali 攻击机 IP:192.168.237.128
靶机 IP:192.168.119.128
靶机监控:sudo tcpdump -i eth0 -w dump.pcap
攻击机攻击:sudo nmap -sP 192.168.119.128
靶机查看日志:sudo tcpdump -r dump.pcap


上图中“who-has”字段内容表示靶机被探测了主机活跃状态。

学习中遇到的问题及解决

Q:系统没有 telnet
A:通过 brew install telnet 安装

Q:由于网络原因,包管理工具 Homebrew 无法正常安装
A:换源安装:Homebrew 国内一步安装

Q:telnet 访问复旦大学 BBS 出现乱码
A:终端设置中选择中文编码

Q:博客园上传的图片有时候无法正常显示
A:可能是图床服务器出现了问题,考虑更换图床:https://sm.ms

实践总结

本次实践内容是有一定难度的,需要很多计算机网络方面的专业知识,否则很难去理解每一步的含义。

参考资料

原文地址:https://www.cnblogs.com/kidling/p/12531741.html