Vulnhub靶机:driftingblues 2

一、介绍

运行环境:Virtualbox

攻击机:kali(10.0.2.15)

靶机:driftingblues2(10.0.2.18)

目标:获取靶机root权限和flag

靶机下载地址:https://www.vulnhub.com/entry/driftingblues-2,634/

二、信息收集

使用nmap主机发现靶机ip:10.0.2.18

在这里插入图片描述

使用nmap端口扫描发现靶机开放端口:21、22、80

在这里插入图片描述

21端口:nmap扫描发现ftp存在匿名登录,可以获取文件:secret.jpg

在这里插入图片描述

获取secret.jpg文件,使用binwalk工具查看图片信息,未发现隐藏信息

binwalk secret.jpg                  

在这里插入图片描述

80端口:打开网站查看源码,没有什么可利用的点

在这里插入图片描述

使用dirsearch工具扫描爆破目录,发现一个博客网站,访问博客,该网站是wordpress模板搭建的

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

既然是wordpress可以使用wpscan工具进行扫描,得到一个用户名:albert

wpscan --url http://10.0.2.18/blog/ --enumerate u,p,t --plugins-detection aggressive --detection-mode aggressive

在这里插入图片描述

打开网站尝试看看有没有弱口令,输入用户名密码点击登录,网站会加载域名

在这里插入图片描述

修改/etc/hosts文件,添加一行数据

10.0.2.18      driftingblues.box

使用域名访问网站,查看源码,还是没有找到可利用的地方,尝试使用wpscan对albert用户进行暴力破解,破解成功获得用户名密码:albert/scotland1

wpscan --url http://10.0.2.18/blog/ -P /usr/share/wordlists/rockyou.txt -U albert

在这里插入图片描述

三、漏洞利用

使用爆破出来的用户名密码登录博客网站,获取shell,这里有几个方法:

1)登录wordpress后台,看是否已经安装有插件,并且插件的功能中有可以上传文件的入口,此时将php reverse shell以规定的格式(比如zip)上传至目标站点。

2)通过Metasploit中的exploit/unix/webapp/wp_admin_shell_upload模块获取目标主机的Shell

3)将php reverse shell压缩成zip格式,然后将其作为插件进行安装

4)向目标主机上传有漏洞的插件,比如Responsive Thumbnail slider version 1.0

5)直接在安装Plugin处上传php reverse shell.php文件,无需压缩,可能没有返回成功上传的提示,但是到/wp-content/uploads即可看到所上传的文件

我使用了方法5,上传php reverse shell.php文件,获取shell成功

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

四、提权

首先查看有没有特权命令或有没有可以利用的具有root权限的文件,发现都没有可利用的地方

到靶机各处翻一翻,看看有没有其他可利用的地方

发现靶机有一个freddie用户,我们可以查看他的ssh的私钥

在这里插入图片描述

可以将拷贝私钥到本地进行远程登录

chmod 600 id_rsa       
ssh -i id_rsa freddie@10.0.2.18

在这里插入图片描述

登录freddie用户使用命令sudo -l查看有没有特权命令,发现可以执行nmap命令

在这里插入图片描述

使用nmap命令进行提权,提权成功,用这个方法输入没有回显

#nmap以root运行
echo "os.execute('/bin/sh')" > shell.nse 
#nse是nmap的插件扩展名
sudo nmap --script=shell.nse

在这里插入图片描述

获取flag

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

完工

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

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

相关文章

Http协议简述

目录 HTTP-概述 2.1.1 介绍 2.2.2 特点 2.2 HTTP-请求协议 2.3 HTTP-响应协议 2.3.1 格式介绍 2.3.2 响应状态码 HTTP-概述 2.1.1 介绍 HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。 http是互联…

React入门 - 06(TodoList 列表数据的新增和删除)

本章内容 目录 一、实践一下 React 的列表渲染二、TodoList 新增功能三、列表循环的 key四、删除 上一节内容我们完成了输入框中可以自由输入内容,这一节我们继续 TodoList功能的完善:列表数据的新增和删除。 在开始之前,我们先介绍一下 Re…

C++力扣题目222--完全二叉树的节点个数

给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最…

目标检测-One Stage-YOLOv7

文章目录 前言一、YOLOv7的不同版本二、YOLOv7的网络结构二、YOLOv7的创新点三、创新点的详细解读ELAN和E-ELANBoF训练技巧计划型重参化卷积辅助训练模块标签分配Lead head guided label assignerCoarse-to-fine lead head guided label assigner 基于级联模型的复合缩放方法 总…

面试官问,如何在十亿级别用户中检查用户名是否存在?

