pwn题目的搭建

本文介绍如何在GCC编译器中关闭NX、Canary和ASLR等安全特性,并展示了如何通过socat将PWN题目挂载到指定端口的方法。包括关闭程序的canary保护、禁用地址空间布局随机化(ASLR)以及NX保护的具体操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关闭NX:gcc -z execstack -o pwn pwn.c

关闭程序的canary:gcc -fno-stack-protector -o pwn pwn.c

如何关闭程序的aslr: gcc -no-pie pwn pwn.c

关闭整个linux的aslr保护:
sudo -s
echo o > /proc/sys/kernel/randomize_va_space

挂载pwn题到端口 :(socat)
下载socat
sudo apt-get install socat
socat tcp-1:端口号,fork exec:程序位置,reuseaddr

reuseaddr,这个参数的意思就是地址(端口)重用,是为了防止socat绑定失败或者由于某些情况退出时,重新使用此端口需要等待2分钟的时间。

### 构建Ubuntu上的PWN CTF环境 #### 安装并设置Ubuntu操作系统 为了构建一个适合CTF PWN挑战的开发环境,建议使用稳定版本的操作系统。对于此目的,Ubuntu 16.04 LTS是一个不错的选择[^1]。 #### Python3.8离线安装 由于某些工具可能依赖较新的Python版本,在默认仓库中的Python版本可能过旧的情况下,可以考虑离线安装Python 3.8来满足需求。 #### pwntools安装 `pwntools` 是用于二进制漏洞挖掘和利用的强大库之一。可以通过pip命令在线安装该软件包;然而,在网络受限环境中,则需提前准备好适用于目标系统的.whl文件以便于离线下安装。 ```bash pip install pwntools ``` #### GDB调试器及其插件部署 GDB作为GNU项目下的标准调试器,其最新版(如v10.2)提供了更多特性支持现代架构与复杂应用调试场景。除了基本功能外,还可以通过加载额外脚本(pwngdb/pwndbg),增强对二进制分析的支持能力。 ```bash git clone https://github.com/scwuaptx/Pwngdb.git ~/tools/Pwngdb/ echo "source ~/tools/Pwngdb/.gdbinit" >> ~/.gdbinit ``` #### 多体系结构兼容性处理 当涉及到不同字长的目标程序时(比如在一个64位Linux发行版上执行32位应用程序),需要确保内核参数被适当调整以允许混合模式操作,并且安装必要的多库支持包。 ```bash sudo dpkg --add-architecture i386 sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 ``` #### 其他辅助工具集成 针对特定类型的攻击向量,像one_gadget或ROPgadget这样的实用程序可以帮助快速定位潜在可用的小工具(gadgets)[^2]。这些可以在解决保护机制绕过的题目时发挥重要作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值