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
sonar — Ferramenta CLI para inspecionar e gerenciar serviços escutando em portas localhost | Kitploit
Ferramentas/GitHubGitHub/raskrebs/sonar
Utilitários de Propósito GeralMapeamento de RedeEscaneamento de PortasScripting e AutomaçãoColeta de InformaçõesDevSecOps
GitHubraskrebs/sonar

sonar

Ferramenta CLI para inspecionar e gerenciar serviços escutando em portas localhost

Ver Repositório
1.1k338há 2 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
``` ███████╗ ██████╗ ███╗ ██╗ █████╗ ██████╗ ██╔════╝██╔═══██╗████╗ ██║██╔══██╗██╔══██╗ ███████╗██║ ██║██╔██╗ ██║███████║██████╔╝ ╚════██║██║ ██║██║╚██╗██║██╔══██║██╔══██╗ ███████║╚██████╔╝██║ ╚████║██║ ██║██║ ██║ ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝ ``` Saiba o que está rodando na sua máquina.

O Sonar mostra tudo que está escutando em localhost e organiza em ordem: cada porta pertence a um grupo — normalmente o repositório de onde foi iniciado — e dentro desse grupo a um serviço nomeado. Inicie seus servidores de desenvolvimento com sonar start e o projeto inteiro se torna uma coisa só que você pode listar como uma árvore, aguardar, acompanhar (tail) e parar com um único comando. Containers Docker, projetos Compose e processos iniciados manualmente também são detectados, sem qualquer configuração.``` $ sonar list --tree my-app (3 ports, running) ~/code/my-app ├─ 5432 db postgres:17 http://localhost:5432 ├─ 5173 frontend vite (v5.4) http://localhost:5173 └─ 8000 api uvicorn app:app http://localhost:8000 ungrouped (1 port) └─ 3000 next-server (v16.1.6) http://localhost:3000

root@kitploit:~
## Instalação

### Homebrew (macOS / Linux)```sh
brew install raskrebs/sonar/sonar

Homebrew 6 recusa fórmulas de taps de terceiros até que você confie no tap uma vez (Error: Refusing to load formula raskrebs/sonar/sonar from untrusted tap):```sh brew trust raskrebs/sonar

root@kitploit:~
### Script de instalação```sh
curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | bash
Baixar ferramenta

Baixa o binário mais recente para ~/.local/bin e o adiciona ao seu PATH, se necessário. Reinicie o terminal ou execute source ~/.zshrc.

No Windows (PowerShell):```powershell irm https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.ps1 | iex

root@kitploit:~
Custom install location:```sh
curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | SONAR_INSTALL_DIR=/usr/local/bin bash

Instalar uma versão específica:```sh curl -sfL https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.sh | SONAR_VERSION=vX.Y.Z bash

root@kitploit:~
Aqui está a tradução para português do conteúdo fornecido:

---

**Nota:** O texto de entrada está vazio. Não há conteúdo para traduzir.```powershell
$env:SONAR_VERSION="vX.Y.Z"; irm https://raw.githubusercontent.com/raskrebs/sonar/main/scripts/install.ps1 | iex

Usando Go```sh

go install github.com/raskrebs/sonar@latest

root@kitploit:~
Completions de shell (preenchimento automático de números de porta):```sh
sonar completion zsh > "${fpath[1]}/_sonar"   # zsh
sonar completion bash > /etc/bash_completion.d/sonar  # bash
sonar completion fish | source                 # fish

Sessenta segundos

Adicione o prefixo sonar start aos comandos no seu dev.sh:```sh #!/usr/bin/env bash sonar start --name db --port 5432 -- docker compose up db & sonar start --name api --port 8000 -- uv run uvicorn app:app & sonar start --name frontend --port 5173 -- npm run dev & wait

root@kitploit:~
O nome do grupo vem do repositório, portanto nada mais precisa ser configurado.
Em outro terminal:```sh
sonar list --tree

Aqui está a tradução para português do conteúdo fornecido:


Nota: O texto de entrada está vazio. Não há conteúdo para traduzir.``` my-app (3 ports, running) ~/code/my-app ├─ 5432 db postgres:17 http://localhost:5432 ├─ 5173 frontend vite (v5.4) http://localhost:5173 └─ 8000 api uvicorn app:app http://localhost:8000

root@kitploit:~
E quando terminares, para todo o projeto — servidores, watchers e workers:```sh
sonar kill -g my-app

Exemplos abaixo marcados com # check são executados contra uma nova compilação por scripts/readme-check.sh em cada execução de CI.

Comandos

`sonar list````sh

sonar list sonar list --tree sonar list --group my-app sonar list --json

check

root@kitploit:~
Aqui está a tradução do conteúdo fornecido:

---

**Nota:** O conteúdo do chunk 33 não foi fornecido no prompt. Para prosseguir, por favor, forneça o texto original do chunk 33 que precisa ser traduzido.```sh
sonar list --stats             # CPU, memory, threads, uptime, state
sonar list --health            # HTTP health checks
sonar list --filter docker     # only Docker ports
sonar list --sort name         # port | pid | name | type
sonar list -a                  # include desktop apps
sonar list -c port,process,group,cpu,mem
sonar list --host user@server  # scan a remote machine over SSH

As colunas padrão são port, process, group, container, image, containerport, url, onde process mostra o nome que você deu à porta (sonar rename), depois o nome do serviço e, em seguida, o que foi detectado.

Colunas disponíveis: port, process, pid, type, url, group, cpu, mem, threads, uptime, state, connections, health, latency, container, image, containerport, compose, project, user, bind, ip.

Aplicativos de desktop e serviços do sistema que por acaso estejam escutando — Figma, Discord, Spotify, ControlCenter, pacotes .app do macOS, daemons do /System/Library/ — ficam ocultos, a menos que você passe -a.

sonar start

Execute um comando como um serviço nomeado em um grupo:```sh sonar start -- npm run dev sonar start --group my-app --name frontend -- npm run dev sonar start --port 5173 -- npm run dev # expected port, before it binds sonar start --detach --name api -- uv run uvicorn app:app sonar start --list

root@kitploit:~
Nada precisa ser passado:

- **Group** — `--group`, senão o `name` no `.sonar.yaml` mais próximo, senão o
  nome do diretório da raiz do git (um worktree vira `repo@worktree`), senão o nome
  do diretório atual.
- **Name** — `--name`, senão o serviço do `.sonar.yaml` cujo `cmd` corresponde, senão
  inferido do comando (`npm run dev` → `dev`, `uv run api` → `api`,
  `python -m uvicorn` → `uvicorn`, `./dev.sh` → `dev.sh`).
- **Port** — `--port` é uma dica, não um vínculo: a execução aparece como `starting`
  até a porta estar realmente escutando, e o daemon a usa para associar o
  processo à porta.

O processo filho herda stdin, stdout, stderr, cwd e ambiente, além de
`SONAR_GROUP`, `SONAR_NAME` e `SONAR_RUN_ID`. Ele recebe seu próprio grupo de
processos, então `sonar kill` derruba toda a árvore — um servidor de desenvolvimento com seus watchers e
workers. Ctrl+C é encaminhado, e o sonar sai com o código de saída do processo filho.

`--detach` retorna imediatamente e grava a saída em
`~/.config/sonar/logs/<group>/<name>.log`. `--list` mostra o que o sonar iniciou
(`--json` para o formato legível por máquina):```sh
sonar start --list
sonar start --detach --name demo --port 8123 -- sleep 5
sonar start --list --json
# check

.sonar.yaml

Um projeto nomeia a si mesmo e seus serviços em um .sonar.yaml na raiz do repositório. É opcional — o sonar agrupa pela raiz do git sem ele — e é feito para ser commitado:```yaml name: my-app services:

  • name: db cmd: docker compose up db port: 5432 health: / description: Postgres 17 icon: database color: "#4f8cc9"
  • name: api cmd: uv run uvicorn app:app --port 8000 cwd: backend port: 8000 health: /healthz depends_on: [db]
  • name: frontend cmd: npm run dev port: 5173 depends_on: [api] ports: [9229] # ports that belong to this project without a service
root@kitploit:~
- `name` — o nome do grupo. Sem barras, sem espaços em branco.
- `cmd`, `cwd`, `port` — como o `sonar up` inicia o serviço. `cwd` é relativo ao
  arquivo e não pode escapar do seu diretório.
- `health` — um caminho HTTP que o daemon consulta enquanto o serviço está ativo, para que um
  serviço possa estar *em execução* mas ainda não *saudável*. Ele reporta `ok`, `fail` ou
  `unknown`, com o motivo da falha.
- `description`, `icon`, `color` — metadados de formato livre para o aplicativo de desktop; o sonar
  nunca os infere.
- `depends_on` — ordem de inicialização. Nomear um serviço que não está no arquivo, ou um
  ciclo, é um erro; um arquivo inválido é reportado uma vez e nunca interrompe uma verificação.

`.sonar.yml` é lido se é assim que você o escreve; `sonar init` sempre grava
`.sonar.yaml`. O daemon monitora os projetos que conhece e capta
edições no arquivo sem reinicialização. Cada edição que o sonar faz — a partir do aplicativo
de desktop, de `sonar groups add`, `rename` e `remove`, de um agente — passa
pelo daemon, que re-renderiza o arquivo a partir da sua própria árvore de sintaxe, então
comentários, ordem de chaves e layout sobrevivem a uma edição que adiciona, renomeia ou remove um
serviço, assim como sobrevivem a uma alteração de metadados. A única exceção: espaços extras
alinhando um comentário final (`cmd: x     # nota`) são reduzidos a um, porque a
biblioteca YAML mantém o comentário, mas não a sua coluna.

