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
CPLHF — Kit modular em Bash que fortalece sistemas Debian/Ubuntu para competições CyberPatriot, automatizando o endurecimento de contas, firewall, SSH, PAM e serviços com registro e backups. | Kitploit
Ferramentas/GitHubGitHub/whereisxuezugi/cplhf
Ferramentas DefensivasAnálise de VulnerabilidadesScripting e AutomaçãoAuditoria de ConfiguraçãoAnálise ForenseCTFTestes de PenetraçãoAprendizado e EducaçãoResposta a Incidentes
GitHubwhereisxuezugi/cplhf

CPLHF

Kit modular em Bash que fortalece sistemas Debian/Ubuntu para competições CyberPatriot, automatizando o endurecimento de contas, firewall, SSH, PAM e serviços com registro e backups.

3há 3 diasAinda não revisado

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 →
Ver Repositório
Compartilhar

Toolkit de Hardening Linux para o CyberPatriot

Um toolkit modular em Bash para hardening de sistemas da família Debian/Ubuntu sob pressão de tempo de competição. Construído e refinado ao longo de várias temporadas da CyberPatriot National Youth Cyber Defense Competition, tendo mais recentemente alcançado o nível Platinum na divisão Linux na rodada semifinal de 2025.

Este não é um framework de conformidade de propósito geral. É um automatizador de checklist para um exercício cronometrado de seis horas: ele executa a maioria scriptável de uma passagem de hardening Linux de forma correta, rápida e idempotente, registra tudo o que tocou e deixa as decisões de julgamento para quem o executa.

Conteúdo

  • Por que isto existe
  • Arquitetura
  • Início rápido
  • O que ele realmente faz
  • Notas de segurança para competição
  • Configuração
  • Layout do repositório
  • Testes
  • Controles de segurança e referências
  • O que este projeto deliberadamente não faz
  • Licença

Por que isto existe

As rodadas Linux do CyberPatriot pontuam uma imagem ativa contra uma rubrica que recompensa um conjunto bastante previsível de etapas de hardening -- higiene de contas, política de senhas, configuração de firewall, exposição de serviços, permissões de arquivos, nível de patches -- sob um limite de tempo rígido, geralmente sem aviso prévio de exatamente quais vulnerabilidades foram plantadas. Fazer esse checklist à mão, corretamente, sob contagem regressiva, é onde as equipes perdem pontos fáceis por erros de digitação e etapas esquecidas, não por conteúdo desconhecido.

Este toolkit começou como um único script monolítico escrito exatamente sob essa pressão. Este repositório é uma reescrita desse script: mesma cobertura de checklist, reestruturado em módulos pequenos e de propósito único que são mais fáceis de ler, testar e raciocinar de forma independente, com cada decisão não óbvia vinculada a uma seção específica do CIS Benchmark ou controle do NIST SP 800-53 (veja Controles de segurança e referências).

Arquitetura

root@kitploit:~
flowchart TD
    A[bin/harden.sh] --> B[lib/common.sh<br/>logging, backups, run wrapper]
    A --> C[Service-role prompts<br/>or --config file]
    A --> D[lib/packages.sh<br/>updates, attack-tool removal]
    A --> E[lib/firewall.sh<br/>default-deny + ufw]
    A --> F[lib/ssh.sh]
    A --> G[lib/services.sh<br/>samba/ftp/mail/http/mysql/dns]
    A --> H[lib/users.sh<br/>account review, hidden UID 0]
    A --> I[lib/kernel.sh<br/>sysctl hardening]
    A --> J[lib/pam.sh<br/>password policy, lockout]
    A --> K[lib/filesystem.sh<br/>permissions, cron, banners]
    A --> L[lib/monitoring.sh<br/>fail2ban, auditd, rkhunter]
    A --> M[lib/forensics.sh<br/>baseline snapshot]
    D & E & F & G & H & I & J & K & L & M --> N[(~/hardening-run/<br/>log + backups + baseline)]

Cada módulo é carregado por bin/harden.sh, que é responsável pela análise de argumentos, pelo questionário de função do serviço e pela ordem de execução. Os módulos não chamam uns aos outros diretamente, e todo comando que altera estado em cada módulo passa pelo wrapper run() em lib/common.sh, o que dá ao projeto inteiro um único lugar para implementar suporte a dry-run, logging consistente e tratamento de erros não fatais.

Início rápido

root@kitploit:~
git clone <this-repo>
cd cyberpatriot-linux-hardening
sudo ./bin/harden.sh

Serão feitas uma breve série de perguntas de sim/não sobre a função da máquina (se ela precisa de Samba, FTP, SSH, um servidor web, e assim por diante), e então ele executa de forma não assistida pelos módulos listados acima. Um log, um conjunto completo de backups de configuração com timestamp e um snapshot de baseline do sistema são gravados em ~/hardening-run/.

