2 个版本

0.1.1 2021 年 11 月 11 日
0.1.0 2021 年 1 月 7 日

#14 in #ctf

GPL-3.0-only

16KB
342

RustPwnTools

早期开发,API 不断变化

Build Status License: GPL v3 Crates.io

通过编写 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