Pwn环境全家桶懒人包(Ubuntu24 + Ubuntu16)安装,用户态+内核态均适用
Pwn环境全家桶懒人包(Ubuntu24 + Ubuntu16)安装,用户态+内核态均适用
本文前置知识:
- linux操作
工欲善其事,必先利其器,既然要打pwn,那必然要准备好工具。在打堆的时候被环境折磨了半天,于是写下文帮助后来的师傅避坑。会用到的文件已经放在文章结尾。因为本文注重于pwn相关的安装,所以一些正常的虚拟机安装请参考其他师傅的教程
本文附件:
https://www.123912.com/s/dlcdjv-1bHg?提取码:BRTt
如果你是第一次安装,请忽视有关内核字样相关的教程,这个是后面进阶要用的。
一、环境配置
作者一开始是使用了Ubuntu24来打堆,结果被各种安全机制拦截到怀疑人生,这里列出常用Ubuntu版本对应的libc版本方便以后做题查阅。
查看libc版本:
ldd --version
| 版本 | libc版本 | VScode最高版本 | 
|---|---|---|
| Ubuntu 16.04 | 2.23 | 1.89.2 | 
| Ubuntu 18.04 | 2.27 | 1.89.2 | 
| Ubuntu 20.04 | 2.31 | 最新版 | 
| Ubuntu 22.04 | 2.35 | 最新版 | 
| Ubuntu 24.04 | 2.39 | 最新版 | 
pwn手都要常备,打堆涉及大量动态调试,本地一定要和远程环境一致,否则打不通。
二、windows上软件
1.1 VMware 虚拟机
教程 https://www.cnblogs.com/EthanS/p/18211302
1.2 IDA por(逆向分析)
安装教程https://www.52pojie.cn/thread-2006802-1-1.html
1.3 VScode(代码编辑器)
官网下载:https://code.visualstudio.com/
VScode 免密ssh连接虚拟机教程:https://www.cnblogs.com/sakura-yuki/p/18532050
1.3.1 推荐一些我正在用的插件:
- Chinese (Simplified) (简体中文) Language Pack for Visual Studio
- Error Lens
- Python
- C/C++
- Remote - SSH
1.4 PixPin(截图、贴图工具)
减少翻来翻去的时间 https://pixpin.cn/
三、安装主要的pwn工具
2.1 ubuntu24
优点:
- 一堆现代工具可以连接
- 比较方便调试
缺点:
- pwn对版本要求极其严格,差一个小版本都装不上
2.1 安装教程
https://www.cnblogs.com/LY613313/p/16180458.html
2.2 打包好的文件
这里放出我自己个人使用的Ubuntu24镜像在网盘(讲真的有点大,建议选自己搭建)密码:ubuntu ubuntu,唯一的区别是我使用了pwnbdg代替了原本的gdb(仍然使用gdb启动)教程:https://www.cnblogs.com/kenwblack/p/18404024
如果要用,记得卸载自带的gdb:
sudo apt remove gdb
sudo apt purge gdb
sudo apt autoremove
sudo rm ~/.gdbinit
2.2 ubuntu16
主要的漏洞版本,堆的入门版本,但是实在是太老了,很多工具安装不上,这里我推荐使用giantbranch师傅打包好的镜像为基础进行操作。
2.2.2 原始镜像
原博客地址,已授权转载,密码giantbranch giantbranch
https://www.giantbranch.cn/2018/11/07/CTF PWN专用虚拟机/
下载好的文件应该是长这样:

解压,在vmword中导入使用


2.2.3 修改完成的镜像懒人包
基于giantbranch师傅打包好的镜像为基础进行操作,密码giantbranch giantbranch,主要改动如下:
- 更新gcc-9、g++-9
- 用pyenv安装Python3.12
- 添加glibc-all-in-onehttps://www.cnblogs.com/lordtianqiyi/articles/16496210.html
本来打算提供对新版本VScode支持,但是pwn对glibc要求及其严格,所以作罢
2.2.1安装vscode旧版本
因为最新的版本已经不支持连接ubuntu16了,要用旧版本,经过测试,最后允许的版本是:1.89.2
教程https://www.cnblogs.com/lingr7/p/vscode-previous-version.html
下载vscode 1.89.2:https://update.code.visualstudio.com/1.89.2/win32-x64-archive/stable
pwn常用开头
from pwn import *
one_getshell: list[int] = [0x45216, 0x4526a, 0xf02a4, 0xf1147]
context.log_level = 'debug'
context.arch = 'amd64'
# io = process(['./babyheap_0ctf_2017'], env={"LD_PRELOAD": "./libc-2.23.so"})
io = remote("192.168.112.1", 62535)
file = ELF("./pwn")
# libc = ELF("./libc.so.6")
四、虚拟机快速开荒
因为每次都要现场安装,快速记录一下过程
- VM自动简易安装
- 安装ssh
sudo apt install openssh-server
- 一键换源为清华
sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list && sudo sed -i 's|http://.*security.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list && sudo apt update
- 换源pip到清华
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 安装常用工具(临场就不完全更新了,能用就行)
sudo apt install curl,git,wget
- 安装python + pwntools(python<3.8考虑使用pyenv安装Python3.12)
 https://www.cnblogs.com/lucktomato/p/18245731
pip install pwntools
sudo apt install python3-pwntools
五、内核pwn使用
1.安装qemu模拟器,用于启动题目环境
sudo apt update
sudo apt install qemu qemu-system qemu-system-x86 qemu-utils
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号