██╗ ██╗████████╗██████╗ ███╗ ███╗ █████╗ ██████╗██╗ ██╗██╗███╗ ██╗███████╗███████╗ ██║ ██║╚══██╔══╝██╔══██╗████╗ ████║██╔══██╗██╔════╝██║ ██║██║████╗ ██║██╔════╝██╔════╝ ███████║ ██║ ██████╔╝██╔████╔██║███████║██║ ███████║██║██╔██╗ ██║█████╗ ███████╗ ██╔══██║ ██║ ██╔══██╗██║╚██╔╝██║██╔══██║██║ ██╔══██║██║██║╚██╗██║██╔══╝ ╚════██║ ██║ ██║ ██║ ██████╔╝██║ ╚═╝ ██║██║ ██║╚██████╗██║ ██║██║██║ ╚████║███████╗███████║ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
HTBMachines es un potente script en Bash diseñado para consultar información detallada sobre máquinas de Hack The Box, VulnHub y PortSwigger. Este proyecto se basa en la base de datos y tutoriales proporcionados por el trabajo de @S4vitar.
Este proyecto se concibió utilizando la API de infosecmachines.io (de JavierMolines), la cual permitía descargar la base de datos de máquinas sin autenticación.
Caution
CAMBIO RECIENTE. El dominio infosecmachines.io ahora redirige a la nueva plataforma hackingvault.com. La API de la nueva web NO permite la descarga de datos sin sesión iniciada.
Esto implica que:
- El archivo
infosecmachines.jsonviene incluido en el repositorio con la base de datos más reciente en el momento de la clonación. No necesitas seguir estos pasos para usar el script. - La autenticación es obligatoria si deseas actualizar la Base de Datos (
-u,--update) para obtener nuevas máquinas, ya que la API de Hacking Vault requiere tu cookie de sesión.
Para que el script funcione, debes proporcionar tu cadena de cookies de sesión. El proceso es el siguiente:
Esta es la forma más robusta, ya que copia todas las cabeceras necesarias:
- Inicia sesión en hackingvault.com.
- Abre F12 (Herramientas de Desarrollador) y ve a la pestaña
Network. - Filtra por Fetch/XHR.
- Busca la petición a
tutorials?page=X&limit=12y haz clic derecho. - Selecciona
Copy>Copy as cURL (bash). - Al ejecutar el comando de actualización, el script te pedirá que pegues la cadena cURL en la consola.
- Búsqueda de máquinas por nombre (
-m,--machine). - Actualización del archivo
infosecmachines.json(-u,--update). - Información del script y ayuda (
-h,--help). - Versión del script (
-v,--version). - Autocompletado opcional.
curljqmd5sumtputfiglet
# Clonar el repositorio
git clone https://github.com/lukatinarelli/HTBmachines.git
cd HTBmachines
# Dar permisos de ejecución
chmod +x htbmachines.shTip
Puedes añadir la ruta del repo en tu PATH para ejecutar el script con htbmachines.sh desde cualquier directorio.
Hemos separado la lógica en dos archivos para máxima compatibilidad y evitar bugs raros:
| Shell | Archivo a Usar |
|---|---|
| Zsh | .htb-autocomplete.zsh |
| Bash | .htb-autocomplete.bash |
Para habilitarlo, usa el siguiente comando con el archivo que corresponda a tu shell:
source .htb-autocomplete.<tu_shell>source .htb-autocomplete.zshNote
Si quieres que el autocompletado sea permanente, añade la línea source correspondiente a tu archivo de configuración (~/.zshrc o ~/.bashrc).
| Argumento Corto | Argumento Largo | Descripción |
|---|---|---|
-m |
--machine |
Busca información detallada sobre una máquina de HTB, VulnHub o PortSwigger. |
-i |
--ip |
Buscar máquinapor dirección IP. |
-d |
--difficulty |
Filtar máquinas por dificultad. |
-u |
--update |
Actualiza el archivo de datos principal (infosecmachines.json). |
-h |
--help |
Muestra el menú de ayuda e información del script. |
-v |
--version |
Muestra la versión actual del script. |
Este es el checklist de funcionalidades y mejoras planificadas para las próximas versiones:
- Filtros: Añadir más filtros como el de -os (sistema operativo), -d (dificultad)...
- Autocompletado: Solucionar el fallo al usar comillas en los nombres de máquina.
- Ergonomía: Implementar sugerencias de nombres ("¿Quieres decir: ...") si la máquina no es encontrada.
- Metadatos: Añadir un nuevo campo
resueltaa la base de datos JSON. - Documentación: Mostrar la ayuda y el uso correcto para cada flag individual.
- UX (User Experience): Añadir colores en la salida del comando de búsqueda (
-m). - Mantenimiento: Implementar un sistema básico de logs.
- Automatización: Si al filtrar el resultado solo hay una máquina, mostrar la información de esa máquina automáticamente.
- Interactivo: Desarrollar un modo interactivo con lectura de teclado para navegación.
Este script se creó como parte del curso de Hack4U impartido por @S4vitar. La base de datos y los tutoriales utilizados son propiedad intelectual de S4vitar.
Caution
Nota Importante: Este proyecto está destinado exclusivamente para fines educativos en el contexto del Hacking Ético.
Este proyecto está bajo la Licencia MIT.