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
secrets-manager-rs — Uma ferramenta de linha de comando para fazer backup, restaurar e verificar segredos de forma segura usando padrões interoperáveis como criptografia age e coreutils, garantindo acessibilidade de longo prazo sem dependência de fornecedor. | Kitploit
Ferramentas/GitHubGitHub/fran314/secrets-manager-rs
Ferramentas de Criptografia/DescriptografiaRecuperação de DadosSegurança na NuvemDevSecOpsUtilitários e FrameworksAutenticação
GitHubfran314/secrets-manager-rs

secrets-manager-rs

Uma ferramenta de linha de comando para fazer backup, restaurar e verificar segredos de forma segura usando padrões interoperáveis como criptografia age e coreutils, garantindo acessibilidade de longo prazo sem dependência de fornecedor.

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
Ver Repositório
212há 1 mêsRevisado pelo Kitploit

secs-man

secs-man é uma ferramenta para gerenciar backups de segredos com independência de ferramenta em mente: se você criptografar seus segredos com este software, você deve ser capaz de decifrá-los e restaurá-los sem este software. Mesmo que o secs-man desapareça da face da Terra, seus dados ainda estarão acessíveis.

secs-man pode ser usado para gerenciar segredos de máquinas locais e remotas, e é ideal para criar backups apenas locais para dados que são muito sensíveis para serem armazenados em algum lugar na nuvem.

Filosofia

A teoria

Você não deve depender de nenhum software específico para fazer backup de seus dados extremamente importantes.

Qualquer software que force você a permanecer em seu ecossistema após o uso (como: "se você criptografar com este software, só pode decifrar com este software") torna você dependente dele.

Portanto, a criptografia, decifração e restauração de seus dados importantes devem ser desacopladas, ou seja, se você criptografou com o software X, ainda deve ser capaz de decifrá-lo sem o software X.

A prática

Na prática, você não pode criar uma configuração onde seus segredos estejam 100% seguros contra perda de dados. Mesmo que seu software X seja compatível com Y, Z e W, você ainda perderá o acesso aos seus dados se X, Y, Z e W pararem de funcionar ao mesmo tempo.

O que você faz na prática é garantir que depende apenas de tecnologias que sejam "padrões" ou próximas a isso. Estou bem em depender da existência de interpretadores bash, portas USB e máquinas Linux.

O verdadeiro objetivo do secs-man então se torna ser perfeitamente reproduzível apenas com:

  • um terminal
  • coreutils como cp, mv e sha256sum
  • age
  • trabalho manual e um pouco de tempo

A dependência do age é a mais delicada, mas a dependência de alguma biblioteca criptográfica é inevitável, e o age tem grande popularidade e boas ligações em Rust.

Isso garante que mesmo que algo aconteça com este software que impeça você de usá-lo novamente, assumindo que o age ainda exista e que você esteja disposto a gastar 30 minutos da sua vida, você ainda poderá recuperar todos os seus segredos.

A seção recuperação manual explica como importar os segredos exportados por este software sem usar este software, ou seja, apenas com coreutils, age e um terminal.

Instalação

secs-man não está publicado em nenhum lugar (não é uma crate publicada, nem está no nixpkgs, AUR ou similar). Só pode ser instalado diretamente deste repositório, de uma das seguintes maneiras.

Com nix run

Se você só precisa executar o secs-man ocasionalmente, pode executá-lo diretamente sem instalá-lo (requer flakes ativados)

root@kitploit:~
nix run github:Fran314/secrets-manager-rs -- export /path/to/secrets /path/to/export/endpoint

Através da sua configuração Nix

Para disponibilizar o secs-man em todo o sistema, você pode importar este repositório na sua configuração Nix com fetchGit e adicionar o pacote resultante a environment.systemPackages (ou home.packages com home-manager)

root@kitploit:~
let
  secs-man = pkgs.callPackage "${builtins.fetchGit {
    url = "https://github.com/Fran314/secrets-manager-rs.git";
    ref = "main";
    # rev = "<commit>"; # pin a specific commit for reproducibility
  }}/default.nix" { };
