1.实践内容
一、网络嗅探技术与工具分类:
1、按照监听的数据链路层网络进行分类:以太网和WiFi是目前网络嗅探器的主要监听对象。
2、按照实现的形式:软件与硬件。硬件速度快,但费用高。软件慢,免费
二、网络嗅探技术原理与实现。
以太网:即802.3协议,以太网采用了再拨侦听/冲突检测技术,避免共享链路上的通信冲突。
在数据链路层数据传播的单位是帧,网卡拥有一个48位的mac地址,帧头包括发送源的mac地址、目标的mac地址
混乱模式:网卡能够接受通过它连接共享通信媒介的数据帧,无论是否传给它。因此要设置为混乱模式。
共享式网络主要使用集线器(hub)连接,网络拓扑为总线方式物理上是广播的。交互式主要是使用交换机组件。
共享式与交互式原理
通过技术手段进行嗅探:
mac地址洪泛攻击:使得交换机进入失效模式。也就是开始类似集线器工作方式。
mac欺骗:将源mac地址伪造成目标地址的源mac地址,将数据包通过交换机发送出去,使用交换机不断更新mac地址-端口映射表,让交换机相信攻击者的mac地址就是目标主机的mac地址。
ARP欺骗:利用ip地址和mac地址转换的协议漏洞。
网络嗅探软件:
类UNIX平台软件:libpcap、tcpump、wireshark
windows平台软件:tcpump、wireshark
tcpdump 用法
tcpdump OPTION EXPRESSION
选项:
-i INTERFACE 指定网络接口
-w /FILE 将捕捉的数据报文信息保存于文件
-r /FILE 从指定文件读取抓取的数据包,常用于分析
-c # 指定抓取数据包数量
-n:将地址显示为数字格式,-nn表示地址、端口显示为数字格式
-v:显示详细信息,-vv表示更详细的信息
表达式:
表达式根据划分依据不同又分为三类:type、dir、proto
type:
host HOSTNAME 根据主机名过滤
net NETWORK 根据网络地址过滤
port PORT 根据端口
portrange RANGE 根据端口范围
dir:根据数据流向
src IP 依据源地址
dst IP 根据目标地址
proto:根据协议
ether
wlan
ip
arp
rarp
tcp
udp
注:tcpdump支持组合条件,可使用and、or、not逻辑关键字组合
例 1:
# tcpdump -i eth0 host 192.168.1.210 and 192.168.1.101
抓取192.168.1.210与192.168.1.101之间的通信数据包
例2:
# tcpdump -i eth0 host 192.168.1.210 or 192.168.1.101 port 8080 or 80
抓取192.168.1.210或192.168.1.101与其他主机且与8080或80端口相关的通信数据包
三、网络协议分析;
网络协议分析过程的步骤
网络协议分析工具:wireshark
2.实践过程
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地
址都是什么?
使用命令 sudo tcpdump src 192.168.92.2 and tcp dst port 80
可以看到系统访问了6个web服务器,ip地址分别为
221.182.218.238
120.223.244.245
203.208.40.56
221.182.218.229
221.182.218.220
221.182.218.244
通过nslookup tianya.cn命令查看www.tianya.cn对应的IP地址,验证我们tcpdump的正确性。
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
你所登录的BBS服务器的IP地址与端口各是什么?
TELNET协议是如何向服务器传送你输入的用户名及登录口令?
如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
Telnet是位于OSI模型的第7层--应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证,是
Internet远程登陆服务的标准协议。
Telnet是一个明文传送协议,它将用户的所有内容,包括用户名和密码都明文在互联网上传送,具有一定的安全隐患,所以我们才能利用网络协议分析得到用户名、口令等私密
信息。
首先打开在”启动或关闭Windows功能“中打开telnet。
如下,使用windows进行telnet登录清华大学水木年华BBS论坛,win+R打开运行,输入cmd,启动控制台,输入:telnet bbs.fudan.edu.cn
打开WireShark,筛选协议为telnet,开始抓包,然后注册再重新登录,通过查看wireshark里面可知其端口号为23
进入之后注册用户名与密码,然后登录即可,我们可以看到已经进入bbs论坛
然后选择分析TCP跟踪流,选择发送方和接收方,可以得到我用的用户名和登录口令
我们可以看到telnet是明文传输,是十分不安全的。
那么,telnet是如何传送用户名与密码的呢,我们可以看下telnet的登录过程。
使用Telnet协议进行远程登陆时需要满足以下条件:在本的计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机的Ip地址或域名;必须知道登录标识与口令。
Telnet远程登录服务分为以下4个过程:
1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;
2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式 传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包;
3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。
取证分析实践:解码网络扫描
下载老师提供的 pcap 包,使用 Wireshark 打开,依次打开 统计 - 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.92.2
靶机 IP:192.168.92.125
靶机监控:sudo tcpdump -i eth0 -w dump.pcap
攻击机攻击:sudo nmap -sP 192.168.92.2
靶机查看日志:sudo tcpdump -r dump.pcap
3.学习中遇到的问题及解决
-
问题1:安装snort出现下面问题
-
问题1解决方案:sudo apt-get update
sudo apt-get upgrade更新一下就好了
4.实践总结
这周的作业利用了大量的计算机网络知识,一边查询资料,一边学习吧。