PWN环境搭建记录2 Ubuntu Server22.04和Windows11

慢慢来,慢慢来…

用到再慢慢加好了

Ubuntu Server22.04

参考:

https://blog.csdn.net/j284886202/article/details/139352067

https://collectcrop.github.io/blog/2025/01/24/%E5%BF%AB%E9%80%9F%E5%9C%A824-04Ubuntu%E6%90%AD%E5%BB%BApwn%E7%8E%AF%E5%A2%83/

装完了打快照。

gcc

1
sudo apt install gcc

image-20251208110910176

py

image-20251208111102604

python3-pip

1
sudo apt install python3-pip -y

gdb

pwndbg

注意要登得上github(傻的我

1
2
3
git clone https://github.com/pwndbg/pwndbg
cd ~/pwndbg
./setup.sh
连不上github

https://juejin.cn/post/6975347491042508813

网络有问题。测了dns能解析,换个443的站点能通,说明不是防火墙拦443

image-20251208125618723

https://www.ipaddress.com/website/github.com/

image-20251208130308263

https://www.ipaddress.com/website/fastly.net/

image-20251208130432093

然后在/etc/hosts加入这些内容,ip以刚刚查到的为准

1
2
3
4
5
6
# Github
140.82.114.3 github.com
151.101.1.6 github.global.ssl.fastly.net
151.101.65.6 github.global.ssl.fastly.net
151.101.129.6 github.global.ssl.fastly.net
151.101.193.6 github.global.ssl.fastly.net

配完之后curl能通了,但是还有问题

image-20251208132441078

后来试了些啥呢,更新git和清缓存之类的,最后卡了一天好像行了

image-20251208230531040

Pwngdb

1
git clone https://github.com/scwuaptx/Pwngdb

然后把 ~/.gdbinit文件拷到根目录下

1
cp Pwngdb/.gdbinit ~/

联合

编辑 ~/.gdbinit文件。下面的不用改,把pwndbg那个文件路径添加到peda后面就行(如果安装路径不是根目录需要改路径)。我这没装peda使用pwndbg在第一个

1
2
3
4
5
6
7
8
9
10
source ~/PWN/tools/pwndbg/gdbinit.py
source ~/PWN/tools/Pwngdb/pwngdb.py
source ~/PWN/tools/Pwngdb/angelheap/gdbinit.py

define hook-run
python
import angelheap
angelheap.init_angelheap()
end
end

然后运行gdb验证。看来仍然有网络问题,uv那里还是不通

image-20251208232308938

pwntools

1
pip3 install pwntools

看了眼发现以前也碰到了这个问题,说安装目录不在path里

image-20251209132958195

不过查了下发现path里有,那不管了。验证:

image-20251209134453272

ROPgadget

1
python3 -m pip install ROPgadge

嗯?

image-20251209135715785

one_gadget

1
pip3 install one_gadget

patchelf

1
sudo apt install patchelf 

image-20251209140113049

LibcSearcher

就装在线库吧

1
pip3 install LibcSearcher

image-20251209140620225

seccomp-tools

1
2
sudo apt install gcc ruby-dev
sudo gem install seccomp-tools

image-20251209140901193

使用:

1
seccomp-tools dump ./pwn

Windows11

IDA Pro

教程:https://www.52pojie.cn/thread-2006802-1-1.html

更详细的教程:https://bbs.kanxue.com/thread-285604.htm

网盘链接失效了,用这个https://pan.baidu.com/s/10LA1tRRQD_e1u3qisykepA?pwd=nr35

居然是打包好的,伟大

解压之后运行idapyswitch

1
idapyswitch.exe --force-path ./python311/python3.dll

然后点开ida.exe

PyQt5 Shims

ida虽然从QT5升级为QT6,但为了插件的兼容性,提供了PyQt5 Shims兼容层

官方绑定的是 PySide6。插件代码里却 import PyQt5,而 IDA 自带的 Python 环境已经没有 PyQt5 了。“PyQt5 shims” 是 IDA 提供的一个兼容垫片:它在运行时动态创建一堆假的 PyQt5.* 模块,实际底层转发到 IDA 自带的 PySide6。

IDA检测到不兼容时会自动弹窗,选择yes即开启

image-20251209143228339

居然没有别的弹窗了。得设置一下加右键菜单什么的

配置

开启操作码显示

options>general,Number of opcode bytes, 输入10

image-20251209145002516

添加右键菜单

原理是修改注册表,在\HKEY_CLASSES_ROOT\*\shell里加一项IDA9。这个*是对所有类型的文件应该,网上的教程给的是到exefile子类里加,但我喜欢全都要

下面新建一个command,这个应该意思是这项所做的操作。然后设置默认值,数值设成IDA路径 "%1"

1
"D:\CTFTools\IDA Professional 9.2\ida.exe" "%1"

image-20251209155652747

ok

image-20251209160422352

添加icon。在IDA9项里新建一个字符串,名字填icon,数值填路径

image-20251209160552298

有了

image-20251209160635321

插件

因为是打包好的,似乎。那就记一下

插件 功能
LazyIDA convert快速提取数据等
Keypatch patch指令方便
Patching patch16进制数据方便
findcrypt-yara 常见加密算法识别
auto-enum 自动恢复常见api的枚举变量
Hrtng 高亮括号,重定义关键函数声明,栈字符串识别,反ollvm等功能
D810 去ollvm混淆脚本,安装Hrtng后可不安装该插件
classinformer 反编译C++时, 可以根据RTTI等信息综合恢复类Class的相关信息,例如继承信息,类名等。
deREferencing 调试时使用,追踪栈和寄存器指向的内容
HexRaysCodeXplorer 自动识别结构体,显示C++虚函数,生成函数结构树等
DataExportPlus 提取数据增强版

gdb