in
# add `secs-man` to environment.systemPackages or home.packages

Com cargo

Se você não está no NixOS, pode instalar o binário secs-man apontando o cargo para este repositório

root@kitploit:~
cargo install --git https://github.com/Fran314/secrets-manager-rs

note que nenhum desses métodos instala o script secs-man-ssh necessário para máquinas remotas: é um script independente que deve ser copiado deste repositório separadamente

Uso

Esta ferramenta permite exportar e criptografar arquivos de um diretório de origem e recuperá-los importando para o mesmo diretório. A maneira recomendada de usar esta ferramenta é ter todos os seus "segredos" (chaves, arquivos, ...) em um diretório centralizado.

Na raiz do diretório de segredos deve haver um arquivo de texto .secrets-manifest contendo a lista de segredos a serem gerenciados, na forma de caminhos relativos ao diretório de segredos. Caminhos de arquivo não podem conter espaços em branco. Cada entrada também pode especificar um owner e um mode que serão usados para definir as permissões corretas durante a importação. Veja .secrets-manifest.example para a sintaxe.

Durante uma exportação, os arquivos listados no manifesto são criptografados através do age com uma senha solicitada através de um prompt interativo (secs-man nunca a lê de um arquivo, argumento ou variável de ambiente). A mesma senha é solicitada novamente na importação, para decifrar os arquivos. A integridade dos arquivos é garantida por um arquivo *.sha256 companheiro, que é gerado automaticamente se estiver faltando. Os arquivos criptografados são exportados para um snapshot com timestamp dentro do diretório de destino da exportação.

Os arquivos podem então ser decifrados e importados apontando para o diretório de destino da exportação (para importar o snapshot mais recente) ou para um snapshot específico dentro deste diretório.

Os seguintes comandos podem ser executados sem sudo, no entanto, falharão se o manifesto especificar um proprietário diferente do usuário que executa o comando (pois a chamada interna de chown falhará).

Para exportar seus segredos, execute

root@kitploit:~
sudo secs-man export /path/to/secrets /path/to/export/endpoint

Para verificar a integridade de uma exportação existente (veja nota abaixo), execute

root@kitploit:~
# to verify the integrity of all the exported snapshots
sudo secs-man verify-export /path/to/export/endpoint

# to verify the integrity of a specific snapshot
sudo secs-man verify-export /path/to/export/endpoint/export-YYYY-MM-DD_HH-MM-SSZ

note que uma verificação de integridade é feita automaticamente a cada exportação. Isso é necessário apenas se você quiser verificar a integridade de uma exportação antiga que pode ter se degradado e corrompido

Para importar seus segredos, execute

root@kitploit:~
# to import the latest snapshot
sudo secs-man import /path/to/export/endpoint /path/to/secrets

# to import a specific snapshot
sudo secs-man import /path/to/export/endpoint/export-YYYY-MM-DD_HH-MM-SSZ /path/to/secrets

# to import only specific secrets
sudo secs-man import /path/to/export/endpoint /path/to/secrets --pick ssh/id_ed25519 wg/wg0.key

Uso com máquinas remotas

Esta ferramenta também pode ser usada para implantar e fazer backup de segredos em máquinas remotas.

A maneira mais fácil de exportar segredos remotos é exportá-los em um diretório temporário no host remoto e, em seguida, copiar o snapshot exportado para um backup local. Da mesma forma, para importar um backup local, a abordagem mais fácil é copiar o snapshot local para um diretório temporário no host remoto e, em seguida, importá-los de lá. No entanto, isso tem o problema de que a senha de criptografia/decifração precisa passar pelo host remoto, que pode ser considerado não confiável.

Para implantar em / fazer backup de hosts remotos não confiáveis sem passar a senha pelo remoto, você pode usar o script secs-man-ssh. Este script não assume login remoto como root via SSH (pois pode estar desabilitado por razões de segurança), mas assume que o usuário remoto tem privilégios sudo (para permitir que o secs-man execute chown e chmod).

