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 - Mirror of https://github.com/desbma/shh | Kitploit
Tools/GitHubGitHub/synacktiv/shh
Cloud Infrastructure SecurityDefensive ToolsConfiguration AuditingDevSecOpsUtilities & FrameworksMisconfiguration
GitHubsynacktiv/shh

shh

Systemd Hardening Helper - Mirror of https://github.com/desbma/shh

Repository anzeigen
1763vor 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: 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

Tool herunterladen