### `sonar up````sh
sonar up                       # the .sonar.yaml at or above this directory
sonar up my-app                # a group by name
sonar up --only api,frontend
sonar up --json

Inicia todos os serviços que o .sonar.yaml do grupo declara, na ordem de depends_on: um serviço aguarda as portas que suas dependências declaram antes de ser iniciado, e um que já esteja em escuta é ignorado. Cada um é executado de forma destacada no seu próprio grupo de processos, com sua saída em ~/.config/sonar/logs/<group>/<service>.log.``` ✓ db pid 41022 ~/.config/sonar/logs/my-app/db.log

  • api already running ✓ frontend pid 41108 ~/.config/sonar/logs/my-app/frontend.log

2 started, 1 already running

root@kitploit:~
Um serviço que falha ao iniciar é reportado na sua própria linha e faz o comando
sair com código não-zero, independentemente do que mais tenha surgido. Pare todos novamente com
`sonar kill -g my-app`. O `sonar up` precisa do daemon e o inicia se ele não estiver
já em execução.

### `sonar groups` e `sonar init````sh
sonar init --dry-run
sonar init --service api:8000:/healthz --service web:5173
sonar groups
sonar groups --json

group=$(basename "$PWD")           # sonar init names the group after the directory
sonar groups add "$group" worker --port 9000 --cmd 'uv run worker' --depends-on api
sonar groups rename "$group" worker jobs
sonar groups remove "$group" jobs
# check

sonar groups lista todos os grupos que o sonar consegue ver e de onde cada nome veio: manual (você o fixou com sonar assign), start (uma execução de sonar start), file (um .sonar.yaml) ou auto (a raiz do git ou o projeto do Compose). sonar groups <name> mostra as portas e serviços de um grupo, e os serviços que estão declarados mas não estão em execução.

sonar init escreve um .sonar.yaml na raiz do git a partir do que está escutando agora — aplicativos de desktop e portas abaixo de 1024 ficam de fora. Ele se recusa a sobrescrever sem --force, e --dry-run imprime o arquivo em vez de escrevê-lo. --merge anexa a um arquivo que já existe em vez de recusar, e --service name:port[:health] — repetível — escreve os serviços que você nomeia em vez dos que ele encontrou, mantendo o comando que ele adivinhou para uma porta que você manteve. --force e --merge são mutuamente exclusivos.

sonar groups add <group> <name> --port N anexa um serviço ao .sonar.yaml desse grupo, com --cmd, --cwd, --health, --description, --icon, --color e um --depends-on repetível para o restante. sonar groups rename <group> <old> <new> renomeia um em todos os lugares do arquivo, incluindo referências depends_on, e sonar groups remove <group> <name> exclui um e o remove de todo depends_on que o nomeava. Todos os três recusam uma edição que deixaria o arquivo inválido — um nome duplicado, uma porta que outro serviço já reivindica, um serviço que não existe — e nenhum deles escreve um byte até que toda a edição seja conhecida como válida.

O daemon faz a escrita, e é por isso que o arquivo volta com seus comentários e a ordem das chaves intactos, quer a edição venha da CLI, do aplicativo de desktop ou de um agente. sonar groups add, rename e remove precisam do daemon e o iniciam se ele já não estiver em execução; os três nomes são subcomandos, então um grupo realmente chamado add é lido com sonar groups --json.

`sonar kill````sh

sonar kill 3000 # SIGTERM, then SIGKILL after 5s sonar kill 3000 5432 -f # SIGKILL both straight away sonar kill 3000 --tree # the listener and everything below it sonar kill --pid 12345 --tree # by process id sonar kill -g my-app # a whole group, confirms unless -y sonar kill --all --filter docker -y # every container publishing a port sonar kill --all --project my-app # one Compose project sonar kill 3000 --ip 127.0.0.1 # one bind address of several sonar kill --all --dry-run --json # the plan for the whole machine

root@kitploit:~
`--dry-run` aceita qualquer seletor e não altera nada: ele imprime as ações que o
kill executaria, primeiro os filhos, e deixa tudo em execução. De ponta a ponta,
contra um listener de sua preferência:```sh
sonar start --detach --name plan --port 8231 -- sonar map 3000 8231
sonar wait 8231
sonar kill 8231 --dry-run --json           # the plan; the mapping keeps running
sonar kill 8231 -y                         # and now for real
# check

Um argumento posicional é lido como uma porta e, apenas como um pid, quando nada está a escutar nesse número. -g corresponde ao grupo resolvido, a uma etiqueta de execução legada ou id, e ao projeto Compose, sem diferenciar maiúsculas de minúsculas.

Um processo que ignora SIGTERM recebe SIGKILL se a porta ainda estiver a escutar após --grace (5s); --no-escalate desativa isso. Os processos filhos são sinalizados antes dos pais, para que uma árvore termine em ordem. Os contentores Docker são parados com docker stop e nunca são sinalizados. Um ouvinte iniciado por sonar start é sempre parado juntamente com o seu grupo de processos.

--json imprime uma linha por processo: {port, bind_address, pid, name, method, ok, error}, onde method é sigterm, sigkill, docker_stop, map_stop ou none. Uma varredura vazia termina com 0; um grupo desconhecido termina com 1.

`sonar map````sh

sonar map 6873 3002 # also serve the service on 6873 from port 3002

root@kitploit:~
Executa um proxy TCP em primeiro plano até que você o interrompa. `sonar kill` reporta um
mapeamento que interrompeu como `map_stop`.

### `sonar rename`, `sonar assign`, `sonar history````sh
sonar rename 3000 storefront     # a name of your own, survives restarts
sonar rename 3000 --clear
sonar assign 3000 my-app         # pin a port to a group by hand
sonar assign 3000 --clear
sonar history                    # everything that came up, went down, restarted
sonar history 3000 --since 24h --limit 20

Aqui está a tradução para pt:

root@kitploit:~
## Instalação

### Requisitos

- Python 3.8 ou superior
- pip (gerenciador de pacotes do Python)

### Passos de Instalação

1. Clone o repositório:
   ```bash
   git clone https://github.com/example/repo.git
   cd repo
  1. Instale as dependências:

    root@kitploit:~
    pip install -r requirements.txt
    
  2. Execute a ferramenta:

    root@kitploit:~
    python main.py --help
    

Uso

Exemplos Básicos

Para executar uma verificação básica:

root@kitploit:~
python main.py scan --target example.com

Para usar um arquivo de configuração personalizado:

root@kitploit:~
python main.py scan --config config.yaml

Opções Avançadas

OpçãoDescrição
--verboseExibe saída detalhada durante a execução
--outputEspecifica o arquivo de saída para os resultados
--threadsDefine o número de threads a serem usadas

Configuração

O arquivo de configuração usa o formato YAML. Aqui está um exemplo:

root@kitploit:~
targets:
  - example.com
  - example.org
options:
  timeout: 30
  retries: 3

Solução de Problemas

Problemas Comuns

Erro: "Permission denied"

  • Certifique-se de que você tem as permissões necessárias para executar o script.
  • Tente executar com sudo se estiver em um sistema Linux.

Erro: "Module not found"

  • Verifique se todas as dependências estão instaladas corretamente.
  • Execute pip install -r requirements.txt novamente.

Contribuindo

Aceitamos contribuições da comunidade. Para contribuir:

  1. Faça um fork do repositório.
  2. Crie um branch para sua funcionalidade.
  3. Envie um pull request com suas alterações.

Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter mais detalhes.

root@kitploit:~
sonar history --since 1h
sonar history --json
# check
```
Nomes e pinos são armazenados no banco de dados do sonar, indexados pela informação mais específica
conhecida sobre a porta: a execução (`run:<grupo>/<nome>`), o contêiner
(`docker:<projeto>/<serviço>`), o diretório de trabalho e o número da porta
por último. Um servidor de desenvolvimento renomeado mantém seu nome entre reinicializações; um nome fixado à
porta 3000 sozinho se aplica a qualquer coisa que responda ali. Esses três comandos precisam
do daemon e o iniciam se ele não estiver em execução.

