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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
apm — Um gerenciador de senhas local para todos | Kitploit
Ferramentas/GitHubGitHub/aaravmaloo/apm
Quebra de SenhasFerramentas de Criptografia/DescriptografiaCriptografiaSegurança na NuvemDevSecOpsPrivacidadeUtilitários e FrameworksDetecção de SegredosGerenciamento de Identidade e Acesso (IAM)Autenticação
GitHub
29237há 11 diasRevisado 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
aaravmaloo/apm

apm

Um gerenciador de senhas local para todos

Ver RepositórioSite
<div align="center">

# APM

**Um gerenciador de senhas local melhor para todos.**

[![Go](https://img.shields.io/badge/Go-1.22+-00ADD8?style=flat&logo=go&logoColor=white)](https://golang.org)
[![License](https://img.shields.io/github/license/aaravmaloo/apm?style=flat)](LICENSE)
[![Docs](https://img.shields.io/badge/docs-aaravmaloo.github.io/apm-blue?style=flat)](https://aaravmaloo.github.io/apm)

[![CI](https://img.shields.io/github/actions/workflow/status/aaravmaloo/apm/ci.yml?branch=master&label=CI&style=flat)](https://github.com/aaravmaloo/apm/actions/workflows/ci.yml)
[![Latest Release](https://img.shields.io/github/v/release/aaravmaloo/apm?style=flat)](https://github.com/aaravmaloo/apm/releases/latest)
[![Stars](https://img.shields.io/github/stars/aaravmaloo/apm?style=flat)](https://github.com/aaravmaloo/apm/stargazers)
[![Issues](https://img.shields.io/github/issues/aaravmaloo/apm?style=flat)](https://github.com/aaravmaloo/apm/issues)

</div>
APM é um gerenciador de senhas CLI rápido e de conhecimento zero, escrito em Go e Rust. Ele armazena **mais de 25 tipos de segredos estruturados** em um único cofre criptografado — de senhas e códigos TOTP a chaves SSH, registros médicos, fotos e arquivos binários. Dois binários são distribuídos a partir deste repositório: `pm` para uso pessoal e `pm-team` para cofres organizacionais compartilhados.

---

### Por que APM?

- **Rápido e fácil de aprender** — sem memorizar comandos ou flags. O APM solicita tudo o que precisa. Flags de CLI também estão disponíveis para usuários avançados que desejam máxima velocidade.
- **Conhecimento zero** — sua senha mestra nunca é armazenada. Três chaves separadas de 32 bytes são derivadas usando Argon2id. Ninguém além de você pode descriptografar seu cofre.
- **Criptografia dupla** — escolha entre AES-256-GCM ou XChaCha20-Poly1305. Integridade em camada dupla via HMAC-SHA256 sobre a autenticação AEAD.
- **Portátil** — um arquivo de cofre, um binário. Leve seu cofre para qualquer lugar.
- **Nuvem opcional** — sincronize com Google Drive, GitHub ou Dropbox. Totalmente opcional; nenhuma conta é necessária para usar o APM.
- **Pronto para IA** — servidor MCP nativo com tokens com escopo para que Claude, Cursor ou qualquer agente compatível com MCP possa acessar seu cofre com segurança.
- **Pronto para equipes** — RBAC completo, departamentos, fluxos de aprovação e cofres compartilhados no `pm-team`.

---

### Início Rápido

```sh
go build -o pm .
pm setup       # initialize vault and choose security profile
pm unlock      # start a session
pm add         # add a secret (interactive)
pm get github  # fuzzy search and retrieve
pm lock        # end session
```

**Edição de equipe:**
```sh
cd team
go build -o pm-team .
```

### Tipos de Segredos

O APM suporta **25 tipos de segredos estruturados** com campos validados e lógica de exibição específica por tipo:

| # | Tipo | # | Tipo |
|---|------|---|------|
| 1 | Senha | 14 | Registro Docker |
| 2 | TOTP | 15 | Segredo de CI/CD |
| 3 | Documento de Identidade Governamental | 16 | Nota Segura |
| 4 | Registro Médico | 17 | Códigos de Recuperação |
| 5 | Informações de Viagem | 18 | Certificado |
| 6 | Contato | 19 | Bancário |
| 7 | Wi-Fi | 20 | Documento |
| 8 | Chave de API | 21 | Licença de Software |
| 9 | Token | 22 | Contrato Legal |
| 10 | Chave SSH | 23 | Foto |
| 11 | Configuração SSH | 24 | Áudio |
| 12 | Credenciais de Nuvem | 25 | Vídeo |
| 13 | Kubernetes | | |

---

### Recursos

**Segurança**
- Derivação de chave Argon2id de conhecimento zero — a senha mestra nunca é armazenada
- Cifras AEAD duplas: AES-256-GCM e XChaCha20-Poly1305
- Verificação de integridade em dupla camada HMAC-SHA256
- Quatro perfis de segurança ajustáveis: `standard`, `hardened`, `paranoid`, `legacy`
- Watchtower (`pm watchtower`): uma pontuação de segurança de 0 a 100 com senhas fracas, reutilizadas, antigas, vazadas (opt-in, k-anônimo) e expostas, itens expirando, autenticação de dois fatores e passkeys ausentes, chaves de risco e verificações de configuração, além de pontuações de confiança por item e uma revisão de atividades
- Senhas incorretas adicionam uma espera crescente (nunca um bloqueio permanente), compartilhada entre a CLI, o aplicativo e a extensão
- Registro de auditoria à prova de adulteração armazenado fora do cofre

**Cofre**
- Arquivo de cofre criptografado único — portátil entre qualquer dispositivo
- Espaços para compartimentação lógica (como pastas)
- Busca difusa com navegador interativo e navegação por teclado
- Inspetor de metadados: data de criação, último acesso, contagem de acessos, pontuação de confiança

**TOTP**
- Temporizadores de contagem regressiva ao vivo em uma lista interativa
- Ordenação personalizada persistente
- Cópia direta: `pm totp github`
- Integração com daemon de preenchimento automático para injeção automática de códigos 2FA

**Sincronização em Nuvem**
- Google Drive (OAuth2 PKCE), GitHub (PAT), Dropbox (OAuth2 PKCE)
- Criptografia de ponta a ponta — os provedores nunca veem o texto simples
- `.apmignore` para filtrar entradas por provedor
- Resolução de conflitos: sobrescrever, manter local ou cancelar
- Sincronização automática em segundo plano

**Sessões**
- Desbloqueio/bloqueio explícito com expiração configurável e tempo limite de inatividade
- Sessões efêmeras delegadas para automação e acesso de agentes de IA

**Servidor MCP**
- Servidor nativo do Model Context Protocol
- Tokens de permissão com escopo: `read`, `secrets`, `write`, `admin`
- Operações de escrita aguardam sua aprovação no aplicativo desktop; assistentes não podem aprovar suas próprias alterações
- Funciona com Claude Desktop, Cursor, Windsurf e qualquer cliente MCP



**Recuperação**
| Fator | Comando |
|--------|---------|
| OTP por E-mail | `pm auth email` |
| Chave de Recuperação | `pm auth recover` |
| Compartilhamentos de Quórum (Shamir) | `pm auth quorum-setup` |
| Passkey WebAuthn | `pm auth passkey register` |
| Códigos de Recuperação de Uso Único | `pm auth codes generate` |

**Importação / Exportação**

| Formato | Importação | Exportação |
|--------|--------|--------|
| JSON | `pm import json` | `pm export json` |
| CSV | `pm import csv` | `pm export csv` |
| TXT | `pm import txt` | `pm export txt` |

**Mecanismo de Políticas**
```yaml
name: corporate-standard
password_policy:
  min_length: 14
  require_uppercase: true
  require_numbers: true
  require_symbols: true
rotation_policy:
  rotate_every_days: 90
  notify_before_days: 14
```
```sh
pm policy load ./policies/
```

**Team Edition (`pm-team`)**
- RBAC com múltiplos papéis
- Departamentos com domínios de encriptação isolados
- Fluxos de aprovação para entradas sensíveis
- Cofres partilhados para partilha de credenciais entre vários utilizadores

---

### Extensão de browser

A extensão de browser do APM preenche inícios de sessão, oferece códigos de utilização única nos sites a que pertencem, guarda novos inícios de sessão e cria e utiliza passkeys. Nunca vê a sua palavra-passe mestra nem a chave privada de uma passkey. Comunica com uma pequena bridge que o APM disponibiliza na sua própria máquina em `127.0.0.1:41417` (defina `APM_BRIDGE_PORT` para usar outra porta).

**Três formas de aceder ao cofre**

- Com a aplicação de desktop: a bridge é executada enquanto a aplicação estiver aberta. Os pedidos de emparelhamento e os desbloqueios do browser aparecem na aplicação.
- Apenas com a CLI, ligada (recomendado): execute `pm extension link` uma vez. Regista o `pm` como anfitrião de mensagens nativas em cada browser Chromium (Chrome, Edge, Brave, Arc, Vivaldi, Chromium) e, a partir daí, o browser inicia o `pm` por si próprio sempre que a aplicação estiver fechada.
- Apenas com a CLI, a partir de um terminal: execute `pm extension serve` e deixe-o aberto. Disponibiliza a mesma API que a aplicação de desktop disponibiliza e mostra cada pedido de desbloqueio, bloqueio e emparelhamento à medida que ocorre.

```sh
pm extension link               # once per computer; confirm the code the extension shows
pm extension serve              # unlocks with your CLI session, or asks for the master password
pm extension serve --locked     # starts locked; unlock from the extension
pm extension serve --idle 5m    # locks after 5 minutes without browser activity (default 15m, 0 turns it off)
```

`pm extension serve` imprime uma linha quando o cofre está desbloqueado ou bloqueado. Pressione Ctrl+C para interrompê-lo; a chave do cofre é removida da memória. Se a porta estiver ocupada, ele encerra e informa que o aplicativo APM pode já estar servindo a extensão.

**Emparelhando um navegador**

1. Na extensão, escolha Connect. A extensão mostra um código de 6 caracteres, por exemplo `K7M-2QX`.
2. Verifique se o APM mostra o mesmo código: o aplicativo desktop abre uma caixa de diálogo, e `pm extension link` ou `pm extension serve` pergunta no terminal, por exemplo `Connect Chrome on macOS? Code K7M-2QX [y/N]`.
3. Aprove. A extensão recebe seu token e é emparelhada.

Uma solicitação expira após 2 minutos, e apenas uma pode aguardar por vez. `pm extension serve` nega solicitações por conta própria quando não está sendo executado em um terminal. Para emparelhar manualmente, execute `pm extension token --show` e cole o token no campo de emparelhamento manual da extensão.

**Comandos**

| Comando | O que faz |
|---------|--------------|
| `pm extension link [--browser chrome,edge] [--no-wait]` | Permite que o navegador inicie o `pm` para a extensão quando o aplicativo desktop estiver fechado |
| `pm extension unlink` | Impede que os navegadores iniciem o `pm`. O emparelhamento é mantido |
| `pm extension status [--port N]` | Mostra quais navegadores estão vinculados, o que está servindo a extensão no momento, o estado de bloqueio e a contagem de itens do cofre, e a impressão digital do token |
| `pm extension serve [--port N] [--locked] [--idle 15m]` | Serve a extensão a partir deste terminal até Ctrl+C |
| `pm extension token [--show]` | Imprime o token de emparelhamento, mascarado a menos que `--show` seja fornecido |
| `pm extension rotate` | Substitui o token de emparelhamento. Todo navegador emparelhado deve emparelhar novamente. Uma bridge em execução adota o novo token na próxima solicitação |
| `pm totp link <entry> <domain>` | Vincula um código de uso único a um site para que a extensão o ofereça nele |
| `pm totp unlink <entry> [domain]` | Remove os vínculos de site de um código de uso único |

`pm get` mostra as passkeys que um login possui e o código de uso único vinculado a ele, e `pm totp` mostra o site vinculado de cada código.

**Como a bridge permanece privada**

- Ela escuta apenas em `127.0.0.1` e só responde a solicitações endereçadas a `127.0.0.1` ou `localhost`, o que bloqueia DNS rebinding.
- Ela rejeita qualquer solicitação cujo `Origin` seja uma página web. Apenas origens `chrome-extension://`, `moz-extension://` e `safari-web-extension://` recebem cabeçalhos CORS.
- Toda chamada, exceto o emparelhamento, exige o token de emparelhamento, armazenado em `bridge_token` no diretório de configuração do APM e comparado em tempo constante.
- Chamadas de listagem e detalhe nunca incluem valores secretos. A extensão solicita um campo por vez quando você revela ou preenche, e o APM registra esse acesso.
- As passkeys são criadas e assinadas dentro do APM. A extensão envia a origem do site e um hash dos dados do cliente, e o APM verifica se o site pode usar essa relying party antes de assinar.

**Vários sites por login**

Um login mantém seu endereço principal em `website` e quaisquer outros em `urls`, exibidos como "Other websites" no aplicativo desktop. A extensão oferece o login em uma página que corresponda a qualquer um deles. Por padrão, uma correspondência é o mesmo domínio registrável, então `accounts.google.com` e `mail.google.com` correspondem ambos a `google.com`.

- No popup, você pode adicionar o site em que está a um login, adicionar ou remover sites, e salvar um novo login com mais de um site.
- Se você preencher um login em um site para o qual ele não está salvo, a extensão pergunta primeiro. Escolha "Fill and remember" para preenchê-lo e adicionar esse site ao login.
- `pm totp link <entry> <domain>` faz o mesmo para um código de uso único.

**Logos de sites**

O aplicativo desktop e a extensão mostram o logo de cada login em vez de sua primeira letra. O APM busca o logo por conta própria, a partir do próprio site, e nunca recorre a um serviço de favicon de terceiros, que ficaria sabendo de todos os sites do seu cofre.

- O quê: o host do primeiro site do login (um código de uso único usa o site vinculado a ele), em minúsculas e sem `www.` ou porta. `localhost`, endereços IP, `.local`, `.internal` e nomes sem ponto nunca são buscados.
- Como: o APM carrega `https://<host>/` (no máximo 512 KiB), escolhe o melhor ícone que a página declara (`apple-touch-icon`, depois o maior PNG, depois SVG) e recorre a `https://<host>/favicon.ico`. Apenas HTTPS, no máximo 3 redirecionamentos, 6 segundos por site, imagens de até 256 KiB, sem cookies. Endereços que resolvem para faixas de loopback, privadas, link-local ou CGNAT são recusados. As requisições vão diretamente ao site, não por meio de um proxy do sistema.
- Quando: apenas enquanto o cofre estiver desbloqueado e o aplicativo desktop ou `pm extension serve` estiver em execução, no máximo 4 sites por vez. Um site com falha é tentado novamente após 3 dias; um logo é atualizado após 30 dias.
- Onde: `icons/` no seu diretório de configuração do APM (`~/Library/Application Support/apm/icons` no macOS, `~/.config/apm/icons` no Linux, `%AppData%\apm\icons` no Windows). Cada arquivo é nomeado pelo SHA-256 do seu host, e no máximo 2000 são mantidos. O cache não é criptografado: cada arquivo `.json` ao lado de uma imagem nomeia seu host, então qualquer pessoa que possa ler seu diretório de configuração pode ver quais sites têm logos.
- O que o site descobre: seu endereço IP e que o APM solicitou seu ícone (o user agent é `APM/<version> (+icon)`). Nada sobre sua conta.
- Como desativar: no aplicativo desktop, Settings, Appearance, desative "Show website icons" (a configuração do cofre `siteIcons`, que `pm extension serve` também respeita), e escolha "Clear icon cache" para excluir o cache. Defina `APM_ICONS_OFFLINE=1` para impedir toda busca a partir de um processo, por exemplo em testes ou CI. Logos em cache ainda são exibidos até que você os limpe.

---

### Perfis de Segurança

| Perfil | Memória Argon2 | Iterações | Paralelismo | Caso de Uso |
|---------|--------------|------------|-------------|----------|
| `standard` | 64 MB | 3 | 2 | A maioria das máquinas |
| `hardened` | 256 MB | 5 | 4 | Workstations (≥8 GB RAM) |
| `paranoid` | 512 MB | 6 | 4 | Servidores (≥16 GB RAM) |
| `legacy` | PBKDF2 | 600,000 | 1 | Compatibilidade retroativa |

O APM detecta automaticamente os núcleos da CPU e a RAM para recomendar o perfil ideal durante o `pm setup`.


### Status de Desenvolvimento e histórico
(Esta nota é do proprietário)
Em 30 de março de 2026, estou atualmente trabalhando na GUI do APM. No início, ele começou como uma aplicação CLI. A issue #38 explica tudo em detalhes. No geral, quero que o APM alcance 
uma demografia ainda maior. Vou manter a GUI separada em um repositório apm-gui ou criar uma organização e mover ambos os repositórios para lá. 

Comecei o APM como um projeto verdadeiramente pessoal. Tudo começou em uma noite aleatória, quando eu queria criar meu próprio gerenciador de senhas. Eu estava cansado do zoho password, já que o usava para TOTPs. Era incrivelmente lento para funcionar, e eu usava arquivos de texto simples para meus tokens, o que não é seguro. 

Até o momento, eu NÃO pretendo abandonar/aposentar o projeto. Ele permanecerá funcional por muito tempo. Tento melhorá-lo todos os dias e o uso todos os dias. Às vezes, o repositório pode ficar inativo, e é quando testo e experimento com a aplicação.

---

### Estrutura de Releases

| Nível | Estável? | Cofre Seguro? | Propósito |
|------|---------|-------------|---------|
| Canary | ❌ | ❌ | Prévia mais antecipada de recursos — pode corromper cofres |
| Alpha | ❌ | ✅ | Recursos instáveis, integridade do cofre preservada |
| Beta | ✅ | ✅ | Recursos totalmente testados, lançamento cuidadoso |
| Stable | ✅ | ✅ | Releases prontos para produção |

> Sempre faça backup do seu cofre antes de experimentar releases Canary.
P.S. Para algumas releases, alguns níveis podem não ser lançados dependendo de quão rápido e fácil é enviá-los sem criar mais níveis do que o necessário.
---

# Uso de IA
Desenvolver o APM e manter toda a suíte não é fácil de fazer de uma só vez. Por isso, usamos **25%** de código gerado por IA (principalmente alterações de UI e mudanças não críticas e não criptográficas). No entanto, no APM, temos algumas políticas para o uso de IA; listadas abaixo.
- A IA é usada apenas para desenvolver pequenas funcionalidades e funcionalidades que não interferem no vault
- As edições feitas por IA devem ser tratadas com cuidado e revisadas minuciosamente
- As edições feitas por IA devem ser testadas minuciosamente
Essas políticas garantem que usamos a IA de forma responsável e tornam o APM melhor para todos!


### Documentação

Documentação completa em **[aaravmaloo.github.io/apm](https://aaravmaloo.github.io/apm)**

- [Instalação](https://aaravmaloo.github.io/apm/getting-started/installation/)
- [Primeiros Passos](https://aaravmaloo.github.io/apm/getting-started/first-steps/)
- [Referência da CLI](https://aaravmaloo.github.io/apm/reference/cli/)
- [Arquitetura](https://aaravmaloo.github.io/apm/concepts/architecture/)
- [Criptografia](https://aaravmaloo.github.io/apm/concepts/encryption/)
- [Edição para Equipes](https://aaravmaloo.github.io/apm/guides/team-edition/)
- [Integração com MCP](https://aaravmaloo.github.io/apm/guides/mcp-integration/)
- [Contribuindo](https://aaravmaloo.github.io/apm/contributing/)

---

### Contribuindo

Contribuições são bem-vindas. Consulte [CONTRIBUTING.md](https://aaravmaloo.github.io/apm/contributing/) para as diretrizes.

---

### Licença

[Licença GPL-3.0](https://github.com/aaravmaloo/apm/blob/master/LICENSE) © Aarav Maloo
Baixar ferramenta