Loading repository data…
Loading repository data…
MrCl0wnLab / repository
Este projeto implementa comunicação bidirecional entre servidor e target, permitindo que o operador execute comandos JavaScript e manipule páginas web em tempo real.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Um sistema avançado de comunicação bidirecional entre servidor e cliente, permitindo que administradores executem comandos JavaScript e manipulem páginas web em tempo real, sem necessidade de atualização da página.
Thunder Command é uma ferramenta poderosa para controle remoto de páginas web que permite a administradores executar ações em tempo real em navegadores de clientes conectados. A partir da versão 2.0, o sistema foi modernizado e utiliza exclusivamente HTTP polling para comunicação, oferecendo maior compatibilidade e estabilidade. O sistema agora conta com persistência SQLite e interface administrativa aprimorada com HTMX.
As páginas de coleta fornecidas aqui são estritamente destinadas a fins educacionais e de treinamento. O objetivo é aumentar a conscientização sobre ameaças de segurança e ensinar os usuários a se proteger contra ataques de coleta. Ao acessar essas páginas, você concorda em usá-las apenas dentro de uma estrutura legal e ética, em conformidade com as leis e regulamentos aplicáveis em sua jurisdição.
As páginas de coleta fornecidas neste repositório têm como objetivo apoiar profissionais de segurança em seus estudos e aprimoramento do cenário de cibersegurança, tudo dentro do contexto de construção de um ambiente de simulação de ataque e defesa.
O autor desta página se isenta de qualquer responsabilidade pelo uso malicioso ou ilegal dessas páginas de coleta. Qualquer pessoa que use essas páginas para fins não conformes à lei será a única responsável por suas ações. É altamente recomendável nunca usar essas técnicas para qualquer finalidade que não seja aprendizado e conscientização. O autor não monitora o uso dessas páginas após o download e transfere toda a responsabilidade ao usuário após o download.
O sistema utiliza exclusivamente HTTP polling para comunicação entre servidor e cliente, oferecendo máxima compatibilidade e estabilidade:
graph TB
%% Painel Administrativo
Admin[Admin Dashboard]
CommandBuilder[Command Builder]
ClientMonitor[Client Monitor]
CommandLogs[Command Logs]
StatsCharts[Stats & Charts]
%% Backend / Servidor
Server[Flask Server - HTTP Polling]
AuthModule[Auth Module]
CommandStorage[Command Storage]
ClientRegistry[Client Registry]
ResultCapture[Result Capture]
LoggingSystem[Logging System]
%% Banco de Dados
DB[SQLite DB]
ClientTable[(Clients Table)]
CommandTable[(Commands Table)]
ResultsTable[(Results Table)]
%% Cliente
Clients[Client Browsers]
PollingClient[HTTP Polling Client]
CommandExecutor[Command Executor]
ClientIdentifier[Client ID Storage]
SafeDOM[Safe DOM Manipulation]
ResultSender[Result Sender]
%% Fluxo de Autenticação
AdminLogin[Login]
AdminLogin -->|Credentials| AuthModule
AuthModule -->|Session| Admin
%% Fluxo de Comandos
CommandBuilder -->|Cria Comando| CommandStorage
CommandStorage -->|Armazena| CommandTable
CommandStorage -->|Envia Comando| Server
Server -->|Resposta Polling| PollingClient
PollingClient -->|Executa| CommandExecutor
%% Banco de Dados
ClientRegistry <--> ClientTable
CommandStorage <--> CommandTable
ResultCapture <--> ResultsTable
%% Gerenciamento Cliente
Clients -->|Registro & Heartbeat| ClientRegistry
ClientRegistry -->|Atualiza| ClientMonitor
ClientIdentifier -->|ID Persistente| ClientRegistry
%% Execução Segura
CommandExecutor -->|DOM/JS/HTML| SafeDOM
SafeDOM -->|Manipulação DOM| CommandExecutor
SafeDOM -->|Injeção HTML| CommandExecutor
%% Envio de Resultados
CommandExecutor -->|Envia Resultados| ResultSender
ResultSender -->|POST/JSONP| ResultCapture
ResultCapture -->|Armazena| LoggingSystem
ResultCapture -->|Atualiza| StatsCharts
%% HTMX Atualizações
Admin -->|Atualizações Parciais| StatsCharts
Admin -->|Dados Reais| ClientMonitor
Admin -->|Atualiza Logs| CommandLogs
%% Classes de Nós (Estilos simplificados)
classDef admin color:#fff,fill:#800026
classDef server color:#fff,fill:#1C2238
classDef db color:#fff,fill:#286090
classDef client color:#fff,fill:#3258a8
class Admin,CommandBuilder,ClientMonitor,CommandLogs,StatsCharts admin
class Server,AuthModule,CommandStorage,ClientRegistry,ResultCapture,LoggingSystem server
class DB,ClientTable,CommandTable,ResultsTable db
class Clients,PollingClient,CommandExecutor,ClientIdentifier,SafeDOM,ResultSender client
ThunderCommand/
├── app.py # Servidor Flask principal (arquitetura unificada)
├── CLAUDE.md # Guia técnico para Claude Code
├── docker-compose.yml # Configuração Docker para deploy
├── package.json # Scripts npm e dependências frontend
├── requirements.txt # Dependências Python
├── clear_db.py # Utilitário para resetar banco de dados
├── core/ # Módulos principais do sistema
│ ├── database/ # Camada de persistência SQLite
│ │ ├── connection.py # Conexão e schema do banco
│ │ ├── client_repository.py # Repositório de clientes
│ │ └── command_repository.py # Repositório de comandos
│ └── utils/
│ ├── logger.py # Sistema de logging multi-nível (app, command, auth)
│ └── helpers.py # Utilitários auxiliares
├── exemples/ # Exemplos de implementação
│ ├── example-class-id.html # Exemplo targeting por classe/ID
│ ├── exemple-clear.html # Exemplo de limpeza de comandos
│ └── exemple-wifi.html # Exemplo para captive portals
├── payload/ # Scripts cliente para execução remota
│ ├── cmd.js # Cliente HTTP polling (atual)
│ └── cmd.js.new # Versão atualizada do cliente
├── static/ # Recursos estáticos do aplicativo
│ ├── css/ # Estilos e temas
│ │ ├── custom-dark-red.css # Tema escuro principal
│ │ └── components/ # Estilos por componente
│ ├── js/ # Scripts JavaScript modulares
│ │ ├── app.js # Script principal da aplicação
│ │ ├── modules/ # Módulos JavaScript organizados
│ │ │ ├── client-manager.js # Gerenciamento de clientes
│ │ │ ├── command-handler.js # Processamento de comandos
│ │ │ └── dashboard-ui.js # Interface do dashboard
│ │ └── vendor/ # Bibliotecas de terceiros
│ └── img/ # Imagens e screenshots atualizados
├── templates/ # Templates HTML modulares
│ ├── base.html # Template base
│ ├── admin_base.html # Base para páginas administrativas
│ ├── admin-dashboard.html # Dashboard principal HTMX
│ ├── login.html # Autenticação
│ ├── server_to_client.html # Página cliente
│ ├── partials/ # Componentes HTMX reutilizáveis
│ └── components/ # Componentes UI modulares
├── tests/ # Suíte de testes
│ ├── unit/ # Testes unitários
│ │ └── test_command_executor.py # Testes de execução de comandos
│ └── integration/ # Testes de integração
│ └── test_routes.py # Testes de rotas
├── logs/ # Logs da aplicação (auto-gerados)
│ ├── app.log # Logs gerais
│ ├── command.log # Logs de comandos
│ └── auth.log # Logs de autenticação
└── thunder_command.db # Banco de dados SQLite (auto-criado)
git clone https://github.com/MrCl0wnLab/ThunderCommand.git
cd ThunderCommand
pip install -r requirements.txt
npm install
python app.py
Modo desenvolvimento:
FLASK_ENV=development python app.py
# ou
npm run dev
http://localhost:5000/http://localhost:5000/admintandera / tanderaPara melhorar a segurança, você pode configurar as credenciais de administrador e outras configurações via variáveis de ambiente:
# Configuração de segurança
export SECRET_KEY="sua_chave_secreta_aqui"
export ADMIN_USERNAME="seu_usuario_admin"
export ADMIN_PASSWORD="sua_senha_segura"
# Configuração de ambiente
export FLASK_ENV="development" # ou "production"
# Executar aplicação
python app.py
# Executar com docker-compose
docker-compose up
# Executar em background
docker-compose up -d
# Parar containers
docker-compose down
# Executar aplicação
python app.py # Modo produção
FLASK_ENV=development python app.py # Modo desenvolvimento
npm run dev # Modo desenvolvimento (alternativo)
npm start # Modo produção (alternativo)
# Executar testes
pytest # Todos os testes
pytest tests/unit/ # Apenas testes unitários
pytest tests/integration/ #