### Lendo uma porta```sh
sonar info 3000                            # command, user, bind, stats, health
sonar logs 3000                            # tail; docker logs for containers
sonar wait 5432 3000 --timeout 60s         # block until ready
sonar wait 5432 --http=/health             # wait for HTTP 200-399, not just TCP
sonar next 3000                            # first free port from 3000
sonar next 3000-3100 -n 3                  # three consecutive free ports
sonar graph                                # who is connected to whom
sonar graph --dot                          # Graphviz
sonar open 3000                            # open in the browser
sonar attach 3000                          # shell into the container, or TCP
sonar watch                                # live view
sonar watch --stats --notify
```
Aqui está a tradução do conteúdo fornecido:

---

**Nota:** O conteúdo do chunk 59 não foi fornecido no prompt. Para que eu possa traduzi-lo, por favor, forneça o texto original do chunk 59.```sh
sonar next 3000
sonar next 3000-3100 -n 3 --json
sonar graph --json
sonar info --help
# check
```
`sonar wait` termina com código `0` (pronto), `1` (tempo esgotado) ou `2` (interrompido), o que o torna
a ferramenta ideal para colocar entre iniciar algo e testá-lo:```sh
docker compose up -d
sonar wait 5432 3000 --timeout 60s && npm run migrate && npm run test
```
**Daemon ou verificação direta.** Cada comando de leitura pergunta ao daemon se um está
em execução, pois ele já tem a resposta e não precisa fazer `fork` do `lsof`.
Se nenhum estiver em execução, eles verificam diretamente e imprimem uma nota no stderr informando isso.
`sonar kill` segue a mesma regra: um daemon acessível faz a eliminação, então ele
reverifica imediatamente e sua próxima resposta — e o histórico de portas — já sabe
que a porta se foi. Nem leituras nem eliminações iniciam um daemon sem o seu conhecimento.
`--no-daemon` força a verificação direta silenciosamente e funciona em qualquer comando:```sh
sonar list --no-daemon --json
# check
```
### `sonar host````sh
sonar host          # cpu, load, memory and disk of the machine sonar watches
sonar host --json
```
The `-p` flag is used to specify the port number, and the `-t` flag is used to specify the target IP address. The `-m` flag is used to specify the mode of operation, which can be either `scan` or `exploit`. The `-l` flag is used to specify the list of payloads to use, and the `-o` flag is used to specify the output file for the results. The `-v` flag is used to enable verbose output, and the `-h` flag is used to display the help menu.```sh
sonar host
# check
```
O daemon mede a sua própria máquina no ritmo de verificação e a publica como a
linha `localhost` da coleção `hosts` do snapshot: sistema operacional e kernel, tempo de atividade, percentual de CPU, média de carga, memória e o disco que contém `/`. O percentual de CPU é o trabalho realizado entre duas verificações, portanto é nulo até que o daemon tenha verificado duas vezes; um valor que uma plataforma não consegue produzir — a média de carga no Windows, que não possui nenhuma — é nulo em vez de zero. Cada host registrado com `sonar remote add` entra na mesma tabela com a sua própria carga. O comando precisa de um daemon em execução: é o daemon que mantém a amostra anterior contra a qual um percentual é medido.

### `sonar remote install````sh
sonar remote install [email protected]        # same version as this sonar
sonar remote install hetzner --version v0.6.0  # a Host from ~/.ssh/config
sonar remote install deploy@box --no-service   # the binary, no daemon
```
Coloca o sonar num host ao qual já consegues aceder via ssh e inicia o daemon nesse mesmo host. O
arquivo de lançamento é descarregado e verificado por checksum **no host remoto** — nada
é copiado desta máquina — e o binário fica em `~/.local/bin/sonar`, pelo que
nenhuma parte disto requer root. O daemon corre como uma unidade de utilizador do systemd onde o host
a tenha (`~/.config/systemd/user/sonar.service`), e em modo destacado onde não
a tenha; `loginctl enable-linger` é impresso como conselho quando a sessão do utilizador
terminaria no logout e levaria o daemon consigo.

A versão instalada é a versão do sonar a partir da qual o executaste, pelo que as duas
extremidades falam o mesmo protocolo. Executá-lo novamente faz upgrade no local e reinicia
o daemon, que é o que torna a instalação e a atualização no mesmo comando.

O destino vai para o `ssh` intacto: um alias `Host` de `~/.ssh/config` funciona,
e também funcionam o `ProxyJump`, o `IdentityFile` e o `Port` que ele define. `--identity` e
`--ssh-arg` existem para os flags que uma configuração não cobre.

### `sonar remote````sh
sonar remote add [email protected]            # name taken from the target
sonar remote add hetzner [email protected]    # or given
sonar remote list                              # status, latency, version, load
sonar remote remove hetzner

sonar list --host hetzner                      # that host's ports
sonar list --host "*"                          # every host, with a HOST column
sonar info 3000 --host hetzner
```
Um host registado executa o mesmo daemon, e o daemon nesta máquina mantém
uma ligação SSH para ele — `ssh <target> sonar daemon stdio` — e multiplexa
o que ele reporta no estado que cada cliente já lê. Nada de novo fica à escuta
em lado nenhum: o socket do daemon remoto permanece privado para o utilizador SSH,
e os clientes nunca falam SSH por si próprios.

Cada linha agora traz o host de onde veio. As linhas locais dizem `localhost` e
mantêm as chaves que sempre tiveram, por isso nada que leia o sonar hoje muda;
as linhas remotas dizem o nome registado e são chaveadas como `<host>/<porta>:<bind>`,
que é o que permite que a porta 3000 em duas máquinas sejam duas linhas. Um subscritor
vê apenas localhost a menos que peça mais (`state.subscribe {"hosts": ["*"]}`).

O alvo vai para o `ssh` intacto, por isso os aliases de `~/.ssh/config`, `ProxyJump` e
identidades aplicam-se todos; `--ssh-arg`, `--identity` e `--port` cobrem o que uma
config não cobre. O sonar não armazena palavra-passe nem chave. Um host que desaparece
mantém a sua linha e o seu estado enquanto o daemon tenta novamente, recuando de um
segundo para trinta enquanto permanecer registado.

`--host` também continua a aceitar um simples `user@host` sobre o qual o sonar nada
sabe: recai na verificação sem agente de `ssh` + `ss`/`lsof` e imprime uma dica para
`sonar remote install`.

#### Agir noutra máquina

Cada escrita também aceita `--host`, e faz lá exatamente o que faz aqui:```sh
sonar kill 3000 --host hetzner                 # stop a port on that machine
sonar kill -g api --host hetzner               # a whole group of its services
sonar kill-all --filter docker --host hetzner  # its containers
sonar up api --host hetzner                    # start a group from its .sonar.yaml
sonar logs 3000 --host hetzner                 # tail its output here
sonar rename 3000 storefront --host hetzner    # its name, in its database
sonar assign 3000 storefront --host hetzner
```
O daemon local encaminha a chamada através da bridge desse host e devolve o que
o daemon remoto respondeu, no mesmo envelope que uma chamada local retorna — cada
linha de resultado diz em qual host aconteceu, e o `affected` de um kill carrega
as chaves `<host>/<porta>:<bind>` que o stream usa para essas linhas. Um comando
de streaming transmite: `sonar up --host` imprime cada serviço conforme o lado
remoto o inicia, e Ctrl-C interrompe o trabalho remoto em vez de apenas este terminal.

Como a chave de uma linha já nomeia seu host, um cliente pode devolvê-la diretamente
como seletor — `{"key": "hetzner/3000:127.0.0.1"}` é o seletor inteiro,
host incluído. Uma chamada age em uma máquina; nomear duas é um erro em vez de
meio kill em cada uma.

Duas coisas permanecem locais. `sonar attach` coloca *este* terminal diante de um
processo, então recusa `--host` e diz para usar ssh e anexar lá. E uma sessão de
agente é estado que este daemon mantém, então `sonar kill --session` não tem
forma remota. Todo o resto precisa do daemon rodando aqui — é onde a conexão com
a outra máquina vive — e diz isso em vez de silenciosamente escanear esta máquina.

`sonar up --host` precisa do grupo nomeado: o `.sonar.yaml` no seu diretório de
trabalho é um caminho nesta máquina, e é o daemon remoto que lê o arquivo e
inicia os serviços.

### O daemon

Um processo em segundo plano escaneia portas, resolve grupos, faz polling de saúde,
mantém o banco de dados e transmite mudanças para quem estiver inscrito — a CLI,
o aplicativo de desktop e os editores.```sh
sonar serve                  # in the foreground
sonar serve --detach         # in the background
sonar daemon status          # pid, uptime, subscribers, scans, intervals
sonar daemon path            # the socket it listens on
sonar daemon log -n 50 -f    # what it is doing
sonar daemon restart
sonar daemon stop
```
Aqui está a tradução do conteúdo do chunk 77:

```markdown
## Instalação

### Requisitos

- Python 3.8 ou superior
- pip (gerenciador de pacotes do Python)

### Passos de Instalação

1. Clone o repositório:
   ```bash
   git clone https://github.com/example/tool.git
   cd tool
   ```

2. Instale as dependências:
   ```bash
   pip install -r requirements.txt
   ```

3. Execute a ferramenta:
   ```bash
   python main.py --help
   ```

## Uso

### Exemplos Básicos

Para executar uma varredura básica:
```bash
python main.py scan --target example.com
```

Para usar o modo verboso:
```bash
python main.py scan --target example.com -v
```

### Opções Avançadas

| Opção | Descrição |
|-------|-----------|
| `--target` | Especifica o alvo da varredura |
| `--port` | Define a porta a ser verificada |
| `--threads` | Número de threads para execução paralela |
| `--timeout` | Tempo limite para cada solicitação |
| `--output` | Caminho do arquivo para salvar os resultados |

### Exemplo de Saída

```json
{
  "target": "example.com",
  "status": "completed",
  "vulnerabilities": [
    {
      "id": "CVE-2023-1234",
      "severity": "high",
      "description": "Vulnerabilidade de injeção de SQL"
    }
  ]
}
```

## Configuração

O arquivo de configuração `config.yaml` permite personalizar o comportamento da ferramenta:

```yaml
scan:
  threads: 10
  timeout: 30
  ports: [80, 443, 8080]

report:
  format: "json"
  output_dir: "./reports"
```

## Solução de Problemas

### Erro: "Permission denied"

Se você encontrar um erro de permissão, tente executar com `sudo` ou ajuste as permissões do diretório:
```bash
chmod +x main.py
```

### Erro: "ModuleNotFoundError"

Certifique-se de que todas as dependências estão instaladas:
```bash
pip install -r requirements.txt
```

## Contribuindo

Agradecemos contribuições! Por favor, siga estas etapas:

1. Faça um fork do repositório
2. Crie um branch para sua feature (`git checkout -b feature/nova-funcionalidade`)
3. Faça commit das suas alterações (`git commit -am 'Adiciona nova funcionalidade'`)
4. Envie para o branch (`git push origin feature/nova-funcionalidade`)
5. Abra um Pull Request

## Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo [LICENSE](https://github.com/raskrebs/sonar/blob/main/LICENSE) para obter detalhes.

