技术社区
安全培训
技术社群
积分商城
先知平台
漏洞库
历史记录
清空历史记录
相关的动态
相关的文章
相关的用户
相关的圈子
相关的话题
注册
登录
PwnPasi技术实现详解:PWN自动化漏洞利用工具
Ba1_Ma0
安全工具
217浏览 · 2025-03-21 05:44
返回文档
前言
在二进制漏洞挖掘和利用(Pwn)领域,手动分析和利用漏洞往往耗时且复杂。为了提高效率,自动化工具应运而生。PwnPasi 是一款基于 Python 的自动化漏洞利用工具,旨在帮助安全研究人员快速识别和利用常见的二进制漏洞,如栈溢出、格式化字符串漏洞等。本文将详细介绍 PwnPasi 的技术实现,包括如何自动识别溢出边界大小、自动识别漏洞类型、自动识别格式化字符串漏洞以及自动绕过 Canary 防护。
自动识别溢出边界大小
在栈溢出漏洞利用中,确定溢出所需的填充字符数(padding)是关键步骤之一。PwnPasi 通过以下步骤自动识别溢出边界大小:
测试栈溢出漏洞
PwnPasi 通过向目标程序发送逐步增加的字符序列来测试是否存在栈溢出漏洞。具体步骤如下:
初始化字符序列:从字符 'A' 开始,逐步增加字符序列的长度。
发送输入:将字符序列发送给目标程序,并监控程序的返回码。
检测崩溃:如果程序返回码为 -11(即段错误),则说明程序发生了栈溢出,此时记录当前的字符数作为溢出边界大小。
PwnPasi 还允许用户通过命令行参数指定溢出边界大小,从而跳过自动检测步骤。
自动识别漏洞类型
PwnPasi 能够自动识别目标程序的漏洞类型,包括栈溢出、格式化字符串漏洞等。
自动识别函数
在漏洞利用过程中,识别目标程序中的关键函数(如 system、puts、write 等)是非常重要的。PwnPasi 通过以下步骤自动识别目标程序中的关键函数:
使用 objdump 分析 PLT 表
PwnPasi 使用 objdump 工具分析目标程序的 PLT 表,识别其中的关键函数地址。
执行 objdump 命令:通过 objdump -d 命令反汇编目标程序,并将结果保存到文件中。解析反汇编结果:从反汇编结果中提取关键函数的地址
设置函数标志
PwnPasi 会根据识别到的函数地址,设置相应的标志位,以便后续利用。
识别函数后的利用
根据识别到的函数,PwnPasi 会选择合适的利用方式。例如,如果识别到 system 函数和 /bin/sh 字符串,PwnPasi 会尝试直接调用 system("/bin/sh") 来获取 shell
检查程序保护机制
PwnPasi 使用 checksec 工具检查目标程序的保护机制,如 RELRO、Stack Canary、NX、PIE 等。根据检查结果,工具会判断是否存在栈溢出漏洞或格式化字符串漏洞。
自动识别格式化字符串漏洞
格式化字符串漏洞是一种常见的漏洞类型,PwnPasi 通过以下步骤自动识别并利用该漏洞:
检测格式化字符串漏洞
PwnPasi 通过向目标程序发送一系列格式化字符串测试用例,检测程序是否输出内存地址或崩溃,从而判断是否存在格式化字符串漏洞。
自动构建 ROP 链
ROP(Return-Oriented Programming)是一种常见的漏洞利用技术,通过组合程序中的 gadget 来执行任意代码。PwnPasi 能够自动识别目标程序中的 gadget 并构建 ROP 链
查找 ROP Gadget
PwnPasi 使用 ropper 工具查找目标程序中的 ROP gadget,如 pop rdi, pop rsi, ret 等。
具体步骤如下:执行 ropper 命令:通过 ropper 工具查找目标程序中的 gadget,并将结果保存到文件中。
解析 gadget 结果:从结果中提取关键 gadget 的地址。
在识别到所需的 gadget 后,PwnPasi 会根据漏洞类型和利用目标自动构建 ROP 链
除此之外,pwnpasi还能自动识别canary防护并绕过
项目地址
pwnpasi 是一款专为CTF PWN方向入门基础题目开发设计的自动化工具,旨在帮助新手小白快速识别和利用32位和64位程序中的栈溢出漏洞与格式化字符串漏洞。该工具能够自动判断溢出字符数,自动识别格式化字符串漏洞,自动识别程序调用的动态链接库,并生成相应的ROP链以利用漏洞。支持多种利用方式,包括调用system后门函数、写入shellcode、puts函数ROP、write函数ROP以及syscall ROP,格式化字符串利用,可自动识别并绕过PIE防护与canary防护。此外,工具还具备本地和远程利用功能,并集成了LibcSearcher库,用于在没有提供libc地址的情况下自动搜索合适的libc版本
0
人收藏
0
人喜欢
转载
分享
0
条评论
某人
表情
可输入
255
字
评论
发布投稿
热门文章
1
2025ISCC练武区域赛和决赛pwn以及擂台pwn合集
2
通过Elastic EDR看smbexec并进行二次开发Bypass
3
php代码审计篇 - 信呼OA 前台注入分析一
4
D3CTF-d3kshrm(预期&非预期)题解
5
Tomcat解析XML引入的新颖webshell构造方式
近期热点
一周
月份
季度
1
2025ISCC练武区域赛和决赛pwn以及擂台pwn合集
2
通过Elastic EDR看smbexec并进行二次开发Bypass
3
php代码审计篇 - 信呼OA 前台注入分析一
4
D3CTF-d3kshrm(预期&非预期)题解
5
Tomcat解析XML引入的新颖webshell构造方式
暂无相关信息
暂无相关信息
优秀作者
1
T0daySeeker
贡献值:28700
2
一天
贡献值:19800
3
1674701160110592
贡献值:18000
4
1174735059082055
贡献值:15000
5
Yale
贡献值:14000
6
LeeH
贡献值:10000
7
MeteorKai
贡献值:9000
8
姓*户
贡献值:8600
9
Arcueid
贡献值:8000
10
熊猫正正
贡献值:8000
目录
前言
自动识别溢出边界大小
测试栈溢出漏洞
自动识别漏洞类型
自动识别函数
使用 objdump 分析 PLT 表
设置函数标志
识别函数后的利用
检查程序保护机制
自动识别格式化字符串漏洞
检测格式化字符串漏洞
自动构建 ROP 链
查找 ROP Gadget
项目地址
转载
标题
作者:
你好
http://www.a.com/asdsabdas
文章
转载
自
复制到剪贴板