🔑Bruteforce de Servicios
Nota: Este tipo de técnicas son muy invasivas, ya que vamos a conseguir contraseñas de un usuario y acceder a sistemas, por lo que no podemos utilizar estas técnicas sin un consentimiento o aprobación por parte del objetivo o en un entorno controlado.
Durante nuestras pruebas de penetración, cada red informática que encontremos tendrá servicios instalados para administrar, editar o crear contenido. Todos estos servicios se alojan mediante permisos específicos y se asignan a usuarios específicos. Además de las aplicaciones web, estos servicios incluyen (pero no se limitan a):
FTP
SMB
NFS
IMAP/POP3
SSH
MySQL/MSSQL
PDR
WinRM
VNC
Telnet
SMTP
LDAP
Para obtener más información sobre muchos de estos servicios, consulte el módulo Enumeración.
Imaginemos que queremos gestionar un servidor Windows a través de la red. En consecuencia, necesitamos un servicio que nos permita acceder al sistema, ejecutar comandos en él o acceder a su contenido a través de una GUI o el terminal. En este caso, los servicios más habituales adecuados para ello son RDP, WinRM, y SSH. SSH ahora es mucho menos común en Windows, pero es el servicio líder para sistemas basados en Linux.
Todos estos servicios cuentan con un mecanismo de autenticación mediante un nombre de usuario y contraseña. Por supuesto, estos servicios se pueden modificar y configurar para que solo se puedan usar claves predefinidas para iniciar sesión, pero en muchos casos están configurados con configuraciones predeterminadas.
WinRM
Windows Remote Management (WinRM) es la implementación de Microsoft del protocolo de red Web Services Management Protocol (WS-Management). Es un protocolo de red basado en servicios web XML que utiliza el Protocolo simple de acceso a objetos (SOAP) utilizado para la administración remota de sistemas Windows. Se encarga de la comunicación entre la administración empresarial basada en web (WBEM) y el instrumento de administración de Windows (WMI), que puede llamar al modelo de objetos componentes distribuidos (DCOM).
Sin embargo, por motivos de seguridad, WinRM debe activarse y configurarse manualmente en Windows 10. Por lo tanto, depende en gran medida de la seguridad del entorno en un dominio o red local donde queramos usar WinRM. En la mayoría de los casos, se utilizan certificados o sólo mecanismos de autenticación específicos para aumentar su seguridad. WinRM utiliza los puertos TCP 5985(HTTP) y 5986(HTTPS).
Una herramienta útil que podemos utilizar para nuestros ataques a contraseñas es CrackMapExec , que también se puede utilizar para otros protocolos como SMB, LDAP, MSSQL y otros. Recomendamos leer la documentación oficial de esta herramienta para familiarizarse con ella.
CrackMapExec
Instalación
Podemos instalar CrackMapExec a través de apt en un host Linux o clonar el repositorio de GitHub y seguir los distintos métodos de instalación , como instalar desde el código fuente y evitar problemas de dependencia.
Opciones de menú de CrackMapExec
Al ejecutar la herramienta con la opción -h nos mostrará instrucciones generales de uso y algunas opciones disponibles:
Ayuda específica del protocolo CrackMapExec
Tenga en cuenta que podemos especificar un protocolo específico y recibir un menú de ayuda más detallado de todas las opciones disponibles para nosotros. CrackMapExec actualmente admite la autenticación remota mediante MSSQL, SMB, SSH y WinRM.
Uso de CrackMapExec
El formato general para usar CrackMapExec es el siguiente:
La aparición de (Pwn3d!)es la señal de que lo más probable es que podamos ejecutar comandos del sistema si iniciamos sesión con el usuario por fuerza bruta. Otra herramienta útil que podemos utilizar para comunicarnos con el servicio WinRM es Evil-WinRM , que nos permite comunicarnos con el servicio WinRM de manera eficiente.
Evil-WinRM
Instalación
Uso de Evil-WinRM
Si el inicio de sesión fue exitoso, se inicializa una sesión de terminal utilizando el protocolo de comunicación remota Powershell ( MS-PSRP), que simplifica la operación y ejecución de comandos.
SSH
Secure Shell ( SSH) es una forma más segura de conectarse a un host remoto para ejecutar comandos del sistema o transferir archivos desde un host a un servidor. Por defecto se ejecuta el servidor SSH TCP port 22, al que podemos conectarnos mediante un cliente SSH. Este servicio utiliza tres operaciones/métodos de criptografía diferentes: symmetriccifrado, asymmetriccifrado y hashing.
Cifrado simétrico
El cifrado simétrico utiliza same keypara cifrar y descifrar. Sin embargo, cualquiera que tenga acceso a la clave también podrá acceder a los datos transmitidos. Por lo tanto, se necesita un procedimiento de intercambio de claves para un cifrado simétrico seguro. Para ello se utiliza el método de intercambio de claves Diffie-Hellman . Si un tercero obtiene la clave, no podrá descifrar los mensajes porque se desconoce el método de intercambio de claves. Sin embargo, el servidor y el cliente lo utilizan para determinar la clave secreta necesaria para acceder a los datos. Se pueden utilizar muchas variantes diferentes del sistema de cifrado simétrico, como AES, Blowfish, 3DES, etc.
Cifrado asimétrico
Usos del cifrado asimétrico two SSH keys: una clave privada y una clave pública. La clave privada debe permanecer secreta porque solo ella puede descifrar los mensajes que han sido cifrados con la clave pública. Si un atacante obtiene la clave privada, que a menudo no está protegida con contraseña, podrá iniciar sesión en el sistema sin credenciales. Una vez que se establece una conexión, el servidor utiliza la clave pública para la inicialización y autenticación. Si el cliente puede descifrar el mensaje, tiene la clave privada y la sesión SSH puede comenzar.
hash
El método hash convierte los datos transmitidos en otro valor único. SSH utiliza hash para confirmar la autenticidad de los mensajes. Este es un algoritmo matemático que solo funciona en una dirección.
Hydra - SSH
Podemos utilizar una herramienta como Hydra de fuerza bruta a SSH. También hay un módulo dedicado específicamente a esta herramienta: Hydra
Para iniciar sesión en el sistema mediante el protocolo SSH, podemos utilizar el cliente OpenSSH, que está disponible por defecto en la mayoría de distribuciones de Linux.
Metasploit - SSH Login
RDP - Remote Desktop Protocol
El Protocolo de escritorio remoto de Microsoft ( RDP) es un protocolo de red que permite el acceso remoto a sistemas Windows de forma predeterminada. Trabaja por el puerto TCP 3389. RDP proporciona tanto a los usuarios como a los administradores/personal de soporte acceso remoto a los hosts de Windows dentro de una organización. El protocolo de escritorio remoto define dos participantes en una conexión: un llamado servidor terminal, en el que se realiza el trabajo real, y un cliente terminal, a través del cual se controla remotamente el servidor terminal. Además del intercambio de imágenes, sonido, teclado y dispositivo señalador, el RDP también puede imprimir documentos del servidor terminal en una impresora conectada al cliente terminal o permitir el acceso a los medios de almacenamiento disponibles allí. Técnicamente, RDP es un protocolo de capa de aplicación en la pila de IP y puede utilizar TCP y UDP para la transmisión de datos. El protocolo lo utilizan varias aplicaciones oficiales de Microsoft, pero también se utiliza en algunas soluciones de terceros.
Hydra - RDP
También podemos utilizar Hydra para realizar fuerza bruta a RDP:
Linux ofrece diferentes clientes para comunicarse con el servidor deseado utilizando el protocolo RDP. Estos incluyen Remmina , rdesktop , xfreerdp y muchos otros. Para nuestros propósitos, trabajaremos con xfreerdp.
xFreeRDP
xFreeRDP es un cliente RDP (Remote Desktop Protocol) que permite a los usuarios conectarse a escritorios remotos en sistemas Windows desde un entorno Linux. Es una herramienta versátil y de código abierto que proporciona varias opciones y configuraciones para optimizar el acceso remoto, como especificación de resoluciones de pantalla, configuración de sonido y redirección de dispositivos locales al sistema remoto.
Instalación en Kali Linux
En las nuevas versiones se instala como xfreerdp3. SI queremos usarlo como xfreerdp podemos crear un alias:
Conexión al objetivo
/v
IP del host a que nos queremos conectar
/u:<usuario> /p:<contraseña>
Usuario y contraseña
/size
Seleccionar tamaño de ventana o porcentaje %
/drive:home,"/home/kali/hack-tools/"
Monta un directorio local como unidad dentro del entorno RDP (útil para enviar archivos yººººººººººººººººººººººººººººººººººººººººººººººººººººº herramientas)