## Aviso Legal

Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizado. O uso indevido desta ferramenta pode violar leis e regulamentos aplicáveis. O autor não se responsabiliza por qualquer uso indevido.
``````sh
sonar daemon path
sonar daemon status --json
sonar daemon log -n 5
# check
```
| O quê | Onde |
|---|---|
| Socket | `$XDG_RUNTIME_DIR/sonar/daemon.sock`, senão `~/.config/sonar/daemon.sock`; `\\.\pipe\sonar` no Windows |
| Banco de dados | `~/.config/sonar/sonar.db` (`SONAR_DB` substitui) |
| Log do daemon | `~/.config/sonar/daemon.log`, rotacionado a 5 MiB, três mantidos |
| Logs de execução | `~/.config/sonar/logs/<grupo>/<serviço>.log` |
| Configuração | `~/.config/sonar/config.yaml` |

`SONAR_SOCKET` substitui o caminho do socket em todos os lugares, tanto para o daemon quanto para
seus clientes — útil para uma segunda instância isolada. O socket é criado
com 0600 em um diretório 0700, então só você pode falar com ele. Apenas um daemon é executado por
vez; um socket deixado para trás por uma falha é limpo na próxima inicialização.

O daemon para sozinho após 30 minutos sem clientes e sem
assinantes. Defina `daemon.idle_timeout` no arquivo de configuração para alterar isso, ou
`0` para mantê-lo em execução.

As portas são escaneadas a cada 2 segundos enquanto algo está mudando; quando nada está,
o scanner se desacelera para 5 segundos com um assinante conectado e 10
segundos sem um. `daemon.scan_interval` move essa base — mínimo 1s — e
ambos os tetos escalam com ela, então aumentá-la para `5s` recua para 12,5s e 25s
em vez de fixar a curva nos limites antigos. `daemon.stats_interval` é o
ritmo separado no qual cpu, memória e a faixa de carga do host são atualizados enquanto
algo está assinado. Ambos são lidos quando o daemon inicia: edite o arquivo,
depois `sonar daemon restart`. `sonar daemon status` imprime os valores em
efeito (`scan base`, `stats tick`) ao lado do intervalo adaptativo em que o scanner está
agora.

Um assinante que solicita `include: ["health"]` faz o daemon sondar **cada
porta em escuta** em um ritmo mais lento, não apenas os serviços que declaram um
caminho `health:` — esses são consultados a cada tick e alcançam cada assinante
quer a saúde tenha sido solicitada ou não.

### Configuração

`~/.config/sonar/config.yaml` é opcional; as flags sempre vencem.```sh
sonar config path
sonar config init
# check
```
Aqui está a tradução para português do conteúdo fornecido:

---

**Nota:** O texto original não foi fornecido no prompt. Para que eu possa traduzir, por favor, cole o conteúdo do chunk 81.```sh
sonar config edit       # open it in $EDITOR
```
I'm ready to translate the Kitploit tool content from English to Portuguese. Please provide chunk 83 of 107.```yaml
list:
  columns: [port, process, group, container, image, containerport, url]
  sort: port            # port | pid | name | type
  filter: ""            # docker | user | system | "" (all)
  all: false            # include desktop apps by default
daemon:
  idle_timeout: 30m     # 0 keeps the daemon running
  log_level: info       # debug | info | warn | error
  scan_interval: 2s     # base port-scan cadence, minimum 1s
  stats_interval: 1s    # cpu/memory refresh while subscribed, minimum 250ms
color: true
services:               # label custom/unknown ports
  9000: php-fpm
  5050: my-dashboard