Em uma rodada real, pule os prompts de confirmação por pacote e responda às perguntas de função a partir de um arquivo de respostas preparado, em vez de digitá-las ao vivo:

root@kitploit:~
cp examples/config.env.example my-machine.env
# edit my-machine.env for this box's actual role
sudo ./bin/harden.sh --config my-machine.env --auto-approve

Quer ver exatamente o que ele faria antes de tocar em qualquer coisa?

root@kitploit:~
sudo ./bin/harden.sh --dry-run --config my-machine.env

O que ele realmente faz

MóduloFaz
lib/packages.shAtualização completa do sistema; remove automaticamente quebradores de senha e ferramentas de exploração; revisa ferramentas de uso duplo (nmap, Wireshark, netcat) e serviços legados (VNC, NFS, telnet) antes de removê-los
lib/firewall.shDefault-deny para entrada / default-allow para saída via ufw, além de um bloqueio explícito em uma porta de backdoor comum conhecida
lib/ssh.shCifras/KEX/MACs modernos, sem login root, limites de conexão e sessão -- ou remove o SSH completamente se a função não precisar dele
lib/services.shSamba, FTP, mail, impressão, MySQL, HTTP, DNS: cada um é instalado e minimamente endurecido se a função precisar dele, ou removido e bloqueado por firewall se não precisar
lib/users.shRevisão interativa das contas existentes (direitos de admin, exclusão, redefinição de senha), detecção de contas ocultas com UID 0 e senhas vazias
lib/kernel.shConfigurações sysctl de pilha de rede e autoproteção do kernel (source routing, redirecionamentos ICMP, ASLR, escopo de ptrace, restrição de dmesg/kptr)
lib/pam.shComplexidade e histórico de senhas via pam_pwquality/pam_pwhistory, bloqueio de conta via pam_faillock, expiração de senha em login.defs
lib/filesystem.shPermissões de arquivos principais, restrição de cron/at, um rc.local mínimo, banners legais de login, varredura somente leitura de SUID/gravable por todos/arquivos sem dono
lib/monitoring.shfail2ban e auditd por padrão; ClamAV e uma varredura completa de rkhunter/chkrootkit são opt-in (veja Notas de segurança para competição)
lib/forensics.shSnapshot somente leitura de usuários, processos, portas em escuta e pacotes instalados para comparação posterior

tools/find-port-owner.sh e tools/list-nonstandard-users.sh são pequenos utilitários autônomos para o mesmo tipo de trabalho de triagem, utilizáveis independentemente do script principal -- veja seus cabeçalhos para uso.

Notas de segurança para competição

Um script de hardening que quebra a máquina que deveria proteger é pior que inútil em uma rodada cronometrada. Alguns padrões refletem isso e vale a pena entendê-los antes de executá-lo de forma não assistida:

  • A autenticação por senha do SSH vem ativada por padrão. A recomendação mais estrita do CIS, apenas com chaves, está a um valor de configuração de distância (SSH_PASSWORD_AUTH=no), mas o padrão aqui favorece não trancar uma equipe fora de sua própria máquina quando ninguém provisionou chaves ainda.
  • Ferramentas de uso duplo são revisadas, não removidas automaticamente. nmap, Wireshark, tcpdump e variantes de netcat são ferramentas comuns de atacante, mas também são ferramentas comuns de administrador, e algumas imagens de competição exigem especificamente uma delas para a função declarada da máquina. Elas são removidas após confirmação, não silenciosamente.
  • ClamAV e a varredura rkhunter/chkrootkit são opt-in (INSTALL_CLAMAV, RUN_BASELINE_SCAN), porque são as duas coisas mais lentas que este script pode fazer e nenhuma delas altera o estado do sistema por conta própria. Ative-as se seu checklist exigir ou se você tiver tempo de sobra.
  • Nada aqui verifica a conectividade do seu motor de pontuação. O módulo de firewall tem como padrão permitir toda a saída e apenas fecha portas de entrada para serviços que a função não precisa, mas se sua imagem específica reporta a um servidor de pontuação ou agente local por uma porta não padrão, isso é responsabilidade sua de verificar -- veja ~/hardening-run/baseline/listening_ports.txt de uma execução anterior se não tiver certeza do que está realmente escutando antes de endurecer uma máquina pela primeira vez.
  • Senhas do GRUB não são automatizadas, pelo mesmo motivo: uma senha ruim do GRUB pode transformar uma passagem de hardening em uma máquina que não inicializa, sem caminho rápido de recuperação no meio da rodada. Veja docs/security-controls.md para o procedimento manual.
  • Todo módulo é idempotente. Reexecutar o script em uma máquina já endurecida (por exemplo, após uma execução parcial ter sido interrompida) não duplicará blocos de configuração nem dará erro.

