Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
exrop — Generatore automatico di catene ROP per binari x86-64 utilizzando esecuzione simbolica. Supporta scritture su registri/memoria, chiamate a funzioni, syscall, badchar avoidance, stack pivoting e modalità kernel con riscrittura retpoline. | Kitploit
Strumenti/GitHubGitHub/d4em0n/exrop
Framework di ExploitGenerazione di PayloadReverse EngineeringCTFBinary Exploitation
GitHubd4em0n/exrop

exrop

Generatore automatico di catene ROP per binari x86-64 utilizzando esecuzione simbolica. Supporta scritture su registri/memoria, chiamate a funzioni, syscall, badchar avoidance, stack pivoting e modalità kernel con riscrittura retpoline.

Vedi Repository
309225 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Exrop

Generatore automatico di catene ROP per binari x86-64, basato sull'esecuzione simbolica di Triton.

Caratteristiche

  • Imposta i registri a costanti o ad altri registri (rdi=0x41414141, rdi=rax)
  • Scrive in memoria (indirizzi/valori costanti o basati su registri)
  • Scrive stringhe/byte in memoria
  • Chiamate a funzioni con argomenti misti costanti/registri/stringhe (open("/etc/passwd", 0))
  • Catene di syscall
  • Evitamento di caratteri non consentiti
  • Supporto per gadget senza ritorno (jmp reg, call reg)
  • Stack pivoting con ricerca di catene JOP per exploit kernel
  • Modalità kernel con riscrittura automatica dei thunk retpoline
  • Modalità solo pulizia per filtrare gadget con scritture di memoria pericolose come effetto collaterale
  • Composizione basata su suffisso: gadget con più istruzioni costruiti a partire da suffissi già analizzati
  • Analisi multiprocesso dei gadget con barra di avanzamento
  • Cache dei gadget (pickle) per un riutilizzo veloce

Installazione

pip (consigliato)

root@kitploit:~
pip install git+https://github.com/d4em0n/exrop.git

Questo installa exrop e le sue dipendenze Python (pyelftools, ROPGadget, triton-library).

Nota: Il pacchetto pip triton-library potrebbe non funzionare su tutte le piattaforme. Se l'installazione fallisce, compila Triton dai sorgenti e installa exrop senza la dipendenza da Triton:

root@kitploit:~
pip install --no-deps git+https://github.com/d4em0n/exrop.git
pip install pyelftools ROPGadget

Per sviluppo (installazione modificabile con dipendenze di test):

root@kitploit:~
git clone https://github.com/d4em0n/exrop.git
cd exrop
pip install -e ".[dev]"

Manuale

  1. Installa Python 3.6+
  2. Installa Triton
  3. Installa ROPGadget
  4. Opzionale: installa Keystone (necessario solo per i test)
  5. Clona questo repository e aggiungilo al tuo PYTHONPATH:
    root@kitploit:~
    git clone https://github.com/d4em0n/exrop.git
    export PYTHONPATH=/path/to/exrop:$PYTHONPATH
    

Avvio Rapido

root@kitploit:~
from Exrop import Exrop

rop = Exrop("/bin/ls")
rop.find_gadgets(cache=True)

# Set registers
chain = rop.set_regs({'rdi': 0x41414141, 'rsi': 0x42424242, 'rdx': 0x43434343})
chain.dump()

# Write to memory
chain = rop.set_writes({0x41414141: 0xdeadbeefff, 0x43434343: 0x00110011})
chain.dump()

# Write string to memory
chain = rop.set_string({0x41414141: "Hello world!\n"})
chain.dump()

# Function call
chain = rop.func_call(0x41414141, (0x20, 0x30, "Hello"), 0x7fffff00)
chain.dump()

Output:

root@kitploit:~
$RSP+0x0000 : 0x00000000000060d0 # pop rbx; ret
$RSP+0x0008 : 0x0000000044444444
$RSP+0x0010 : 0x0000000000014852 # mov rax, rbx; pop rbx; ret
$RSP+0x0018 : 0x0000000000000000
$RSP+0x0020 : 0x0000000000004ce5 # pop rdi; ret
$RSP+0x0028 : 0x0000000041414141
$RSP+0x0030 : 0x000000000000629c # pop rsi; ret
$RSP+0x0038 : 0x0000000042424242
$RSP+0x0040 : 0x0000000000003a62 # pop rdx; ret
$RSP+0x0048 : 0x0000000043434343
$RSP+0x0050 : 0x00000000000060d0 # pop rbx; ret
$RSP+0x0058 : 0x0000000045454545

Modalità Kernel

Per kernel Linux con mitigazioni retpoline, kernel_mode=True rileva automaticamente i simboli dei thunk, riscrive i gadget e si limita alla sezione .text:

root@kitploit:~
from Exrop import Exrop

rop = Exrop("/path/to/vmlinux")
rop.find_gadgets(cache=True, kernel_mode=True)
rop.clean_only = True  # esclude gadget con scritture pericolose come effetto collaterale

# Imposta registri
chain = rop.set_regs({'rdi': 0x41414141, 'rsi': 0})
chain.dump()

# Trova gadget per pivot (diretto, JOP-chain, indiretto)
pivots = rop.stack_pivot_reg('rdi')
for p in pivots[:5]:
    p.dump()

# Costruisci payload per un pivot
payload = pivots[0].build_payload(chain)

CLI exkrop

Il comando exkrop fornisce un flusso di lavoro interattivo per la generazione di catene ROP per kernel con selezione del pivot e output in codice C:

root@kitploit:~
exkrop <vmlinux>
# oppure: python3 -m exkrop <vmlinux>

Caratteristiche: template di exploit (privesc, sovrascrittura di core_pattern), output relativo a KASLR, browser dei gadget di pivot, gestione degli offset riservati e generazione di codice C. Vedi exkrop/README.md per dettagli.

Esempio Userspace: open-read-write

root@kitploit:~
from pwn import *
from Exrop import Exrop

libc = ELF("/lib/x86_64-linux-gnu/libc.so.6", checksec=False)
rop = Exrop(libc.path)
rop.find_gadgets(cache=True)

bss = libc.bss()

chain = rop.func_call(libc.symbols['open'], ("/etc/passwd", 0), bss)
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

chain = rop.func_call(libc.symbols['read'], ('rax', bss, 0x100))
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

chain = rop.func_call(libc.symbols['write'], (1, bss, 0x100))
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

Altri esempi nella directory examples/.

Scarica lo strumento