Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
176315há 3 mesesRevisado 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:
Baixar ferramenta
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:

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

    A partir do crates.io

    root@kitploit:~
    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:

    root@kitploit:~
    $ 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:

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

    Ou para aplicar sandbox ao máximo:

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

    Licença

    GPLv3