Configuração

bin/harden.sh perguntará interativamente sobre a função de serviço da máquina se você não responder antecipadamente. Para pular os prompts, copie examples/config.env.example, preencha a função real e passe-o com --config. Qualquer variável que você deixar de fora do arquivo recairá em um prompt interativo, então um arquivo de configuração parcialmente preenchido é aceitável.

root@kitploit:~
sudo ./bin/harden.sh --config my-machine.env

Flags:

FlagEfeito
--config FILECarrega respostas de função/política de um arquivo env
--dry-runRegistra toda ação que seria tomada; não altera nada
--auto-approvePula os prompts de confirmação de remoção por pacote

Layout do repositório

root@kitploit:~
.
├── bin/harden.sh                    orchestrator: parses args, asks role questions, runs modules in order
├── lib/
│   ├── common.sh                    logging, backups, idempotent file edits, the run() wrapper
│   ├── packages.sh                  updates, attack-tool removal
│   ├── ssh.sh                       SSH install/removal and hardening
│   ├── services.sh                  samba/ftp/telnet/mail/printing/mysql/http/dns
│   ├── firewall.sh                  ufw default-deny posture
│   ├── users.sh                     account review, hidden UID 0 / empty password detection
│   ├── kernel.sh                    sysctl hardening
│   ├── pam.sh                       password policy, account lockout
│   ├── filesystem.sh                permissions, cron, rc.local, banners, anomaly scan
│   ├── monitoring.sh                fail2ban, auditd, rkhunter, chkrootkit, ClamAV
│   └── forensics.sh                 read-only system baseline snapshot
├── tools/
│   ├── find-port-owner.sh           resolve a listening TCP port to a process path
│   └── list-nonstandard-users.sh    flag UID >= 1000 accounts not on an expected list
├── docs/
│   ├── security-controls.md         every hardening decision, mapped to its source standard
│   └── editor-cheatsheet.md         small editor commands worth remembering under pressure
├── examples/config.env.example      annotated template for non-interactive runs
└── .github/workflows/shellcheck.yml lint on every push/PR

Testes

Todo script passa por lint com ShellCheck em cada push via GitHub Actions (.github/workflows/shellcheck.yml). Para verificar localmente antes de abrir um PR:

root@kitploit:~
shellcheck lib/*.sh bin/*.sh tools/*.sh

bin/harden.sh --dry-run também é, por si só, um teste: ele exercita o fluxo de controle e o logging de cada módulo sem tocar no sistema de arquivos ou instalar qualquer coisa, e é a maneira mais rápida de verificar uma mudança em uma VM descartável antes de executá-la de verdade. Veja CONTRIBUTING.md para as expectativas completas sobre novos módulos (idempotência, encaminhar ações destrutivas por run() e citar uma fonte para qualquer nova etapa de hardening).

Controles de segurança e referências

O comentário de cabeçalho de cada módulo e docs/security-controls.md citam a seção específica do padrão por trás de cada decisão. Fontes primárias usadas em todo o projeto:

PadrãoFonte
CIS Ubuntu Linux Benchmarkhttps://www.cisecurity.org/benchmark/ubuntu_linux
NIST SP 800-53 Rev. 5https://csrc.nist.gov/pubs/sp/800/53/r5/upd1/final
DISA STIG for Ubuntuhttps://public.cyber.mil/stigs/downloads/
Mozilla OpenSSH modern configuration guidelineshttps://infosec.mozilla.org/guidelines/openssh
CyberPatriot National Youth Cyber Defense Competitionhttps://www.uscyberpatriot.org/

Ferramentas de detecção referenciadas (não embutidas, instaladas via apt): fail2ban, Linux Audit / auditd, rkhunter, chkrootkit. Lynis e OpenSCAP são recomendados como uma auditoria independente de acompanhamento e não são executados automaticamente por este projeto.

O que este projeto deliberadamente não faz

  • Automatizar senhas do bootloader GRUB (risco de máquina não inicializável; veja acima)
  • Corrigir automaticamente qualquer coisa encontrada pelas varreduras de SUID/gravable por todos/rootkit -- os achados são registrados para revisão humana, nunca tratados automaticamente
  • Baixar ou executar ferramentas de enumeração ofensiva de qualquer tipo
  • Tocar em pacotes que não reconhece explicitamente -- um pacote desconhecido (que pode muito bem ser um agente de pontuação) é deixado em paz em vez de ser adivinhado
  • Cobrir configurações apenas de GUI (timeout de bloqueio de tela, preferências do gerenciador de atualizações, configuração de navegador) -- essas ainda precisam ser verificadas manualmente

Veja docs/security-controls.md para o raciocínio completo por trás de cada uma dessas decisões.

Licença

MIT. Veja LICENSE.

Baixar ferramenta