Descrição
Neste laboratório, analisei uma captura de pacotes maliciosa conhecida do exploit Log4J. Comecei minha investigação com o mesmo playbook que uso para análise de captura de pacotes, que é examinar as estatísticas e ver quantos endpoints estão se comunicando e em que volume. Ao notar a enorme quantidade de endereços IP, quis mapear os endereços no globo, então instalei e configurei o banco de dados GEOIP da Max Mind, que resolve endereços IP para o país e a cidade correspondentes. Essa quantidade de endereços IP indica um potencial ataque de botnet usando o exploit Log4J ou outra varredura maliciosa. Como o tráfego na captura usava http e não https (criptografado), consegui identificar o exploit em texto claro filtrando por "jndi", que é a Interface de Nomenclatura e Diretório Java. O primeiro pacote desse filtro era uma requisição HTTP POST e, ao examinar o campo User-Agent, revelou uma requisição ldap para um IP seguida de texto codificado. A decodificação do texto no CyberChef mostrou que o código era um wget para um IP baixar um script shell, usar o comando chmod para dar permissões de execução e então executar o script. Além disso, para descobrir se a máquina host fez tentativas de conexão de saída para IPs públicos, o que indicaria um servidor de comando e controle, filtrei por ela como endereço de origem e por pacotes TCP SYN, que iniciam conexões TCP, e confirmei que não havia conexões. Isso pode ser resultado de a máquina estar corrigida ou de uma regra de firewall implícita bloqueando conexões de saída. Quando ficou claro que o ataque não teve sucesso, realizei mais inteligência de ameaças sobre o IP no comando wget e descobri que o IP é conhecido como malicioso e, na aba da comunidade no VirusTotal, o IP estava associado a ataques Log4shell, confirmando ainda mais o ataque. Minha abordagem foi inicialmente ver quem estava se comunicando com o servidor alvo. Em seguida, foi crucial determinar se o servidor atacado (198.71.247.91) iniciou alguma nova conexão de saída.
Ferramentas Utilizadas
- Wireshark
- Virus Total
- CyberChef
- Max Mind's GEOIP Database
Ambientes Utilizados
- Kali Linux through Oracle Virtual Box
Visão Geral do Laboratório:
Ao abrir o PCAP, a primeira coisa que gosto de fazer é ver quantos dispositivos estão presentes/se comunicando (Statistics -> Endpoints)
Depois de notar uma quantidade incomum de tráfego e diferentes conversas IPv4 originadas de diferentes países, exportei os endpoints para exibição em um mapa global usando o banco de dados GEOIP da Max Mind. (Endpoints -> Map -> Open in Browser)
Sabendo que estava lidando com um PCAP de exploit Log4J, e que o exploit aproveita a vulnerabilidade da Interface de Nomenclatura e Diretório Java (jndi), pensei que esse seria um bom filtro para começar (ip contains "jndi")
O filtro para "jndi" funcionou bem; expandi o primeiro pacote, que era uma requisição HTTP POST, e examinei o campo User-Agent, que mostrou uma requisição ldap com um IP seguido de texto codificado em base-64.
A decodificação do final da requisição POST inicial do ataque mostra um wget, que é uma requisição web para um IP baixar lh[.]sh, um script shell, e o comando chmod, que altera privilégios para adicionar x, que é a permissão de execução. Por fim, ele iniciaria o script shell
Em seguida, determinei se o servidor host em 198.71.247.91 fez conexões com servidores externos, especificamente com o endereço IP do wget na string decodificada. Filtrei por pacotes SYN, que estabelecem uma conexão TCP, e descobri que o servidor não se conectou a endereços externos, o que provavelmente significa que o servidor estava corrigido e, portanto, o exploit falhou.
Este laboratório proporcionou experiência prática na análise de uma captura de pacotes (arquivo .pcapng), em vez de análise ao vivo na rede. Obter uma captura de pacotes real de uma tentativa de ataque malicioso e analisá-la foi incrivelmente interessante, especialmente porque estava em texto claro pela porta http 80, em vez de criptografada. Embora eu já tenha usado VirusTotal e CyberChef em laboratórios e walkthroughs anteriores, saber que os artefatos extraídos do pcap eram reais me deixou ainda mais curioso para mergulhar nos recursos que outros na comunidade de cibersegurança montaram em torno do endereço IP atacante e do próprio exploit. Além disso, já usei Wireshark anteriormente, mas esta foi a primeira vez que configurei o banco de dados GEOIP da Max Mind para resolver localizações a partir de endereços IP e depois exportar como um mapa, o que foi outro destaque deste laboratório.