Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/whereisxuezugi/cplhf
Strumenti DifensiviAnalisi delle VulnerabilitàScripting e AutomazioneAudit di ConfigurazioneInformatica ForenseCTFPenetration TestingApprendimento e FormazioneRisposta agli Incidenti
GitHubwhereisxuezugi/cplhf

CPLHF

Toolkit Bash modulare che rafforza i sistemi Debian/Ubuntu per le competizioni CyberPatriot, automatizzando l'hardening di account, firewall, SSH, PAM e servizi con logging e backup.

512123 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
Condividi

CyberPatriot Linux Hardening Toolkit

Un toolkit Bash modulare per irrobustire sistemi della famiglia Debian/Ubuntu sotto la pressione del tempo di gara. Costruito e perfezionato nel corso di molteplici stagioni della CyberPatriot National Youth Cyber Defense Competition, recentemente classificatosi al livello Platinum nella divisione Linux al turno semifinale del 2025.

Questo non è un framework di conformità generico. È un automatizzatore di checklist per un esercizio a tempo di sei ore: esegue la maggioranza scriptabile di un passaggio di hardening Linux in modo corretto, rapido e idempotente, registra tutto ciò che ha toccato e lascia le decisioni di giudizio alla persona che lo esegue.

Contenuti

  • Perché esiste
  • Architettura
  • Avvio rapido
  • Cosa fa effettivamente
  • Note di sicurezza per la competizione
  • Configurazione
  • Struttura del repository
  • Testing
  • Controlli di sicurezza e riferimenti
  • Cosa questo progetto deliberatamente non fa
  • Licenza

Perché esiste

I round Linux di CyberPatriot valutano un'immagine live rispetto a una rubrica che premia un insieme piuttosto prevedibile di passaggi di hardening -- igiene degli account, policy delle password, configurazione del firewall, esposizione dei servizi, permessi dei file, livello di patch -- entro un limite di tempo rigido, di solito senza preavviso su quali vulnerabilità siano state inserite. Eseguire quella checklist a mano, correttamente, sotto un conto alla rovescia, è dove i team perdono punti facili a causa di errori di battitura e passaggi dimenticati, non per materiale sconosciuto.

Questo toolkit è nato come un singolo script monolitico scritto esattamente sotto quella pressione. Questo repository è una riscrittura di quello script: stessa copertura della checklist, ristrutturata in piccoli moduli monofunzionali che sono più facili da leggere, testare e ragionare in modo indipendente, con ogni decisione non ovvia collegata a una specifica sezione del CIS Benchmark o a un controllo NIST SP 800-53 (vedi Controlli di sicurezza e riferimenti).

Architettura

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)]

Ogni modulo è caricato tramite source da bin/harden.sh, che gestisce il parsing degli argomenti, il questionario sul ruolo del servizio e l'ordine di esecuzione. I moduli non si chiamano direttamente tra loro, e ogni comando che modifica lo stato in ogni modulo passa attraverso il wrapper run() in lib/common.sh, che dà all'intero progetto un unico punto in cui implementare il supporto dry-run, un logging coerente e una gestione degli errori non fatale.

Avvio rapido

git clone <this-repo>
cd cyberpatriot-linux-hardening
sudo ./bin/harden.sh

Ti verrà chiesta una breve serie di domande sì/no sul ruolo della macchina (se necessita di Samba, FTP, SSH, un web server e così via), poi viene eseguito senza supervisione attraverso i moduli elencati sopra. Un log, un set completo di backup di configurazione con timestamp e uno snapshot di baseline del sistema vengono scritti in ~/hardening-run/.

In un round reale, salta i prompt di conferma per singolo pacchetto e rispondi alle domande sul ruolo da un file di risposte preparato invece di digitarle dal vivo:

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

Vuoi vedere esattamente cosa farebbe prima che tocchi qualcosa?

sudo ./bin/harden.sh --dry-run --config my-machine.env

Cosa fa effettivamente

ModuloFa
lib/packages.shAggiornamento completo del sistema; rimuove automaticamente cracker di password e strumenti di exploitation; esamina strumenti a doppio uso (nmap, Wireshark, netcat) e servizi legacy (VNC, NFS, telnet) prima di rimuoverli
lib/firewall.shDefault-deny in ingresso / default-allow in uscita tramite ufw, più un blocco esplicito su una nota porta backdoor comune
lib/ssh.shCifrari/KEX/MAC moderni, nessun login root, limiti di connessione e sessione -- oppure rimuove completamente SSH se il ruolo non ne ha bisogno
lib/services.shSamba, FTP, mail, printing, MySQL, HTTP, DNS: ciascuno viene installato e minimamente irrobustito se il ruolo ne ha bisogno, oppure rimosso e bloccato dal firewall se no
lib/users.shRevisione interattiva degli account esistenti (diritti admin, cancellazione, reset password), rilevamento di account nascosti con UID 0 e password vuote
lib/kernel.shImpostazioni sysctl per lo stack di rete e l'autoprotezione del kernel (source routing, redirect ICMP, ASLR, scope ptrace, restrizione dmesg/kptr)
lib/pam.shComplessità e cronologia delle password tramite pam_pwquality/pam_pwhistory, blocco account tramite pam_faillock, scadenza password in login.defs
lib/filesystem.shPermessi dei file principali, restrizione cron/at, un rc.local minimale, banner legali di login, scansione in sola lettura di SUID/world-writable/file senza proprietario
lib/monitoring.shfail2ban e auditd per impostazione predefinita; ClamAV e una scansione completa rkhunter/chkrootkit sono opt-in (vedi Note di sicurezza per la competizione)
lib/forensics.shSnapshot in sola lettura di utenti, processi, porte in ascolto e pacchetti installati per confronti successivi

tools/find-port-owner.sh e tools/list-nonstandard-users.sh sono piccole utility autonome per lo stesso tipo di lavoro di triage, utilizzabili indipendentemente dallo script principale -- vedi le loro intestazioni per l'uso.

Note di sicurezza per la competizione

Uno script di hardening che rompe la macchina che dovrebbe proteggere è peggio che inutile in un round a tempo. Alcune impostazioni predefinite lo riflettono, e vale la pena comprenderle prima di eseguirlo senza supervisione:

Scarica lo strumento