Information Crawling & Scraping

Publicado el 19/04/2023 12:04:00 en Hacking Web.
Author: [x][x] MuldeR | Total de votos: 8   Vote



En primer lugar es importante conocer la diferencia entre crawling y scraping, que son técnicas que se suelen confundir ya que en seguridad muchas veces se utilizan como sinónimos.

Crawling se refiere a la automatización del proceso de recopilación de información en la web. Los crawlers, también conocidos como bots o spiders, navegan por las páginas web y recopilan información de cada una de ellas. Esta información se utiliza para crear índices de búsqueda, bases de datos y otros servicios que requieren información de la web.



Por otro lado, el scraping es la extracción de información específica de una página web. Los datos se extraen de la estructura de la página y se transforman en un formato legible y utilizable. El scraping se utiliza para recopilar datos específicos de una página web, como paths o directorios, información de usuarios o cualquier otra información relevante.

Método manual


(pensá )

El information crawling manual es un proceso de recolección de información en el que no se utilizan herramientas automatizadas. Aunque es una tarea más tediosa que el crawling automático, puede proporcionar información valiosa que podría pasar desapercibida para las herramientas
automatizadas.

Google

Se puede utilizar Google para buscar información relevante sobre el objetivo. Se pueden utilizar operadores avanzados de búsqueda para afinar los resultados y buscar información específica. Por ejemplo, se puede utilizar el operador "site:" para buscar información en un sitio web específico.

Si deseas buscar información sobre hackers en "diosdelared.com", puedes sescribir en la barra de búsqueda de Google:
"hackers site:diosdelared.com"
. Esto limitará los resultados de búsqueda a solo las páginas que se encuentran en el sitio "diosdelared.com" y que contienen información sobre hackers.



También hay otros operadores que se puede utilizar para refinar la búsqueda, como el operador "intitle:" para buscar una palabra clave en el título de una página, o el operador "inurl:" para buscar una palabra clave en la URL de una página. Para buscar a "Hector L." en diosdelared.com utilizamos
intitle:"Hector L." site:diosdelared.com




Otros operadores interesantes:

"inurl:" - Este operador te permite buscar páginas que contengan una palabra o frase en su URL. Por ejemplo, si queremos buscar todas las páginas en "diosdelared.com" que contienen la palabra "seguridad" en su URL, podemos escribir lo siguiente en la barra de búsqueda de Google: "inurl:seguridad site:diosdelared.com".

"related:" - Este operador te permite buscar sitios web relacionados con uno en particular. Por ejemplo, si queremos buscar sitios web similares a "diosdelared.com", podemos escribir lo siguiente en la barra de búsqueda de Google: "related:diosdelared.com".

"cache:" - Este operador te permite ver la versión en caché de una página web. Por ejemplo, si queremos ver la versión en caché de la página "diosdelared.com", podemos escribir lo siguiente en la barra de búsqueda de Google: "cache:diosdelared.com".

"filetype:" - Este operador te permite buscar archivos de un tipo específico. Por ejemplo, si queremos buscar todos los archivos PDF en "diosdelared.com", podemos escribir lo siguiente en la barra de búsqueda de Google: "filetype:pdf site:diosdelared.com".

Directory Listing

Otra técnica manual es la búsqueda de rutas ocultas utilizando el directory listing. El directory listing muestra una lista de todos los archivos y carpetas disponibles en un servidor web. Para acceder al directory listing, se puede ingresar la ruta completa del sitio web seguida de "/". Por ejemplo, si el sitio web es "www.diosdelared.com", se puede ingresar "www.diosdelared.com/descargas" en el navegador para acceder al listado de los archivos del directorio (en realidad no xd).

Robots file

El archivo robots.txt es un archivo de texto que se encuentra en la raíz de un sitio web y que se utiliza para indicar a los robots de los motores de búsqueda qué partes del sitio web deben ser rastreadas y cuáles no.

En el archivo robots.txt, se pueden especificar diferentes directivas para diferentes partes del sitio web. Por ejemplo, se puede indicar que se permita rastrear todo el sitio web, pero que se excluyan ciertos directorios o archivos. También se puede especificar que ciertos robots no tengan acceso a partes específicas del sitio web.

Podemos utilizar curl con grep para extraer todos los directorios listados en un robots.txt que sea demasiado grande de la siguiente forma:

curl -s https://diosdelared.com/robots.txt | grep -oP 'Disallow:s*K.*' | sort -u




curl: es una herramienta de línea de comandos que se utiliza para transferir datos desde o hacia un servidor. En este caso, se utiliza para acceder al archivo robots.txt del sitio web en cuestión y obtener su contenido.

grep: es un comando que se utiliza para buscar patrones de texto dentro de un archivo o una salida de otro comando. En este caso, se utiliza para buscar las líneas que contienen la palabra "Disallow", que indica que ciertos directorios no deben ser accedidos por los robots de los motores de búsqueda.


