¿Cómo usar Hackbar para pruebas de seguridad?

Beginner

Introducción

Este laboratorio presenta Hackbar, una poderosa extensión de navegador utilizada por profesionales de ciberseguridad para pruebas de seguridad de aplicaciones web. Aprenderá a instalar y configurar Hackbar, y a utilizar sus funciones para probar aplicaciones web en busca de vulnerabilidades de seguridad comunes. Al final de este laboratorio, comprenderá los conceptos básicos de las pruebas de seguridad y tendrá experiencia práctica con una de las herramientas de pruebas de seguridad más utilizadas.

Instalación de la Extensión Hackbar

En este paso, instalará la extensión Hackbar en el navegador Firefox. Hackbar es una herramienta de pruebas de seguridad que ayuda a analizar y manipular las peticiones HTTP.

Las extensiones del navegador son pequeños programas de software que personalizan la experiencia de navegación. Las extensiones de seguridad como Hackbar añaden herramientas especializadas para las pruebas de seguridad directamente dentro de su navegador.

Primero, asegurémonos de que Firefox está instalado en nuestro sistema:

sudo apt update
sudo apt install firefox -y

Después de que el comando se complete, verá una salida que indica que Firefox se ha instalado o ya está presente.

Instalación de la Extensión Hackbar

Ahora instalaremos la extensión Hackbar:

  1. Abra el navegador Firefox haciendo clic en el icono de Firefox en el menú de aplicaciones o ejecutando este comando en la terminal:
firefox &
  1. En Firefox, navegue a la página de la extensión introduciendo esta URL en la barra de direcciones:
https://addons.mozilla.org/en-US/firefox/addon/hackbar/
  1. Haga clic en el botón "Añadir a Firefox".

  2. En el diálogo de confirmación que aparece, haga clic en "Añadir" para confirmar la instalación.

  3. Después de la instalación, verá una notificación de que Hackbar se ha añadido a Firefox.

Verificación de la Instalación

Para verificar que Hackbar está correctamente instalado:

  1. Busque el icono de Hackbar en la barra de herramientas de Firefox (normalmente aparece como un pequeño icono "HB").

  2. Haga clic en el icono para abrir el panel de Hackbar. Debería ver una barra de herramientas con varias opciones de pruebas de seguridad que aparecen debajo de la barra de direcciones.

  3. Si no ve el icono, haga clic en el botón de menú (tres líneas horizontales en la esquina superior derecha), seleccione "Complementos y temas", y luego haga clic en "Extensiones" para confirmar que Hackbar está en la lista.

Comprensión de la Interfaz de Hackbar

La interfaz de Hackbar consta de varias secciones:

  • Campo URL: Donde puede ver y modificar la URL actual
  • Selección de Método: Elija entre GET, POST y otros métodos HTTP
  • Cargar URL: Carga la URL de la página actual en Hackbar
  • Ejecutar: Envía la petición modificada
  • Herramientas de Codificación/Decodificación: Varias opciones para transformar datos

Tómese un momento para explorar la interfaz haciendo clic en diferentes opciones del menú para ver qué funciones están disponibles.

Por qué Hackbar es Importante para las Pruebas de Seguridad

Hackbar permite a los profesionales de la seguridad:

  • Modificar las peticiones HTTP en tiempo real
  • Probar las vulnerabilidades de inyección SQL
  • Codificar y decodificar datos en varios formatos
  • Manipular cookies y cabeceras (headers)
  • Probar las vulnerabilidades de Cross-Site Scripting (XSS)

A lo largo de este laboratorio, aprenderá a utilizar estas funciones para realizar pruebas de seguridad básicas.

Manipulación y Codificación Básica de URL

En este paso, aprenderá a utilizar Hackbar para la manipulación de URL y las operaciones de codificación/decodificación, que son habilidades fundamentales para las pruebas de seguridad.

Lanzamiento de un Sitio Web de Prueba

Para fines de práctica, configuraremos un sitio web de prueba simple. Abra una nueva terminal y ejecute:

mkdir -p ~/project/test-website
cd ~/project/test-website

Ahora cree un archivo HTML básico con un formulario simple:

cat > index.html << EOF
<!DOCTYPE html>
<html>
<head>
    <title>Test Website</title>
</head>
<body>
    <h1>Login Form</h1>
    <form action="login.php" method="GET">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username"><br><br>
        <label for="password">Password:</label>
        <input type="password" id="password" name="password"><br><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>
EOF

Iniciemos un servidor HTTP simple para alojar esta página:

python3 -m http.server 8080

Debería ver una salida que indica que el servidor se está ejecutando en el puerto 8080:

Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...

Acceso al Sitio Web de Prueba

Abra una nueva ventana de Firefox (deje el servidor ejecutándose en la terminal) y navegue a:

http://localhost:8080

Debería ver un formulario de inicio de sesión simple con campos de nombre de usuario y contraseña.

Uso de Hackbar para Manipular URLs