Para exportar de um host remoto, execute:

root@kitploit:~
secs-man-ssh export <user@host> <remote-secrets-dir> <local-backup>

# The flow is the following:
# 1. the script copies the remote secrets to a temporary directory on the remote host
# 2. the temporary directory gets chowned to the remote normal user, so that it can be sudo-less read and copied locally
# 3. the temporary directory is copied on the local host and deleted from the remote host
# 4. the local directory gets exported to the local backup, then deleted

Para importar para um host remoto, execute:

root@kitploit:~
# secs-man has to be installed on the remote for the script import to work
secs-man-ssh import <user@host> <local-container> <remote-secrets-dir>

# The flow is the following:
# 1. the latest snapshot gets imported to a temporary local directory with the `--skip-chown-chmod` flag, so that it can be sudo-less read and copied to the remote host
# 2. the local directory gets copied to the remote host in a temporary directory, and deleted from the local host
# 3. the remote temporary directory gets imported to the remote secrets directory with `--from-plaintext`, as the files have already been decrypted
# 4. the remote temporary directory is deleted

Recuperação Manual

Exportação

Arquivos exportados são criptografados usando age com uma senha. O nome do arquivo exportado é o nome original com a extensão adicional .age.

Para obter o mesmo comportamento, você pode usar o seguinte:

root@kitploit:~
age --passphrase --output filename.txt.age --encrypt filename.txt

Observe que:

  • antes da exportação, a soma de verificação do arquivo de origem é verificada
  • durante a exportação, a soma de verificação existente do arquivo de texto simples é exportada ao lado do arquivo criptografado
  • após a exportação, outra soma de verificação é criada para todos os arquivos criptografados para permitir verificar a integridade da exportação posteriormente.

Verificar Exportação

Verificar a integridade de uma exportação consiste em verificar se cada soma de verificação corresponde. Para isso, basta executar

root@kitploit:~
find . -name "sha256sums.txt" -execdir sha256sum -c sha256sums.txt \;

no diretório do snapshot exportado

Importação

Arquivos importados são decifrados usando age com uma senha. O nome do arquivo importado é o nome exportado sem a extensão .age. Se owner e/ou mode forem especificados no manifesto para uma determinada entrada, o arquivo importado é definido com o proprietário e modo especificados. Se nenhum modo for especificado, o padrão é 600.

Para obter o mesmo comportamento, você pode usar o seguinte:

root@kitploit:~
age --output filename.txt --decrypt filename.txt.age

# if no mode is specified, it defaults to 600
chmod <mode> filename.txt

# if no owner is specified, skip this step
chown <owner> filename.txt

Observe que:

  • antes da importação, a soma de verificação do arquivo de origem é verificada
  • após a importação, a soma de verificação dos arquivos importados é verificada

Modelo de ameaça

Esta ferramenta cria automaticamente snapshots durante a exportação que não são limpos pela própria ferramenta. Isso significa que algum cuidado deve ser tomado ao exportar segredos com esta ferramenta.

Ao exportar segredos de "autenticação" (chaves SSH/WireGuard, tokens), que podem ser facilmente rotacionados, a existência do snapshot não apresenta risco adicional.

No entanto, ao exportar segredos de "decifração" (chaves de disco, identidades age/PGP, chave mestra do gerenciador de senhas), a existência dos snapshots significa que, se os segredos dentro das exportações vazarem e forem de alguma forma decifrados, um atacante poderia ter acesso a chaves de decifração atuais e passadas. Por esse motivo, ao rotacionar segredos de "decifração", seria seguro também excluir snapshots antigos exportados (o que pode ser feito facilmente com rm -r /caminho/para/destino/exportação/export-YYYY-MM-DD_HH-MM-SSZ). Note que o caminho crítico que expõe chaves de decifração antigas também implica o conhecimento dos segredos atuais, o que provavelmente é uma preocupação maior.

Baixar ferramenta