Hack The Box-Vaccine
Hack The Box-Vaccine
xxshhIntroduction
看完这篇博客,你会了解到 ftp 匿名登录、John the Ripper 爆破密码、sqlmap、升级临时 shell、ssh、GTFOBins等。
Write-up
User flag
nmap 扫描开放端口:
先从 ftp 入手,因为我们看到它允许匿名登录,而且有一个 backup.zip。
首先连接 ftp 服务器:
|
下载 backup.zip:
|
解压,发现需要密码:
之前介绍过 John the Ripper 工具,它可以破解多种加密算法生成的密码哈希,例如 DES、MD5、SHA、bcrypt、Windows LM/NTLM 哈希、ZIP 文件密码、PDF 文件密码等。
对于 ZIP 文件,需要使用 zip2john
工具提取哈希:
|
然后加载字典,对以上哈希值进行暴力破解:
|
查看 index.php,发现管理员密码:
浏览器访问 http://10.129.116.3 ,登录管理员账号:
这个功能一定是和数据库连接的:
接下来使用 SQLmap 测试是否存在 SQL 注入。注意这里我们是用管理员身份登录的,所以一定要带上 cookie:
|
结果是 search 参数容易受到 sql 注入的攻击:
接下来使用--os-shell
参数执行命令注入:
|
虽然通过 OS-shell 获得了命令行控制,但它只在当前会话有效,并且权限可能会受到限制。为了拥有更强的远程控制能力、绕过防火墙的能力和更持久的连接,我们还是像以前一样执行反弹 shell:
|
|
升级 shell,使其成为一个完全的交互式 shell。
|
找到 user flag:
Root flag
接下来进行权限提升。使用 sudo -l
查看当前用户的 sudo 权限,判断是否有潜在的提权漏洞。但是首先我们要找到当前用户的密码。
猜测网站目录下应该有明文密码。最终在 /var/www/html/dashboard.php 中找到了当前用户的密码:
shell 总是自动断开,由于目标主机的 22 端口处于开放状态,所以得到密码之后我们可以用 ssh 远程登录:
|
然后 sudo -l
:
当处于只有某些二进制文件可用的情况下时,如何获得 root 权限可以参考GTFOBins。
当前用户可以使用 vi
,查找相应的文档:
|
在此场景中,sudo
会使得 vi
编辑器以 root 身份运行,而 vi
中的 :!/bin/sh
命令又会启动一个新的 shell。因此,整个过程不会放弃 root 权限,攻击者可以利用这种方式获取到系统的 root 权限。因此我们执行:
|
因为当前用户的 sudo 权限仅限于 /bin/vi/etc/postgresql/11/main/pg_hba.conf
,所以这种方法不可行。文档中还有一种方法:
于是
|
在 vi
编辑器中按冒号执行以下命令:
|
按下回车后,输入以下命令:
|
成功获取 root 权限和 root flag:
Conclusion
这个靶场相对来说简单一些,整个过程中用到的知识,很多都是以前学习过的,但是我并没有完全掌握。应该以后用多了就熟能生巧了吧,希望是这样的哈哈哈。最大的收获是,了解了在只有某些二进制文件可用时的提权手段。继续坚持学吧,虽然不知道能坚持到什么时候。