Ahora usemos Hackbar para manipular la URL:

  1. Haga clic en el icono de Hackbar para abrir el panel de Hackbar.

  2. Haga clic en el botón "Cargar URL" para cargar la URL actual en Hackbar.

  3. Debería ver http://localhost:8080 en el campo URL de Hackbar.

  4. Intente modificar la URL agregando una ruta, por ejemplo:

    • Cámbielo a http://localhost:8080/index.html
    • Haga clic en "Ejecutar" para enviar la petición
  5. Rellene el formulario de inicio de sesión con credenciales de prueba (por ejemplo, nombre de usuario: "admin", contraseña: "password") y haga clic en el botón Iniciar sesión.

  6. Observe la URL en la barra de direcciones. Debería verse algo así:

    http://localhost:8080/login.php?username=admin&password=password
  7. Es probable que la página muestre un error "No encontrado" porque login.php no existe, pero estamos interesados en la estructura de la URL.

  8. Abra Hackbar de nuevo y haga clic en "Cargar URL" para cargar esta nueva URL.

Manipulación de Parámetros de URL

Las pruebas de seguridad a menudo implican la manipulación de parámetros de URL:

  1. En Hackbar, localice el campo URL que contiene la URL de inicio de sesión.

  2. Intente cambiar el parámetro de nombre de usuario:

    • Cambie username=admin a username=admin'
    • Haga clic en "Ejecutar" para enviar la petición

Este simple cambio añade un carácter de comilla simple, que es una técnica común para probar vulnerabilidades de inyección SQL.

Codificación y Decodificación con Hackbar

Hackbar ofrece varias opciones de codificación/decodificación:

  1. En Hackbar, haga clic en el menú "Codificación" para ver las opciones disponibles.

  2. Intente la codificación de URL:

    • Escriba texto con caracteres especiales en el campo URL, como test space & special
    • Seleccione el texto que desea codificar
    • En el menú "Codificación", seleccione "Codificar URL"
    • El texto seleccionado se convertirá al formato codificado por URL
  3. Intente la codificación Base64:

    • Escriba texto en el campo URL, como hackbar test
    • Seleccione el texto que desea codificar
    • En el menú "Codificación", seleccione "Codificar Base64"
    • El texto seleccionado se convertirá al formato Base64
  4. Intente la decodificación:

    • Seleccione el texto codificado
    • En el menú "Codificación", seleccione la opción de decodificación adecuada (Decodificar URL o Decodificar Base64)
    • El texto se convertirá de nuevo a su formato original

Estas funciones de codificación/decodificación son esenciales al probar aplicaciones web en busca de vulnerabilidades de seguridad, ya que le permiten manipular datos en varios formatos.

Detener el Servidor de Prueba

Cuando haya completado este paso, vuelva a la terminal donde se está ejecutando el servidor HTTP de Python y pulse Ctrl+C para detenerlo.

Técnicas Básicas de Pruebas de Seguridad

En este paso, aprenderá a realizar pruebas de seguridad básicas utilizando Hackbar. Configurará un entorno de práctica vulnerable y probará las vulnerabilidades de seguridad comunes.

Configuración de un Entorno de Práctica Vulnerable

Para la práctica ética de pruebas de seguridad, configuraremos una aplicación PHP vulnerable simple. Primero, creemos los archivos necesarios:

cd ~/project/test-website

Ahora, cree un archivo PHP vulnerable simple:

cat > login.php << EOF
<?php
  // This is an intentionally vulnerable script for educational purposes only
  
  // Get the username from GET parameter
  \$username = isset(\$_GET['username']) ? \$_GET['username'] : '';
  \$password = isset(\$_GET['password']) ? \$_GET['password'] : '';
  
  echo "<h1>Login Results</h1>";
  
  // Vulnerable to SQL injection (DO NOT USE THIS IN PRODUCTION!)
  echo "<div>SQL query that would be executed:</div>";
  echo "<pre>SELECT * FROM users WHERE username = '\$username' AND password = '\$password'</pre>";
  
  // Check for SQL injection attempts
  if (strpos(\$username, "'") !== false || strpos(\$password, "'") !== false) {
    echo "<p style='color:red'>SQL Injection detected! In a real application, this might exploit a vulnerability.</p>";
  }
  
  // XSS vulnerability demonstration
  echo "<div>Welcome back, " . \$username . "!</div>";
?>
EOF

Iniciemos el servidor de desarrollo PHP para ejecutar nuestra aplicación vulnerable:

php -S localhost:8080

Debería ver una salida que indica que el servidor se está ejecutando:

PHP 7.x.x Development Server started at ...
Listening on http://localhost:8080
Document root is /home/labex/project/test-website

Pruebas de Inyección SQL

