当前位置: 首页 > article >正文

pwn环境搭建手册(步骤清晰且附带详细命令)

以下是为零基础小白准备的 pwn环境搭建手册,涵盖操作系统、工具链、调试工具和练习环境的配置,步骤清晰且附带详细命令:

1. 操作系统选择

推荐 Ubuntu 20.04/22.04 LTS(长期支持版),适合新手且兼容性强。        

        安装方式

虚拟机(VMware/VirtualBox)或物理机安装。

下载镜像:Ubuntu官网

安装教程参考:Ubuntu安装指南

2. 基础工具安装

2.1 更新系统
sudo apt update && sudo apt upgrade -y
2.2 安装编译工具链
sudo apt install -y build-essential gcc g++ make python3 python3-pip git
2.3 安装调试工具
sudo apt install -y gdb

3. 安装Pwn工具

3.1 pwntools(漏洞利用框架)
pip3 install --user pwntools
# 验证安装
python3 -c "import pwn; print(pwn.__version__)"
3.2 增强版GDB插件(选一个)

       1. pwndbg(推荐):

git clone https://github.com/pwndbg/pwndbg
cd pwndbg && ./setup.sh

       2. gef

wget -q -O ~/.gdbinit-gef.py https://gef.blah.cat/py
echo "source ~/.gdbinit-gef.py" >> ~/.gdbinit

4. 配置漏洞练习环境

  4.1 关闭安全机制(仅限实验环境!)

        临时关闭ASLR

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

        编译时关闭保护(示例程序 test.c):

gcc -no-pie -fno-stack-protector -z execstack test.c -o test
# -no-pie: 关闭地址随机化
# -fno-stack-protector: 关闭栈保护
# -z execstack: 允许栈执行
  4.2 练习资源推荐

 CTF题目

  • pwnable.kr(入门神站)

  • CTFtime(赛事题目存档)

本地练习

// 示例漏洞程序(stack.c)
#include <stdio.h>
void vuln() {
    char buf[20];
    gets(buf); // 栈溢出漏洞
}
int main() { vuln(); }

编译命令:

gcc -no-pie -fno-stack-protector -z execstack stack.c -o stack

5. 虚拟化环境(可选)

  5.1 Docker容器

        安装Docker

sudo apt install docker.io
sudo systemctl enable --now docker

运行漏洞镜像

docker run -it pwnclub/pwn_env

6. 测试环境

    6.1 编写第一个EXP

        创建 exp.py

from pwn import *
context.log_level = 'debug'
p = process('./stack')  # 运行本地程序
payload = b'A'*24 + p64(0xdeadbeef)  # 覆盖返回地址
p.sendline(payload)
p.interactive()

运行:

python3 exp.py
   6.2 调试程序
gdb ./stack
# 在gdb中输入:
b main    # 下断点
r         # 运行
ni        # 单步执行

时光匆匆,一篇博客又到了结尾处啦。真心感谢每一位愿意花时间阅读我文字的朋友,希望你们每天都过得开开心心的,生活顺顺利利哦,咱们下次再通过文字‘相遇’呀。


http://www.kler.cn/a/533143.html

相关文章:

  • github下载失败网页打开失败 若你已经知道github地址如何cmd下载
  • Love Tester:探索爱情的深度与维度
  • C++基础(2)
  • Spring PropertyPlaceholderConfigurer多配置问题
  • 读写锁: ReentrantReadWriteLock
  • Vue和Java使用AES加密传输
  • Leetcode::922. 按奇偶排序数组 II
  • 基于Python实现机器视觉与深度学习相结合的项目
  • 数据结构(AVL树、B-Tree、B+Tree)
  • uniCloud(dcloud.net.cn)https证书配制
  • 性能优化中的数据过滤优化
  • RabbitMQ深度探索:从安装配置到高级应用的全面解析
  • 计算机网络笔记再战——理解几个经典的协议2
  • 在x86上使用debootstrap构建龙芯编译运行环境
  • 油漆面积——蓝桥杯
  • Chromium132 编译指南 - Android 篇(八):开始编译
  • 记录一次-Rancher通过UI-Create Custom- RKE2的BUG
  • 机器学习入门指南:快速上手与实践
  • Elixir语言的网络编程
  • Netty线上如何做性能调优?
  • 人工智能搜索的层级发展趋势:从信息检索到智能决策
  • Linux网络 | 进入数据链路层,学习相关协议与概念
  • java项目验证码登录
  • Linux 进程终止
  • BUU13 [极客大挑战 2019]BabySQL 1
  • DeepSeek-R1大模型学习笔记