面试官问,如何在十亿级别用户中检查用户名是否存在? 前言 不知道大家有没有留意过,在使用一些app注册的时候,提示你用户名已经被占用了,需要更换一个,这是如何实现的呢?你可能想这不是很简单吗…

java获取已经发送谷歌邮件的打开状态

1.前言 现在网上的方案都是在邮件里面插入一张图片的地址,当收件人打开之后,就会发送请求到指定路径的服务器上,然后在请求的controller里面处理邮件的状态,这个方案确实是行得通的,本文章只是给大家避个坑&#xff0…

从传统训练到预训练和微调的训练策略

目录 前言1 使用基础模型训练手段的传统训练策略1.1 随机初始化为模型提供初始点1.2 目标函数设定是优化性能的关键 2 BERT微调策略: 适应具体任务的精妙调整2.1 利用不同的representation和分类器进行微调2.2 通过fine-tuning适应具体任务 3 T5预训练策略: 统一任务形式以提高…

Vue学习计划-Vue3--核心语法(七)pinia

pinia案例gitee地址 1. pinia 准备一个效果 【搭建 pinia 环境】 安装pinia: npm install pinia/yarn add pinia第二步:操作src/main.ts import { createApp } from vue import App from ./App.vue/* 引入createPinia,用于创建pinia */ import { crea…

阿里云优惠券介绍、种类、领取入口及使用教程

阿里云优惠券是阿里云提供的一种优惠活动,旨在帮助用户节省购买云服务产品的费用。本文将为大家详细介绍阿里云优惠券的相关信息,包括优惠券的介绍、种类、领取入口以及使用教程。 一、阿里云优惠券介绍 阿里云优惠券是阿里云提供给用户的一种优惠凭证&…

vue前端开发自学,异步加载组件,提升用户端的客户体验度

vue前端开发自学,异步加载组件,提升用户端的客户体验度!现实项目开发时,组件的数量非常庞大,如果都是一口气加载完,对手机用户来说,体验度会很差。因此,非常有必要使用异步加载。 那就是,用到了…

Neo4j知识图谱(2)创建与删除

Neo4j - CQL简介_w3cschoolhttps://www.w3cschool.cn/neo4j/neo4j_cql_introduction.html一、创建节点 create(n:Person{name:何仙鸟,age:21}) create就是创建,无论是点还是边都是用create来创建 n相当于一个别名,比如创建一个Person,而Pe…

React16源码: React中的schedule调度整体流程

schedule调度的整体流程 React Fiber Scheduler 是 react16 最核心的一部分,这块在 react-reconciler 这个包中这个包的核心是 fiber reconciler,也即是 fiber 结构fiber 的结构帮助我们把react整个树的应用,更新的流程,能够拆成…

JVM基础(10)——老年代调优

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

[ACM算法学习] 诱导排序与 SA-IS算法

学习自诱导排序与SA-IS算法 - riteme.site 为了简化一些操作,定义 # 是字典序最小的字符,其字典序小于字母集里任意字符,并且将其默认作为每个字符串的最后一个字符,即作 S[|S|] SA-IS 算法 SA-IS 算法是基于诱导排序这种思想。…

Python基础知识:整理14 利用pyecharts生成地图

1 地图可视化的基本使用 from pyecharts.charts import Map from pyecharts.options import VisualMapOpts # 准备地图对象 map Map()# 准备数据 data [("北京市", 8), ("上海市", 99), ("广州省", 199), ("重庆市", 400), ("…

JavaScript学习笔记——变量、作用域、var、const和let

JavaScript学习笔记——变量、作用域、var、const和let 学习链接(原链接)变量变量声明的三种方式 作用域作用域介绍作用域分类全局作用域局部作用域(函数作用域)块级作用域块级作用域和局部(函数)作用域区别 varvar的作用域(全局函…

在数据中查找峰值

使用 findpeaks 函数求出一组数据中局部最大值的值和位置。 文件 spots_num 包含从 1749 年到 2012 年每年观测到的太阳黑子的平均数量。求出最大值及其出现的年份。将它们与数据一起绘制出来。 load("spots_num")[pks,locs] findpeaks(avSpots);plot(year,avSpots…

ssm基于vue的儿童教育网站的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,视频信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大…

【26 预处理详解】

目录 预定义符号#define定义常量#define定义宏带有副作用的宏参数宏替换的规则宏函数的对比#和##命名约定#undef命令行定义条件编译头文件的包含其他预处理指令 1. 预定义符号 c语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理…

响应式编程初探-自定义实现Reactive Streams规范

最近在学响应式编程,这里先记录下,响应式编程的一些基础内容 1.名词解释 Reactive Streams、Reactor、WebFlux以及响应式编程之间存在密切的关系,它们共同构成了在Java生态系统中处理异步和响应式编程的一系列工具和框架。 Reactive Streams…
最新文章