Explore vulnerabilidades e implementação de prevenção de vulnerabilidades
Construção de aplicativo para detecção da vulnerabilidade CVE-2017-8464
CONTEÚDO:
PARTE 1: VISÃO GERAL SOBRE CVE-2017-8464
CONCEITO SOBRE ARQUIVO LNK CRIAÇÃO DE SISTEMA VULNERÁVEL À CVE-2017-8464 FERRAMENTAS DE ATAQUE À VULNERABILIDADE CVE-2017-8464PARTE 2: USANDO A FERRAMENTA METASPLOIT PARA EXPLORAR A CVE-2017-8464
2.1. MODELO DE EXPLORAÇÃO DA CVE-2017-8464
2.2. EXECUÇÃO DA EXPLORAÇÃO DA CVE-2017-8464
PARTE 3: CONSTRUÇÃO DE UMA FERRAMENTA DE DETECÇÃO DA CVE-2017-8464 COM BASE NA LINGUAGEM PYTHON
3.1. ANÁLISE DA ASSINATURA DA CVE-2017-8464 COM BASE EM PACOTES DE REDE CAPTURADOS
3.2. FUNÇÃO DE TRATAMENTO PARA DETECTAR A EXPLORAÇÃO DA CVE-2017-8464 COM BASE NA ANÁLISE DE ASSINATURA DE PACOTES DE REDE
CONCLUSÃO
**
LNK é um System File - Atalho do Windows (Windows Shortcut), em formato binário, desenvolvido pela Microsoft.

Figura 1: Ícone de atalho no Windows
Um arquivo LNK é um atalho ou “link” usado pelo Windows como referência a um arquivo, pasta ou aplicativo de origem, semelhante a um alias na plataforma Macintosh. Ele contém o tipo de atalho do destino, a localização e o nome do arquivo, bem como os programas que abrem os arquivos de destino e um atalho de teclado opcional. Os arquivos podem ser criados no Windows clicando com o botão direito em um arquivo, pasta ou executável e selecionando Criar atalho.
Ao explorar essa vulnerabilidade existente no Microsoft Windows, um atacante pode executar código remotamente se o ícone de um atalho (criado de forma especial) for exibido.

Figura 2: Criação manual de atalho para baixar e executar o código de ataque por meio do arquivo .LNK
O componente vulnerável está associado à pilha de rede (network stack). Uma vulnerabilidade desse tipo geralmente é chamada de “remotely exploitable” e pode ser considerada um ataque explorável no nível de protocolo ou em vários saltos de rede (hops), por exemplo, através de um ou mais roteadores.
Os sistemas afetados pela vulnerabilidade CVE-2017-8464 são o Windows Shell no Microsoft Windows Server 2008 SP2 e R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold e R2, Windows RT 8.1, Windows 10 Gold, 1511, 1607, 1703 e Windows Server 2016, que permitem que usuários locais ou atacantes remotos executem código arbitrário por meio de um arquivo .LNK criado manualmente, que não é processado corretamente ao exibir o ícone no Windows Explorer ou em qualquer outro aplicativo que analise o ícone do atalho. Essa vulnerabilidade também é conhecida como “LNK Remote Code Execution Vulnerability”.
A atualização de segurança corrige a vulnerabilidade ao reparar a validação da referência do ícone do atalho; a Microsoft lançou uma atualização para essa vulnerabilidade em junho de 2017. Essa vulnerabilidade não afeta o Windows XP nem versões anteriores do Windows.
Metasploit
O Metasploit Framework é um ambiente usado para testar, atacar e explorar falhas de serviços por meio de interface de linha de comando; essa ferramenta está disponível no Kali Linux versão VMware.

Figura 3: Ferramenta Metasploit
Armitage
Ferramenta com interface baseada no projeto Metasploit.

Figura 4: Ferramenta Armitage.
PARTE 2: USANDO A FERRAMENTA METASPLOIT PARA EXPLORAR A CVE-2017-8464
2.1. MODELO DE EXPLORAÇÃO DA CVE-2017-8464
Máquina da vítima — Windows 7 Pro

Figura 5: Versão do sistema operacional da vítima

Figura 6: Endereço IP da máquina da vítima
Máquina do atacante — Kali Linux — usando a ferramenta Metasploit.

Figura 7: Endereço IP da máquina do atacante
A rede em operação é a VMnet8, sub-rede 192.168.169.0
2.2. EXECUÇÃO DA EXPLORAÇÃO DA CVE-2017-8464

