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专用虚拟机/

下载好的文件应该是长这样:
image

解压,在vmword中导入使用
image
image

2.2.3 修改完成的镜像懒人包

基于giantbranch师傅打包好的镜像为基础进行操作,密码giantbranch giantbranch,主要改动如下:

本来打算提供对新版本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")

四、虚拟机快速开荒

因为每次都要现场安装,快速记录一下过程

  1. VM自动简易安装
  2. 安装ssh
sudo apt install openssh-server
  1. 一键换源为清华
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
  1. 换源pip到清华
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  1. 安装常用工具(临场就不完全更新了,能用就行)
sudo apt install curl,git,wget
  1. 安装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
posted @ 2025-04-23 21:43  归海言诺  阅读(1082)  评论(0)    收藏  举报