2 个版本
0.1.1 | 2021 年 11 月 11 日 |
---|---|
0.1.0 | 2021 年 1 月 7 日 |
#14 in #ctf
16KB
342 行
RustPwnTools
早期开发,API 不断变化
通过编写 PwnTools 库学习 Rust
我喜欢 Rust 编程语言及其约束和限制。但我想开始一个更大的项目,以便更深入地了解语言并使用它。
因为我业余时间玩了很多 CTF,所以我非常熟悉 PwnTools。因此,我决定我可以用 Rust 实现 pwnTools 中我最常用的功能。
这样我就可以用 Rust 编写我的漏洞利用,并更深入地了解语言。我的目标永远不会是取代或复制 pwnTools,因为该库很大,我并不使用所有功能。
相反,我想编写一个库,以便使我能够轻松地进行 CTF 快速漏洞利用开发。我将查看我经常使用的功能,并逐步实现它们。我甚至有一些关于如何改进我自己的工作流程的想法。
对于第一个版本,我将首先实现 tubes。最初发布时,只有远程 / 进程 / recvuntil / recvline / send / sendline / close 功能。因为这是我最常用的 pwnTools 部分。
功能
- 进程执行
- 进程 recvuntil / recvline
- 进程 send / sendline
- Tubes create_process
- TCP Socket 连接
- TCP Socket 连接状态
- TCP Socket recvuntil / recvline
- TCP Socket send / sendline
- 使用 tmux 附带 GDB
- 十六进制转储输出
- Tubes recv_timeout
- Tubes interactive
- 循环模式
- Linux coredump
- ELF 头
- PE 头
- x86/x64 汇编/反汇编
- ARM 汇编/反汇编
- 二进制打包(小端/大端)
- checksec(NE 栈,W/X 保护,栈守卫,PIE)
- Shellcodes DB
- ROP Gadgets
- HTTP Post/Get
依赖项
~3–12MB
~119K SLoC