Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CPLHF — Modulares Bash-Toolkit, das Debian/Ubuntu-Systeme für CyberPatriot-Wettbewerbe härtet und die Härtung von Konten, Firewall, SSH, PAM und Diensten mit Protokollierung und Backups automatisiert. | Kitploit
Tools/GitHubGitHub/whereisxuezugi/cplhf
DefensivwerkzeugeSchwachstellenanalyseScripting & AutomatisierungKonfigurationsprüfungForensikCTFPenetrationstestsLernen & BildungIncident Response
GitHubwhereisxuezugi/cplhf

CPLHF

Modulares Bash-Toolkit, das Debian/Ubuntu-Systeme für CyberPatriot-Wettbewerbe härtet und die Härtung von Konten, Firewall, SSH, PAM und Diensten mit Protokollierung und Backups automatisiert.

3vor 3 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
Teilen

CyberPatriot Linux Hardening Toolkit

Ein modulares Bash-Toolkit zur Härtung von Systemen der Debian/Ubuntu-Familie unter Wettkampfzeitdruck. Entwickelt und verfeinert über mehrere Saisons des CyberPatriot National Youth Cyber Defense Competition, zuletzt mit Platin-Tier-Platzierung in der Linux-Division in der Halbfinalrunde 2025.

Dies ist kein universelles Compliance-Framework. Es ist ein Checklisten- Automatisierer für eine sechsstündige zeitlich begrenzte Übung: Er erledigt den skriptbaren Großteil eines Linux-Härtungsdurchlaufs korrekt, schnell und idempotent, protokolliert alles, was er angefasst hat, und überlässt die Ermessensentscheidungen der Person, die ihn ausführt.

Inhalt

  • Warum das existiert
  • Architektur
  • Schnellstart
  • Was es tatsächlich tut
  • Sicherheitshinweise für den Wettkampf
  • Konfiguration
  • Repository-Aufbau
  • Tests
  • Sicherheitskontrollen und Referenzen
  • Was dieses Projekt bewusst nicht tut
  • Lizenz

Warum das existiert

Die Linux-Runden von CyberPatriot bewerten ein Live-Image anhand eines Rubrik, die eine ziemlich vorhersehbare Reihe von Härtungsschritten belohnt -- Account-Hygiene, Passwortrichtlinie, Firewall-Konfiguration, Dienstoffenlegung, Dateiberechtigungen, Patch-Stand -- unter einem harten Zeitlimit, meist ohne vorherige Ankündigung, welche Schwachstellen genau platziert wurden. Diese Checkliste von Hand, korrekt, unter einem Countdown zu erledigen, ist der Punkt, an dem Teams leichte Punkte durch Tippfehler und vergessene Schritte verlieren, nicht durch unbekanntes Material.

Dieses Toolkit begann als ein einziges monolithisches Skript, das genau unter diesem Druck geschrieben wurde. Dieses Repository ist eine Neufassung dieses Skripts: gleiche Checklisten-Abdeckung, umstrukturiert in kleine, zweckgebundene Module, die leichter zu lesen, zu testen und unabhängig zu durchdenken sind, wobei jede nicht offensichtliche Entscheidung auf einen bestimmten CIS-Benchmark-Abschnitt oder eine NIST-SP-800-53-Kontrolle zurückgeführt wird (siehe Sicherheitskontrollen und Referenzen).

Architektur

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

Jedes Modul wird von bin/harden.sh eingebunden, das die Argumentverarbeitung, den Fragebogen zur Dienstrrolle und die Ausführungsreihenfolge verwaltet. Module rufen sich nicht gegenseitig direkt auf, und jeder zustandsändernde Befehl in jedem Modul läuft durch den run()-Wrapper in lib/common.sh, was dem gesamten Projekt einen einzigen Ort gibt, um Dry-Run-Unterstützung, konsistentes Logging und nicht-fatale Fehlerbehandlung zu implementieren.

Schnellstart

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

Sie werden eine kurze Reihe von Ja/Nein-Fragen zur Rolle der Maschine gefragt (braucht sie Samba, FTP, SSH, einen Webserver und so weiter), dann läuft es unbeaufsichtigt durch die oben aufgeführten Module. Ein Log, ein vollständiger Satz zeitgestempelter Konfigurations-Backups und ein System-Baseline-Snapshot werden nach ~/hardening-run/ geschrieben.