```
Valores inválidos são ignorados com um aviso e o sonar continua com os padrões.
Sobrescritas de ambiente sem chave de configuração: `SONAR_DB`, `SONAR_SOCKET`,
`SONAR_NO_HINTS=1` para silenciar os avisos de migração abaixo, e
`SONAR_NO_AUTOSTART=1` para impedir que qualquer cliente sonar inicie um daemon que ele não
encontrou — útil em CI, onde uma build nunca deve deixar um processo para trás.

A própria suíte de testes do sonar define `SONAR_NO_AUTOSTART=1` para cada binário de teste e,
após a execução, procura por um daemon que tenha sobrevivido a ela. Essa trava só reivindica um
`serve` iniciado a partir da raiz temporária privada da execução, então duas suítes rodando lado a lado
em uma mesma máquina não interferem nos daemons uma da outra;
`SONAR_TESTENV_GATE_ALL=1` amplia isso de volta para cada `sonar serve` em qualquer lugar sob
o diretório temporário, que é o que um runner de CI que possui a máquina inteira
deseja.

### Agentes: MCP, skills e hooks```sh
sonar install mcp --claude-code               # merge into <git root>/.mcp.json
sonar install mcp --cursor --scope user       # ~/.cursor/mcp.json
sonar install mcp --codex                     # codex mcp add
sonar install skills --claude-code            # the bundled sonar skill
sonar install hooks --claude-code             # optional, see below
```
I need the actual content of chunk 87 to translate it. Please provide the Markdown text you want translated.```sh
sonar install mcp --generic --print
sonar install skills --print
sonar install hooks --print
# check
```
`install mcp` regista `{"command": "sonar", "args": ["mcp"]}` e deixa todos os
outros servidores e chaves no arquivo intactos; executá-lo duas vezes não muda
nada, e `--uninstall` remove exatamente o que o sonar escreveu.

`sonar mcp` é esse servidor: um servidor MCP stdio embutido no binário que dá
a um agente a visão do daemon sobre a máquina. Ele lê com `list_ports` e
`inspect_port`, aguarda com `wait_for_port`, escolhe e reserva portas com
`next_free_port` e `claim_port`, e responde ao restante das perguntas de um agente
com `tail_logs`, `health_check`, `dependency_graph`, `port_history` e
`list_sessions`; ações e recursos vêm em seguida. Ele inicia um daemon se nenhum
estiver em execução e se reconecta por conta própria se um desaparecer; seus logs vão para stderr,
porque o stdout carrega o protocolo.

`install skills` grava a skill incluída, que ensina um agente a iniciar
servidores com `sonar start --`, a usar `sonar wait` em vez de dormir, e a
limpar o que iniciou. `install hooks` adiciona dois hooks do Claude Code: um
exporta `SONAR_SESSION` para que tudo o que uma sessão inicia seja atribuído a ela, o
outro sugere `sonar start --` quando um servidor de desenvolvimento simples está prestes a ser executado (ele
aconselha, nunca bloqueia). Ambos aceitam `--scope project|user`, `--print` e
`--uninstall`.

### `sonar doctor`

Um único comando que verifica tudo do que o sonar depende e diz o que fazer sobre
o que estiver errado. É o que o aplicativo desktop executa durante a integração, e o que
você deve executar por conta própria quando algo estiver fora do lugar.```sh
sonar doctor                       # the table, and a one-line verdict
sonar doctor --json                # {ok, checks, version, daemon_version}
sonar doctor --only db_ok,tray     # just these
sonar doctor --only mcp_registered # a whole family
sonar doctor --project ~/code/api  # a project other than the working directory
sonar doctor --fix --yes           # apply the safe repairs, then check again
```
# Ferramentas de Segurança Ofensiva

## Ferramentas de Exploração

### Metasploit Framework

O Metasploit Framework é uma infraestrutura de código aberto que você pode usar para testes de segurança, desenvolvimento de assinaturas e pesquisa de vulnerabilidades. A estrutura inclui ferramentas que você pode usar para:

- Escrever, testar e executar código de exploração.
- Criar e testar cargas úteis (payloads) que serão implantadas em sistemas comprometidos.
- Executar ataques simulados contra sistemas para testar suas defesas.

### ExploitDB

O ExploitDB é um arquivo público de explorações e vulnerabilidades correspondentes, mantido pela Offensive Security. É um recurso valioso para pesquisadores de segurança que buscam entender como as vulnerabilidades são exploradas na prática.

### SearchSploit

O SearchSploit é uma ferramenta de linha de comando que permite pesquisar no arquivo do ExploitDB a partir do seu terminal. É particularmente útil para testes de penetração offline e auditorias de segurança.

## Ferramentas de Pós-Exploração

### Mimikatz

O Mimikatz é uma ferramenta bem conhecida para extrair credenciais de sistemas Windows. Ela pode recuperar senhas em texto claro, hashes, tickets Kerberos e outros segredos de autenticação da memória do sistema.

### Empire

O Empire é uma estrutura de pós-exploração baseada em PowerShell e Python. Ela fornece uma variedade de agentes e módulos para manter o acesso a sistemas comprometidos e realizar ações adicionais na rede.

## Ferramentas de Engenharia Social

### SET (Social Engineering Toolkit)

O SET é uma estrutura de código aberto projetada para automatizar ataques de engenharia social. Ele inclui vetores de ataque para phishing, clonagem de sites, geração de payloads e ataques de mídia removível.

### BeEF (Browser Exploitation Framework)

O BeEF é uma ferramenta de teste de penetração focada no navegador da web. Ela permite que um testador de segurança avalie a postura de segurança de um ambiente de destino usando ataques do lado do cliente.

## Ferramentas de Análise Forense

### Autopsy

O Autopsy é uma plataforma de análise forense digital e uma interface gráfica para o Sleuth Kit. Ela é usada para investigar o que aconteceu em um computador, recuperando dados de dispositivos de armazenamento e analisando artefatos.

### Volatility

O Volatility é uma estrutura de análise forense de memória avançada. Ela é usada para extrair informações de amostras de memória (dumps de RAM) e pode analisar a memória de sistemas Windows, Linux e macOS.

## Ferramentas de Análise de Rede

### Wireshark

O Wireshark é um analisador de protocolos de rede amplamente utilizado. Ele permite capturar e navegar interativamente pelo tráfego que trafega em uma interface de rede de computador.

### tcpdump

O tcpdump é um analisador de pacotes de rede baseado em linha de comando. Ele é usado para capturar e filtrar pacotes de rede para análise e solução de problemas.

## Ferramentas de Análise de Vulnerabilidades

### Nessus

O Nessus é um scanner de vulnerabilidades comercial que identifica vulnerabilidades, configurações incorretas e problemas de conformidade em sistemas de rede.

### OpenVAS

O OpenVAS é uma estrutura de scanner de vulnerabilidades de código aberto. Ele inclui um serviço de scanner e um conjunto de testes de vulnerabilidades para detectar problemas de segurança em sistemas.

## Ferramentas de Análise de Aplicações Web

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

### OWASP ZAP

O OWASP ZAP (Zed Attack Proxy) é um scanner de segurança de aplicações web de código aberto. Ele é projetado para ser usado tanto por iniciantes quanto por profissionais experientes em segurança.

## Ferramentas de Análise de Senhas

### John the Ripper

O John the Ripper é uma ferramenta de quebra de senhas rápida. Ela é usada para testar a força de senhas e recuperar senhas de hashes.

### Hashcat

O Hashcat é um recuperador de senhas avançado que suporta cinco modos de ataque exclusivos para mais de 300 algoritmos de hash altamente otimizados.

## Ferramentas de Análise de Tráfego

### Aircrack-ng

O Aircrack-ng é um conjunto completo de ferramentas para avaliar a segurança de redes Wi-Fi. Ele se concentra em diferentes áreas da segurança de Wi-Fi:

- Monitoramento: captura de pacotes e exportação de dados para ferramentas externas.
- Ataque: ataques de repetição, desautenticação e pontos de acesso falsos.
- Teste: verificação de placas Wi-Fi e capacidades do driver.
- Quebra: quebra de chaves WEP e WPA PSK.

### Kismet

O Kismet é um detector de redes sem fio, sniffer e sistema de detecção de intrusão. Ele funciona com qualquer placa de rede sem fio que suporte o modo de monitoramento bruto.

## Ferramentas de Análise de Malware

### YARA

O YARA é uma ferramenta usada principalmente na identificação e classificação de amostras de malware. Ela permite criar descrições de famílias de malware com base em padrões textuais ou binários.

### Cuckoo Sandbox

O Cuckoo Sandbox é um sistema de análise automatizada de malware de código aberto. Ele é usado para analisar arquivos e URLs em um ambiente controlado e isolado.

## Ferramentas de Análise de Código

### Bandit

O Bandit é uma ferramenta projetada para encontrar problemas comuns de segurança em código Python. Ele processa cada arquivo, constrói uma árvore sintática abstrata (AST) e executa plugins para detectar vulnerabilidades.

### Brakeman

O Brakeman é um scanner de análise estática de segurança para aplicações Ruby on Rails. Ele verifica o código-fonte em busca de vulnerabilidades de segurança conhecidas.

## Ferramentas de Análise de Configuração

### Lynis

O Lynis é uma ferramenta de auditoria de segurança para sistemas baseados em Unix. Ela realiza uma varredura extensa do sistema para descobrir problemas de segurança e configurações incorretas.

### OpenSCAP

O OpenSCAP é uma estrutura de código aberto que fornece ferramentas para avaliação de conformidade e auditoria de segurança. Ela implementa o padrão SCAP (Security Content Automation Protocol).

## Ferramentas de Análise de Logs

### Logwatch

O Logwatch é um analisador de logs personalizável que processa logs do sistema e gera relatórios sobre atividades suspeitas ou incomuns.

### GoAccess

O GoAccess é um analisador de logs em tempo real que visualiza e interage com logs de servidores web. Ele fornece estatísticas rápidas e valiosas sobre tráfego HTTP.

## Ferramentas de Análise de DNS

### dnsrecon

O dnsrecon é uma ferramenta de enumeração de DNS que permite coletar informações sobre servidores DNS e registros de domínio.

### fierce

O fierce é uma ferramenta de reconhecimento de DNS que realiza varreduras para encontrar servidores DNS e hosts não autorizados.

## Ferramentas de Análise de E-mail

### swaks

O swaks (Swiss Army Knife for SMTP) é uma ferramenta de teste de protocolo SMTP versátil. Ela é usada para testar servidores de e-mail e verificar configurações de SMTP.

### PhishingKit

O PhishingKit é uma ferramenta para analisar kits de phishing e entender como eles funcionam.

## Ferramentas de Análise de Rede Sem Fio

### Wifite

O Wifite é uma ferramenta automatizada de auditoria de redes sem fio. Ela automatiza o processo de captura de handshakes e quebra de senhas WPA/WPA2.

### Reaver

O Reaver é uma ferramenta de ataque a redes Wi-Fi protegidas por WPS. Ela explora uma vulnerabilidade no protocolo WPS para recuperar a senha da rede.

## Ferramentas de Análise de Bluetooth

### Ubertooth

O Ubertooth é uma plataforma de hardware e software para testes de segurança de Bluetooth. Ela permite monitorar e analisar tráfego Bluetooth.

### BlueZ

O BlueZ é a pilha de protocolo Bluetooth oficial do Linux. Ela fornece ferramentas para gerenciar e analisar dispositivos Bluetooth.

## Ferramentas de Análise de RFID

### Proxmark3

O Proxmark3 é uma ferramenta de hardware para análise e teste de sistemas RFID. Ela pode ler, escrever e clonar tags RFID.

### libnfc

O libnfc é uma biblioteca de código aberto para comunicação NFC. Ela fornece ferramentas para interagir com dispositivos NFC.

## Ferramentas de Análise de Hardware

### JTAGulator

O JTAGulator é uma ferramenta de hardware para identificar pinos JTAG e UART em dispositivos embarcados.

### Bus Pirate

O Bus Pirate é uma ferramenta de hardware para testar e depurar protocolos de comunicação serial.

## Ferramentas de Análise de Firmware

### Binwalk

O Binwalk é uma ferramenta para analisar, extrair e modificar firmware. Ela é usada para identificar e extrair arquivos embutidos em imagens de firmware.

### Firmware Analysis Toolkit

O Firmware Analysis Toolkit é um conjunto de ferramentas para automatizar a análise de firmware. Ele inclui ferramentas para extrair, montar e analisar sistemas de arquivos de firmware.

## Ferramentas de Análise de IoT

### Shodan

O Shodan é um mecanismo de busca para dispositivos conectados à internet. Ele permite encontrar dispositivos IoT e outros sistemas expostos.

### ThingPulse

O ThingPulse é uma ferramenta para analisar dispositivos IoT e seus protocolos de comunicação.

## Ferramentas de Análise de SCADA

### Modbus

O Modbus é um protocolo de comunicação usado em sistemas SCADA. Ferramentas como o ModbusPal permitem simular e analisar dispositivos Modbus.

### ScadaBR

O ScadaBR é uma plataforma de código aberto para sistemas SCADA. Ela fornece ferramentas para monitorar e controlar processos industriais.

## Ferramentas de Análise de Cloud

### ScoutSuite

O ScoutSuite é uma ferramenta de auditoria de segurança multi-cloud. Ela avalia a postura de segurança de ambientes AWS, Azure e GCP.

### Prowler

O Prowler é uma ferramenta de auditoria de segurança para AWS. Ela verifica a conformidade com as melhores práticas de segurança da AWS.

## Ferramentas de Análise de Contêineres

### Trivy

O Trivy é um scanner de vulnerabilidades abrangente para contêineres e outros artefatos. Ele detecta vulnerabilidades em imagens de contêineres e sistemas de arquivos.

### Clair

O Clair é um projeto de código aberto para análise estática de vulnerabilidades em contêineres. Ele fornece uma API para consultar vulnerabilidades em imagens de contêineres.

## Ferramentas de Análise de Kubernetes

### kube-hunter

O kube-hunter é uma ferramenta para testar a segurança de clusters Kubernetes. Ela identifica vulnerabilidades e configurações incorretas em clusters.

### kube-bench

O kube-bench é uma ferramenta que verifica clusters Kubernetes contra o CIS Benchmark. Ela verifica se os clusters estão configurados de acordo com as melhores práticas de segurança.

## Ferramentas de Análise de DevOps

### Gauntlt

O Gauntlt é uma estrutura de teste de segurança que integra testes de segurança em pipelines de CI/CD. Ela permite que equipes de desenvolvimento executem testes de segurança automatizados.

### BDD-Security

O BDD-Security é uma estrutura de teste de segurança que usa desenvolvimento orientado a comportamento (BDD) para definir e executar testes de segurança.

## Ferramentas de Análise de Compliance

### OpenSCAP

O OpenSCAP é uma estrutura de código aberto que fornece ferramentas para avaliação de conformidade e auditoria de segurança. Ela implementa o padrão SCAP (Security Content Automation Protocol).

### InSpec

O InSpec é uma estrutura de teste de código aberto para auditoria de conformidade. Ela permite definir testes automatizados para verificar a conformidade de sistemas com políticas de segurança.

## Ferramentas de Análise de Risco

### OpenVAS

O OpenVAS é uma estrutura de scanner de vulnerabilidades de código aberto. Ele inclui um serviço de scanner e um conjunto de testes de vulnerabilidades para detectar problemas de segurança em sistemas.

### Nexpose

O Nexpose é um scanner de vulnerabilidades comercial da Rapid7. Ele fornece gerenciamento de vulnerabilidades e análise de risco.

## Ferramentas de Análise de Incidentes

### TheHive

O TheHive é uma plataforma de resposta a incidentes de código aberto. Ela permite que equipes de segurança colaborem na investigação e resposta a incidentes.

### MISP

O MISP (Malware Information Sharing Platform) é uma plataforma de código aberto para compartilhamento de inteligência de ameaças. Ela permite que organizações compartilhem indicadores de comprometimento e outras informações de ameaças.

## Ferramentas de Análise de Threat Intelligence

### OpenCTI

O OpenCTI é uma plataforma de código aberto para gerenciamento de inteligência de ameaças. Ela permite que organizações coletem, armazenem e analisem informações sobre ameaças.

### Yeti

O Yeti é uma plataforma de inteligência de ameaças que permite coletar e analisar indicadores de comprometimento.

## Ferramentas de Análise de OSINT

### Maltego

O Maltego é uma ferramenta de análise de inteligência de código aberto. Ela permite visualizar e analisar relacionamentos entre entidades, como pessoas, organizações e domínios.

### Recon-ng

O Recon-ng é uma estrutura de reconhecimento de código aberto. Ela fornece módulos para coletar informações sobre alvos de várias fontes.

## Ferramentas de Análise de Redes Sociais

### Twint

O Twint é uma ferramenta de OSINT para Twitter. Ela permite coletar dados do Twitter sem usar a API oficial.

### Instaloader

O Instaloader é uma ferramenta para baixar conteúdo do Instagram. Ela permite coletar fotos, vídeos e metadados de perfis públicos.

## Ferramentas de Análise de Deep Web

### Tor

O Tor é uma rede de anonimato que permite navegar na internet de forma anônima. Ferramentas como o Tor Browser são usadas para acessar a deep web.

### OnionScan

O OnionScan é uma ferramenta para analisar sites na rede Tor. Ela verifica sites .onion em busca de vulnerabilidades e vazamentos de informações.

## Ferramentas de Análise de Criptomoedas

### Blockchair

O Blockchair é um explorador de blockchain que permite analisar transações de criptomoedas.

### Chainalysis

O Chainalysis é uma plataforma comercial para análise de blockchain. Ela é usada para rastrear transações de criptomoedas e identificar atividades ilegais.

## Ferramentas de Análise de Esteganografia

### Steghide

O Steghide é uma ferramenta de esteganografia que permite ocultar dados em arquivos de imagem e áudio.

### OutGuess

O OutGuess é uma ferramenta de esteganografia que permite ocultar dados em arquivos de imagem.

## Ferramentas de Análise de Criptografia

### OpenSSL

O OpenSSL é uma biblioteca de criptografia amplamente utilizada. Ela fornece ferramentas para criar e gerenciar certificados, chaves e outros materiais criptográficos.

### GnuPG

O GnuPG (GNU Privacy Guard) é uma ferramenta de criptografia que implementa o padrão OpenPGP. Ela é usada para criptografar e assinar dados.

## Ferramentas de Análise de Certificados

### OpenSSL

O OpenSSL é uma biblioteca de criptografia amplamente utilizada. Ela fornece ferramentas para criar e gerenciar certificados, chaves e outros materiais criptográficos.

### cfssl

O cfssl é um conjunto de ferramentas para criar e gerenciar certificados TLS. Ele fornece uma API para emitir e revogar certificados.

## Ferramentas de Análise de PKI

### Easy-RSA

O Easy-RSA é um utilitário de linha de comando para gerenciar uma autoridade certificadora (CA). Ele é usado para criar e gerenciar certificados para VPNs e outros serviços.

### XCA

O XCA é uma ferramenta gráfica para gerenciar certificados e chaves. Ela permite criar e gerenciar certificados, chaves e solicitações de assinatura de certificados.

## Ferramentas de Análise de Autenticação

### Hydra

O Hydra é uma ferramenta de quebra de senhas online. Ela é usada para realizar ataques de força bruta contra serviços de autenticação.

### Medusa

O Medusa é uma ferramenta de quebra de senhas online paralela. Ela é usada para realizar ataques de força bruta contra serviços de autenticação.

## Ferramentas de Análise de Autorização

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

### OWASP ZAP

O OWASP ZAP (Zed Attack Proxy) é um scanner de segurança de aplicações web de código aberto. Ele é projetado para ser usado tanto por iniciantes quanto por profissionais experientes em segurança.

## Ferramentas de Análise de Sessão

### Session Hijacking

O Session Hijacking é uma técnica usada para sequestrar sessões de usuários. Ferramentas como o Ferret e o Hamster são usadas para realizar ataques de sequestro de sessão.

### Cookie Editor

O Cookie Editor é uma extensão de navegador que permite visualizar e editar cookies. Ela é usada para manipular sessões e testar vulnerabilidades relacionadas a cookies.

## Ferramentas de Análise de Input Validation

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

### OWASP ZAP

O OWASP ZAP (Zed Attack Proxy) é um scanner de segurança de aplicações web de código aberto. Ele é projetado para ser usado tanto por iniciantes quanto por profissionais experientes em segurança.

## Ferramentas de Análise de SQL Injection

### sqlmap

O sqlmap é uma ferramenta de código aberto que automatiza o processo de detecção e exploração de vulnerabilidades de injeção de SQL.

### jSQL Injection

O jSQL Injection é uma ferramenta Java para testar vulnerabilidades de injeção de SQL em aplicações web.

## Ferramentas de Análise de XSS

### XSStrike

O XSStrike é uma ferramenta de detecção e exploração de XSS. Ela é usada para encontrar e explorar vulnerabilidades de cross-site scripting.

### BeEF

O BeEF (Browser Exploitation Framework) é uma ferramenta de teste de penetração focada no navegador da web. Ela permite que um testador de segurança avalie a postura de segurança de um ambiente de destino usando ataques do lado do cliente.

## Ferramentas de Análise de CSRF

### CSRF Tester

O CSRF Tester é uma ferramenta para testar vulnerabilidades de Cross-Site Request Forgery. Ela permite criar e enviar solicitações forjadas para testar aplicações web.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de SSRF

### SSRFmap

O SSRFmap é uma ferramenta para testar vulnerabilidades de Server-Side Request Forgery. Ela permite explorar e automatizar ataques SSRF.

### Gopherus

O Gopherus é uma ferramenta para gerar payloads para ataques SSRF usando o protocolo Gopher.

## Ferramentas de Análise de Deserialization

### ysoserial

O ysoserial é uma ferramenta para gerar payloads de desserialização para Java. Ela é usada para explorar vulnerabilidades de desserialização insegura.

### PHPGGC

O PHPGGC é uma biblioteca de payloads de desserialização para PHP. Ela fornece payloads para explorar vulnerabilidades de desserialização em aplicações PHP.

## Ferramentas de Análise de Command Injection

### Commix

O Commix é uma ferramenta automatizada para testar vulnerabilidades de injeção de comandos. Ela permite detectar e explorar vulnerabilidades de injeção de comandos em aplicações web.

### PayloadsAllTheThings

O PayloadsAllTheThings é uma coleção de payloads e técnicas para testes de segurança. Ela inclui payloads para injeção de comandos e outros tipos de ataques.

## Ferramentas de Análise de File Upload

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

### OWASP ZAP

O OWASP ZAP (Zed Attack Proxy) é um scanner de segurança de aplicações web de código aberto. Ele é projetado para ser usado tanto por iniciantes quanto por profissionais experientes em segurança.

## Ferramentas de Análise de Path Traversal

### dotdotpwn

O dotdotpwn é uma ferramenta para testar vulnerabilidades de path traversal. Ela permite automatizar ataques de traversal de diretórios.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de LDAP Injection

### ldapsearch

O ldapsearch é uma ferramenta de linha de comando para consultar servidores LDAP. Ela é usada para testar vulnerabilidades de injeção de LDAP.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de XML Injection

### XXE Injector

O XXE Injector é uma ferramenta para testar vulnerabilidades de XML External Entity. Ela permite automatizar ataques XXE.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de Template Injection

### Tplmap

O Tplmap é uma ferramenta para testar vulnerabilidades de Server-Side Template Injection. Ela permite detectar e explorar vulnerabilidades de injeção de templates.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de HTTP Request Smuggling

### Smuggler

O Smuggler é uma ferramenta para testar vulnerabilidades de HTTP Request Smuggling. Ela permite detectar e explorar vulnerabilidades de contrabando de solicitações HTTP.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de WebSocket

### wscat

O wscat é uma ferramenta de linha de comando para testar conexões WebSocket. Ela permite conectar e enviar mensagens a servidores WebSocket.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de API

### Postman

O Postman é uma plataforma para desenvolvimento e teste de APIs. Ela permite enviar solicitações HTTP e analisar respostas.

### OWASP ZAP

O OWASP ZAP (Zed Attack Proxy) é um scanner de segurança de aplicações web de código aberto. Ele é projetado para ser usado tanto por iniciantes quanto por profissionais experientes em segurança.

## Ferramentas de Análise de GraphQL

### GraphQL Introspection

O GraphQL Introspection é uma técnica para explorar esquemas GraphQL. Ferramentas como o GraphiQL permitem consultar e explorar APIs GraphQL.

### InQL

O InQL é uma extensão do Burp Suite para testar APIs GraphQL. Ela permite enviar consultas e mutações GraphQL.

## Ferramentas de Análise de REST API

### Postman

O Postman é uma plataforma para desenvolvimento e teste de APIs. Ela permite enviar solicitações HTTP e analisar respostas.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de SOAP

### SoapUI

O SoapUI é uma ferramenta para testar serviços web SOAP e REST. Ela permite criar e executar testes funcionais e de segurança.

### Burp Suite

O Burp Suite é uma plataforma integrada para realizar testes de segurança de aplicações web. Ele inclui vários componentes que trabalham juntos para auxiliar no processo de teste de segurança de aplicações web.

## Ferramentas de Análise de Microservices

### Istio

O Istio é uma malha de serviços que fornece observabilidade, segurança e gerenciamento de tráfego para microservices.

### Envoy

O Envoy é um proxy de borda e serviço de código aberto. Ele é usado para gerenciar o tráfego entre microservices.

## Ferramentas de Análise de Serverless

### Serverless Framework

O Serverless Framework é uma estrutura para desenvolver e implantar aplicações serverless. Ela permite gerenciar funções e recursos em provedores de nuvem.

### AWS Lambda

O AWS Lambda é um serviço de computação serverless da Amazon. Ele permite executar código sem provisionar servidores.

## Ferramentas de Análise de Containers

### Docker

O Docker é uma plataforma para desenvolver, enviar e executar aplicações em contêineres. Ela permite empacotar aplicações e suas dependências em contêineres.

### Kubernetes

O Kubernetes é uma plataforma de orquestração de contêineres de código aberto. Ela automatiza a implantação, o dimensionamento e o gerenciamento de aplicações em contêineres.

## Ferramentas de Análise de Virtualização

### VirtualBox

O VirtualBox é um software de virtualização de código aberto. Ele permite executar múltiplos sistemas operacionais em uma única máquina.

### VMware

O VMware é uma plataforma de virtualização comercial. Ela fornece ferramentas para criar e gerenciar máquinas virtuais.

## Ferramentas de Análise de Rede Definida por Software

### Open vSwitch

O Open vSwitch é um switch virtual de código aberto. Ele é usado para gerenciar redes definidas por software.

### Mininet

O Mininet é uma ferramenta para criar redes virtuais em uma única máquina. Ela é usada para testar e desenvolver aplicações de rede.

## Ferramentas de Análise de Segurança de Rede

### Snort

O Snort é um sistema de detecção de intrusão de rede de código aberto. Ele é usado para monitorar o tráfego de rede e detectar atividades suspeitas.

### Suricata

O Suricata é um sistema de detecção de intrusão de rede de código aberto. Ele é usado para monitorar o tráfego de rede e detectar atividades suspeitas.

## Ferramentas de Análise de Segurança de Host

### OSSEC

O OSSEC é um sistema de detecção de intrusão de host de código aberto. Ele é usado para monitorar a integridade de arquivos e detectar atividades suspeitas em hosts.

### Wazuh

O Wazuh é uma plataforma de segurança de código aberto que fornece detecção de intrusão, monitoramento de integridade e resposta a incidentes.

## Ferramentas de Análise de Segurança de Aplicações

### OWASP Dependency-Check

O OWASP Dependency-Check é uma ferramenta para identificar vulnerabilidades conhecidas em dependências de projetos. Ela verifica dependências contra o banco de dados de vulnerabilidades do NVD.

### Snyk

O Snyk é uma plataforma de segurança para desenvolvimento. Ela permite encontrar e corrigir vulnerabilidades em dependências e código.

## Ferramentas de Análise de Segurança de Dados

### Vault

O Vault é uma ferramenta da HashiCorp para gerenciar segredos e proteger dados. Ela fornece criptografia e gerenciamento de acesso a segredos.

### Keycloak

O Keycloak é uma solução de código aberto para gerenciamento de identidade e acesso. Ela fornece autenticação e autorização para aplicações.

## Ferramentas de Análise de Segurança de Identidade

### Keycloak

O Keycloak é uma solução de código aberto para gerenciamento de identidade e acesso. Ela fornece autenticação e autorização para aplicações.

### FreeIPA

O FreeIPA é uma solução de gerenciamento de identidade de código aberto. Ela fornece autenticação, autorização e gerenciamento de contas.

## Ferramentas de Análise de Segurança de Acesso

### OpenLDAP

O OpenLDAP é uma implementação de código aberto do protocolo LDAP. Ela é usada para gerenciar diretórios e autenticação.

### FreeRADIUS

O FreeRADIUS é um servidor RADIUS de código aberto. Ele é usado para autenticação, autorização e contabilidade em redes.

## Ferramentas de Análise de Segurança de Privacidade

### Tor

O Tor é uma rede de anonimato que permite navegar na internet de forma anônima. Ferramentas como o Tor Browser são usadas para proteger a privacidade online.

### Signal

O Signal é um aplicativo de mensagens seguro que usa criptografia de ponta a ponta. Ele é usado para proteger a privacidade das comunicações.

## Ferramentas de Análise de Segurança de Conformidade

### OpenSCAP

O OpenSCAP é uma estrutura de código aberto que fornece ferramentas para avaliação de conformidade e auditoria de segurança. Ela implementa o padrão SCAP (Security Content Automation Protocol).

### InSpec

O InSpec é uma estrutura de teste de código aberto para auditoria de conformidade. Ela permite definir testes automatizados para verificar a conformidade de sistemas com políticas de segurança.

## Ferramentas de Análise de Segurança de Auditoria

### Lynis

O Lynis é uma ferramenta de auditoria de segurança para sistemas baseados em Unix. Ela realiza uma varredura extensa do sistema para descobrir problemas de segurança e configurações incorretas.

### OpenSCAP

O OpenSCAP é uma estrutura de código aberto que fornece ferramentas para avaliação de conformidade e auditoria de segurança. Ela implementa o padrão SCAP (Security Content Automation Protocol).

## Ferramentas de Análise de Segurança de Monitoramento

### Prometheus

O Prometheus é um sistema de monitoramento e alerta de código aberto. Ele é usado para coletar e analisar métricas de sistemas e serviços.

### Grafana

O Grafana é uma plataforma de análise e visualização de código aberto. Ela é usada para criar dashboards e visualizar métricas de sistemas.

## Ferramentas de Análise de Segurança de SIEM

### Elastic Stack

O Elastic Stack é um conjunto de ferramentas para busca, análise e visualização de dados. Ele é usado para construir soluções de SIEM.

### Splunk

O Splunk é uma plataforma comercial para análise de dados de máquina. Ela é usada para monitoramento, busca e análise de logs.

## Ferramentas de Análise de Segurança de SOAR

### TheHive

O TheHive é uma plataforma de resposta a incidentes de código aberto. Ela permite que equipes de segurança colaborem na investigação e resposta a incidentes.

### Cortex

O Cortex é um mecanismo de análise para TheHive. Ele permite executar analisadores e respondedores para automatizar a resposta a incidentes.

## Ferramentas de Análise de Segurança de Threat Hunting

### MISP

O MISP (Malware Information Sharing Platform) é uma plataforma de código aberto para compartilhamento de inteligência de ameaças. Ela permite que organizações compartilhem indicadores de comprometimento e outras informações de ameaças.

### OpenCTI

O OpenCTI é uma plataforma de código aberto para gerenciamento de inteligência de ameaças. Ela permite que organizações coletem, armazenem e analisem informações sobre ameaças.

## Ferramentas de Análise de Segurança de Red Team

### Cobalt Strike

O Cobalt Strike é uma plataforma comercial para testes de penetração e operações de red team. Ela fornece ferramentas para simular ataques avançados.

### Caldera

O Caldera é uma estrutura de código aberto para automação de operações de red team. Ela permite planejar e executar ataques simulados.

## Ferramentas de Análise de Segurança de Blue Team

### Wazuh

O Wazuh é uma plataforma de segurança de código aberto que fornece detecção de intrusão, monitoramento de integridade e resposta a incidentes.

### TheHive

O TheHive é uma plataforma de resposta a incidentes de código aberto. Ela permite que equipes de segurança colaborem na investigação e resposta a incidentes.

## Ferramentas de Análise de Segurança de Purple Team

### Atomic Red Team

O Atomic Red Team é uma biblioteca```sh
# check
sonar doctor --only daemon_reachable,daemon_protocol,socket_permissions,db_ok
sonar doctor --json --only config_parses | grep -q '"status": "ok"'
sonar doctor --only mcp_registered --project . > /dev/null
```
Cada verificação reporta `ok`, `warn`, `fail` ou `skip`. `skip` significa que não havia
nada para verificar — o Cursor não está instalado, a máquina não tem docker, o
socket é um named pipe no Windows — e nunca conta contra você. O código de saída
é 0 a menos que algo **falhe**, então `sonar doctor` pertence a um script de configuração.

| verificação | o que significa |
| --- | --- |
| `cli_on_path` | o binário que você executou é o que o PATH resolve; nomeia a instalação que o sobrepõe, se não for |
| `cli_version_current` | comparado com o lançamento mais recente, ou `skip` quando o GitHub não está acessível em 2s |
| `config_parses` | o seu `config.yaml` carrega; um erro de sintaxe é reportado com linha, coluna e um cursor |
| `config_dir_writable` | o daemon pode gravar seu log, lock e banco de dados |
| `daemon_reachable` | algo está escutando no socket |
| `daemon_version_matches` | o daemon em execução é a versão do CLI que você está usando |
| `daemon_protocol` | o major do protocolo do daemon corresponde ao desta build |
| `socket_permissions` | o socket é seu e 0600, em um diretório 0700 (`skip` no Windows) |
| `db_ok` | o banco de dados abre, está no schema mais recente e qual o seu tamanho |
| `mcp_registered.{claude_code,cursor,codex}` | o servidor MCP do sonar está na configuração daquele cliente |
| `skills_installed` | a skill incluída está instalada e atual |
| `hooks_installed` | os hooks opcionais do Claude Code estão instalados |
| `project_config` | este projeto tem um `.sonar.yaml` que carrega |
| `docker` | o CLI do docker está presente e seu daemon responde |
| `desktop_installed` | o app desktop está instalado e qual versão (`skip` no Windows) |
| `tray` | o binário obsoleto `sonar-tray` do macOS ainda está presente |

`--fix` aplica apenas os reparos que são seguros de fazer sem supervisão e
pergunta primeiro, a menos que você passe `--yes`: ele move um `config.yaml`
não analisável para `config.yaml.broken-<timestamp>` e escreve um novo template
(nada é jamais excluído), reinicia um daemon que não está em execução e executa
o comando `sonar install mcp|skills|hooks` que a verificação nomeia — a partir do
diretório de trabalho, do jeito que você digitaria, então execute `--fix` dentro
do projeto que você está reparando em vez de apontar `--project` para ele. Depois
ele verifica novamente. Qualquer coisa que ele não tocar — um binário que
sobrepõe no PATH, uma skill que o sonar não escreveu — fica para você com o
comando exato na coluna `fix`.

O app desktop chama as mesmas verificações pelo método `daemon.doctor` do daemon
em vez de invocar processos externos. O daemon executa tudo o que pode a partir
do seu próprio processo; as três verificações que dizem respeito ao binário do
CLI que você invocou (`cli_on_path`, `cli_version_current`,
`daemon_version_matches`) retornam `skip` com um detalhe explicando isso.

### O app desktop

O app Sonar é a mesma imagem em uma janela e na barra de menus ou bandeja do
sistema: grupos na lateral, portas em uma grade com estatísticas ao vivo e
saúde, logs e os botões para tudo acima. Ele fala com o mesmo daemon, então o
CLI e o app nunca discordam. `sonar install desktop` o instala e `sonar tray`
o inicia.

Até o app ser lançado, os tarballs de lançamento do macOS ainda carregam o
antigo binário `sonar-tray` da barra de menus, e `sonar tray` recorre a ele
quando o app não está instalado.

### `sonar install desktop`

O app está em beta e ainda não foi assinado pela Apple, então o CLI o instala:```sh
brew install raskrebs/sonar/sonar && sonar install desktop
```
Esse é todo o setup do testador. O Sonar busca um manifesto de builds publicados,
escolhe o da sua máquina, verifica o sha256 e o tamanho dele, instala-o
e o abre.

**É por isso que a CLI faz o download.** O macOS anexa um atributo de
quarentena a qualquer coisa que um *navegador* salva, e o Gatekeeper se recusa a abrir
um app em quarentena que a Apple não tenha notarizado. Um arquivo que esta CLI baixa nunca
recebe o atributo em primeiro lugar, então o beta abre sem prompt e sem
a dança de clicar com o botão direito e abrir. O Sonar nem define nem remove atributos de quarentena —
não há nada para remover.```sh
sonar install desktop                    # install and launch
sonar install desktop --no-launch        # install only
sonar install desktop --update           # update; does nothing if current
sonar install desktop --check            # exit 1 when an update is available
sonar install desktop --version 0.1.0-beta.1
sonar install desktop --force            # ask a running Sonar to quit first
sonar install desktop --json             # for scripts
```
O comando não precisa de rede para dizer o que ele faz:```sh
sonar install desktop --help | grep -- '--no-launch'
# check
```
Onde ele é instalado:

| | |
| --- | --- |
| macOS | `/Applications/Sonar.app`, ou `~/Applications/Sonar.app` quando o primeiro não for gravável (o sonar nunca usa `sudo`) |
| Linux | `~/.local/opt/sonar-desktop/Sonar.AppImage`, além de uma entrada de menu em `~/.local/share/applications` e um link `sonar-desktop` em `~/.local/bin` |
| Windows | ainda não — o comando informa isso e sai com código 1 |

`--dir` substitui o diretório em ambos. No Linux, `--deb` instala o `.deb`
via `apt`/`dpkg` em vez do AppImage, quando a versão publica um.

A instalação é atômica: o novo aplicativo é descompactado ao lado do antigo e
trocado com um rename, então uma falha no download nunca deixa você sem um
aplicativo funcional. Se o aplicativo estiver aberto, o sonar se recusa em vez
de substituir um bundle por baixo dele; `--force` pede que ele saia e espera
até dez segundos.

`sonar install desktop` registra `desktop.installed_version` e
`desktop.installed_path` em `~/.config/sonar/config.yaml`, que é como o `sonar
tray` encontra um aplicativo instalado com `--dir` e como a verificação
`desktop_installed` do `sonar doctor` sabe a versão. De onde vêm os builds é
`desktop.download_base`, substituído por `SONAR_DESKTOP_BASE` e depois por
`--base` — aponte-os para o seu próprio build para testar um.

### `sonar relay`

O relay é o lado servidor do sonar: um pequeno serviço HTTP, executado por nós
para o aplicativo hospedado e publicado como `ghcr.io/raskrebs/sonar-relay`
para que você possa executar o seu próprio. Ele não tem nada a ver com o daemon
local — `sonar serve` monitora suas portas, `sonar relay serve` responde HTTP
para uma frota — e ele vem no mesmo binário apenas para que haja um único
artefato para implantar.

Hoje ele coleta telemetria anônima de produto: um lote de eventos nomeados por
instalação, sem caminhos, sem nomes de host, sem URLs, recusados na porta se um
valor sequer parecer um deles. É o mesmo serviço que mais tarde encerrará
túneis expostos e manterá o login.```sh
sonar relay serve --db ./relay.db --project-keys "$(openssl rand -hex 24)"
```
`docs/RELAY.md` tem as rotas, as regras exatas de validação, o esquema de armazenamento
e um deploy em um único comando atrás do Caddy em qualquer máquina com Docker.

## Migrando dos comandos antigos

Os comandos pré-grupos ainda funcionam e imprimem uma única linha no stderr informando o que
os substituiu. Eles serão removidos em uma versão menor a partir de agora. `SONAR_NO_HINTS=1`
silencia os avisos, e a saída `--json` nunca os inclui.

| Antigo | Novo |
|---|---|
| `sonar run --tag X -- cmd` | `sonar start --group X -- cmd` |
| `sonar runs` | `sonar start --list` |
| `sonar list --tag X` | `sonar list --group X` |
| `sonar kill-all --filter docker` | `sonar kill --all --filter docker` |
| `sonar down X` | `sonar kill -g X` |
| `sonar profile create X` | `sonar init` |
| `sonar profile show X` | `sonar groups X` |
| `sonar up X` (verificava um perfil) | `sonar up X` agora *inicia* o grupo |
| `sonar tray` (app de barra de menus Swift) | `sonar tray` inicia o app de desktop |

Perfis eram um snapshot por máquina das portas; `.sonar.yaml` é versionado com
o projeto. Converta um e leia-o antes de mantê-lo — nada é escrito
para você:```sh
sonar profile list
# check
```
(no input provided)```sh
sonar profile export my-app > .sonar.yaml
```
Um perfil nunca registrou como um serviço inicia, então a proposta tem portas,
nomes e caminhos de health check, e você preenche o `cmd`.

## Solução de problemas

**Algo está errado com o daemon.** `sonar daemon log -f` enquanto você
reproduz o problema, e `sonar daemon status` para pid, uptime e contagem de varreduras. Pare
com `sonar daemon stop`; todo comando de leitura continua funcionando sem ele.

**"daemon indisponível, usando varredura direta".** Nada está escutando no
socket. Isso é normal — leituras não iniciam um daemon. Execute `sonar serve -d` se
quiser um.

**Um socket deixado para trás após uma falha.** `sonar daemon path` mostra isso; iniciar um
daemon remove um obsoleto por conta própria. Se um segundo daemon se recusar a iniciar enquanto
o primeiro não existe mais, `sonar daemon restart` limpa o bloqueio.

**Portas ausentes da lista.** Processos de propriedade de outro usuário são
invisíveis sem privilégios; o sonar informa isso abaixo da tabela. Execute novamente com
`sudo sonar list` para vê-los. No Linux, o `ss` deve estar instalado
(`iproute2`); no Windows, o `netstat` é usado.

**Um kill não fez nada.** Contêineres Docker são interrompidos pelo daemon do
Docker: verifique `docker ps`. Um processo que ignora SIGTERM precisa de `-f`, e um
supervisionado por outra coisa (systemd, Compose `restart: always`) volta
por design — pare o supervisor.

**Nada funciona e você não sabe por quê.** `sonar doctor` verifica o binário,
a configuração, o daemon, o banco de dados e cada integração de uma só vez, e
imprime o comando que corrige cada coisa que encontra.

**Relatando um bug.** Inclua estes itens, além das últimas linhas de `sonar daemon log`:```sh
sonar version
sonar daemon status
sonar doctor --json
# check
```
## Plataformas suportadas

- macOS (usa `lsof`)
- Linux (usa `ss`)
- Windows (usa `netstat`)

O agrupamento precisa do diretório de trabalho de cada processo, e todas as plataformas agora têm
um: `/proc` no Linux, `lsof` no macOS e, no Windows, uma leitura do próprio
PEB do processo. Assim, grupos de raiz do git, `project_root` e nomes baseados em cwd funcionam da mesma forma
em todos os lugares, e o `sonar init` pode propor um `.sonar.yaml` a partir do que está escutando
em qualquer uma das três.

O aplicativo desktop é mais limitado por enquanto: `sonar install desktop` o instala no
macOS (Apple Silicon e Intel) e Linux (x86_64 e aarch64). No Windows, o
comando informa que o aplicativo ainda não está disponível e sai com código 1.

A única lacuna é um `sonar.exe` de 32 bits no Windows de 64 bits: ele não consegue ler a memória de um
processo de 64 bits, então essas portas voltam sem um diretório de trabalho e ficam de fora
do seu grupo de raiz do git. Use a versão de 64 bits — ela lê processos de 64 bits e de 32 bits
igualmente. Em outros lugares, uma porta cujo processo nega acesso (um serviço
executando como outro usuário, um processo protegido do sistema) é simplesmente deixada sem um
diretório de trabalho; o restante da varredura não é afetado.

## Contribuidores

Obrigado a todos que contribuíram para o sonar!

<a href="https://github.com/RasKrebs/sonar/graphs/contributors">
  <img src="https://stg.contrib.rocks/image?repo=RasKrebs/sonar" />
</a>