Además, el archivo robots.txt también puede proporcionar información adicional, como la ubicación del mapa del sitio del sitio web y la ubicación del archivo de datos de referencia de los motores de búsqueda.

Source codes

Otra fuente de información valiosa son los código fuente HTML, CSS y JavaScript. Principalmente las rutas y los comentarios. Estos comentarios pueden proporcionar información sobre la estructura del sitio web, la tecnología utilizada y otros detalles relevantes que pueden ser útiles para identificar posibles vulnerabilidades de seguridad. Por ejemplo, si se detecta que la página web utiliza una versión desactualizada de un software o plataforma, podría ser vulnerable a ciertas amenazas de seguridad conocidas.

Con curl y un poco de regex se pueden hacer cosas muy interesantes para facilitar la labor de revisar los sources:

curl -s https://diosdelared.com/css/style.css | grep -o -P "/*[sS]*?*/"
curl -s https://diosdelared.com/index.php | grep '<!--.*-->'




curl -s https://www.diosdelared.com/ | grep -Eo "(href|src)="[^"]*/" | cut -d'"' -f2 | grep -v -E ".w+$"




En el siguiente enlace pueden encontrar una herramienta básica en bash para automatizar los distintos comandos y poder realizar un scrapping manual de forma mas dinámica.

Método automático



(click y fumá )

Burp Suite

La herramienta mas utilizada en la actualidad sin duda es ésta, tan popular que ha llegado a compararse con netcat al asemejarse a una "navaja suiza hacker". Personalmente no la tengo siquiera instalada, pero no se pueden dejar de mencionar alguna de sus funciones.


En primero lugar es necesario abrir el programa y configurar tu navegador para que lo use como proxy. Una vez hecho esto, navegá por el sitio que querés analizar y Burp Suite va a ir registrando todo lo que sucede.

Para hacer data crawling específico en una página, tenés que usar la herramienta "Spider" que tiene Burp Suite. Esta herramienta va a recorrer todos los links que encuentre en la página y los va a analizar para ver si hay alguna información interesante. Para usarla, simplemente seleccioná el sitio que querés analizar, andá a la pestaña "Spider" y hacé clic en "Start". Burp Suite va a comenzar a recorrer todas las páginas que encuentre y a analizarlas en busca de información relevante.

Otra forma de hacer data crawling con Burp Suite es usando la herramienta "Scanner". Esta herramienta va a buscar automáticamente vulnerabilidades en el sitio que estés analizando. Para usarla, simplemente seleccioná el sitio que querés analizar, andá a la pestaña "Scanner" y hacé clic en "Start". Burp Suite va a comenzar a analizar el sitio en busca de vulnerabilidades y te va a mostrar los resultados en la pestaña correspondiente.

Si querés analizar el tráfico que está pasando entre tu navegador y el servidor, podés usar la herramienta "Proxy" que tiene Burp Suite. Esta herramienta te va a permitir ver todo lo que está pasando entre tu navegador y el servidor, y vas a poder analizar la información que se está enviando y recibiendo en tiempo real.

Otras herramientas populares

Scrapy: Es un framework de crawling y scraping de Python. Permite extraer datos de manera estructurada y escalable, y también cuenta con herramientas para realizar análisis de datos y visualizaciones.

Beautiful Soup: Es una librería de Python que permite analizar documentos HTML y XML. Permite extraer información de manera estructurada a partir de una página web.

Selenium: Es una herramienta para la automatización de navegadores web. Permite interactuar con una página web de manera programática, lo que es útil para extraer información de páginas web dinámicas o interactivas.

Data Miner: Es una extensión de Chrome que permite extraer información de manera sencilla a partir de una página web. Permite seleccionar los elementos que se desean extraer y guardarlos en diferentes formatos.

Import.io: Es una plataforma para la extracción de datos en línea que permite extraer información de diferentes fuentes de datos, incluyendo páginas web y bases de datos. Permite guardar los datos extraídos en diferentes formatos.

Cada herramienta tiene sus propias ventajas y desventajas, por lo que la elección dependerá del caso específico y de las necesidades de la tarea de crawling y scraping puntual.

Bueno este fue un artículo rápido a modo de introducción general, espero que lo hayan disfrutado y que al menos hayan podido sacar algún tip válido. No ando con tiempo para publicar últimamente, pero veo que es extremadamente necesario dado la cantidad de nuevos usuarios que se están registrando y que están mas perdidos que un santo en el vaticano .


Comments:


[x]
[x][x] M20191 (5 m) : 55702 Excelente post mulder!


[x]
[x][x] MuldeR (5 m) : 55703 <3 quiero ver tu megapost


[x]
[x][x] Zep7i (5 m) : 55723 prueba


[x]
[x][x] soybenox (4 m) : 55735 Extrañaba estos manuales. :P


[x]
[x][x] CManrique (4 m) : 55757 +1, aunque estaría bien que explicara que hacen algunas flags para los mas novatos