馃捇聽ReconBox 馃捇

馃摝馃攳 Script en bash para la fase de reconocimiento de las m谩quinas de Hack The Box. 馃攳馃摝

鈿欙笍鈿欙笍 Requisitos Previos 鈿欙笍鈿欙笍

Antes de utilizar el script, aseg煤rate de tener las herramientas necesarias instaladas en tu sistema:

  • Nmap: Para escanear puertos y servicios.

  • WhatWeb: Para identificar tecnolog铆as web utilizadas por un servidor.

  • WFuzz: Para realizar fuzzing y encontrar directorios o archivos ocultos en aplicaciones web.

  • Rsync: Para realizar escaneos de posibles directorios compartidos.

  • MongoDB tools: Para interactuar con bases de datos MongoDB.

馃馃 Descripci贸n del Script 馃馃

El script est谩 dise帽ado para realizar un escaneo completo en una m谩quina objetivo. Utiliza una combinaci贸n de herramientas de escaneo como Nmap, WhatWeb, WFuzz, Rsync y MongoDB tools para obtener informaci贸n detallada sobre la m谩quina objetivo. A continuaci贸n, desglosamos los pasos clave de su funcionamiento:

馃敼 1. Verificaci贸n de la Conexi贸n

El script comienza verificando si la m谩quina objetivo est谩 accesible a trav茅s de ping. Si la m谩quina responde, contin煤a con los siguientes pasos. En caso de que la conexi贸n falle, se detiene y muestra un mensaje de error.

				
					validation=$(ping -c 1 $ip | grep received | awk '{print $4}')
if [ $validation -eq 1 ]; then
    echo -e "\n${verde}[+] Estado de la conexi贸n: ${azul}Conectado${finColor}${verde}"

				
			

馃敼 2. Detecci贸n del Sistema Operativo

Una vez confirmada la conectividad, el script intenta identificar el sistema operativo de la m谩quina objetivo utilizando el script wichSystem.py (probablemente un script personalizado o uno de herramientas comunes de OS detection como nmap o p0f). Si el sistema operativo es Linux o Windows, se imprime la informaci贸n en la consola.

				
					so="$(wichSystem.py $ip | awk '{print $5}' | column)"
if [[ $so = "Linux" || $so = "Windows" ]]; then
    echo -e "\n[+] Sistema Operativo = ${azul}$so${finColor}${verde}"
else
    echo -e "\n[+] Sistema Operativo Desconocido."
fi

				
			

馃敼 3. Escaneo de Puertos con Nmap

El script realiza un escaneo completo de puertos utilizando Nmap, que identifica puertos abiertos en la m谩quina objetivo. Si el archivo de resultados portScan ya existe, pregunta al usuario si desea realizar un nuevo escaneo. De no ser as铆, se reutiliza el archivo anterior.

				
					if [ -e "./portScan" ]; then 
    echo -e "\n    [+] El archivo ${azul}portScan${verde} ya existe, desea volver a realizar el Escaneo? [s/n]"
    read respuesta
    if [ "$respuesta" = "s" ]; then
        sudo nmap -p- -sS --open --min-rate 5000 -v -n $ip -oG portScan 2&>/dev/null
    fi
else
    sudo nmap -p- -sS --open --min-rate 5000 -v -n $ip -oG portScan 2&>/dev/null
fi

				
			

Los puertos abiertos se extraen del archivo portScan y se muestran al usuario en la consola.

				
					ports="$(cat portScan | grep -oP '\d{1,5}/open' | awk '{print $1}' FS='/' | xargs | tr ' ' ',')" 
echo -e "\n    [+] Puertos abiertos: ${azul}$ports${finColor}${verde}"

				
			

馃敼 4. Escaneo de Servicios en Puertos Espec铆ficos

Para los puertos m谩s comunes como 21 (FTP), 22 (SSH), 80 (HTTP) y 443 (HTTPS), el script realiza escaneos adicionales para obtener m谩s informaci贸n sobre los servicios y aplicaciones corriendo en esos puertos. En el caso del puerto 80 (HTTP), tambi茅n utiliza WhatWeb para identificar tecnolog铆as web.

				
					if [[ "$ports" == *"80"* ]]; then
    sudo whatweb "$ip"
    # Si WhatWeb detecta tecnolog铆as web, se ofrece la posibilidad de realizar fuzzing.
    echo -e "\n${verde}[+] Realizar Fuzzing ${azul}http://$ip/FUZZ${finColor}${verde}: [s/n] \n"
    read respuesta2
    if [ "$respuesta2" = "s" ]; then
        wfuzz -w /usr/share/wordlists/directory-list-2.3-big.txt --hc 404 http://$ip/FUZZ
    fi
fi

				
			

馃敼 5. Fuzzing y Escaneo de Directorios con WFuzz

El script permite realizar fuzzing en aplicaciones web encontradas en el puerto 80 o 443. Esto ayuda a identificar directorios o archivos ocultos que podr铆an contener informaci贸n sensible.

				
					wfuzz -w /usr/share/wordlists/directory-list-2.3-big.txt --hc 404 http://$ip/FUZZ


				
			

馃敼 6. Escaneo de Otros Puertos Espec铆ficos

El script tambi茅n est谩 dise帽ado para realizar escaneos espec铆ficos en otros puertos, como Rsync (puerto 873) o MongoDB (puerto 27017). En el caso de MongoDB, el script intenta realizar un dump de la base de datos para obtener posibles flags.

				
					if [[ "$ports" == *"27017"* ]]; then
    mongodump --host $ip --port 27017
    rutaflag="$(find ./dump | grep flag.bson)"
    if [[ -n "$rutaflag" ]]; then
        echo -e "\n[+] Hemos encontrado la palabra flag en la siguiente ruta:\n\n ${azul}${rutaflag}${verde}"
        catRutaFlag=$(cat $rutaflag | tr -d '\0')
        echo -e "\n[+] Con el siguiente contenido:"
        echo -e "\n ${azul}$catRutaFlag${verde}"
    fi
fi