
Enumeração de escalonamento de privilégios pós-exploração no Linux
Enumy é um executável portátil ultra rápido que você coloca na máquina Linux alvo durante um pentest ou CTF na fase de pós-exploração. Executar o enumy irá enumerar a máquina em busca de vulnerabilidades de segurança comuns.
Você pode baixar o binário final da aba de release x86 ou x64. Estaticamente linkado ao musl Transfira o binário final do enumy para a máquina alvo.
./enumy
$ ./enumy64 -h
▄█▀─▄▄▄▄▄▄▄─▀█▄ _____
▀█████████████▀ | __|___ _ _ _____ _ _
█▄███▄█ | __| | | | | | |
█████ |_____|_|_|___|_|_|_|_ |
█▀█▀█ |___|
https://github.com/luke-goddard/enumy
Enumy - Used to enumerate the target the target environment & look for
common security vulnerabilities and hostspots
----------------------------------------------------------------------
Output
-o <loc> OUTPUT results to location (default enumy.json)
Walking Filesystem
-i <loc> IGNORE files in this directory (usefull for network shares)
-w <loc> Only WALK files in this directory (usefull for devlopment)
Scan Options
-f run FULL scans (CPU intensive scan's enabled)
-t <num> THREADS (default 4)
Printing Options
-a Print all security AUDIT issues to screen (probably won't help duing a CTF)
Issues are ALWAYS logged in result files regardless of this flag being set.
-d <1|2> Print DEBUG mode (1 low, 2 high) to enable error being printed to screen.
-g <H|M|L> print to screen values GREATER than or equal to high, medium & low
-p <H|M|L|I> do not PRINT to screen high, medium, low & info issues (see below for example)
-m 1-100 MAXIMUM number of issues with same name to print to screen default (unlimited)
Para compilar durante o desenvolvimento, apenas o make e a biblioteca libcap são necessários.
sudo apt-get install libcap-dev
make
Para remover a dependência glibc e linkar estaticamente todas as bibliotecas/compilar com musl, faça o seguinte. Nota: para fazer isso, você precisará ter o docker instalado para criar o ambiente de build alpine.
./build.sh 64bit
./build.sh 32bit
./build.sh all
cd output

Abaixo está a lista sempre crescente de escaneamentos que foram implementados.
Nota: para exibir resultados marcados como ❌, ative o modo de auditoria com a flag -a.
Este escaneamento verificará as versões do kernel para ver se corresponde a alguma versão com exploits conhecidos.
A ideia deste escaneamento é enumerar o sistema em busca de binários SUID/GUID que sejam anormais ou tenham permissões fracas que possam ser exploradas.
Recentemente, o kernel Linux suporta capabilities; esta é a forma preferida de dar a um arquivo um subconjunto dos poderes do root para mitigar riscos. Embora seja uma forma muito mais segura de fazer as coisas, se você tiver a sorte de encontrar capacidades anormais definidas em um arquivo, é bem possível que possa explorar o executável para obter acesso mais elevado. O Enumy verificará as capacidades definidas em todos os arquivos executáveis do sistema.
Este é mais um escaneamento genérico que tentará categorizar um arquivo com base em seu conteúdo, extensão e nome. O Enumy procurará por arquivos como chaves privadas, senhas e arquivos de backup.
Arquivos coredump são um tipo de arquivo ELF que contém o espaço de endereço de um processo quando o programa termina inesperadamente. Agora imagine se a memória desse processo fosse legível e contivesse informações sensíveis. Ou ainda mais empolgante, esse coredump poderia ser de uma ferramenta desenvolvida internamente que deu seg fault, permitindo que você desenvolva um zero day.
Alguns arquivos nunca deveriam ter o bit SUID definido; é bastante comum um sys admin preguiçoso dar SUID a um arquivo como docker, ionice, hexdump para fazer um script bash funcionar ou facilitar sua vida. Este escaneamento tenta encontrar alguns binários SUID conhecidos como problemáticos.
Sysctl é usado para modificar parâmetros do kernel em tempo de execução. Também é possível consultar esses parâmetros do kernel e verificar se medidas de segurança importantes como ASLR estão ativadas.
Viver da terra (Living off the land) é uma técnica usada onde atacantes utilizam o que já está no sistema como arma. Eles fazem isso para permanecer furtivos, entre outros motivos. Este escaneamento enumeraria os arquivos que um atacante estaria procurando.
Este escaneamento analisará arquivos ELF em busca de suas dependências. Se tivermos acesso de escrita a qualquer uma dessas dependências ou acesso de escrita a qualquer valor DT_RPATH e DT_RUNPATH, poderemos criar nosso próprio objeto compartilhado malicioso nesse executável, potencialmente comprometendo o sistema.
SSH é um dos serviços mais comuns que você encontrará no mundo real. Também é bastante fácil configurá-lo incorretamente. Este escaneamento verificará se ele pode ser endurecido de alguma forma.
O escaneamento do usuário atual apenas analisa /etc/passwd. Com essas informações encontramos contas root, diretórios home desprotegidos e ausentes, etc.
Este escaneamento vai encontrar arquivos que são globalmente graváveis, permissões desiguais e arquivos sem dono. Veja aqui para inspiração do escaneamento.
Este escaneamento seria útil para pessoas tentando endurecer suas máquinas Linux. Ele destacará problemas como unidades não criptografadas e configurações de montagem inseguras.
| Tipo de Escaneamento | Escaneamento Rápido | Escaneamento Completo | Implementado | Exibido na Tela | Salvo no Log |
|---|
| Sugestor de Exploits de Kernel | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Varredura SUID/GUID | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Varredura de Capacidades de Arquivos | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
| Varredura de Arquivos Interessantes | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Varredura de Coredump | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Varredura de Binários de Fuga | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Varredura de Configuração SSHD | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
| Varredura Sysctl | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Varredura de Uso de Recursos Existentes | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Varredura do Usuário Atual | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Varredura de Injeção de Objeto Compartilhado Dinâmico | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| Varredura de Permissões | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| Varredura do Sistema de Arquivos | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| Varredura Docker | ✔️ | ✔️ | ❌ | ✔️ | |
| Varredura de Ambiente | ✔️ | ✔️ | ❌ | ✔️ | |
| Varredura de Acesso Privilegiado | ✔️ | ✔️ | ❌ | ✔️ | |
| Varredura de Rede | ✔️ | ✔️ | ❌ | ✔️ | |
| Varredura de Informações do Sistema | ✔️ | ✔️ | ❌ | ✔️ | |
| Varredura de Informações de Versão | ✔️ | ✔️ | ❌ | ✔️ | |
| Varredura de Credenciais Fracas Padrão | ✔️ | ✔️ | ❌ | ✔️ | |
| Varredura de Criptografia Fraca | ❌ | ✔️ | ❌ | ✔️ |