目录
- 1. 实验内容
- 1.1 实验目标
- 2. 实验过程
- 2.1 主动攻击实践
- 2.1.1 确定攻击漏洞并配置相应实验环境
- 2.1.2 攻击过程
- 2.2 针对浏览器的攻击
- 2.2.1 确定攻击漏洞
- 2.2.2 攻击过程
- 2.3 针对客户端的攻击
- 2.3.1 确定攻击漏洞
- 2.3.2 攻击过程
- 2.4 成功应用辅助模块
- 2.4.1 选择想要使用的辅助模块
- 3. 问题及解决方案
- 4. 学习感悟、思考等
- 5. 参考资料
1. 实验内容
1.1 实验目标
(1)一个主动攻击实践,尽量使用最新的类似漏洞
(2) 一个针对浏览器的攻击,尽量使用最新的类似漏洞
(3) 一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞
(4)成功应用任何一个辅助模块
2. 实验过程
2.1 主动攻击实践
2.1.1 确定攻击漏洞并配置相应实验环境
(1)首先选择一个较易实现攻击目标的系统漏洞,这里我选择“ms08_067”漏洞。
- 漏洞原理:
- MS08-067是一个远程代码执行漏洞,出现在微软的NetAPI32.dll库中,该库用于支持网络共享和网络请求。它的存在使攻击者有可能在未经授权的情况下,在远程目标系统上执行任意代码。该漏洞的关键在于Windows Server服务处理RPC请求的方式。RPC,或称为远程过程调用,是一种允许在一台计算机上运行的程序调用另一台计算机上的程序的通信协议。在这种情况下,NetAPI32.dll在处理RPC请求时存在一个问题,即在处理特定的RPC请求时,没有正确地检查路径长度。这就导致了可能的堆栈溢出。
- 实质上,当发送到Server服务的RPC请求包含超出预定长度的特殊制造的路径时,系统会分配不足的内存空间,导致溢出。这意味着如果攻击者能够发送构造良好的RPC请求,他们就可能有机会执行任意代码。这就是MS08-067的基本原理。它是一个经典的缓冲区溢出攻击,攻击者利用系统处理输入的错误,插入并执行他们自己的代码。
- 因此,一个保护措施就是确保所有的输入都经过适当的验证和检查,以防止未经处理的输入导致系统的不安全状态。这个漏洞在Windows NT、2000、XP、2003、Vista、和Windows 7等操作系统版本中均存在。微软发布了安全公告和补丁(MS08-067)来解决这个问题。尽管该漏洞已经存在了多年并且有了补丁,但是仍有很多系统没有应用这个补丁,因此这个漏洞在网络安全领域仍然是个重要的议题。此外,这个漏洞也被用于构建著名的Conficker(或Downadup)蠕虫,该蠕虫在全球范围内造成了广泛的感染。
(2)实验环境配置。我选择将kali作为攻击主机,将win7作为受攻击靶机。两虚拟机的ip地址如下:
可见,我的攻击主机IP地址为192.168.3.46,靶机IP地址为192.168.3.47.
2.1.2 攻击过程
(1)确认漏洞情况,输入以下指令来查看该漏洞是否存在
nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.3.47
(2)准备攻击,先进入msfconsole
(3)选择将要使用的漏洞模块
(4)设置好相应的载荷
(5)开始攻击
2.2 针对浏览器的攻击
2.2.1 确定攻击漏洞
(1)这里我选择较易实现攻击目标的Aurora漏洞
- 漏洞原理:
- Aurora 攻击中被广泛利用的一个关键漏洞是 CVE-2010-0249,这是一个针对 Microsoft Internet Explorer 的漏洞。CVE-2010-0249 是一个内存腐败漏洞,当 Internet Explorer 尝试访问之前已经删除的引用时就会触发。攻击者可以通过精心构造的网页来引诱用户访问,触发这个漏洞,从而在用户的电脑上执行任意代码。
- 具体来说,当一个网页对象被删除后,由于一个错误,浏览器可能仍然尝试访问该对象的一个方法,这会导致内存中的一个指针指向了一个无效或者已经被删除的对象。攻击者可以通过JavaScript来操纵这种行为,并在内存中插入恶意代码,从而实现在用户电脑上执行任意代码的目的。
2.2.2 攻击过程
(1)准备攻击,与上述方法类似,只需配置好载荷等设置即可
(2)开始攻击,我在第一步中得到了一个网址,只要靶机登录该地址,即可通过漏洞被主机攻击。
(3)攻击成功
2.3 针对客户端的攻击
2.3.1 确定攻击漏洞
(1)最容易实现的漏洞为栈溢出漏洞,较有代表性的为CVE-2018-4901
- 漏洞原理:
- CVE-2018-4901是Adobe Acrobat和Reader中的一个漏洞,Adobe是在2018年发布的安全公告中首次公开了这个漏洞。这个漏洞是由于软件没有正确处理特定类型的恶意输入,导致攻击者可以利用这个漏洞进行堆溢出攻击。
- 具体来说,当恶意代码输入到软件中时,由于软件没有正确处理这种输入,可能导致内存中的堆区域溢出。这就为攻击者提供了机会,攻击者可以利用这个溢出的堆区域插入他们自己的代码。如果攻击者的代码被执行,那么攻击者就可能获得与当前用户相同的权限,进一步控制受影响的系统。
2.3.2 攻击过程
(1)配置好载荷等相关设置
(2)成功生成了一个.pdf文件
(3)只要在靶机上运行此pdf文件,攻击即可成功。
2.4 成功应用辅助模块
2.4.1 选择想要使用的辅助模块
(1)查看模块
(2)选择一个以我学号结尾的模块,1006其实不错
(3)成功使用
3. 问题及解决方案
- 问题一:Metasploit服务启动问题。在实验中,我的Metasploit数据库服务未能正常启动,因此无法正常实验。
- 解决方法:我使用了“msfdbinit”指令来重置我的Metasploit数据库,成功解决了问题。
- 问题二:目标主机无法被成功攻击。
- 解决方法:在多次检查后发现问题可能出在防火墙上。关闭防火墙后,问题成功得到解决。
4. 学习感悟、思考等
- 在我深入研究网络安全领域的旅程中,今天我进行了一项名为“Metasploit攻击渗透实践”的实验。通过这次实验,我不仅提升了技术能力,更深刻地认识到了网络安全的重要性。
- Metasploit,作为一个广泛使用的安全漏洞探测和利用框架,为网络安全研究者和专业人员提供了强大的工具。在这次实验中,我使用Metasploit寻找和利用系统漏洞,模拟真实世界中的攻击者行为。这个过程让我深刻地理解了攻击者的工作流程,同时也让我更明白保护系统安全的重要性。
我在实验中体验到了几个主要的阶段:信息收集,漏洞扫描,攻击和后期利用。在信息收集阶段,我学习到了如何收集关于目标系统的信息,包括网络地址、操作系统和服务等。这个过程让我意识到,我们的许多在线行为可能会泄露我们的系统信息,这些信息可能被不怀好意的人利用。 - 在漏洞扫描阶段,我使用Metasploit中的模块来扫描目标系统,寻找潜在的漏洞。我惊讶地发现,即使是看似安全的系统,也可能存在一些未知的漏洞。这些漏洞可能是软件编程错误,也可能是配置问题,甚至可能是系统设计的缺陷。我意识到,无论我们的系统多么先进,都可能存在漏洞。
当我找到漏洞后,我试图利用它来攻击系统。在这个过程中,我使用了一些复杂的工具和技术,包括缓冲区溢出攻击和社会工程学等。这让我对攻击者的智慧和技巧有了深刻的理解,也让我更加认识到防范这些攻击的难度。 - 在攻击成功后,我进行了后期利用。我试图在系统中建立持久性的控制,从而获取更多的权限和信息。这个过程让我理解了,攻击的目的不仅仅是破坏,更多的可能是获取信息和控制权。
- 通过这次Metasploit攻击渗透实践,我不仅提升了自己的技术能力,更重要的是,我对网络安全有了更深的理解。我明白了,网络安全不仅仅是技术问题,更是一个涉及到每个人隐私和权益的社会问题。作为一名网络安全研究者,我将更加致力于保护网络安全,防止信息的泄露和滥用。
- 回顾这次实验,我感到非常有收获。我深刻地理解了攻击者的行为模式,也更加明白了如何保护系统安全。我将继续学习和研究,以提升我的技术能力,更好地服务社会。
- 这次实验让我对Metasploit有了深入的理解,也让我对网络安全有了更深的感悟。我期待在未来能够利用我所学的知识和技能,为保护网络安全做出贡献。
5. 参考资料