All Projects → zhechkoz → Pwin

zhechkoz / Pwin

Licence: mit
Security Evaluation of Dynamic Binary Instrumentation Engines

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Pwin

Paper collection
Academic papers related to fuzzing, binary analysis, and exploit dev, which I want to read or have already read
Stars: ✭ 710 (+914.29%)
Mutual labels:  exploitation
Xattacker
X Attacker Tool ☣ Website Vulnerability Scanner & Auto Exploiter
Stars: ✭ 897 (+1181.43%)
Mutual labels:  exploitation
Cve 2020 15906
Writeup of CVE-2020-15906
Stars: ✭ 39 (-44.29%)
Mutual labels:  exploitation
Binexp
Linux Binary Exploitation
Stars: ✭ 742 (+960%)
Mutual labels:  exploitation
Atscan
Advanced dork Search & Mass Exploit Scanner
Stars: ✭ 817 (+1067.14%)
Mutual labels:  exploitation
Leviathan
wide range mass audit toolkit
Stars: ✭ 862 (+1131.43%)
Mutual labels:  exploitation
Rizin
UNIX-like reverse engineering framework and command-line toolset.
Stars: ✭ 673 (+861.43%)
Mutual labels:  exploitation
Write Ups
📚 VoidHack CTF write-ups
Stars: ✭ 45 (-35.71%)
Mutual labels:  exploitation
Fsociety
fsociety Hacking Tools Pack – A Penetration Testing Framework
Stars: ✭ 7,224 (+10220%)
Mutual labels:  exploitation
Pysploit
Remote exploitation framework written in Python
Stars: ✭ 37 (-47.14%)
Mutual labels:  exploitation
Shellen
🌸 Interactive shellcoding environment to easily craft shellcodes
Stars: ✭ 799 (+1041.43%)
Mutual labels:  exploitation
Windows
Awesome tools to exploit Windows !
Stars: ✭ 816 (+1065.71%)
Mutual labels:  exploitation
Active Directory Exploitation Cheat Sheet
A cheat sheet that contains common enumeration and attack methods for Windows Active Directory.
Stars: ✭ 870 (+1142.86%)
Mutual labels:  exploitation
Exploitpack
Exploit Pack -The next generation exploit framework
Stars: ✭ 728 (+940%)
Mutual labels:  exploitation
Foxpwn
Exploit code for CVE-2016-9066
Stars: ✭ 39 (-44.29%)
Mutual labels:  exploitation
Exploit Writeups
A collection where my current and future writeups for exploits/CTF will go
Stars: ✭ 676 (+865.71%)
Mutual labels:  exploitation
Awesome Ethical Hacking Resources
🔗 All the resources I could find for learning Ethical Hacking and Penetration Testing.
Stars: ✭ 933 (+1232.86%)
Mutual labels:  exploitation
Binary Exploitation
Good to know, easy to forget information about binaries and their exploitation!
Stars: ✭ 47 (-32.86%)
Mutual labels:  exploitation
Vulnx
vulnx 🕷️ is an intelligent bot auto shell injector that detect vulnerabilities in multiple types of cms { `wordpress , joomla , drupal , prestashop .. `}
Stars: ✭ 1,009 (+1341.43%)
Mutual labels:  exploitation
Featherduster
An automated, modular cryptanalysis tool; i.e., a Weapon of Math Destruction
Stars: ✭ 876 (+1151.43%)
Mutual labels:  exploitation

PwIN - Pwning Intel piN

This repository contains supporting material for my master thesis Security Evaluation of Dynamic Binary Instrumentation Engines supervised by Julian Kirsch (@kirschju).

DBI Engines Detection Tool jitmenot

Utilising different artefacts introduced by the instrumentation process in the program's execution, one can detect the underlying Dynamic Binary Instrumentation (DBI) engine. The developed tool called jitmenot employs 13 different DBI detection mechanisms and can be built with the provided Makefile. The resulting binary (build/jitmenot) is then ready to be executed in the context of any DBI framework. A red POSITIVE next to a detection mechanism indicates that it has revealed DBI engine's presence, while a green NEGATIVE signals that no instrumentation was detected.

In order to execute the fsbase test, one has to load a kernel module (jitmenot/fsgsbase-mod) using make start which allows the execution of the rdfsbase instruction in userspace, available only for Intel processors newer than Ivy Bridge. Finally, starting jitmenot with -v parameter prints additional information for each test case.

Functionality was tested on Linux x86-64 with Intel Pin, DynamoRIO, QBDI, and Valgrind. Pull requests regarding new detection mechanisms are always welcome.

jitmenot

Sandbox Escaping when Controlling Code and Data

  • sandbox/SandboxPinTool.cpp: Tracks all system calls executed by the instrumented application and prints basic information about them, for example syscall number, parameters.

  • sandbox/escape.c: Escapes the DBI framework's sandbox by overwriting its own instrumented code. Executes one system call which is not registered by the tool as a proof of concept.

escape-0 escape-1

Sandbox Escape when Controlling only Data

  • shadow/pwnccgen.py: A python script that generates a program to a given Pintool which escapes DBI engine's sandbox by executing any assembly instructions, provided by the user via standard input.

  • shadow/ShadowStackTool.cpp: A straightforward implementation of a Shadow Stack according to ROPdefender: A Detection Tool to Defend Against Return-Oriented Programming Attacks by Lucas Davi, Ahmad-Reza Sadeghi, and Marcel Winandy. This Pintool can be used to illustrate the sandbox escape technique performed by programs generated with pwnccgen.py.

  • pwin/pwn.py: A python server that bootstraps an attack succeeding with probability 1:16 against an instrumented versions of wget, 1.19.2 and older (binary also provided in the same folder).

  • pwin/shell.c: A simple program which spawns a shell only in a DBI environment by executing code residing on a non-executable stack.

Further Information

More information about the core concepts can be found in the thesis. To experiment with the examples, one can build a Docker image using the provided Dockerfile. Alternatively, you can download an already built image from https://hub.docker.com/r/zhechkoz/pwin.

To create a container use:

docker run --privileged -i -t zhechkoz/pwin /bin/bash
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].