Giter VIP home page Giter VIP logo

puppeteer's Introduction

puppeteer

puppeteer was an attempt to create an exploit framework, but it ended up being too overengineered and wasn't used too much. It's here for posterity.

Old README:

It's time for a framework for super l337 exploit development!

We spent a lot of time, and a lot of implementation effort, making programs dance the way we want them. Why not automate some of that?

The general idea is that we will do the most while implementing the least. The design is as follows:

  • the hacker creates a subclass of Manipulator, and implements the vulnerabilities they find (memory write, memory disclosure, printf vuln, whatever)
  • that's it! Ideally, the system does the rest.

Manipulator is a class that, given some vulns, manipulates the program to do all sorts of zany stuff. We'll see how it works out in the end, but my current plan is to create another class, Puppetmaster, that'll handle creating multiple manipulators (for example, if memory disclosures end up crashing the program), or maybe Manipulator will take care of that itself. Anything could happen!

Where to start?

To use this thing, you need to implement a subclass of Manipulator.

__init__

Your __init__ should make a connection to the program, or spawn it up, or whatever it is you're doing.

The Vulnerabilities

Vulns are implemented by creating a method with a decorator. There are default decorators for each action (the memory_read below), and decorators that take options (the printf_flags below).

class YourFace(puppeteer.Manipulator):
	def __init__(self):
		# stuff

	@puppeteer.memory_read
	def some_leet_shit(self, addr, length):
		# l33t it up!

	@puppeteer.printf_flags(bytes_to_fmt=244):
	def lol(self, fmt):
		# ohnoes!

And with that, at some point in the future, you will be done. libc will be found and utilized to its full potential, and BOOM.

Ideally, we'd be able to automatically find the offset for the printf, too, so you can just use @printf instead of @printf_flags!

Features

  • targeted read

  • targeted write

  • printf stuff

  • PLT redirection

  • callsite preparation

TODO

  • stack overwrite

  • command injection

  • blind command injection

  • return addr overwrite

  • library dumping

  • stack frame dumping

  • environment dumping

  • information leak (ASLR)

  • execute command

  • read file(s)

  • dump out process maps?

  • maybe have some idalink support for determining more stuff automatically?

  • rop stuff (at least find the cleanup gadgets automatically)

  • identify the base address of libc, or just dump it

  • implement the pwntools library searching stuff

puppeteer's People

Contributors

zardus avatar acama avatar ltfish avatar

Watchers

James Cloos avatar vulcanoIO - Open Source Sandbox and RE malwares avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.