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

server/2025/2/5 12:08:41/

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

1. 操作系统选择

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

        安装方式

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

下载镜像:Ubuntu官网

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

2. 基础工具安装

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

3. 安装Pwn工具

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

       1. pwndbg(推荐):

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

       2. gef

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

4. 配置漏洞练习环境

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

        临时关闭ASLR

python">echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

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

python">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(); }

编译命令

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

5. 虚拟化环境(可选)

  5.1 Docker容器

        安装Docker

python">sudo apt install docker.io
sudo systemctl enable --now docker

运行漏洞镜像

python">docker run -it pwnclub/pwn_env

6. 测试环境

    6.1 编写第一个EXP

        创建 exp.py

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

运行:

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

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


http://www.ppmy.cn/server/165143.html

相关文章

人工智能构建虚拟细胞

细胞对于理解健康和疾病至关重要。AI和组学数据的进步为创建虚拟细胞 (AIVC) 提供了机会&#xff0c;这将是一种多尺度、多模态的大型神经网络模型&#xff0c;可以表示和模拟不同状态下的分子、细胞和组织。 来自&#xff1a;How to build the virtual cell with artificial …

Baklib在知识管理领域的优势与五款竞争产品的全方位对比分析

内容概要 在现代企业环境中&#xff0c;知识管理的重要性愈发凸显。随着信息技术的快速发展和市场竞争的加剧&#xff0c;企业面临着海量数据和信息的管理挑战。因此&#xff0c;如何有效地集中和利用这些知识资源&#xff0c;就成为了企业提升竞争力的关键所在。Baklib作为一…

CentOs9新手教程

CentOS 9是基于RHEL的CentOS Stream版本&#xff0c;主要用于开发和测试环境&#xff0c;不适合作为生产环境的稳定系统。它提供了最新的软件和功能&#xff0c;但可能存在不稳定性和兼容性问题。如果你需要一个稳定的生产环境&#xff0c;建议使用CentOS Linux版本。 安装环境…

kamailio的kamctl的使用

kamctl 是 Kamailio SIP 服务器的管理工具&#xff0c;用于执行各种管理任务&#xff0c;如启动、停止、重启 Kamailio 进程&#xff0c;管理用户、ACL、路由、信任的 IP 地址等。以下是对 kamctl 命令的解释及举例说明&#xff1a; 1. 启动、停止、重启 Kamailio start: 启动…

排序算法--堆排序

堆排序是一种高效的排序算法&#xff0c;适合大规模数据排序&#xff0c;尤其适用于需要实时获取最大&#xff08;或最小&#xff09;值的场景。 // 交换两个元素的值 void swap(int* a, int* b) {int temp *a;*a *b;*b temp; }// 调整堆&#xff0c;使其满足堆的性质 void …

电脑开机键一闪一闪打不开

家人们谁懂啊&#xff01;本来打算愉快地开启游戏时光&#xff0c;或者高效处理工作任务&#xff0c;结果按下电脑开机键后&#xff0c;它就只是一闪一闪的&#xff0c;怎么都打不开。相信不少朋友都遭遇过这种令人崩溃的场景&#xff0c;满心的期待瞬间化为焦急与无奈。电脑在…

基于遗传算法的256QAM星座图的最优概率整形matlab仿真,对比优化前后整形星座图和误码率

目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&#xff1a; GA优化曲线&#xff1a; 优化前后星座图对比 优化前后误码率对比 仿真操作步骤…

【Elasticsearch】内置分词器和IK分词器

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…