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
shh — Systemd Hardening Helper – Spiegel von https://github.com/desbma/shh | Kitploit
Tools/GitHubGitHub/synacktiv/shh
Cloud-Infrastruktur-SicherheitDefensivwerkzeugeKonfigurationsprüfungDevSecOpsDienstprogramme & FrameworksFehlkonfiguration
GitHubsynacktiv/shh

shh

Systemd Hardening Helper – Spiegel von https://github.com/desbma/shh

Repository anzeigen
176315vor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SHH (Systemd Hardening Helper)

CI status crates.io version AUR version nixpkgs unstable version License

Automatische systemd-Diensthärtung, geleitet durch strace-Profiling.

SHH kann für jeden deiner Dienste einen optimalen Satz an Härtungsoptionen erzeugen, sodass du das Sicherheitsniveau deines Systems erhöhen kannst, ohne dich über zufällige Fehler in der Produktion zu sorgen, die durch zu restriktives Sandboxing verursacht werden.

Offizielles Repository - Mirror-Repository

Dokumentation

  • Einführung auf hoher Ebene:
Tool herunterladen
Systemd-Härtung einfach gemacht mit SHH
  • FAQ
  • Changelog
  • Derzeit unterstützte systemd-Optionen
  • Installation

    Abhängigkeiten

    Strace muss installiert und seine ausführbare Datei über PATH erreichbar sein. Derzeit ist Strace-Version >= 6.6 erforderlich.

    Aus dem Quellcode

    Du benötigst eine Rust-Build-Umgebung, zum Beispiel von rustup.

    Führe im aktuellen Repository aus:

    root@kitploit:~
    cargo build --release
    install -Dm 755 -t /usr/local/bin target/release/shh
    

    Von crates.io

    root@kitploit:~
    sudo cargo install --root /usr/local systemd-hardening-helper
    

    Debian (oder Debian-basierte Distribution)

    Siehe GitHub-Releases für Debian-Pakete, die für jede getaggte Version erstellt wurden.

    Arch Linux

    Arch-Linux-Benutzer können das shh-AUR-Paket installieren.

    Nixpkgs

    NixOS/Nix-Benutzer können das neueste Paket aus dem unstable-Zweig installieren.

    Verwendung

    Einen Dienst härten

    Um eine Systemeinheit namens SERVICE.service zu härten:

    1. Starte das Service-Profiling: shh service start-profile SERVICE. Der Dienst wird mit Strace-Profiling neu gestartet.
    2. Verwende den Dienst eine Weile normal und versuche, so viele Funktionen und Anwendungsfälle wie möglich abzudecken.
    3. Führe shh service finish-profile SERVICE -a aus. Der Dienst wird mit einer gehärteten Konfiguration neu gestartet, die aus dem vorherigen Laufzeit-Profiling erstellt wurde, damit er sicher so laufen kann, wie während des Profiling-Zeitraums beobachtet, und um andere gefährliche Systemaktionen zu verweigern.

    Führe shh -h für die vollständige Befehlszeilenreferenz aus, oder hänge -h an einen Unterbefehl an, um Hilfe zu erhalten.

    [!WARNING] Die von shh erzeugten Härtungsoptionen sind konstruktionsbedingt nicht zwischen verschiedenen Systemen portierbar. Sie hängen von vielen Faktoren ab und können den Dienst beschädigen, wenn sich einer davon ändert:

    • der während des Profilings abgedeckte Codepfad
    • die Linux-Kernel-Version
    • die verwendete libc
    • die systemd-Version

    Die Wiederverwendung von durch shh erzeugten Optionen auf einem System mit einer anderen Umgebung (d. h. einer anderen Linux-Distribution) wird den Dienst sehr wahrscheinlich beschädigen.

    Lokales Testen

    Wenn du einen schnellen Test durchführen möchtest, um zu sehen, welche Optionen erzeugt würden, kannst du shh run -- COMMAND verwenden.

    Das aktuelle Verzeichnis und die Umgebungsvariable PATH beeinflussen beide die Programmausführung; setze diese zuerst zurück:

    root@kitploit:~
    $ cd /
    export PATH=/usr/local/bin:/usr/bin:/bin
    

    Um zu sehen, welche Optionen für einen curl https://www.example.com-Aufruf erzeugt würden:

    root@kitploit:~
    $ shh run -- curl https://www.example.com
    ...
    -------- Start of suggested service options --------
    ProtectSystem=strict
    ProtectHome=true
    PrivateTmp=disconnected
    PrivateDevices=true
    ProtectKernelTunables=true
    ProtectKernelModules=true
    ProtectKernelLogs=true
    ProtectControlGroups=true
    ProtectProc=ptraceable
    LockPersonality=true
    RestrictRealtime=true
    ProtectClock=true
    MemoryDenyWriteExecute=true
    RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
    SocketBindDeny=ipv4:tcp
    SocketBindDeny=ipv4:udp
    SocketBindDeny=ipv6:tcp
    SocketBindDeny=ipv6:udp
    CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_BPF CAP_CHOWN CAP_MKNOD CAP_NET_RAW CAP_PERFMON CAP_SYS_BOOT CAP_SYS_CHROOT CAP_SYS_MODULE CAP_SYS_NICE CAP_SYS_PACCT CAP_SYS_PTRACE CAP_SYS_TIME CAP_SYSLOG CAP_WAKE_ALARM
    SystemCallFilter=~@aio:EPERM @chown:EPERM @clock:EPERM @cpu-emulation:EPERM @debug:EPERM @ipc:EPERM @keyring:EPERM @memlock:EPERM @module:EPERM @mount:EPERM @obsolete:EPERM @pkey:EPERM @privileged:EPERM @raw-io:EPERM @reboot:EPERM @resources:EPERM @sandbox:EPERM @setuid:EPERM @swap:EPERM @sync:EPERM @timer:EPERM
    -------- End of suggested service options --------
    

    Oder um so weit wie möglich zu sandboxen:

    root@kitploit:~
    $ shh run --mode aggressive --filesystem-whitelisting --network-firewalling -- curl https://www.example.com -o /dev/null
    ...
    -------- Start of suggested service options --------
    ProtectSystem=strict
    ProtectHome=true
    PrivateTmp=disconnected
    PrivateDevices=true
    ProtectKernelTunables=true
    ProtectKernelModules=true
    ProtectKernelLogs=true
    ProtectControlGroups=true
    ProtectProc=ptraceable
    LockPersonality=true
    RestrictRealtime=true
    ProtectClock=true
    MemoryDenyWriteExecute=true
    SystemCallArchitectures=native
    ReadOnlyPaths=-/
    ReadWritePaths=-/dev
    InaccessiblePaths=-/boot -/home -/lost+found -/media -/mnt -/opt -/root -/srv -/sys -/tmp -/var
    TemporaryFileSystem=/usr:ro
    BindReadOnlyPaths=-/usr/bin -/usr/lib -/usr/lib64 -/usr/local -/usr/share
    NoExecPaths=-/
    ExecPaths=-/usr/bin/curl -/usr/lib/x86_64-linux-gnu
    RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
    SocketBindDeny=ipv4:tcp
    SocketBindDeny=ipv4:udp
    SocketBindDeny=ipv6:tcp
    SocketBindDeny=ipv6:udp
    IPAddressDeny=any
    IPAddressAllow=[redacted]
    CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_BPF CAP_CHOWN CAP_MKNOD CAP_NET_RAW CAP_PERFMON CAP_SYS_BOOT CAP_SYS_CHROOT CAP_SYS_MODULE CAP_SYS_NICE CAP_SYS_PACCT CAP_SYS_PTRACE CAP_SYS_TIME CAP_SYSLOG CAP_WAKE_ALARM
    SystemCallFilter=~@aio:EPERM @chown:EPERM @clock:EPERM @cpu-emulation:EPERM @debug:EPERM @ipc:EPERM @keyring:EPERM @memlock:EPERM @module:EPERM @mount:EPERM @obsolete:EPERM @pkey:EPERM @privileged:EPERM @raw-io:EPERM @reboot:EPERM @resources:EPERM @sandbox:EPERM @setuid:EPERM @swap:EPERM @sync:EPERM @timer:EPERM
    -------- End of suggested service options --------
    

    Lizenz

    GPLv3