In einer tatsächlichen Runde überspringen Sie die Bestätigungsaufforderungen pro Paket und beantworten Sie die Rollenfragen aus einer vorbereiteten Antwortdatei, anstatt sie live einzugeben:

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

Möchten Sie genau sehen, was es tun würde, bevor es irgendetwas anfasst?

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

Was es tatsächlich tut

ModulTut
lib/packages.shVollständiges System-Update; entfernt Passwort-Cracker und Exploitation-Tools automatisch; prüft Dual-Use-Tools (nmap, Wireshark, netcat) und Legacy-Dienste (VNC, NFS, telnet) vor deren Entfernung
lib/firewall.shDefault-Deny eingehend / Default-Allow ausgehend via ufw, plus expliziter Block auf einen bekannten gängigen Backdoor-Port
lib/ssh.shModerne Ciphers/KEX/MACs, kein Root-Login, Verbindungs- und Sitzungslimits -- oder entfernt SSH vollständig, wenn die Rolle es nicht braucht
lib/services.shSamba, FTP, Mail, Drucken, MySQL, HTTP, DNS: jeweils installiert und minimal gehärtet, wenn die Rolle es braucht, oder entfernt und per Firewall abgeriegelt, wenn nicht
lib/users.shInteraktive Überprüfung bestehender Accounts (Admin-Rechte, Löschung, Passwort-Reset), Erkennung versteckter UID-0-Accounts und leerer Passwörter
lib/kernel.shSysctl-Einstellungen für Netzwerk-Stack und Kernel-Selbstschutz (Source Routing, ICMP-Redirects, ASLR, ptrace-Scope, dmesg/kptr-Beschränkung)
lib/pam.shPasswortkomplexität und -historie via pam_pwquality/pam_pwhistory, Account-Sperrung via pam_faillock, Passwort-Aging in login.defs
lib/filesystem.shKern-Dateiberechtigungen, cron/at-Beschränkung, ein minimales rc.local, rechtliche Login-Banner, Read-only-Scan auf SUID/world-writable/verwaiste Dateien
lib/monitoring.shfail2ban und auditd standardmäßig; ClamAV und ein vollständiger rkhunter/chkrootkit-Sweep sind Opt-in (siehe Sicherheitshinweise für den Wettkampf)
lib/forensics.shRead-only-Snapshot von Benutzern, Prozessen, lauschenden Ports und installierten Paketen für spätere Vergleiche

tools/find-port-owner.sh und tools/list-nonstandard-users.sh sind kleine eigenständige Utilities für dieselbe Art von Triage-Arbeit, unabhängig vom Hauptskript nutzbar -- siehe deren Header für die Verwendung.

Sicherheitshinweise für den Wettkampf

Ein Härtungsskript, das die Maschine beschädigt, die es schützen soll, ist in einer zeitlich begrenzten Runde schlimmer als nutzlos. Einige Standardeinstellungen spiegeln das wider und sind es wert, verstanden zu werden, bevor Sie dies unbeaufsichtigt ausführen:

  • SSH-Passwortauthentifizierung ist standardmäßig aktiviert. Die strengere, nur-Schlüssel-CIS-Empfehlung ist einen Konfigurationswert entfernt (SSH_PASSWORD_AUTH=no), aber der Standard hier bevorzugt es, ein Team nicht aus seiner eigenen Maschine auszusperren, wenn noch niemand Schlüssel bereitgestellt hat.
  • Dual-Use-Tools werden geprüft, nicht automatisch entfernt. nmap, Wireshark, tcpdump und netcat-Varianten sind gängige Angreifer-Tools, aber sie sind auch gängige Admin-Tools, und einige Wettkampf-Images erfordern speziell eines davon für die angegebene Rolle der Maschine. Sie werden nach Bestätigung entfernt, nicht stillschweigend.
  • ClamAV und der rkhunter/chkrootkit-Sweep sind Opt-in (INSTALL_CLAMAV, RUN_BASELINE_SCAN), weil sie die zwei langsamsten Dinge sind, die dieses Skript tun kann, und keines von beiden den Systemzustand von sich aus ändert. Aktivieren Sie sie, wenn Ihre Checkliste sie erfordert oder Sie Zeit übrig haben.
  • Nichts hier verifiziert die Konnektivität Ihrer Scoring-Engine. Das Firewall-Modul erlaubt standardmäßig alles ausgehend und schließt nur eingehende Ports für Dienste, die die Rolle nicht braucht, aber wenn Ihr spezifisches Image über einen nicht standardmäßigen Port an einen Scoring-Server oder lokalen Agent berichtet, liegt es an Ihnen, das zu prüfen -- siehe ~/hardening-run/baseline/listening_ports.txt aus einem vorherigen Lauf, wenn Sie unsicher sind, was tatsächlich lauscht, bevor Sie eine Maschine zum ersten Mal härten.
  • GRUB-Passwörter werden nicht automatisiert, aus demselben Grund: Ein fehlerhaftes GRUB-Passwort kann einen Härtungsdurchlauf in eine nicht bootfähige Maschine verwandeln, ohne schnellen Wiederherstellungspfad mitten in der Runde. Siehe docs/security-controls.md für das manuelle Verfahren.
  • Jedes Modul ist idempotent. Das erneute Ausführen des Skripts gegen eine bereits gehärtete Maschine (zum Beispiel nachdem ein teilweiser Lauf unterbrochen wurde) wird keine Konfigurationsblöcke duplizieren oder fehlschlagen.

