System Enumeration
Distro, kernel, UID/grupos, indícios de container e variáveis sensíveis (sem expor valores).
Encontre sudo excessivo, SUID perigoso, cron inseguro, escapes de container e credenciais expostas — e veja como os achados se combinam em cadeias de ataque. Somente leitura. Zero exploits. Zero exfiltração.
git clone https://github.com/Deepaudit/linux-privesc.gitCada módulo roda isolado em subprocesso, com timeout configurável. Se um falhar, os demais continuam.
Distro, kernel, UID/grupos, indícios de container e variáveis sensíveis (sem expor valores).
Regras via sudo -n -l (nunca pede senha), binários clássicos e env_keep perigoso (LD_PRELOAD).
Binários com SUID/SGID, com baseline de instalações legítimas para reduzir falso positivo.
Capabilities do processo e de arquivos (getcap), destacando cap_setuid e cap_sys_admin.
Processos root visíveis, binários graváveis e escrita em diretórios de unidades systemd.
Crontabs, /etc/cron.*, scripts graváveis e padrões de wildcard injection (tar/rsync/7z).
PATH, /etc/passwd e /etc/shadow (sem ler conteúdo), homes e chaves SSH com permissão incorreta.
Versão de kernel/SO para correlação manual com CVEs, reboot pendente e contexto PwnKit.
Docker socket gravável, grupo docker, cgroup gravável, NFS no_root_squash, ld.so.preload.
Padrões de credenciais em histórico, .netrc, .aws, .env… sempre com valor [REDACTED].
Combina achados em cadeias de ataque (ex.: grupo docker + binário docker = CRITICAL).
Monte o comando ideal e simule o risk score do seu host. Tudo roda no seu navegador.
Requisitos: Bash 4.3+ e utilitários padrão (find, stat, ps, uname, id, grep, awk, timeout). Não exige root.
git clone https://github.com/Deepaudit/linux-privesc.git cd linux-privesc chmod +x pcsec-privesc.sh ./pcsec-privesc.sh --help
Leia o script antes de executar e compare o hash. Evite rodar código baixado direto por pipe no Bash.
less pcsec-privesc.sh sha256sum pcsec-privesc.sh
# Execução padrão ./pcsec-privesc.sh --full # Rápida, sem cor ./pcsec-privesc.sh --quick --no-color # Todas as saídas ./pcsec-privesc.sh --full --json --sarif --html --output /tmp/auditoria-$(hostname) # Paralelismo e timeout por módulo ./pcsec-privesc.sh --full --jobs 4 --timeout 30 # Acompanhar hardening ao longo do tempo ./pcsec-privesc.sh --full --json --compare ./pcsec-reports/relatorio-anterior.json # Listar módulos ./pcsec-privesc.sh --checks
| Argumento | Descrição |
|---|---|
| --quick / --full | Subconjunto rápido ou todas as verificações (padrão: full). |
| --no-color | Desativa cores ANSI. |
| --output DIR | Diretório dos relatórios (padrão ./pcsec-reports). |
| --json | Relatório JSON (base do --compare). |
| --sarif | SARIF 2.1.0 para CI/CD e GitHub Code Scanning. |
| --html | Relatório HTML standalone, filtrável por severidade. |
| --jobs N | Módulos em paralelo (padrão 1). |
| --timeout S | Tempo máximo por módulo (padrão 60). |
| --compare ARQ.json | Diff com execução anterior: achados novos e resolvidos. |
| --fail-on-risk N | Exit code 1 se o risk score for ≥ N. |
| --checks | Lista os módulos e encerra. |
| Severidade | Peso | Significado |
|---|---|---|
| Informativo | 0 | Contexto, sem risco isolado. |
| Baixo | 1 | Merece atenção, baixo impacto. |
| Médio | 2 | Facilita ataque com condições extras. |
| Alto | 5 | Fortemente ligado a técnicas conhecidas. |
| Crítico | 10 | Caminho direto e de alta confiança. |
Cada achado também traz um nível de confiança: confirmadamente inseguro, possível vetor — requer validação manual ou informativo. A ferramenta nunca afirma root a partir de um único achado isolado; só o motor de correlação eleva prioridade quando há sinais independentes combinados.
Verificação : Scheduled Tasks (Cron) Audit Alvo : /etc/cron.d Severidade : CRITICAL (Configuração confirmadamente insegura) Descrição : Diretório de tarefas agendadas gravável pelo usuário atual. Evidência : Teste de permissão: diretório gravável = sim Motivo : Scripts aqui costumam rodar como root pelo cron do sistema. Recomendação : Restrinja a escrita apenas a root. Limitações : Nenhum arquivo foi criado por esta ferramenta.
O risk score soma o peso de cada achado. Use --fail-on-risk para quebrar o build e --sarif para exibir os achados na aba Security do GitHub.
summary.risk_score) e HTML.--compare mostra o que foi corrigido e o que surgiu.# GitHub Actions
- run: ./pcsec-privesc.sh --full --sarif --fail-on-risk 50
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: pcsec-reports/
[REDACTED].