0x01
前言
本文章通过动手数据包分析还原网络数据产生现场,通过多种典型电子取证分析的工具的使用来进行溯源分析,通过本次实践促进小伙伴们提高网络安全意识
本文所用流量包来自开源组织Honeynet
0x02
在动手操作之前先给小伙伴们提出以下几个问题:
- 数据包中涉及哪些系统(以及ip地址)?
- 请描述你可以从数据包中得出的与攻击机相关的信息
- 在数据包里有多少tcp 会话?
- 攻击持续了多长时间
- 被攻击的操作系统是什么?什么服务被攻击了?利用的是什么漏洞?
- 请简要描述一下攻击者在整个攻击流程中的攻击行为
- 哪个具体的漏洞被用来发动攻击?
- 你认为受到攻击的靶机会是蜜罐吗?请给出你的理由
- 你认为这是手动的攻击行为还是自动化的攻击行为?
涉及到的工具有: - 关于wireshark
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。 - 关于p0f
p0f是一款被动探测工具,能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的情况下也没有问题。目前最新版本为3.09b。同时p0f在网络分析方面功能强大,可以用它来分析NAT、负载均衡、应用代理等。p0f是万能的被动操作系统指纹工具。p0f对于网络攻击非常有用,它利用SYN数据包实现操作系统被动检测技术,能够正确地识别目标系统类型。和其他扫描软件不同,它不向目标系统发送任何的数据,只是被动地接受来自目标系统的数据进行分析。因此,一个很大的优点是:几乎无法被检测到,而且p0f是专门系统识别工具,其指纹数据库非常详尽,更新也比较快,特别适合于安装在网关中。 - 关于geoip
可以识别互联网用户的地点位置与其他特征,应用范围广泛。、 - tshark
wireshark命令行工具 - capinfos
wireshark套件中的一个工具软件,它的作用是输出文件的信息 capinfos支持所有wireshark 支持的文件格式
0x03
数据包放在kali桌面,打开terminal后输入
cd Desktop
ls
查看是否列出attack-trace.pcap
接下来我们首先用tshark来进行操作
使用tshark,可能将会把数据包中涉及的ip主机列出来。在将会给我们关于回答第一个问题的线索。
直接在terminal输入
tshark –r attack-trace.pcap –z ip_hosts,tree_qn
可以看到回显里出来的就是两台host
Ip分别是
98.114.205.102
192.150.11.111
只有两台主机在数据包中,那么哪一台时攻击机,哪一台是靶机呢?我们先把这个问题放着,后面再解答
接下来我们使用p0f来探测下着两台主机分别用的是什么操作系统
在terminal中输入
P0f –s attack-trace.pcap即可
可以知道,两台主机分别与操作系统的对应情况是:
192.150.11.111 linux2.4/2.6
98.114.205.10 windows xp/2k
那么第一个问题就解决了。另外一种解决办法就是用wireshark来操作。我们接下来试试
直接选中桌面的数据包右键使用wireshark打开
打开后界面如图
选中statics—》endpoints,切换到ipv4选项卡
数据包涉及的两台主机就可以看到了
接下来看看第二个问题
- 述你可以从数据包中得出的与攻击机相关的信息
要回答这个题目,我们得先知道哪一台机器是攻击机。
我们还是先用tshark
输入tshark –r attack-trace.pcap –Y “tcp.flags==0x02” -n
前两个会话足够我们判断攻击机和靶机了。
98.114.205.102在tcp445端口与192.150.11.111建立tcp会话。这一个端口是著名的“漏洞”端口。至少,它是蠕虫的攻击向量之一。
所以,我们可以判断出来98.114.205.102是攻击机,而192.150.11.111是靶机。
如果不放心的话我们可以使用snort来验证
首先需要安装snort
接着输入sudo snort –q –A console –c /etc/snort/snort.conf –f attack-trace.pcap
由回显结果,确实证明了98.114.205.102是攻击机
确定攻击机的ip之后,我们来针对ip做些工作
打开geoip.com输入Ip即可查找
我们可以看到他是有Verizon(类似于中国移动等运营商)提供互联网介入服务的
我们还可以使用nslookup来看看
‘pool’在反向DNS中意味着这个ip是由运营商动态分配的
接下来我们看看第三题
2. 在数据包里由多少tcp 会话?
输入tshark –r attack-trace.pcap –qnz conv,tcp
可以看到一共有5个tcp会话
或者我们也可以使用wireshark进行判断
来到wireshark的界面,点击上方工具栏的”statistics”conversations切换到TCP选项卡
可以看到一共是5个tcp会话
来到问题4
3. 攻击持续了多长时间
我们使用capinfos进行判断
输入capinfos attack-trace.pcap
可以看到攻击持续了16s
接下来看看第5个问题
5.被攻击的操作系统是什么?什么服务被攻击了?利用的是什么漏洞?
被攻击的操作系统之前说明了是windows xp
这个题目是在2010年1月份出的,但是445端口涉及的最大的漏洞是MS04-011。
上网搜索该漏洞相关的资料可以回答:
MS04-011:Microsoft Windows LSA是本地安全授权服务(LSASRV.DLL)。LSASS DCE/RPC末端导出的Microsoft活动目录服务存在一个缓冲区溢出,远程攻击者可以利用这个漏洞以SYSTEM权限在系统上执行任意指令。
接下来我们看看第6题
6.请简要描述一下攻击者在整个攻击流程中的攻击行为
首先根据之前的分析,第一步当然是侦查445端口
接下来我们定位到15—28的数据
此时开始尝试攻击存在漏洞的主机
首先连接到共享于受害者和请求方的IPC$,RPC over SMB (LSARPC)
跟踪tcp流可以看到具体情况
接下来开始攻击漏洞
我们定位到33帧
现在,受害者拥有了一个新的tcp套接字,在1957端口进行监听,同时带着一个命令行。因此攻击者将会继续连接这个端口,给受害者发送相应的命令来下载恶意软件。
在之后的数据里,比如第46帧,跟踪tcp流可以看到发送的命令
接下来受害者将会给攻击者初始化一个FTP连接,然后尝试下载一个名为ssms.exe的文件
关于这一点,我们可以在第52帧跟踪tcp流看到
接下来攻击者将会继续与受害者在已经公开的端口连接
恶意软件下载后,将会在受害者主机上运行
定位到69帧,跟踪tcp流,可以看到恶意软件是一个windows pe可执行文件
我们可以从中很容易看到MZ,PE的特有的值
所以总结下攻击流程:
扫描445端口
利用LSASS漏洞进行攻击
绑定shell,并且通过本地windows ftp客户端发送命令给受害者主机强制恢复恶意软件
通过FTP发送恶意文件
强制在受害者的主机上执行恶意文件
7.哪个具体的漏洞被用来发动攻击?
CVE-2003-053(MS04-011)
Microsoft Windows LSA是本地安全授权服务(LSASRV.DLL)。
LSASS DCE/RPC末端导出的Microsoft活动目录服务存在一个缓冲区溢出,远程攻击者可以利用这个漏洞以SYSTEM权限在系统上执行任意指令。
一些活动目录服务在Windows目录中在"debug"子目录里生成调试日志文件,在LSASRV.DLL实现的记录函数写信息条目到日志文件中,这里的vsprintf()函数用于建立日志条目。由于对提供给这个函数的字符串参数缺少正确的边界缓冲区检查,超长字符串可导致缓冲区溢出。部分RPC函数接收此字符串作为参数并尝试写调试日志文件,利用这些RPC函数,可能以SYSTEM权限在系统上执行任意指令。
8.你认为受到攻击的靶机会是蜜罐吗?请给出你的理由
靶机是蜜罐。原因如下:
1.靶机在攻击中会连接至攻击者的FTP服务器甚至会发送0.0.0.0作为ip地址
2.在攻击者连接到shell以后,靶机立刻发送了0x0a(’\n’)字节,这不是正常的cmd.exe会做出的行为,本应该是发送一个标识“Microsoft Windows XP[version 5.1.2600]”(如果在shell发送一些信息的时候shell没有足够的时间发送它的标识,那么将会发送这个信息)
- 你认为这是手动的攻击行为还是自动化的攻击行为?
这是自动化的攻击行为。
原因如下:
1.攻击的对象为容易收到恶意软件感染的windows xp/2000
2.此次涉及的恶意软件适用于攻击这个漏洞
3.攻击持续的时间远比手动攻击要快