ubuntu系统和windows系统

做pwn前需要准备的工具:

一些虚拟机配置

鼠标拖拽控制

这个服务打开即可

安装软件

linux需要在前面加sudo哈

网络环境配置

默认主机有clash或其他vpn工具。

允许局域网和端口要记住并且打开,系统代理在你需要打开vpn的时候打开即可。

虚拟机调为NAT连接模式。

在ubuntu的settings中proxy(代理)调整为manual(手动),把http和https的proxy改成相应的URL和Port

端口号就和前面的一样,URL就是vmware给虚拟机的地址,查看方式如图所示:

基础环境配置

python3

1
2
3
4
5
#首先进入root模式
sudo apt update
sudo apt install python3
sudo apt install python3-pip
alias python='/usr/bin/python3'

一般只需要python3,如果需要python2的话可以看:

python2环境

按照这样安装一轮应该就可以了,不要乱删东西。如果不想安装pip可以试下面的第二种办法安装pwntools

Pwntools

python库

1
2
3
sudo pip3 install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple
#或者
sudo apt install python3-pwntools

Wine

用来在linux环境下使用windows程序的…一般而言不需要

1
apt-get install wine

Gdb & pwndbg

调试程序

1
2
3
4
5
6
7
8
9
apt install gdb
apt install git
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh

vim ~/.gdbinit
#进入到vim之后,输入人source [pwndbg的位置]/gdbinit.py
#比如:source /home/kanyo/pwndbg/gdbinit.py

One_gadget

一种工具,从libc中直接找到一个构造ROP的地址。

1
2
3
4
5
apt install ruby
apt install gem
gem install one_gadget

pip3 install --break-system-packages ropper #我建议用这个

因为ROPgadget需要用grep管道指令搜索,有点麻烦

可以直接用ropper来查询

1
ropper --file [filename] --search '[words]'

LibcSearcher

1
2
3
4
5
6
7
#libcSearcher有时候不会准,这里提供一个网站:
#http://libc.blukat.me
#下面是libc安装

git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py develop

main_arena_offset

堆题

1
2
3
4
5
https://github.com/bash-c/main_arena_offset
#shell脚本,直接下载使用即可,用来搜索堆偏移量的

https://github.com/zarkivy/py_main_arena_offset
#这个是python包装好的,内核还是上面的shell脚本,不过可以在python里面使用

seccomp-tools

用来查被禁用的syscall的

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

其他常用

1
2
apt install vim
apt install checksec

IDA Pro

windows下直接安装即可

alpha3.git

这个软件是用来shellcode字符化的,但是真的他妈的太难用了。

看这个吧:alpha3.py

AE64

alpha3对32位的shellcode适配性比较高,不过我们可以试试这个AE64来写64位的题目:

1
2
3
git clone https://github.com/veritas501/ae64.git --depth 1
cd ae64
sudo python3 setup.py install