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
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.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.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.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.