
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.