🚀 Primeros pasos para el buscador en Bash
Antes de comenzar a programar, vamos a crear el archivo de script y darle permisos de ejecución
touch htbmachines.sh
chmod +x htbmachines.sh
📦 Dependencias necesarias
Antes de usar el script, asegúrate de tener instalado:
-
curl -
js-beautify -
moreutils(por el comandosponge)
Instalación rápida en Debian/Ubuntu:
sudo apt update && sudo apt install curl js-beautify moreutils
🚀 Instalación de bundle.js para HTB 🌟
Este script Bash interactúa con la base de datos de máquinas de HTB descargada desde https://htbmachines.github.io/bundle.js. Permite búsquedas avanzadas por nombre, IP, dificultad, sistema operativo, skills, y más.
📦 ¿Qué es bundle.js?
Es un archivo JavaScript que contiene:
-
🖥️ Nombre, IP, OS
-
💪 Dificultad, Etiquetas
-
✍️ Autor, Fecha de publicación
-
📝 Tips y Writeups
Se descarga desde:
🔧 Pasos de Instalación 🔧
- Descargar
bundle.js:
curl -o bundle.js https://htbmachines.github.io/bundle.js
- Instalar Dependencias:
- Formatear el archivo:
js-beautify bundle.js | sponge bundle.js
-
js-beautify bundle.js: Formatea el archivobundle.jspara hacerlo más legible. -
| sponge bundle.js: Sobrescribe el archivo original con el contenido formateado de forma segura, evitando problemas al escribir en el mismo archivo.
🧩 Ejemplo: Función ctrl_c para manejar Ctrl+C
Esto es lo primero útil que puedes incluir en cualquier script Bash interactivo. Nos permitirá controlar la salida del programa si el usuario lo interrumpe manualmente con Ctrl+C.
#!/bin/bash
# Ctrl+c
function ctrl_c(){
echo -e "\n\n[!] Saliendo ... \n"
exit 1
}
trap ctrl_c INT
sleep 10
🧠 Explicación del código:
-
#!/bin/bash: Especifica el intérprete Bash. -
function ctrl_c() { ... }: Define la función que se ejecutará cuando se recibaCtrl+C. -
trap ctrl_c INT: Asocia la señal de interrupción (INT) con la funciónctrl_c. -
sleep 10: Simula una espera; puedes presionarCtrl+Cpara ver cómo actúa la trampa.
🎨 Colores en scripts Bash
Una forma muy útil de mejorar la legibilidad y el feedback visual de nuestros scripts es usando colores en la salida de terminal. Esto nos permite resaltar advertencias, errores, información importante o éxito.
#!/bin/bash
# 🎨 Definición de colores
greenColour="\e[0;32m\033[1m"
endColour="\033[0m\e[0m"
redColour="\e[0;31m\033[1m"
blueColour="\e[0;34m\033[1m"
yellowColour="\e[0;33m\033[1m"
purpleColour="\e[0;35m\033[1m"
turquoiseColour="\e[0;36m\033[1m"
grayColour="\e[0;37m\033[1m"
# 🔒 Control de interrupción
function ctrl_c(){
echo -e "\n\n${redColour}[!] Saliendo ...${endColour}\n"
exit 1
}
trap ctrl_c INT
# 🧪 Mensaje de prueba
echo -e "${greenColour}[+] Todo salió bien${endColour}"
echo -e "${yellowColour}[i] Advertencia leve${endColour}"
echo -e "${redColour}[x] Error fatal${endColour}"
sleep 10
-
\e[0;XXmy\033[1m: Códigos ANSI que aplican color. -
endColour: Siempre ciérralo al final del mensaje para no dañar el color del resto de la terminal. -
echo -e: Usa-epara que los códigos de color se interpreten correctamente. -
Úsalo con variables para mantener limpio el código y poder cambiar colores fácilmente.
