Network Services

Durante nuestras pruebas de penetración, cada red de computadoras que encontramos tendrá servicios instalados para gestionar, editar o crear contenido. Todos estos servicios se alojan utilizando permisos específicos y se asignan a usuarios específicos. Aparte de las aplicaciones web, estos servicios incluyen (pero no se limitan a):

  • FTP

  • SMB

  • NFS

  • IMAP/POP3

  • SSH

  • MySQL/MSSQL

  • RDP

  • WinRM

  • VNC

  • Telnet

  • SMTP

  • LDAP

Para una lectura más detallada sobre muchos de estos servicios, consulta el módulo de Footprinting en HTB Academy.

Imaginemos que queremos gestionar un servidor Windows a través de la red. Para ello, necesitamos un servicio que nos permita acceder al sistema, ejecutar comandos en él o acceder a su contenido mediante una GUI o la terminal. En este caso, los servicios más comunes adecuados para esto son RDP, WinRM y SSH. Aunque SSH es ahora mucho menos común en Windows, sigue siendo el servicio principal para sistemas basados en Linux.

Todos estos servicios tienen un mecanismo de autenticación que utiliza un nombre de usuario y una contraseña. Por supuesto, estos servicios pueden ser modificados y configurados para que solo se puedan usar claves predefinidas para iniciar sesión, pero a menudo están configurados con ajustes predeterminados en muchos casos.

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 Simple Object Access Protocol (SOAP) para la gestión remota de sistemas Windows. Se encarga de la comunicación entre el Web-Based Enterprise Management (WBEM) y el Windows Management Instrumentation (WMI), que puede llamar al Distributed Component Object Model (DCOM).

Sin embargo, por razones de seguridad, WinRM debe ser activado y configurado manualmente en Windows 10. Por lo tanto, depende en gran medida de la seguridad del entorno en un dominio o red local donde deseamos usar WinRM. En la mayoría de los casos, se utilizan certificados o solo 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 de contraseña es CrackMapExec, que también se puede usar para otros protocolos como SMB, LDAP, MSSQL, entre otros. Se recomienda leer la documentación oficial de esta herramienta para familiarizarse con ella.

Instalación de CrackMapExec

Podemos instalar CrackMapExec a través de apt en un host Parrot o clonar el repositorio de GitHub y seguir los diversos métodos de instalación, como la instalación desde la fuente y evitando problemas de dependencias.

Opciones del Menú de CrackMapExec

Ejecutar la herramienta con la opción -h nos mostrará instrucciones generales de uso y algunas opciones disponibles para nosotros.

Ayuda Específica de Protocolos en CrackMapExec

Nota que podemos especificar un protocolo específico y recibir un menú de ayuda más detallado con todas las opciones disponibles para nosotros. CrackMapExec actualmente admite autenticación remota utilizando MSSQL, SMB, SSH y WinRM.

Uso de CrackMapExec

El formato general para utilizar CrackMapExec es el siguiente:

La aparición de (Pwn3d!) es la señal de que probablemente podemos ejecutar comandos del sistema si iniciamos sesión con el usuario obtenido mediante 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 de Evil-WinRM

Uso de Evil-WinRM

Si el inicio de sesión fue exitoso, se inicia una sesión de terminal utilizando el Protocolo de Comunicación Remota de Powershell (MS-PSRP), lo que simplifica la ejecución de comandos.

SSH

Secure Shell (SSH) es una forma más segura de conectarse a un host remoto para ejecutar comandos o transferir archivos. El servidor SSH opera en el puerto TCP 22 por defecto. Utiliza tres métodos criptográficos:

  1. Cifrado Simétrico: Usa la misma clave para cifrar y descifrar. Ejemplos: AES, Blowfish, 3DES.

  2. Cifrado Asimétrico: Utiliza una clave pública y una clave privada para el cifrado y descifrado.

  3. Hashing: Convierte los datos transmitidos en un valor único para verificar autenticidad.

Hydra - SSH

Podemos utilizar Hydra para forzar ataques de fuerza bruta en SSH.

Para iniciar sesión a través de SSH, podemos usar el cliente OpenSSH:

Protocolo de Escritorio Remoto (RDP)

RDP permite el acceso remoto a sistemas Windows a través del puerto TCP 3389. Proporciona acceso completo al entorno gráfico, incluidos los dispositivos de entrada y salida del terminal remoto.

Hydra - RDP

También podemos usar Hydra para realizar ataques de fuerza bruta en RDP.

xFreeRDP

Para conectarse al servidor RDP desde Linux, podemos usar el cliente xfreerdp:

SMB

El Server Message Block (SMB) es un protocolo responsable de la transferencia de datos entre un cliente y un servidor en redes de área local (LAN). Se utiliza para implementar servicios de compartición de archivos y directorios, así como de impresión, en redes Windows. A menudo se le conoce como un sistema de archivos, aunque técnicamente no lo es. SMB puede compararse con NFS en sistemas Unix y Linux, ya que ambos permiten compartir unidades en redes locales.

SMB también es conocido como Common Internet File System (CIFS), que es parte del protocolo SMB y permite la conexión remota universal de múltiples plataformas, como Windows, Linux o macOS. Además, es común encontrar Samba, una implementación de código abierto de las funciones mencionadas. Para SMB, también podemos usar Hydra para probar diferentes combinaciones de nombres de usuario y contraseñas.

Hydra - SMB

Sin embargo, también podemos obtener el siguiente error, que describe que el servidor ha enviado una respuesta no válida.

Hydra - Error

Esto ocurre porque probablemente tenemos una versión desactualizada de THC-Hydra que no puede manejar respuestas SMBv3. Para solucionar este problema, podemos actualizar manualmente y recompilar hydra, o utilizar otra herramienta muy potente, el framework Metasploit.

Metasploit Framework

Ahora podemos usar CrackMapExec nuevamente para ver los recursos compartidos disponibles y los privilegios que tenemos sobre ellos.

CrackMapExec

Para comunicarte con el servidor vía SMB, puedes usar, por ejemplo, la herramienta smbclient. Esta herramienta te permitirá ver el contenido de los recursos compartidos, subir o descargar archivos si tus privilegios lo permiten.

Smbclient

Nota: Para completar las preguntas del desafío, asegúrate de descargar las listas de palabras proporcionadas en la sección de Recursos al principio de la página.

Last updated

Was this helpful?