Figura 8: Criando payloads e ouvindo conexões TCP na máquina atacante

Figura 9: Criando arquivo .lnk que executa automaticamente o malware

Figura 10: Informações de configuração dos payloads

Figura 11: Criando o arquivo .lnk juntamente com o malware

Figura 12: Copiando todo o malware para o USB

Figura 13: Vítima conectando o USB contendo o arquivo .lnk malicioso com malware

Figura 14: O atacante explorou com sucesso e invadiu a máquina da vítima
**
PARTE 3: CONSTRUÇÃO DE UMA FERRAMENTA DE DETECÇÃO DA CVE-2017-8464 COM BASE NA LINGUAGEM PYTHON
3.1. ANÁLISE DA ASSINATURA DA CVE-2017-8464 COM BASE EM PACOTES DE REDE CAPTURADOS

Figura 15: Pacote de ataque da vulnerabilidade CVE-2017-8464 capturado

Figura 16: Pacote com o flag PSH após a conexão TCP bem-sucedida com o atacante

Figura 17: Indicador suspeito no pacote capturado, enviado pelo atacante à vítima.
PE File Format (Portable Executable File Format) é o formato de arquivo nativo do Win32. Todos os arquivos executáveis no Win32, como *.EXE, *.DLL (32 bits), *.COM, *.NET, *.CPL,… estão no formato PE, exceto os arquivos VxDs e *.DLL (16 bits).

Figura 18: Estrutura do arquivo PE.
DOS MZ Header
Todos os arquivos PE começam com um simples DOS MZ Header. Ele ocupa os primeiros 64 bytes. Essa área é usada quando o programa é executado no ambiente DOS.
e_magic: A assinatura do arquivo PE, valor: 4Dh, 5Ah (caracteres “MZ”, nome do fundador do MS-DOS: Mark Zbikowsky). Esse valor marca um DOS Header válido e permite a execução subsequente.

Figura 19: Assinatura do arquivo PE no pacote capturado
e_lfanew: é um DWORD localizado no final do DOS Header; é o campo que contém o offset do PE Header em relação ao início do arquivo.
DOS STUB
O DOS Stub é apenas um pequeno programa DOS EXE que exibe uma mensagem de erro; é a parte responsável pela compatibilidade com o Windows 16 bits.

Figura 20: Informações no pacote DOS STUB capturado, enviado pelo atacante à vítima
PE Header
O PE Header é, na verdade, a estrutura IMAGE_NT_HEADERS, que contém as informações necessárias para o loader carregar o arquivo na memória.
Signature: é um DWORD que inicia o PE Header e contém a assinatura PE: 50h, 45h, 00h, 00

Figura 21: Informações de e_lfanew indicando a parte Signature do cabeçalho PE.
SECTION TABLE
A Section Table é o componente logo após o PE Header, consistindo em uma matriz de estruturas IMAGE_SECTION_HEADER

Figura 22: Conteúdo da Section table no pacote capturado

Figura 23: Salvando a assinatura e as informações relacionadas ao malware no arquivo CSV
3.2. FUNÇÃO DE TRATAMENTO PARA DETECTAR A EXPLORAÇÃO DA CVE-2017-8464 COM BASE NA ANÁLISE DE ASSINATURA DE PACOTES DE REDE

Figura 24: Função que obtém as informações de protocolo do pacote

Figura 25: Função que obtém as informações do campo info do pacote

Figura 26: Função de conversão de pacotes de Pcap para arquivo CSV

Figura 27: Função que verifica malware no tráfego de rede

Figura 28: Loop de captura de tráfego e verificação de malware
*Testando a operação do programa por meio da exploração.

Figura 29: Iniciando o programa de monitoramento na máquina real

Figura 30: Detecção e alerta ao monitorar o tráfego de rede

Figura 31: Pasta do programa de monitoramento da CVE-2017-8464

Figura 32: Pasta packet com os arquivos que registram os pacotes após cada conversão durante a captura

Figura 33: Todos os alertas salvos no log
CONCLUSÃO
Por meio do processo de exploração e construção do programa de detecção da vulnerabilidade CVE-2017-8464, os estudantes entendem como explorar uma vulnerabilidade e, a partir disso, analisam a assinatura e os comportamentos do malware associado à vulnerabilidade. Essa análise de comportamento e de assinatura permite que os estudantes desenvolvam seus próprios programas para coletar, analisar e processar automaticamente informações de monitoramento de segurança de rede, gerando alertas de detecção de malware.