
Uma ferramenta projetada para explorar uma vulnerabilidade de escalonamento de privilégios no programa sudo em sistemas do tipo Unix. Ela tira proveito de uma configuração incorreta ou falha específica no sudo para obter privilégios elevados no sistema, permitindo essencialmente que um usuário comum execute comandos como o usuário root.
⭐ Dê uma estrela no GitHub — para mostrar seu apoio!
💡 Melhor visualizado no Modo Escuro :)
O projeto SUDO_KILLER chegou à final do SANS Difference Award 2023 na categoria ferramenta de código aberto.
SUDO_KILLER é uma ferramenta voltada para profissionais de cibersegurança (pentesters, auditores de segurança, administradores de sistemas, jogadores de CTF e estudantes de segurança da informação), facilitando o escalonamento de privilégios em ambientes Linux. Ela foca em vulnerabilidades ligadas ao uso do SUDO, incluindo más configurações nas regras do sudo, fraquezas baseadas em versões (CVEs e outras vulnerabilidades) e implantações arriscadas de binários (GTFOBINS). Esses pontos fracos podem ser explorados para obter privilégios de nível ROOT ou se passar por outros usuários.
SUDO_KILLER fornece um catálogo de comandos potenciais e explorações locais para elevação manual de privilégios. Importante: ele se abstém de exploração automatizada, exigindo que os usuários realizem o processo de exploração por conta própria, conforme o uso pretendido.
Abaixo está uma lista de verificações realizadas pelo SUDO_KILLER
[!WARNING] A lista de verificações acima NÃO é exaustiva.
Para começar com o SUDO_KILLER, você pode clonar via git ou baixar o zip. Se quiser praticar e/ou testá-lo, existe um ambiente de teste vulnerável (usando docker). Veja o vídeo relacionado que fornece uma visão geral de como configurar o docker e executar o SUDO_KILLER. Vários cenários podem ser configurados no ambiente docker e usados para testar diferentes más configurações ou falhas. Alternativamente, você pode executá-lo no sistema a ser auditado para verificar más configurações e/ou falhas relacionadas ao sudo.```shell ./SUDO_KILLERv.sh -c -a -e -r report.txt -p /tmp
Optional arguments:
</br>-c : inclui verificações de CVE</br>
-a : inclui CVEs relacionadas a aplicativos/dispositivos de terceiros</br>
-i : importar (modo offline) do extract.sh</br>
-e : incluir exportação de regras sudo / arquivo sudoers</br>
-r : nome do relatório (salvar a saída)</br>
-p : caminho onde salvar exportação e relatório</br>
-s : fornecer senha do usuário para verificações sudo (se as regras sudo não estiverem acessíveis sem a senha do usuário atual)</br>
-h : ajuda
> [!NOTE]
> Vale notar que ao usar o argumento -c, são fornecidos dois tipos de verificação: um no qual o CVE identificado é baseado exclusivamente na versão atual do sudo em uso e outro no qual os requisitos também são verificados.
> Muitas vezes, uma versão do sudo pode ser vulnerável, mas alguns pré-requisitos podem ser necessários para uma exploração bem-sucedida.
> [!NOTE]
> Fornecendo senha: Se uma senha for necessária para executar sudo -l, o script não funcionará se você não fornecer uma senha com o argumento -s.
<a name="docker"></a>
### Docker (Ambiente de teste vulnerável)
<p align="left">
<img width="25%" src="https://raw.githubusercontent.com/TH3xACE/res/main/SK/docker.gif" alt="-dockerlogo"/>
</p>
Uma variedade de contêineres Docker é disponibilizada para oferecer um ambiente deliberadamente vulnerável para teste e experimentação prática com `SUDO_KILLER`, bem como com as vulnerabilidades.```shell
service docker start
docker pull th3xace/sudo_killer_demo3
docker run --rm -it th3xace/sudo_killer_demo3
(This docker is only to test the CVE-2019-18634 (pwfeedback))
service docker start
docker pull th3xace/sudo_killer_demo2
docker run --user 1000 --rm -it th3xace/sudo_killer_demo2
pode ser reproduzido abrindo o espaço de trabalho no seu navegador enquanto a ferramenta estiver em execução.```shell (This docker is only to test the CVE-2025-32463 (chwoot)) -> Credits to author $ git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.git $ cd CVE-2025-32463_chwoot
$ service docker start $ ./run.sh
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh id woot! uid=0(root) gid=0(root) groups=0(root),1001(pwn)
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh woot!
root@f722d9182d1f:/# id uid=0(root) gid=0(root) groups=0(root),1001(pwn)
## Por que é possível executar "sudo -l" sem senha?
Por padrão, se a tag NOPASSWD for aplicada a qualquer uma das entradas de um usuário em um host, você poderá executar "sudo -l" sem senha. Esse comportamento pode ser substituído pelas opções verifypw e listpw.
No entanto, essas regras afetam apenas o usuário atual, portanto, se a personificação de usuário for possível (usando su), o sudo -l deve ser executado também a partir desse usuário.
Às vezes, o arquivo /etc/sudoers pode ser lido mesmo que o sudo -l não esteja acessível sem senha.
---
<a name="scenarios"></a>
## Cenários
Para mudar de cenário (Para evitar conflitos entre os diferentes cenários) no docker (demo3):```shell
switchScenario <scenario_number>
Available scenarios: 0 to 10
All Scenarios 0 : Conflict might occur!
Scenario 1: [2,3] CVE - Rules
Scenario 2: [4] Excessive permissions
Scenario 2: [5] Excessive permissions (Authentication required)
Scenario 3: [6] User Impersonation
Scenario 4: [7] Common Misconfiguration (Change owner)
Scenario 4: [8,11] Common Misconfiguration (Wildcard)
Scenario 5: [13] Missing scripts from sudo rules
Scenario 6: [17] Dangerous Environment Variables
Scenario 7: [18] Dangerous binaries (gtfobins)
Scenario 8: [19] Recursive Impersonation test
Scenario 9: [20] Environment Path Hijacking
Scenario 10: [21] App Specific sudo vuln/misconfig
Scenario 11: [5] Excessive permissions (Authentication required)
Scenario 12: [16] Backdooring sudo (Credentials Capture)
A playlist pode ser encontrada aqui: https://www.youtube.com/watch?v=Q8iO9mYrfv8&list=PLQPKPAuCA40FMpMKWZLxQydLe7rPL5bml
[!IMPORTANT] Vídeos rápidos sobre como realizar corretamente os testes no docker fornecido.
[!WARNING] A lista de vídeos abaixo não é exaustiva; para ter acesso a todos os vídeos, verifique o link da playlist.
A versão 3 do SUDO_KILLER agora inclui uma lista de ferramentas que podem ser usadas para realizar várias tarefas. Os scripts estão localizados em SUDO_KILLERv3/SUDO_KILLER/SK-Tools/
SK-ImperBruteForce-NoPwd.sh: Realizar um brute force de impersonação usando usuários do /etc/passwd, começando a partir do usuário com UID 1000.SK-credHarvest2.sh: Realizar uma captura de credenciais criando um sudo falso via alias e depois redirecionar para o sudo real.SK-app-check.sh: Realizar verificação de vulnerabilidades do sudo relacionadas a um aplicativo, dispositivo ou linguagem de programação de terceiros específico (ainda em andamento).SK-ttyInject.sh: Abusa do pushback de TTY para que, se root usar su - em um usuário controlado, um comando arbitrário seja executado.SK-recursive-impersonate.sh: Realizar identificação de impersonação recursiva com profundidade padrão de 3.SK-alias-report.sh: Realizar busca de aliases com diferentes critérios.SK-csuid-with-sudo.sh: Identificar binários SUID personalizados e verificar se o é executado sem o caminho completo.O script SK-credHarvest2.sh do SK-Tools permite realizar uma captura de credenciais criando um sudo falso via alias e depois redirecionar para o sudo real. Atualmente funciona apenas para bash (não funciona/implementado para ZSH ou outros por enquanto) em Linux configurado.
A mensagem exibida ao solicitar credencial ao usar sudo difere conforme a versão utilizada. É possível escolher entre duas opções (diferentes com base na versão do SO). Exemplo da mensagem exibida (nova e antiga)
[!TIP] (nova) [sudo] password for user:
(antiga) Password:
Para Todos os Usuários (auser): Quando você tem privilégio root ou direitos excessivos no diretório home dos usuários e deseja uma maneira fácil de coletar credenciais:```shell ./SK-credHarvest2.sh auser <new|old> ; source /home/*/.bashrc
Para o usuário atual (cuser):```shell
./SK-credHarvest2.sh cuser <new|old> ; source /home/<currentuser>/.bashrc
[!CAUTION] PARA PARAR a coleta de credenciais: execute o mesmo script novamente com o mesmo argumento
saída: o log /tmp/sk-crds.log conterá as credenciais
Você precisará de privilégio de root, acesso a um backup do sudoers ou acesso de leitura ao /etc/sudoers.```shell Usage: ./SK-alias-sudoers.sh -p <sudoers_path> -k [-u] [-r] [-m] [-c] | [-a] where -u: user | -r: runas | -m: host | -c: command | -a: all
### Bruteforce/Password Spray via su (SK-su-BruteForce.sh)
Usando su para brute force de senha e password spray com concorrência, timeout e sleep.```shell
Usage: ./SK-su-BruteForce.sh [-h|--help] [-m|--module MODULE] [-u|--user USER|-uf|--userfile USERFILE] [-p|--password PASSWORD|-pf|--pwdfile PASSFILE] [-c|--concurrent CONCURRENT] [-s|--sleep SLEEP] [-t|--timeouts TIMEOUTS]
Module: Password Bruteforce : pwdbf
Example: ./SK-su-BruteForce.sh -m "pwdbf" -u user -pf password.txt -c 5 -s 0.005 -t 0.9
Module: Password Spray : pwdspr
Example: ./SK-su-BruteForce.sh -m pwdspr -uf users.txt -p password -c 5 -s 0.005 -t 0.9
Module: User:Password Bruteforce : usrpwdbf
Example: ./SK-su-BruteForce.sh -m usrpwdbf -uf users-pwd.txt -c 5 -s 0.005 -t 0.9
Encontra possíveis arquivos de backup do sudoers em /mnt/ /opt/ /etc/ /etc/ /home/ /app*/ e qualquer outro passado como argumento```shell Usage: ./SK-search-sudoers.sh /tmp/
### Atualizar bins perigosos - GTFOBINS (SK_dbins_update.sh)
Para atualizar os bins perigosos, vá para dbins/update e execute ./SK_dbins_update.sh. Certifique-se de ter conexão com a internet.```shell
Usage: ./SK_dbins_update.sh
Procurando por binários com caminho relativo que possam ser abusados! se não houver secure_path definido.```shell sudo -l <..snip..> (root) SETENV: NOPASSWD: /opt/support/purge.sh <..snip..>
Usage: ./SK-relative-path.sh /opt/support/purge.sh
<a name="contribute"></a>
# Contribuir
`SUDO_KILLER` é um projeto de código aberto e agradecemos imensamente qualquer contribuição. Esteja você nos ajudando a corrigir bugs, propondo novos recursos, melhorando nossa documentação ou divulgando o projeto - adoraríamos ter você como contribuidor. Entre em contato comigo pelo Twitter ou Linkedin se tiver sugestões, feedback ou quiser contribuir; você também pode criar um Pull Request. Estou à procura de contribuições relacionadas aos CVEs do sudo referentes a terceiros (tenho uma lista de cerca de 175) e qualquer ajuda será bem-vinda.
- Relatório de Bug: Se você vir uma mensagem de erro ou encontrar um problema ao usar `SUDO_KILLER`, por favor crie um [relatório de bug](https://github.com/TH3xACE/SUDO_KILLER/issues/new?assignees=&labels=type%3A+bug&template=bug.yaml&title=%F0%9F%90%9B+Bug+Report%3A+).
- Solicitação de Funcionalidade: Se você tem uma ideia ou sente falta de uma capacidade que tornaria o desenvolvimento mais fácil e robusto, por favor submeta uma [solicitação de funcionalidade](https://github.com/TH3xACE/SUDO_KILLER/issues/new?assignees=&labels=type%3A+feature+request&template=feature.yml).
<a name="stars"></a>
## Estrelas ao longo do tempo
Obrigado a todos pelo apoio!
[](https://starchart.cc/TH3xACE/SUDO_KILLER)
<a name="support"></a>
## Apoio
<a href="https://www.patreon.com/TH3xACE">
<img src="https://assets.kitploit.com/production/public/readmes/2701/0c68395ad843ce5107774011154103ae8d17d44f3cafc73e6395bdd05da753c7.png" width="160">
</a>
<a name="credits"></a>
## Créditos
Eu elaborei o script de forma independente, utilizando recursos online do GitHub e outras fontes encontradas pela internet. Reconhecimentos também são devidos aos criadores/publicadores de exploits associados aos CVEs. Você pode rastrear seus detalhes e referências no próprio exploit, bem como nas notas que acompanham quando a ferramenta é executada. Reconhecimento notável estende-se a Vincent Puydoyeux, cuja inspiração impulsionou o desenvolvimento desta ferramenta, e Koutto, pela valiosa ajuda no tratamento das complexidades do Docker e no aprimoramento da funcionalidade da ferramenta. Além disso, um sincero agradecimento a Emilio Pinna (norbemi) e Andrea Cardaci (cyrus_and) por suas valiosas contribuições ao GTFO Bins, que influenciaram significativamente o desenvolvimento deste projeto.
<a name="disclaimer"></a>
## Aviso Legal
Este script é APENAS para fins educacionais. Não o utilize sem permissão do proprietário do sistema onde você o está executando. O aviso legal usual se aplica, especialmente o fato de que eu (TH3xACE) não sou responsável por quaisquer danos causados pelo uso direto ou indireto das informações ou funcionalidades fornecidas por este projeto. O autor (TH3xACE) ou qualquer provedor de internet NÃO assume responsabilidade pelo conteúdo ou uso indevido destes programas ou quaisquer derivados. Ao usar estes programas, você aceita o fato de que qualquer dano (perda de dados, falha do sistema, comprometimento do sistema, etc.) causado pelo uso do script não é de responsabilidade do autor.
<a name="license"></a>
## Licença
`SUDO_KILLER` é licenciado sob a licença MIT, espera-se que os devidos créditos sejam dados sempre que utilizado. Por favor, considere doar para qualquer uso comercial.
sudoSK-su-BruteForce.sh: Realizar brute force de senha ou spray para um usuário específico via sudo.SK-search-sudoers.sh: Identificar possíveis arquivos de backup do sudoers no host atual.