Ichunqiu云境 —— Tsclient Writeup

发布者:Gcow安全团队
发布于:2022-12-12 16:20

0x1 Info

  • Tag:
    MSSQL,Privilege Escalation,Kerberos,域渗透,RDP
    Pasted image 20221211000924.png
    靶场地址:https://yunjing.ichunqiu.com/ranking/summary?id=BzMFNFpvUDU

    0x2 Recon

  1. Target external ip
    47.92.82.196

  2. nmap
    Pasted image 20221211000924.png

  3. MSSQL 弱口令爆破,爆破出有效凭据,权限为服务账户权限(MSSQLSERVER)
    sa:1qaz!QAZ

0x3 入口点 MSSQL - 172.22.8.18

  • 前言,该机器不在域内
  1. 直接MSSQL shell(这里做完了忘记截图了..)

  2. 提权,这里直接获取Clsid暴力怼potato(前面几个clsid是用不了的)
    \
    修改GetClsid.ps1,添加执行potato

    \
    Potato和GetClsid.ps1

    \
    执行GetClsid.ps1

    \
    获取到有效clsid以及命令执行结果

  3. 导出SAM,SYSTEM,Security

    \
    解出凭据,用administrator + psexec 139横向(外网没有开445)就能获取到 flag01
    administrator 2caf35bb4c5059a3d50599844e2b9b1f

  4. qwinsta和端口连接看到有机器rdp过来

  1. 这边使用administrator psexec后上msf(system权限),使用incognito模块,模拟至john(本人实测,只有msf的incognito能完成后续操作,f-secure lab等其他的模拟令牌工具没成功)

  2. 使用john的token执行 net use 看到 \\tsclient\C 共享

  3. 直接获取 \\tsclient\C 下面的 credential.txt,同时提示 hijack image (镜像劫持)
    xiaorang.lab\Aldrich:Ald@rLMWuy7Z!#

  • 快进,略过搭建代理过程
  1. CME 扫描 172.22.8.0/24,有三个机器提示密码过期了

  2. 测试一下 DC01 88端口是否开启(测是否域控),DC01为域控

  3. smbpasswd.py 远程修改一下过期密码,改成111qqq...

  4. ldapshell.py 验证,登录域成功

  5. CME 枚举 RDP,显示能登录进入 172.22.8.46(用CME官方的RDP模块不会扫出有效RDP凭据,这边自己写了一个基于xfreerdp的CME模块)
    XiaoliChan/CrackMapExec-Extension

0x4 域渗透 - 入口 - 172.22.8.46

  1. 登录进入,查看到 xiaorang.lab\Aldrich 不是这台机器的管理员,只是普通用户
  • 提权,两种方法
    \
    Priv-ESC1:镜像劫持提权(常规)
    \
    Get-ACL查看到任何用户都可以对注册表 "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\" 进行写入,创建操作

    \
    创建一个劫持magnify.exe(放大镜)的注册表,执行CMD.exe

    \
    锁定用户

    \
    点击放大镜

    \
    提权至system

    \
    Priv-ESC2:krbrelayup提权
    \
    域普通权限用户在域内机器,直接带走(非常规,推荐)

  1. 快进mimikatz,获取到当前机器的机器账户 win2016$

    1

    xiaorang.lab\WIN2016$ 4ba974f170ab0fe1a8a1eb0ed8f6fe1a

0x5 域渗透 - DC Takeover

  • 两种方法
  1. 观察 WIN2016$ 的组关系,发现处于 Domain Admins 组,直接使用 Dcsync 带走 DC01 (过程略)

  2. 约束委派(非常规)
    \
    Bloodhound收集域信息,分析,发现存在约束委派

    \
    使用 getST.py 进行约束委派攻击

    \
    带走 DC01

0x6 Outro

  • 个人比较手残,不懂C,incognito那个部分,按照作者解释来说,常规是要自己写一个impersonate token的工具(还是没脱离MSF.. TAT)



声明:该文观点仅代表作者本人,转载请注明来自看雪