La inyección SQL es una vulnerabilidad común donde los atacantes pueden manipular las consultas SQL a través de las entradas del usuario. Vamos a probarlo:

  1. Abra Firefox y navegue a nuestra aplicación de prueba:

    http://localhost:8080/
  2. Introduzca "admin" como nombre de usuario y "password" como contraseña, luego haga clic en "Iniciar sesión".

  3. Debería ser redirigido a una página que muestra la consulta SQL que se ejecutaría:

    SELECT * FROM users WHERE username = 'admin' AND password = 'password'
  4. Ahora, probemos un ataque básico de inyección SQL. Haga clic en el icono de Hackbar para abrirlo.

  5. Haga clic en "Cargar URL" para cargar la URL actual en Hackbar.

  6. En el campo URL, localice el parámetro de nombre de usuario y modifíquelo a:

    username=admin' OR '1'='1

    La URL completa debería verse así:

    http://localhost:8080/login.php?username=admin' OR '1'='1&password=password
  7. Haga clic en "Ejecutar" para enviar la petición modificada.

  8. Observe la respuesta. Debería ver el mensaje de detección de inyección SQL y la consulta SQL modificada:

    SELECT * FROM users WHERE username = 'admin' OR '1'='1' AND password = 'password'

Esto demuestra cómo la inyección SQL puede modificar potencialmente la lógica de la consulta. En una aplicación vulnerable real, esto podría eludir la autenticación.

Pruebas de Cross-Site Scripting (XSS)

Cross-Site Scripting (XSS) es otra vulnerabilidad común donde los atacantes pueden inyectar scripts del lado del cliente en páginas web. Vamos a probarlo:

  1. Abra Hackbar y haga clic en "Cargar URL" para cargar la URL actual.

  2. Modifique el parámetro de nombre de usuario para incluir una alerta simple de JavaScript:

    username=<script>alert('XSS')</script>
  3. Haga clic en "Codificar" → "Codificar selección URL" para codificar el script en URL. Esto es necesario porque los caracteres especiales en las URL deben ser codificados.

  4. La URL codificada debería verse algo así:

    http://localhost:8080/login.php?username=%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E&password=password
  5. Haga clic en "Ejecutar" para enviar la petición modificada.

  6. Si la aplicación es vulnerable a XSS, debería ver una ventana emergente de alerta de JavaScript que dice "XSS". Nuestro simple script PHP demuestra esta vulnerabilidad al emitir directamente el parámetro de nombre de usuario sin la sanitización adecuada.

Uso de las Funciones Adicionales de Hackbar

Hackbar ofrece varias otras funciones útiles para las pruebas de seguridad:

Manipulación de Cabeceras HTTP

  1. En Hackbar, haga clic en la pestaña "Cabeceras".

  2. Puede añadir cabeceras personalizadas como "User-Agent" o "Referer" para probar cómo la aplicación maneja la información del cliente.

  3. Añada una cabecera personalizada:

    • Haga clic en "Añadir cabecera personalizada"
    • Para Nombre, introduzca User-Agent
    • Para Valor, introduzca HackbarTester/1.0
    • Haga clic en "Añadir/Actualizar cabecera"
  4. Haga clic en "Ejecutar" para enviar la petición con la cabecera modificada.

Manipulación de Cookies

  1. En Hackbar, haga clic en la pestaña "Cookies".

  2. Aquí puede ver y modificar las cookies existentes o añadir otras nuevas.

  3. Intente añadir una nueva cookie:

    • Para Nombre, introduzca test_cookie
    • Para Valor, introduzca hackbar_value
    • Haga clic en "Añadir/Actualizar Cookie"
  4. Haga clic en "Ejecutar" para enviar la petición con la cookie modificada.

Ética y Mejores Prácticas de las Pruebas de Seguridad

Recuerde estas importantes directrices éticas:

  1. Realice pruebas de seguridad únicamente en sistemas que posea o para los que tenga permiso explícito para probar.
  2. Documente todos sus hallazgos e informe de las vulnerabilidades de forma responsable.
  3. Nunca utilice herramientas de pruebas de seguridad para causar daño o acceder a datos no autorizados.
  4. Siga siempre las normativas legales y las normas éticas.

Detener el Servidor de Prueba

Cuando haya completado este paso, vuelva a la terminal donde se está ejecutando el servidor PHP y pulse Ctrl+C para detenerlo.

Resumen

En este laboratorio, aprendió a utilizar Hackbar, una potente extensión de navegador para pruebas de seguridad. Ha adquirido habilidades fundamentales que incluyen:

  1. Instalación y configuración de la extensión Hackbar en Firefox
  2. Uso de Hackbar para manipular URLs y parámetros
  3. Aplicación de técnicas de codificación y decodificación
  4. Pruebas de vulnerabilidades web comunes como la Inyección SQL y XSS
  5. Comprensión de las consideraciones éticas de las pruebas de seguridad

Estas habilidades forman la base de las pruebas de seguridad de aplicaciones web. A medida que continúe su viaje en ciberseguridad, puede basarse en estos conceptos básicos para desarrollar técnicas de pruebas de seguridad más avanzadas. Recuerde que las pruebas de seguridad siempre deben realizarse de forma ética, con la autorización adecuada y en cumplimiento de las leyes y regulaciones pertinentes.