CheatSheetHost
Um servidor web leve e orientado a conteúdo para hospedar cheatsheets interativos e materiais de referência. Perfeito para desafios CTF (Capture The Flag), engenharia reversa e documentação técnica. É melhor usado em laboratórios onde você deseja limitar ou evitar tráfego externo, mantendo acesso a material útil.
*** Eu endureci um pouco o script, mas você deve revisar antes de usar e/ou implantar em um ambiente de laboratório ***
Características
- Conteúdo Simples Baseado em JSON: Defina cheatsheets usando arquivos JSON fáceis de editar
- Design Responsivo: Funciona em desktop, tablet e dispositivos móveis
- Tema Terminal Retro: Estética nostálgica de monitor CRT verde sobre preto
- Acessível na LAN: Compartilhe cheatsheets em sua rede local
- Múltiplos Tipos de Seção: Tabelas, blocos de texto, trechos de código e tabelas ASCII
- Recarregamento Automático: Atualize o navegador para ver as mudanças instantaneamente
- Servidor com Threads: Lida com múltiplas conexões simultâneas
Início Rápido
Pré-requisitos
Instalação
-
Clone ou baixe este repositório:
git clone https://github.com/JimmyAder/CheatSheetHost.git
cd CheatSheetHost
-
Execute o servidor:
python3 host_content_site.py
-
Abra seu navegador em http://127.0.0.1:8766
O servidor criará automaticamente arquivos padrão se eles não existirem.
Links
Uso
Acessando o Site
- Acesso Local:
http://127.0.0.1:8766
- Acesso na Rede:
http://[seu-ip-local]:8766 (exibido na inicialização)
Navegação
- Página Inicial: Lista todos os cheatsheets disponíveis
- Páginas Individuais: Clique em qualquer cheatsheet para visualizar seu conteúdo
- Barra de Navegação: Links rápidos para todas as páginas
Endpoint da API
GET /api/pages: Retorna uma lista JSON de slugs de páginas disponíveis
Criando e Modificando Cheatsheets
Os cheatsheets são armazenados como arquivos JSON no diretório pages/. Cada arquivo define uma única página com a seguinte estrutura:
{
"slug": "my-cheatsheet",
"title": "My Custom Cheatsheet",
"subtitle": "A brief description of this cheatsheet",
"sections": [
{
"type": "table",
"title": "Section Title",
"items": [
{"key": "Command", "value": "Description"},
{"key": "Another", "value": "Command"}
]
},
{
"type": "text",
"title": "Notes",
"text": "Some explanatory text here."
},
{
"type": "code",
"title": "Example Code",
"language": "python",
"code": "print('Hello, World!')"
}
],
"ascii": {
"title": "ASCII Table",
"blocks_across": 6,
"min_width_px": 920
}
}
Tipos de Seção
- table: Pares chave-valor exibidos em formato de tabela
- text: Conteúdo de texto simples (suporta quebras de linha)
- code: Blocos de código com destaque de sintaxe
- ascii: Tabela especial de caracteres ASCII (opcional)
Nomenclatura de Arquivos
- Os arquivos devem ser nomeados de forma descritiva (ex.:
gdb-cheatsheet.json)
- O campo
slug determina o caminho da URL (gerado automaticamente a partir do nome do arquivo se omitido)
- O JSON deve ser válido; arquivos inválidos são ignorados com um aviso
Personalização
Estilização
Edite site_template.html para modificar a aparência:
- Variáveis CSS em
:root para cores e layout
- Pontos de quebra responsivos para diferentes tamanhos de tela
- Elementos de design no estilo terminal
Configuração do Servidor
Opções de linha de comando:
python3 host_content_site.py --host 0.0.0.0 --port 8080
--host: Endereço IP para vincular (padrão: 0.0.0.0)
--port: Número da porta (padrão: 8766)
Estrutura do Projeto
CheatSheetHost/
├── host_content_site.py # Main server script
├── site_template.html # HTML template and CSS
├── pages/ # Cheatsheet JSON files
│ ├── ctf-cheatsheet.json
│ ├── gdb-cheatsheet.json
│ └── ...
└── README.md # This file
Cheatsheets Incluídos
- CTF Master Sheet: Registradores, chamadas de sistema e técnicas comuns
- Bitwise / Crypto Pattern Recognition: Referência para identificar operações bitwise, codificadores, hashes e padrões criptográficos
- C / C++ for Reverse Engineering: Referência prática de C e C++ para ler saída de descompiladores e reconstruir lógica
- GDB/x64dbg: Comandos e fluxos de trabalho de depuração
- Ghidra: Atalhos de ferramentas de engenharia reversa
- Helpful Links & Study References: Engenharia Reversa, CTFs, Criptografia, Internals Binários e Plataformas de Prática
- Helpful Linux Commands for Reverse Engineering: Comandos comuns de linha de comando do Linux para triagem, inspeção binária, depuração e análise de arquivos
- IDA Pro: Hotkeys e recursos do desmontador
- Neovim: Comandos e configuração do editor
- Python for Reverse Engineering: Referência prática de Python para parsing, decodificação e reconstrução de algoritmos
- WinDbg: Comandos de depuração no Windows
- x64 Assembly: Referência de instruções
- x64 Shellcode Syscalls: Números de chamadas de sistema
- x86-32 Assembly: Referência de assembly 32 bits
Contribuindo
Adicionando Novos Cheatsheets
- Crie um novo arquivo JSON no diretório
pages/
- Siga a estrutura JSON descrita acima
- Teste atualizando o navegador
- Envie um pull request
Melhorando o Código
- O servidor é construído com o módulo
http.server do Python
- Suporte a threads para requisições concorrentes
- Dependências mínimas (apenas a biblioteca padrão)
Reportando Problemas
- Verifique os logs do servidor para erros de parsing JSON
- Certifique-se de que os arquivos JSON são válidos
- Teste em diferentes navegadores/dispositivos
Desenvolvimento
Executando a Partir do Código Fonte
python3 host_content_site.py
Testando Alterações
- Edite arquivos JSON e atualize o navegador
- Modifique
site_template.html para mudanças de estilo
- Reinicie o servidor para alterações no código Python
Licença
Este projeto é open source. Sinta-se à vontade para usar, modificar e distribuir.
Suporte
- Para perguntas ou problemas, abra uma issue no GitHub
- Contribuições são bem-vindas via pull requests
- Dê uma estrela no repositório se achar útil!