Konfiguration

bin/harden.sh fragt interaktiv nach der Dienstrrolle der Maschine, wenn Sie nicht im Voraus antworten. Um die Aufforderungen zu überspringen, kopieren Sie examples/config.env.example, tragen Sie die tatsächliche Rolle ein und übergeben Sie sie mit --config. Jede Variable, die Sie in der Datei weglassen, fällt auf eine interaktive Aufforderung zurück, sodass eine teilweise ausgefüllte Konfigurationsdatei in Ordnung ist.

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

Flags:

FlagWirkung
--config FILELädt Rollen-/Richtlinien-Antworten aus einer Env-Datei
--dry-runProtokolliert jede Aktion, die ausgeführt würde; ändert nichts
--auto-approveÜberspringt die Bestätigungsaufforderungen pro Paket-Entfernung

Repository-Aufbau

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

Tests

Jedes Skript wird bei jedem Push mit ShellCheck via GitHub Actions gelintet (.github/workflows/shellcheck.yml). Um lokal vor dem Öffnen eines PR zu prüfen:

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

bin/harden.sh --dry-run ist auch selbst ein Test: Es übt den Kontrollfluss und das Logging jedes Moduls aus, ohne das Dateisystem anzufassen oder etwas zu installieren, und ist der schnellste Weg, eine Änderung gegen eine Wegwerf-VM auf Plausibilität zu prüfen, bevor Sie sie wirklich ausführen. Siehe CONTRIBUTING.md für die vollständigen Erwartungen an neue Module (Idempotenz, Weiterleitung destruktiver Aktionen durch run() und Angabe einer Quelle für jeden neuen Härtungsschritt).

Sicherheitskontrollen und Referenzen

Der Header-Kommentar jedes Moduls und docs/security-controls.md zitieren den spezifischen Standardabschnitt hinter jeder Entscheidung. Durchgängig verwendete Primärquellen:

StandardQuelle
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/

Referenzierte Erkennungstools (nicht mitgeliefert, via apt installiert): fail2ban, Linux Audit / auditd, rkhunter, chkrootkit. Lynis und OpenSCAP werden als nachfolgendes, unabhängiges Audit empfohlen und werden von diesem Projekt nicht automatisch ausgeführt.

Was dieses Projekt bewusst nicht tut

  • GRUB-Bootloader-Passwörter automatisieren (Risiko einer nicht bootfähigen Maschine; siehe oben)
  • Irgendetwas automatisch beheben, das von den SUID/world-writable/Rootkit-Scans gefunden wurde -- Befunde werden für die menschliche Überprüfung protokolliert, niemals automatisch bearbeitet
  • Offensive Enumeration-Tools jeglicher Art herunterladen oder ausführen
  • Pakete anfassen, die es nicht explizit erkennt -- ein unbekanntes Paket (das durchaus ein Scoring-Agent sein kann) wird in Ruhe gelassen, anstatt zu raten
  • Nur-GUI-Einstellungen abdecken (Bildschirmsperr-Timeout, Update-Manager-Einstellungen, Browser-Konfiguration) -- diese müssen weiterhin von Hand geprüft werden

Siehe docs/security-controls.md für die vollständige Begründung hinter jedem dieser Punkte.

Lizenz

MIT. Siehe LICENSE.

Tool herunterladen