垃圾桶

EL PSY CONGROO.

Lz1y's avatar Lz1y

记一次横向渗透

之前已经拿下过这个环境了,由于疏忽重启了服务器,导致Cobalt Strike上的机器全掉了,并且beacon没有回连。猜测应该是内网环境的变动(网络问题,重启等)造成的。

内网环境:

意识流抽象派

简而言之就是内网中的近乎所有服务都没有公网流量出入口,只有个别的服务因业务需求接通外网,而web服务则通过堡垒机之类的服务将web端口映射出去,并绑定了CDN(云WAF)。

常规操作,从web入手。运气不好拿到的没有通外网,利用http信道控制主机(上图灰色机器)。
简要分析该机器的利用价值:

  • http端口复用,代理进内网。(reGeorg,Tunna,etc)
  • 利用webshell直接对内网进行探测
  • 挖掘该主机中的口令、认证相关信息。(mimikatz,mysql,web,etc)

已控制服务器环境:


此服务器上有安全狗,CDN为玄武盾,所幸无反病毒软件,不用浪费时间做免杀,系统为Windows 2003,所以没有powershell环境,无域环境,有python,system权限。
bypass倒是很简单,但是这两玩意对环境还是或多或少有影响。
安全狗开了防CC,导致我们没有办法与webshell进行频繁交互,最直接的影响就是无法使用代理类工具进行RDP连接或者对内网进行扫描等操作。
而玄武盾抽风式拦截流量并且阻止了报错页面显示。
为本次测试添加了一丢丢难度。
可利用的方式:

  • 使用代理,进行小流量操作,例如使用smbexec, Psexec, Wmi等方式直接批量执行命令。(已使用mimikatz获取本地身份凭证的hash以及明文)
  • 不使用代理,直接使用webshell操作主机对内网进行扫描
  • 硬肛安全狗,使用代理池。(效率过低,成本过高,暂不考虑吧)

首先我是使用代理方式
使用reGeorg,nosocks版本
All seems fine
Start socks server

使用CrackMapExec对内网的smb进行探测,由于代理隧道不稳定,尝试了多次仍无效,遂放弃此方式。

timeout

继而,选择直接使用webshell交互,对内网进行探测,这里可以直接使用PsTools里面的psexec,或者调用wmi的任何服务,例如wmic

由于不知名原因,webshell的终端,没有回显,这里执行完后把回显直接写到文件中再读取。
推荐使用wmi,psexec会留下大量痕迹。
这里我使用wmiexec.vbs,没有powershell,就回到了vbs制霸的时候。

然而:

回显确实拒绝访问,明明是账号密码都是对的。
后来发现,这是Session 0的特性。

Session 0

从Vista 开始Session 0 中只包含系统服务,其他应用程序则通过分离的Session 运行,将服务与应用程序隔离提高系统的安全性。如下图所示:

这样使得Session 0 与其他Session 之间无法进行交互,不能通过服务向桌面用户弹出信息窗口、UI 窗口等信息。这也是system rdp黑屏的原因…

END

意思就是system用户无法使用psexec或者wmi等服务。
所以得降权,一开始想到的是使用自带的命令runas来降权,不过runas需要交互式的输入密码,这里有两种方法,一个是使用vbs自动写入密码,一种是利用第三方工具:

  • vbs
set WshShell = WScript.CreateObject("WScript.Shell")  

WshShell.run "runas /user:domain\user command" 'Open command prompt  
WScript.Sleep 1000  
WshShell.SendKeys "password" 'send password   
WshShell.SendKeys "{ENTER}"    
WScript.Sleep 1000  
  • 第三方
    Sanur : runas /user:domain\user notepad.exe | sanur password
    lsrunas : lsrunas /user:administrator /password:123456 /domain: /command:notepad.exe /runpath:c:
    cpau : cpau -u administrator -p password -ex notepad

但但但但但是!
session 0居然也没有办法使用runas!!!浪费了很长时间。

后来直接用incognito(MSF中也有这个模块,模拟令牌),直接获取其他用户权限。

Download Link: https://labs.mwrinfosecurity.com/tools/incognito/

最后的payload:

incognito.exe execute -c ".\Administrator" "cscript.exe  wmiexec.vbs /cmd 10.1.1.0 administrator xxxxxx ""powershell 1""" > 1.txt  

手工对段存活主机挨个执行命令,最终获取到了有外网并且存在powershell的主机。使用smb beacon隧道,对内网进行smb exec从而快速横向扩张。

最终,获取多台服务器。