Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
shh — Systemd Hardening Helper - Espelho de https://github.com/desbma/shh | Kitploit
Ferramentas/GitHubGitHub/synacktiv/shh
Segurança de Infraestrutura em NuvemFerramentas DefensivasAuditoria de ConfiguraçãoDevSecOpsUtilitários e FrameworksConfiguração Incorreta
GitHubsynacktiv/shh

shh

Systemd Hardening Helper - Espelho de https://github.com/desbma/shh

Ver Repositório
176325há 1 mêsRevisado pelo Kitploit

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 →
Compartilhar

SHH (Systemd Hardening Helper)

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

Endurecimento automático de serviços systemd guiado por perfilamento strace.

O SHH pode gerar um conjunto ideal de opções de endurecimento para cada um dos seus serviços, permitindo que você aumente o nível de segurança do seu sistema sem se preocupar com erros aleatórios em produção causados por sandboxing excessivamente restritivo.

Repositório oficial - Repositório espelho

Documentação

  • Introdução de alto nível: Systemd hardening made easy with SHH
  • FAQ
  • Changelog
  • Opções do systemd atualmente suportadas

Instalação

Dependências

O Strace precisa estar instalado e seu executável acessível no PATH. Atualmente, é necessária a versão >= 6.6 do Strace.

A partir do código-fonte

Você precisa de um ambiente de compilação Rust, por exemplo a partir do rustup.

Execute no repositório atual:

cargo build --release
install -Dm 755 -t /usr/local/bin target/release/shh

A partir do crates.io

sudo cargo install --root /usr/local systemd-hardening-helper

Debian (ou distribuição baseada em Debian)

Consulte GitHub releases para pacotes Debian compilados para cada versão marcada.

Arch Linux

Usuários de Arch Linux podem instalar o pacote shh no AUR.

Nixpkgs

Usuários de Nixos/Nix podem instalar o pacote mais recente a partir do ramo instável.

Uso

Endurecendo um serviço

Para endurecer uma unit do sistema chamada SERVICE.service:

  1. Inicie o perfilamento do serviço: shh service start-profile SERVICE. O serviço será reiniciado com perfilamento strace.
  2. Use o serviço normalmente por um tempo, tentando cobrir o máximo de recursos e casos de uso possível.
  3. Execute shh service finish-profile SERVICE -a. O serviço será reiniciado com uma configuração endurecida construída a partir do perfilamento anterior em tempo de execução, para permitir que ele seja executado com segurança conforme observado durante o período de perfilamento, e para negar outras ações perigosas do sistema.

Execute shh -h para a referência completa da linha de comando, ou acrescente -h a um subcomando para obter ajuda.

[!WARNING] As opções de endurecimento geradas pelo shh são, por construção, não portáveis entre diferentes sistemas. Elas dependem de muitos fatores e podem quebrar o serviço se qualquer um deles mudar:

  • o caminho de código coberto durante o perfilamento
  • a versão do kernel Linux
  • a libc utilizada
  • a versão do systemd

Reutilizar opções geradas pelo shh em um sistema com um ambiente diferente (ou seja, distribuição Linux diferente) muito provavelmente quebrará o serviço.

Testando localmente

Se você quiser executar um teste rápido para ver quais opções seriam geradas, pode usar shh run -- COMMAND.

O diretório atual e a variável de ambiente PATH influenciam a execução do programa; redefina-os primeiro:

$ cd /
export PATH=/usr/local/bin:/usr/bin:/bin

Em seguida, para ver quais opções seriam geradas para uma invocação de curl https://www.example.com:

$ 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 --------

Ou para aplicar sandbox ao máximo:

$ 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 --------

Licença

GPLv3

Baixar ferramenta