2 releases

0.1.1 Nov 11, 2021
0.1.0 Jan 7, 2021

#14 in #ctf

GPL-3.0-only

16KB
342 lines

RustPwnTools

Early development, changing API

Build Status License: GPL v3 Crates.io

Learning Rust by writing a PwnTools Library

I like the Rust programming language with its contraints and restrictions. But I wanted to start a bigger Project, wo get to know more of the language and use it.

Because I play a lot of CTFs in my free time, I am pretty familiar to PwnTools. So I decided I could implement to most used features of pwntools I use the most in rust.

This way I could write my exploits in Rust and learn more of the language. My goal will never be to replace or copy pwntools, because the library is huge and I don't use all the features.

Instead I want to write a library, for how I would ease my CTF rapid exploit development. I will have a look at what features I use a lot and try to implement them step by step. I even have some ideas, on where I could improve for my own workflow.

My first primary for a first version, will be implementing tubes. At first release only the function remote / process / recvuntil / recvline / send / sendline / close. Because this is the part of pwntools I use the most.

Features

  • Process execution
  • Process recvuntil / recvline
  • Process send / sendline
  • Tubes create_process
  • TCP Socket connect
  • TCP Socket connection status
  • TCP Socket recvuntil / recvline
  • TCP Socket send / sendline
  • Attach GDB with tmux
  • Hexdump output
  • Tubes recv_timeout
  • Tubes interactive
  • Cyclic pattern
  • Linux coredump
  • ELF Header
  • PE Header
  • x86/x64 Assembly/Dissassembly
  • ARM Assembly/Dissassembly
  • Binary Packing for little/big endia
  • Checksec (NE Stack, W/X Protection, Stack Canary, PIE)
  • Shellcodes DB
  • ROP Gadgets
  • HTTP Post/Get

Dependencies

~3–12MB
~119K SLoC