SMB
Server Message Block ( SMB) es un protocolo responsable de transferir datos entre un cliente y un servidor en redes de área local. Se utiliza para implementar servicios de impresión y uso compartido de archivos y directorios en redes Windows. A menudo se hace referencia a SMB como un sistema de archivos, pero no lo es. SMB se puede comparar NFS con Unix y Linux para proporcionar unidades en redes locales.
SMB también se conoce como Sistema de archivos común de Internet ( CIFS). Es parte del protocolo SMB y permite la conexión remota universal de múltiples plataformas como Windows, Linux o macOS. Además, a menudo nos encontraremos con Samba , que es una implementación de código abierto de las funciones anteriores. Para SMB, también podemos usar hydranuevamente para probar diferentes nombres de usuario en combinación con diferentes contraseñas.
Hydra - SMB
Sin embargo, también podemos recibir el siguiente error que describe que el servidor ha enviado una respuesta no válida.
Hydra - Error
Esto se debe a que lo más probable es que tengamos una versión desactualizada de THC-Hydra que no puede manejar las respuestas SMBv3. Para solucionar este problema, podemos actualizar y recompilar manualmente hydra o utilizar otra herramienta como framework Metasploit .
Metasploit - SMB Login
Ahora podemos usar CrackMapExec para ver los recursos compartidos disponibles y qué privilegios tenemos para ellos.
CrackMapExec
Para comunicarnos con el servidor vía SMB podemos utilizar, por ejemplo, la herramienta smbclient . Esta herramienta nos permitirá ver el contenido de los recursos compartidos, cargar o descargar archivos si nuestros privilegios lo permiten.
Smbclient
Lab - Password Attacks
Vamos a explotar varios servicios en un host controlado utilizando las técnicas que hemos visto de Password Attacks.
WinRM
Busque el usuario del servicio WinRM y descifre su contraseña. Luego, cuando inicies sesión, encontrarás la flag en el escritorio.
CrackMapExec
Evil-WinRM
Accedemos correctamente a la flag.txt dentro del escritorio de John 🏆
SSH
Busque el usuario del servicio SSH y descifre su contraseña. Luego, cuando inicies sesión, encontrarás la flag en el escritorio.
Accedemos correctamente a la flag.txt dentro del escritorio de Dennis 🏆
RDP
Encuentre el usuario del servicio RDP y descifre su contraseña. Luego, cuando inicies sesión, encontrarás la flag en el escritorio.
Hydra
Xfreerdp

Accedemos correctamente a la flag.txt dentro del escritorio de Chris 🏆
SMB
Encuentre el usuario del servicio RDP y descifre su contraseña. Luego, cuando inicies sesión, encontrarás la flag en el escritorio.
Metasploit
CrackMapExec
SMB Client
Última actualización
¿Te fue útil?