Sharingan é uma ferramenta de monitoramento de rede desenvolvida em Python, capaz de verificar a conectividade de serviços via TCP, e que está em evolução para suportar novas funcionalidades como parsing de HTML, fuzzing e escaneamento de portas.
Documentação completa (em inglês): todos os comandos do console e as opções de sessão (
set) estão documentados emdocs/(gerado com MkDocs + Material). Para ler localmente:uv run mkdocs servee abrahttp://127.0.0.1:8000. Ou leia direto emdocs/index.md,docs/commands.md,docs/options.md,docs/architecture.md.
Índice
- Sobre
- Funcionalidades
- Funcionalidades futuras
- Instalação
- Como Rodar (Console Interativo)
- Como Usar (CLI legada)
- Contribuição
- Licença
O Sharingan foi desenvolvido inicialmente para monitorar câmeras IP em um ambiente de trabalho, verificando a conectividade dos serviços via TCP. O objetivo é futuramente aumentar as funcionalidades na ferramenta.
- Monitoramento de Serviços : Verifica a disponibilidade de serviços em hosts na rede através de uma conexão TCP.
- HTML Parser: Analisa o conteúdo de páginas web e extrai dados importantes.
- Fuzzing de Arquivos e Diretórios: Realiza fuzzing para descobrir diretórios ou arquivos ocultos.
- Scanning de Portas: Verifica as portas abertas de um host para identificar serviços ativos.
- Monitoramento de Recursos: Função planejada para monitorar consumo de CPU, memória e mais.
git clone https://github.com/seu-usuario/sharingan.git
cd sharingan
Certifique-se de que o Python esteja instalado corretamente na sua máquina (versão >= 3.12). O gerenciador de dependências do projeto é o uv, que precisa estar instalado separadamente (curl -LsSf https://astral.sh/uv/install.sh | sh ou pipx install uv).
Com o uv instalado, instale as dependências do projeto a partir da raiz do repositório:
uv sync
Este é o modo suportado atualmente para rodar o Sharingan no terminal: um console interativo estilo msfconsole, com comandos como help, whois, scan, hosts, services, vulns, set, options.
A partir da raiz do repositório, com as dependências já instaladas (uv sync):
uv run python src_sharingan/sharingan_repl.py
Isso abre o prompt Sharingan >. Digite help para ver os comandos disponíveis, ou exit/quit para sair.
Sharingan Advanced Enum Tool
Type 'help' to display available commands.
Sharingan >
Observações:
- O comando
scanorquestra ferramentas externas (rustscan,nmap,searchsploit) — elas não são pacotes Python, precisam estar noPATHdo sistema. Se alguma faltar, o console oferece instalar automaticamente quando possível (veja oCLAUDE.mddo projeto para detalhes). - Os demais comandos (
whois,hosts,services,vulns,set,options) não dependem de nenhuma ferramenta externa. - Não existe mais um arquivo
sharingan.pyna raiz do projeto — esse era o nome de um script antigo (veja a seção legada abaixo). O ponto de entrada atual ésrc_sharingan/sharingan_repl.py.
Nota: a seção abaixo documenta a CLI legada (
src_sharingan/sharingan, baseada emargparse), mantida por compatibilidade mas não é mais o modo recomendado de usar o projeto. Para o uso atual, veja Como Rodar (Console Interativo) acima.
A ferramenta pode ser usada diretamente via linha de comando com vários parâmetros opcionais:
Para listar hosts ativos
uv run python src_sharingan/sharingan --monitor -f inventory.yaml --active
Para listar hosts inativos
uv run python src_sharingan/sharingan --monitor -f inventory.yaml --inactive
Ex:
⠿⠿⠿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠟⠛⠛⠛⠛⠛
⣶⣦⣤⣤⣤⣤⣤⣤⣬⣭⣭⣍⣉⡙⠛⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⣋⣩⣭⣥⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶
⣆⠀⠀⠀⢡⠁⠀⡀⠀⢸⠟⠻⣯⠙⠛⠷⣶⣬⡙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢉⣥⣶⡟⠻⣙⡉⠀⢰⡆⠀⠀⣡⠀⣧⠀⠀⠀⢨
⠻⣦⠀⠀⠈⣇⣀⣧⣴⣿⣶⣶⣿⣷⠀⢀⡇⠉⠻⢶⣌⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣡⡶⠟⠉⠀⢣⠀⣿⠷⠀⠀⠀⠀⣿⡷⢀⠇⠀⠀⢠⣿
⣦⡈⢧⡀⠀⠘⢮⡙⠛⠉⠀⠄⠙⢿⣀⠞⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠈⠳⣄⠉⠓⠒⠚⠋⢀⡠⠋⠀⢀⣴⣏⣿
⣿⣿⣿⣛⣦⣀⠀⠙⠓⠦⠤⣤⠔⠛⠁⠀⠀⠀⠀⠀⢀⣀⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣤⣤⣤⣤⣀⣀⣀⣀⢙⢓⣒⡒⠚⠋⢠⣤⢶⣟⣽⣿⣿
⣿⣿⣿⣿⣿⣿⣷⣦⠀⠀⣴⣿⣷⣶⣶⣶⣾⡖⢰⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣾⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
----------------- Sharingan - Hosts Ativos -----------------
gateway---------------------------------[22]
gateway---------------------------------[80]
google ---------------------------------[80]
google ---------------------------------[443]
Total de Hosts:6
Total de Hosts Ativos:2
--monitorou-m: Ativa o modo de monitoramento.--activeou-a: Lista os hosts ativos.--inactiveou-i: Lista os hosts inativos.--inventoryou-f: Fornece o caminho para o arquivo YAML de inventário de hosts.
Uma porta para vários hosts
hosts:
intranet:
addr: 10.37.0.3
gateway:
addr: 192.168.1.1
google:
addr: google.com
common_port: 80
Uma porta para cada host
hosts:
intranet:
addr: 10.37.0.3
ports:
- 80
- 443
gateway:
addr: 192.168.1.1
ports:
- 22
- 80
google:
addr: google.com
ports:
- 443
- 80
Essa função tem como objetivo realizar um htmlparser em um determinado alvo. Com ela, o usuário irá obter, pelo menos por enquanto, links de redirecionamentos na página específicada, e-mails de usuários, e futuramente mais algumas funcionalidades.
Função Spider
uv run python src_sharingan/sharingan --spider -u http://exemplo.com -d exemplo -o saida.txt
Onde:
--spiderou-p: Chama a função spider;--urlou-u: Informa a url do alvo;--domainou-d: Informa o domínio ou escopo no qual será realizado Parser será realizado;--outputou-o: Informa o caminho e o nome do arquivo onde será armazenado o resultado. (opcional).
Saída
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⠿⠿⠿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠟⠛⠛⠛⠛⠛
⣶⣦⣤⣤⣤⣤⣤⣤⣬⣭⣭⣍⣉⡙⠛⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⣋⣩⣭⣥⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶
⣆⠀⠀⠀⢡⠁⠀⡀⠀⢸⠟⠻⣯⠙⠛⠷⣶⣬⡙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢉⣥⣶⡟⠻⣙⡉⠀⢰⡆⠀⠀⣡⠀⣧⠀⠀⠀⢨
⠻⣦⠀⠀⠈⣇⣀⣧⣴⣿⣶⣶⣿⣷⠀⢀⡇⠉⠻⢶⣌⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣡⡶⠟⠉⠀⢣⠀⣿⠷⠀⠀⠀⠀⣿⡷⢀⠇⠀⠀⢠⣿
⣦⡈⢧⡀⠀⠘⢮⡙⠛⠉⠀⠄⠙⢿⣀⠞⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠈⠳⣄⠉⠓⠒⠚⠋⢀⡠⠋⠀⢀⣴⣏⣿
⣿⣿⣿⣛⣦⣀⠀⠙⠓⠦⠤⣤⠔⠛⠁⠀⠀⠀⠀⠀⢀⣀⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣤⣤⣤⣤⣀⣀⣀⣀⢙⢓⣒⡒⠚⠋⢠⣤⢶⣟⣽⣿⣿
⣿⣿⣿⣿⣿⣿⣷⣦⠀⠀⣴⣿⣷⣶⣶⣶⣾⡖⢰⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣾⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
Acessando: http://exemplo.com#contact
Emails encontrados:
roger@exemplo.com
ti@exemplo.com
lucia@exemplo.com
Links visitados:
http://exemplo.com#home
http://exemplo.com#nav-wrap
http://exemplo.com#intro
http://intranet.exemplo.com
http://rh.exemplo.com
http://exemplo.com/index.php
http://mail.exemplo.com
http://exemplo.com#services
uv run python src_sharingan/sharingan --help
Sinta-se à vontade para contribuir com o Sharingan. As sugestões e melhorias são sempre bem-vindas. Se você quiser contribuir, siga os passos abaixo:
-
Monitoramento de serviços em porta TCP - Refatoração/Reorganização (aberto a ideias)
-
Parser HTML -
Função --output - scanning de portas
- Versão do README.md em inglês
- Monitoramento de Recursos (Talvez)
- Faça um fork do projeto.
- Crie um branch para sua feature (git checkout -b minha-feature).
- Faça commit das suas alterações (git commit -m 'Minha nova feature').
- Envie para o branch (git push origin minha-feature).
- Abra um Pull Request. Se precisar de ajuda, confira o guia de contribuição do GitHub
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para mais detalhes.
