Saltar a contenido

Creepy Crawlies

El web crawling es vasto e intrincado, pero no tienes que emprender este viaje solo. Existe una gran cantidad de herramientas de web crawling disponibles para asistirte, cada una con sus propias fortalezas y especialidades. Estas herramientas automatizan el proceso de rastreo, haciéndolo más rápido y eficiente, permitiéndote centrarte en analizar los datos extraídos.

Crawlers Web Populares

  1. Burp Suite Spider: Burp Suite, una plataforma de pruebas de aplicaciones web ampliamente utilizada, incluye un potente crawler activo llamado Spider. Spider sobresale en mapear aplicaciones web, identificar contenido oculto y descubrir posibles vulnerabilidades.
  2. OWASP ZAP (Zed Attack Proxy): ZAP es un escáner de seguridad de aplicaciones web gratuito y de código abierto. Puede usarse en modos automatizado y manual, e incluye un componente spider para rastrear aplicaciones web e identificar posibles vulnerabilidades.
  3. Scrapy (Python Framework): Scrapy es un marco versátil y escalable de Python para construir crawlers web personalizados. Ofrece ricas características para extraer datos estructurados de sitios web, manejar escenarios de rastreo complejos y automatizar el procesamiento de datos. Su flexibilidad lo hace ideal para tareas de reconocimiento a medida.
  4. Apache Nutch (Scalable Crawler): Nutch es un crawler web de código abierto, altamente extensible y escalable, escrito en Java. Está diseñado para manejar rastreos masivos a través de toda la web o enfocarse en dominios específicos. Aunque requiere más experiencia técnica para configurarse, su poder y flexibilidad lo convierten en un activo valioso para proyectos de reconocimiento a gran escala.

Independientemente de la herramienta que elijas, es crucial adherirse a prácticas de rastreo éticas y responsables. Siempre obtén permiso antes de rastrear un sitio web, especialmente si planeas realizar escaneos extensivos o intrusivos. Ten en cuenta los recursos del servidor del sitio web y evita sobrecargarlo con solicitudes excesivas.

Scrapy

Vamos a aprovechar Scrapy y un spider personalizado adaptado para el reconocimiento en inlanefreight.com. Si estás interesado en más información sobre técnicas de crawling/spidering, consulta el módulo "Using Web Proxies", ya que forma parte de CBBH también.

Instalando Scrapy

Antes de comenzar, asegúrate de tener Scrapy instalado en tu sistema. Si no lo tienes, puedes instalarlo fácilmente usando pip, el instalador de paquetes de Python:

pip3 install scrapy

Este comando descargará e instalará Scrapy junto con sus dependencias, preparando tu entorno para construir nuestro spider.

ReconSpider

Primero, ejecuta este comando en tu terminal para descargar el spider personalizado de scrapy, ReconSpider, y extraerlo en el directorio de trabajo actual.

wget https://academy.hackthebox.com/storage/modules/279/ReconSpider.zip
unzip ReconSpider.zip 

Con los archivos extraídos, puedes ejecutar ReconSpider.py usando el siguiente comando:

python3 ReconSpider.py http://inlanefreight.com

Reemplaza inlanefreight.com con el dominio que deseas rastrear. El spider rastreará el objetivo y recopilará información valiosa.

results.json

Después de ejecutar ReconSpider.py, los datos se guardarán en un archivo JSON, results.json. Este archivo se puede explorar usando cualquier editor de texto. A continuación se muestra la estructura del archivo JSON producido:

{
    "emails": [
        "lily.floid@inlanefreight.com",
        "cvs@inlanefreight.com",
        ...
    ],
    "links": [
        "https://www.themeansar.com",
        "https://www.inlanefreight.com/index.php/offices/",
        ...
    ],
    "external_files": [
        "https://www.inlanefreight.com/wp-content/uploads/2020/09/goals.pdf",
        ...
    ],
    "js_files": [
        "https://www.inlanefreight.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2",
        ...
    ],
    "form_fields": [],
    "images": [
        "https://www.inlanefreight.com/wp-content/uploads/2021/03/AboutUs_01-1024x810.png",
        ...
    ],
    "videos": [],
    "audio": [],
    "comments": [
        "<!-- #masthead -->",
        ...
    ]
}

Cada clave en el archivo JSON representa un tipo diferente de datos extraídos del sitio web objetivo:

Clave JSON Descripción
emails Lista de direcciones de correo electrónico encontradas en el dominio.
links Lista de URLs de enlaces encontrados dentro del dominio.
external_files Lista de URLs de archivos externos como PDFs.
js_files Lista de URLs de archivos JavaScript utilizados por el sitio web.
form_fields Lista de campos de formulario encontrados en el dominio (vacío en este ejemplo).
images Lista de URLs de imágenes encontradas en el dominio.
videos Lista de URLs de videos encontrados en el dominio (vacío en este ejemplo).
audio Lista de URLs de archivos de audio encontrados en el dominio (vacío en este ejemplo).
comments Lista de comentarios HTML encontrados en el código fuente.

Al explorar esta estructura JSON, puedes obtener valiosos conocimientos sobre la arquitectura, el contenido y los posibles puntos de interés de la aplicación web para una investigación adicional.