首页
社区
课程
招聘
[原创]从0开始CTF-PWN(一)——基础环境准备
发表于: 2020-4-29 01:26 20999

[原创]从0开始CTF-PWN(一)——基础环境准备

2020-4-29 01:26
20999

作者:dxbaicai

PWN一直是CTF比赛中较难的点,相比WEB等较为直观的题型,PWN要求对程序运行的底层有一定了解,并且需要掌握c、汇编、编译原理等较多底层知识,入门后还得进一步学习pwntools等python库等,所以一直显得很难上手。这里作者就以自己近期从0开始学习的经验出发,带着大家一起上手。工欲善其事必先利其器,为了便于调试和理解,本篇先说明怎样准备一个PWN调试用环境。

kali-linux-2019.3-amd64(虚拟机)

这里有个坑,最新的gcc-9.x版本在编译的时候会在栈中插入一些自己的内容,对于新手入门来说不是很友好,所以这里我们选择较早的版本。

这里有另外一个坑,虽然python3也能安装pwntools,而且python2现在已进入不推荐阶段,但是做CTF-PWN的时候建议大家还是暂时先使用python2.7,python3实测会出现一些奇怪的兼容性问题,并且pwntools官方也是建议用python2.7的。
kali自带python2.7.x,这里不需要再额外安装python。
部分站点有梯子速度会快很多,建议有条件的准备下。

到了这里你就装好了CTF-PWN所需要的基本环境了,下一步就可以自己写一个简单的c程序来练习栈溢出PWN了。

vi /etc/apt/sources.list
# 增加如下内容
deb 8e8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3k6@1M7q4)9J5k6i4g2K6i4K6u0W2k6r3g2T1K9h3q4F1i4K6u0W2L8%4u0Y4i4K6u0r3k6r3g2T1K9h3q4F1i4K6u0r3 jessie main contrib non-free
deb-src 08cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3k6@1M7q4)9J5k6i4g2K6i4K6u0W2k6r3g2T1K9h3q4F1i4K6u0W2L8%4u0Y4i4K6u0r3k6r3g2T1K9h3q4F1i4K6u0r3 jessie main contrib non-free
apt-get update
apt-get install gcc-4.8 g++-4.8 g++-4.8-multilib
apt install gdb
# 此处的/home/pwn/peda安装路径可以自行更改
git clone 5ecK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9L8$3&6Y4L8r3c8Q4x3V1k6H3k6h3c8S2i4K6u0W2k6$3W2@1 /home/pwn/peda
echo "source /home/pwn/peda/peda.py" >> ~/.gdbinit
wget 4f6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1L8$3!0@1M7%4c8J5j5i4m8Q4x3X3g2H3P5i4m8S2i4K6u0W2K9h3!0Q4x3V1j5J5i4K6u0W2y4W2)9J5c8X3N6W2N6q4)9J5k6s2m8A6M7q4)9J5k6i4m8&6
python2 get-pip.py
cd pwntools-binutils-master/generic
chmod +x install.sh
# 这里参数选择与你的环境对应的,不过现在一般都是amd64
./install.sh amd64
pip install --upgrade pip
pip install --ignore-installed psutil --user
pip install matplotlib
pip install --upgrade pwntools
python
>>> from pwn import *
>>> asm('mov eax, 0')
# 应该会输出如下内容
b'\xb8\x00\x00\x00\x00'

作者:dxbaicai


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2020-4-29 01:37 被dxbaicai编辑 ,原因: 找不到的敏感词。。
收藏
免费 2
支持
分享
最新回复 (7)
雪    币: 58782
活跃值: (21900)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
期待后续更多的内容
2020-4-29 11:13
0
雪    币: 182
活跃值: (843)
能力值: ( LV10,RANK:173 )
在线值:
发帖
回帖
粉丝
3
我想问玩pwn可以用centos吗?
2020-4-29 11:54
0
雪    币: 2886
活跃值: (599)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
kaoyange 我想问玩pwn可以用centos吗?
当然可以,linux内核的都差不多,centos、ubuntu都可以。另外用docker也可以。
2020-4-29 13:04
0
雪    币: 3196
活跃值: (3712)
能力值: ( LV8,RANK:147 )
在线值:
发帖
回帖
粉丝
5
可以用docker,很方便,这个镜像是搭建好的:77fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Z5N6h3u0Q4x3X3g2V1L8$3y4C8k6i4u0Q4x3X3g2U0L8$3#2Q4x3V1k6J5i4K6u0r3M7$3E0&6M7$3W2V1k6i4u0Q4x3V1k6H3N6$3&6V1L8$3y4C8k6i4t1`.
2020-4-30 11:01
1
雪    币: 106
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
文章中的“kali下安装pip”会因为pip链接超时报错,所以建议先将pip源更新以后再继续按照教程走!再次感谢大佬,初步pwn环境已成功搭建完成,希望之后自己能坚持下去
2020-5-13 00:35
0
雪    币: 1826
活跃值: (657)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
期待大佬的后续文章
2020-9-23 09:53
0
雪    币: 72
活跃值: (315)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
大佬,gcc-9.x会组织4.8的安装怎么办呢
2020-10-20 09:28
0
游客
登录 | 注册 方可回帖
返回