pwn入门

本文最后更新于:2024年6月2日 晚上

pwn基本概念

名词 概念
POC Proof of Concep,用于证明漏洞存在或者验证可行性
Payload 有效载荷
Shellcode 用于得到shell的一段代码
EXP Exploit,利用漏洞进行攻击的程序
Glibc GNU C Library
ROP Return-Oriented Programming
UAF Use After Free
DEP Data Execution Prevention
ASLR Address Space Layout Randomization
GOT Global Offset Table

工具

pwndbg

pwndbg,使gdb更友好的插件

安装

1
2
3
4
5
git clone https://github.com/pwndbg/pwndbg

cd pwndbg

./setup.sh

可能会遇到网络问题,需要正确配置git、pip、命令行代理

linux下好像配置了git代理也没用,会出现奇怪报错,最终使用proxychains ./setup搞定

也或许可以考虑下载 deb 文件

1
2
apt install ./pwndbg_2023.07.17_amd64.deb
# pwndbg

checksec

checksec,用于检查文件的保护机制与基本信息

1
2
3
4
5
6
7
8
~> pwn checksec /bin/sh
[*] '/bin/sh'
Arch: amd64-64-little
RELRO: Full RELRO
Stack: Canary found
NX: NX enabled
PIE: PIE enabled
FORTIFY: Enabled
字段 说明
Arch x64架构,64位,小端序
RELRO 设置符号重定向表格为只读或在程序启动时就解析并绑定所有动态符号,从而减少对GOT(Global Offset Table)攻击
Stack CANARY gcc -fno-stack-protector禁用,gcc -fstack-protector 启用
NX 堆栈不可执行保护,不能在栈上执行shellcode,编译选项: 关闭 -z execstack 开启-z noexecstack。DEP(数据执行保护)的一种
PIE(ASLR) 地址随机化。randomize_va_space 0 - 表示关闭进程地址空间随机化。 1 - 表示将mmap的基址,stack和vdso页面随机化。 2 - 表示在1的基础上增加堆(heap)的随机化。

pwntools

pwntools,一个python库

ROPgadget

ROPgadget,用于rop利用

2020暑期Lilac-pwn入门培训

题目形式

  • Linux下的可执行文件
  • 包含某种漏洞
  • 服务器上有一个目标文件, 其内容为flag
  • 利用漏洞可以读取系统中目标文件的内容

一些工具的使用

参考


pwn入门
http://gls.show/p/6eb2f886/
作者
郭佳明
发布于
2024年1月30日
许可协议