SlideShare una empresa de Scribd logo

Rooted 2018 - Crawlino: The next level of crawling systems

Una navaja suiza que nos permite crear herramientas y automatizaciones usando ficheros de definición de reglas

1 de 169
Descargar para leer sin conexión
T H E N E X T L E V E L O F T H E
C R A W L I N G S Y S T E M S
C R A W L I N O
< / S P A M > M E ( C R 0 H N ) < / S P A M >
• C r e a t o r / c o - c r e a t o r m a n y
s e c u r i t y t o o l s
• S e c u r i t y r e s e a r c h e r / e t h i c a l
h a c k i n g
• C h a p t e r L e a d e r O W A S P M a d r i d
• P y t h o n d e v e l o p e r y t e a c h e r
• W o r k i n g o n B B V A - L a b s
https://www.linkedin.com/in/garciagarciadaniel
@ggdaniel
https://www.linkedin.com/in/garciagarciadaniel @ggdaniel
¿ D E Q U É V A E S T A C H A R L A ?
https://www.linkedin.com/in/garciagarciadaniel @ggdaniel
¿ D E Q U É V A E S T A C H A R L A ?
@ggdaniel
¿ Q U É E S U N C R A W L E R ?
"A Web crawler, sometimes called a spider, is an Internet bot that
systematically browses the World Wide Web, typically for the
purpose of Web indexing (web spidering).”
@ggdaniel
¿ Q U É E S U N C R A W L E R ?
"A Web crawler, sometimes called a spider, is an Internet bot that
systematically browses the World Wide Web, typically for the
purpose of Web indexing (web spidering).”

Recomendados

búsquedas avanzadas en google
búsquedas avanzadas en googlebúsquedas avanzadas en google
búsquedas avanzadas en googleCristhian Vargas
 
Reglamento General de Protección de Datos
Reglamento General de Protección de DatosReglamento General de Protección de Datos
Reglamento General de Protección de DatosMartina F. Ferracane
 
Actividades Clase
Actividades ClaseActividades Clase
Actividades ClaseJulio Lopez
 
Sistema Informático
Sistema InformáticoSistema Informático
Sistema InformáticoBIANCAA05
 
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]Luis M Villanueva
 
Universidad de panama, power point, maestría de periodismo. icard reyes
Universidad de panama, power point, maestría de periodismo. icard reyesUniversidad de panama, power point, maestría de periodismo. icard reyes
Universidad de panama, power point, maestría de periodismo. icard reyesIcard D. Reyes Rodriguez
 

Más contenido relacionado

La actualidad más candente

Case Study - Optymalizacja Kampanii AdWords
Case Study - Optymalizacja Kampanii AdWordsCase Study - Optymalizacja Kampanii AdWords
Case Study - Optymalizacja Kampanii AdWordsSEOWAY Sp. z o.o.
 
Estrategias de marca en base al análisis competitivo
Estrategias de marca en base al análisis competitivoEstrategias de marca en base al análisis competitivo
Estrategias de marca en base al análisis competitivoFernando Angulo
 
Joce (tic´s) 2
Joce (tic´s) 2Joce (tic´s) 2
Joce (tic´s) 2Jc1702n
 
Keyla clavijo (AVANCES TECNOLOGICOS)
Keyla clavijo (AVANCES TECNOLOGICOS)Keyla clavijo (AVANCES TECNOLOGICOS)
Keyla clavijo (AVANCES TECNOLOGICOS)KEYLA CLAVIJO
 
Software online
Software onlineSoftware online
Software onlinesoache321
 
SEO en Portales Verticales. Mi Experiencia [SEOPLUS 2018]
SEO en Portales Verticales. Mi Experiencia [SEOPLUS 2018]SEO en Portales Verticales. Mi Experiencia [SEOPLUS 2018]
SEO en Portales Verticales. Mi Experiencia [SEOPLUS 2018]Luis M Villanueva
 
Link Building por César Aparicio para #ClickSEO 2020
Link Building por César Aparicio para #ClickSEO 2020Link Building por César Aparicio para #ClickSEO 2020
Link Building por César Aparicio para #ClickSEO 2020Cráneo Previlegiado
 
Analisis de redes sociales online
Analisis de redes sociales onlineAnalisis de redes sociales online
Analisis de redes sociales onlineedelval
 
Comportamiento del usuario como factor de relevancia en SEO - Fernando Macia
Comportamiento del usuario como factor de relevancia en SEO - Fernando MaciaComportamiento del usuario como factor de relevancia en SEO - Fernando Macia
Comportamiento del usuario como factor de relevancia en SEO - Fernando MaciaHuman Level
 
5 ingredientes indispensables para hacer branding en los medios digitales
5 ingredientes indispensables para hacer branding en los medios digitales 5 ingredientes indispensables para hacer branding en los medios digitales
5 ingredientes indispensables para hacer branding en los medios digitales Anneliese Hagel
 
Análisis de Datos SEO para el QUÉ y el CÚANDO [SOB 2018]
Análisis de Datos SEO para el QUÉ y el CÚANDO [SOB 2018]Análisis de Datos SEO para el QUÉ y el CÚANDO [SOB 2018]
Análisis de Datos SEO para el QUÉ y el CÚANDO [SOB 2018]Luis M Villanueva
 
realidad nacional
realidad nacionalrealidad nacional
realidad nacionalLuis Parra
 

La actualidad más candente (16)

Diapositiva RRS
Diapositiva RRSDiapositiva RRS
Diapositiva RRS
 
Case Study - Optymalizacja Kampanii AdWords
Case Study - Optymalizacja Kampanii AdWordsCase Study - Optymalizacja Kampanii AdWords
Case Study - Optymalizacja Kampanii AdWords
 
Estrategias de marca en base al análisis competitivo
Estrategias de marca en base al análisis competitivoEstrategias de marca en base al análisis competitivo
Estrategias de marca en base al análisis competitivo
 
Joce (tic´s) 2
Joce (tic´s) 2Joce (tic´s) 2
Joce (tic´s) 2
 
Keyla clavijo (AVANCES TECNOLOGICOS)
Keyla clavijo (AVANCES TECNOLOGICOS)Keyla clavijo (AVANCES TECNOLOGICOS)
Keyla clavijo (AVANCES TECNOLOGICOS)
 
Software online
Software onlineSoftware online
Software online
 
SEO en Portales Verticales. Mi Experiencia [SEOPLUS 2018]
SEO en Portales Verticales. Mi Experiencia [SEOPLUS 2018]SEO en Portales Verticales. Mi Experiencia [SEOPLUS 2018]
SEO en Portales Verticales. Mi Experiencia [SEOPLUS 2018]
 
Presentación1
Presentación1Presentación1
Presentación1
 
Link Building por César Aparicio para #ClickSEO 2020
Link Building por César Aparicio para #ClickSEO 2020Link Building por César Aparicio para #ClickSEO 2020
Link Building por César Aparicio para #ClickSEO 2020
 
Distrito Municipal Capotillo
Distrito Municipal CapotilloDistrito Municipal Capotillo
Distrito Municipal Capotillo
 
Analisis de redes sociales online
Analisis de redes sociales onlineAnalisis de redes sociales online
Analisis de redes sociales online
 
Seguridad de la red
Seguridad de la redSeguridad de la red
Seguridad de la red
 
Comportamiento del usuario como factor de relevancia en SEO - Fernando Macia
Comportamiento del usuario como factor de relevancia en SEO - Fernando MaciaComportamiento del usuario como factor de relevancia en SEO - Fernando Macia
Comportamiento del usuario como factor de relevancia en SEO - Fernando Macia
 
5 ingredientes indispensables para hacer branding en los medios digitales
5 ingredientes indispensables para hacer branding en los medios digitales 5 ingredientes indispensables para hacer branding en los medios digitales
5 ingredientes indispensables para hacer branding en los medios digitales
 
Análisis de Datos SEO para el QUÉ y el CÚANDO [SOB 2018]
Análisis de Datos SEO para el QUÉ y el CÚANDO [SOB 2018]Análisis de Datos SEO para el QUÉ y el CÚANDO [SOB 2018]
Análisis de Datos SEO para el QUÉ y el CÚANDO [SOB 2018]
 
realidad nacional
realidad nacionalrealidad nacional
realidad nacional
 

Similar a Rooted 2018 - Crawlino: The next level of crawling systems

Requisitos de implementacion esbelta
Requisitos de implementacion esbelta Requisitos de implementacion esbelta
Requisitos de implementacion esbelta RominaBurgos4
 
Portafolio y CV Matias Vega Barrera
Portafolio y CV Matias Vega BarreraPortafolio y CV Matias Vega Barrera
Portafolio y CV Matias Vega BarreraMatias Vega Barrera
 
Aporte coronel ivan infor ma tica emaus 20_11_20
Aporte coronel ivan infor ma tica emaus 20_11_20Aporte coronel ivan infor ma tica emaus 20_11_20
Aporte coronel ivan infor ma tica emaus 20_11_20IvanEmanuelCoronelGo
 
Aparatos de alumbradopor hidemaro torres
Aparatos de alumbradopor hidemaro torresAparatos de alumbradopor hidemaro torres
Aparatos de alumbradopor hidemaro torreshilde75
 
metodos d ealumbrado kristhian fernandez
metodos d ealumbrado kristhian fernandezmetodos d ealumbrado kristhian fernandez
metodos d ealumbrado kristhian fernandezkristhian fernandez
 
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...minideg
 
Presentación trabajos portafolio creativo minimalista elegante beige y gris.pdf
Presentación trabajos portafolio creativo minimalista elegante beige y gris.pdfPresentación trabajos portafolio creativo minimalista elegante beige y gris.pdf
Presentación trabajos portafolio creativo minimalista elegante beige y gris.pdfhanielcont
 
Curso: Cómo dar a conocer tu empresa sin gastarte un dineral en #publicidad
Curso: Cómo dar a conocer tu empresa sin gastarte un dineral en #publicidadCurso: Cómo dar a conocer tu empresa sin gastarte un dineral en #publicidad
Curso: Cómo dar a conocer tu empresa sin gastarte un dineral en #publicidadIsabel Martin
 
Informatica y convergencia tecnologica en el diseño g rafico
Informatica y convergencia tecnologica en el diseño g raficoInformatica y convergencia tecnologica en el diseño g rafico
Informatica y convergencia tecnologica en el diseño g raficoSofia Leguizamo
 
MiusDier_Miguel_M23S1_Fase4.pptx
MiusDier_Miguel_M23S1_Fase4.pptxMiusDier_Miguel_M23S1_Fase4.pptx
MiusDier_Miguel_M23S1_Fase4.pptxMickeyMouse428806
 
Institución educativa trabajo
Institución educativa trabajoInstitución educativa trabajo
Institución educativa trabajoanyiibg43
 
Institución educativa trabajo
Institución educativa trabajoInstitución educativa trabajo
Institución educativa trabajoanyiibg43
 

Similar a Rooted 2018 - Crawlino: The next level of crawling systems (20)

Requisitos de implementacion esbelta
Requisitos de implementacion esbelta Requisitos de implementacion esbelta
Requisitos de implementacion esbelta
 
Deck tapptime
Deck tapptimeDeck tapptime
Deck tapptime
 
Portafolio y CV Matias Vega Barrera
Portafolio y CV Matias Vega BarreraPortafolio y CV Matias Vega Barrera
Portafolio y CV Matias Vega Barrera
 
Aporte coronel ivan infor ma tica emaus 20_11_20
Aporte coronel ivan infor ma tica emaus 20_11_20Aporte coronel ivan infor ma tica emaus 20_11_20
Aporte coronel ivan infor ma tica emaus 20_11_20
 
Arquitectura Nicaraguense
Arquitectura NicaraguenseArquitectura Nicaraguense
Arquitectura Nicaraguense
 
Aparatos de alumbradopor hidemaro torres
Aparatos de alumbradopor hidemaro torresAparatos de alumbradopor hidemaro torres
Aparatos de alumbradopor hidemaro torres
 
metodos d ealumbrado kristhian fernandez
metodos d ealumbrado kristhian fernandezmetodos d ealumbrado kristhian fernandez
metodos d ealumbrado kristhian fernandez
 
Caña yestabulaciones.
Caña yestabulaciones.Caña yestabulaciones.
Caña yestabulaciones.
 
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
 
Base de datos
Base de datosBase de datos
Base de datos
 
Presentación trabajos portafolio creativo minimalista elegante beige y gris.pdf
Presentación trabajos portafolio creativo minimalista elegante beige y gris.pdfPresentación trabajos portafolio creativo minimalista elegante beige y gris.pdf
Presentación trabajos portafolio creativo minimalista elegante beige y gris.pdf
 
Curso: Cómo dar a conocer tu empresa sin gastarte un dineral en #publicidad
Curso: Cómo dar a conocer tu empresa sin gastarte un dineral en #publicidadCurso: Cómo dar a conocer tu empresa sin gastarte un dineral en #publicidad
Curso: Cómo dar a conocer tu empresa sin gastarte un dineral en #publicidad
 
Folleto cofaso
Folleto cofasoFolleto cofaso
Folleto cofaso
 
Marcos
MarcosMarcos
Marcos
 
Informatica y convergencia tecnologica en el diseño g rafico
Informatica y convergencia tecnologica en el diseño g raficoInformatica y convergencia tecnologica en el diseño g rafico
Informatica y convergencia tecnologica en el diseño g rafico
 
Michelle cueva
Michelle cuevaMichelle cueva
Michelle cueva
 
MiusDier_Miguel_M23S1_Fase4.pptx
MiusDier_Miguel_M23S1_Fase4.pptxMiusDier_Miguel_M23S1_Fase4.pptx
MiusDier_Miguel_M23S1_Fase4.pptx
 
Res277
Res277Res277
Res277
 
Institución educativa trabajo
Institución educativa trabajoInstitución educativa trabajo
Institución educativa trabajo
 
Institución educativa trabajo
Institución educativa trabajoInstitución educativa trabajo
Institución educativa trabajo
 

Más de Daniel Garcia (a.k.a cr0hn)

Rooted con 2020 - from the heaven to hell in the CI - CD
Rooted con 2020 - from the heaven to hell in the CI - CDRooted con 2020 - from the heaven to hell in the CI - CD
Rooted con 2020 - from the heaven to hell in the CI - CDDaniel Garcia (a.k.a cr0hn)
 
Ingenieria social aplicada: Mucho mas fácil de lo que parece
Ingenieria social aplicada: Mucho mas fácil de lo que pareceIngenieria social aplicada: Mucho mas fácil de lo que parece
Ingenieria social aplicada: Mucho mas fácil de lo que pareceDaniel Garcia (a.k.a cr0hn)
 
Ingeniería social aplicada: Mucho más fácil de lo que parece
Ingeniería social aplicada: Mucho más fácil de lo que pareceIngeniería social aplicada: Mucho más fácil de lo que parece
Ingeniería social aplicada: Mucho más fácil de lo que pareceDaniel Garcia (a.k.a cr0hn)
 
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesRootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesDaniel Garcia (a.k.a cr0hn)
 
Identificando y rompiendo servicios de las 4 capas de TCP/IP
Identificando y rompiendo servicios de las 4 capas de TCP/IPIdentificando y rompiendo servicios de las 4 capas de TCP/IP
Identificando y rompiendo servicios de las 4 capas de TCP/IPDaniel Garcia (a.k.a cr0hn)
 
Cybercamp 2015 - Python, hacking y sec-tools desde las trincheras
Cybercamp 2015 - Python, hacking y sec-tools desde las trincherasCybercamp 2015 - Python, hacking y sec-tools desde las trincheras
Cybercamp 2015 - Python, hacking y sec-tools desde las trincherasDaniel Garcia (a.k.a cr0hn)
 
Tu DevOp me da trabajo: Soy auditor de seguridad
Tu DevOp me da trabajo: Soy auditor de seguridadTu DevOp me da trabajo: Soy auditor de seguridad
Tu DevOp me da trabajo: Soy auditor de seguridadDaniel Garcia (a.k.a cr0hn)
 
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azulScapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azulDaniel Garcia (a.k.a cr0hn)
 
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y WordpressIII Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y WordpressDaniel Garcia (a.k.a cr0hn)
 
El poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilEl poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilDaniel Garcia (a.k.a cr0hn)
 

Más de Daniel Garcia (a.k.a cr0hn) (20)

Sonatype DevSecOps Leadership forum 2020
Sonatype DevSecOps Leadership forum 2020Sonatype DevSecOps Leadership forum 2020
Sonatype DevSecOps Leadership forum 2020
 
Rooted con 2020 - from the heaven to hell in the CI - CD
Rooted con 2020 - from the heaven to hell in the CI - CDRooted con 2020 - from the heaven to hell in the CI - CD
Rooted con 2020 - from the heaven to hell in the CI - CD
 
12 tricks to avoid hackers breaks your CI / CD
12 tricks to avoid hackers breaks your  CI / CD12 tricks to avoid hackers breaks your  CI / CD
12 tricks to avoid hackers breaks your CI / CD
 
Security in AWS Lambdas - NavajaNegra CON 2018
Security in AWS Lambdas - NavajaNegra CON 2018Security in AWS Lambdas - NavajaNegra CON 2018
Security in AWS Lambdas - NavajaNegra CON 2018
 
Ingenieria social aplicada: Mucho mas fácil de lo que parece
Ingenieria social aplicada: Mucho mas fácil de lo que pareceIngenieria social aplicada: Mucho mas fácil de lo que parece
Ingenieria social aplicada: Mucho mas fácil de lo que parece
 
Ingeniería social aplicada: Mucho más fácil de lo que parece
Ingeniería social aplicada: Mucho más fácil de lo que pareceIngeniería social aplicada: Mucho más fácil de lo que parece
Ingeniería social aplicada: Mucho más fácil de lo que parece
 
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesRootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
 
Identificando y rompiendo servicios de las 4 capas de TCP/IP
Identificando y rompiendo servicios de las 4 capas de TCP/IPIdentificando y rompiendo servicios de las 4 capas de TCP/IP
Identificando y rompiendo servicios de las 4 capas de TCP/IP
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
 
RootedCON 2016 - Broker & MQ injection
RootedCON 2016 - Broker & MQ injectionRootedCON 2016 - Broker & MQ injection
RootedCON 2016 - Broker & MQ injection
 
Hacking y python: Hacking de redes con Python
Hacking y python: Hacking de redes con PythonHacking y python: Hacking de redes con Python
Hacking y python: Hacking de redes con Python
 
Cybercamp 2015 - Python, hacking y sec-tools desde las trincheras
Cybercamp 2015 - Python, hacking y sec-tools desde las trincherasCybercamp 2015 - Python, hacking y sec-tools desde las trincheras
Cybercamp 2015 - Python, hacking y sec-tools desde las trincheras
 
Tu DevOp me da trabajo: Soy auditor de seguridad
Tu DevOp me da trabajo: Soy auditor de seguridadTu DevOp me da trabajo: Soy auditor de seguridad
Tu DevOp me da trabajo: Soy auditor de seguridad
 
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azulScapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
 
Topera: Evadiendo Snort con IPv6
Topera: Evadiendo Snort con IPv6Topera: Evadiendo Snort con IPv6
Topera: Evadiendo Snort con IPv6
 
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y WordpressIII Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
 
GoLismero: The Web Knife
GoLismero: The Web KnifeGoLismero: The Web Knife
GoLismero: The Web Knife
 
El poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilEl poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácil
 
Cybercam 2014
Cybercam 2014Cybercam 2014
Cybercam 2014
 
Introduccion muy básica a Python
Introduccion muy básica a PythonIntroduccion muy básica a Python
Introduccion muy básica a Python
 

Último

Realiza tu primera contribucion a la OCA
Realiza tu primera contribucion a la OCARealiza tu primera contribucion a la OCA
Realiza tu primera contribucion a la OCAMaxime Chambreuil
 
Las Tic en casa, las tics en diferentes ambitos
Las Tic en casa, las tics en diferentes ambitosLas Tic en casa, las tics en diferentes ambitos
Las Tic en casa, las tics en diferentes ambitosvikicarmine14
 
Taller crear carta de correspondencia.docx.pdf
Taller crear carta de correspondencia.docx.pdfTaller crear carta de correspondencia.docx.pdf
Taller crear carta de correspondencia.docx.pdfSEBASTIANMICOLTA
 
FACULTAD DE DERECHO MEXICALI. TRABAJO DE TECNOLOGIAS DE LA INVESTIGACION JUR...
FACULTAD DE DERECHO MEXICALI. TRABAJO DE  TECNOLOGIAS DE LA INVESTIGACION JUR...FACULTAD DE DERECHO MEXICALI. TRABAJO DE  TECNOLOGIAS DE LA INVESTIGACION JUR...
FACULTAD DE DERECHO MEXICALI. TRABAJO DE TECNOLOGIAS DE LA INVESTIGACION JUR...yaniraoceguera
 
Lista de datos (tecnología) combinación de...
Lista de datos (tecnología) combinación de...Lista de datos (tecnología) combinación de...
Lista de datos (tecnología) combinación de...NicolleAndrade7
 
Teñidos a Temperatura Ambiente y Descargables
Teñidos a Temperatura Ambiente y DescargablesTeñidos a Temperatura Ambiente y Descargables
Teñidos a Temperatura Ambiente y DescargablesCHEMPRO
 
Combinación de correspondencia Sebastián Pérez
Combinación de correspondencia Sebastián PérezCombinación de correspondencia Sebastián Pérez
Combinación de correspondencia Sebastián PérezSebastinPrez67
 
Desarrollo de Interfaces 2t Desarrollo Aplicaciones Móvilles
Desarrollo de Interfaces 2t Desarrollo Aplicaciones MóvillesDesarrollo de Interfaces 2t Desarrollo Aplicaciones Móvilles
Desarrollo de Interfaces 2t Desarrollo Aplicaciones MóvillesMaricarmen Sánchez Ruiz
 
Practica Web de la Sesión 2 , Creacion de base de datos
Practica Web de la Sesión 2 , Creacion de base de datosPractica Web de la Sesión 2 , Creacion de base de datos
Practica Web de la Sesión 2 , Creacion de base de datosChristianRivera122452
 
Videos de apoyo, actividad de tecnología
Videos de apoyo, actividad de tecnologíaVideos de apoyo, actividad de tecnología
Videos de apoyo, actividad de tecnologíaampiscastillo903
 
IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024Isidro Navarro
 
IT + IA, La integración de la inteligencia artificial en las redes de comunic...
IT + IA, La integración de la inteligencia artificial en las redes de comunic...IT + IA, La integración de la inteligencia artificial en las redes de comunic...
IT + IA, La integración de la inteligencia artificial en las redes de comunic...Educática
 
Carta de trabajo para los empleados.docx.pdf
Carta de trabajo para los empleados.docx.pdfCarta de trabajo para los empleados.docx.pdf
Carta de trabajo para los empleados.docx.pdfEmanuelminotta
 
Creación de una base de datos en el hosting.pptx
Creación de una base de datos en el hosting.pptxCreación de una base de datos en el hosting.pptx
Creación de una base de datos en el hosting.pptxALEJANDRAJOCELYNGUTI
 
Es una presentacion de memorias usb para booting
Es una presentacion de memorias usb para bootingEs una presentacion de memorias usb para booting
Es una presentacion de memorias usb para bootingcarlocarrillocacc
 
Operadores de Kubernetes: El poder de la automatización
Operadores de Kubernetes: El poder de la automatizaciónOperadores de Kubernetes: El poder de la automatización
Operadores de Kubernetes: El poder de la automatizaciónEdith Puclla
 
EJEMPLO CARTA DE CORRESPONDENCIA EN WORD
EJEMPLO CARTA DE CORRESPONDENCIA EN WORDEJEMPLO CARTA DE CORRESPONDENCIA EN WORD
EJEMPLO CARTA DE CORRESPONDENCIA EN WORDlaurarojas788
 
Premio (tecnología actividad)combinación...
Premio (tecnología actividad)combinación...Premio (tecnología actividad)combinación...
Premio (tecnología actividad)combinación...NicolleAndrade7
 
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Telefónica
 

Último (20)

Realiza tu primera contribucion a la OCA
Realiza tu primera contribucion a la OCARealiza tu primera contribucion a la OCA
Realiza tu primera contribucion a la OCA
 
Las Tic en casa, las tics en diferentes ambitos
Las Tic en casa, las tics en diferentes ambitosLas Tic en casa, las tics en diferentes ambitos
Las Tic en casa, las tics en diferentes ambitos
 
Taller crear carta de correspondencia.docx.pdf
Taller crear carta de correspondencia.docx.pdfTaller crear carta de correspondencia.docx.pdf
Taller crear carta de correspondencia.docx.pdf
 
FACULTAD DE DERECHO MEXICALI. TRABAJO DE TECNOLOGIAS DE LA INVESTIGACION JUR...
FACULTAD DE DERECHO MEXICALI. TRABAJO DE  TECNOLOGIAS DE LA INVESTIGACION JUR...FACULTAD DE DERECHO MEXICALI. TRABAJO DE  TECNOLOGIAS DE LA INVESTIGACION JUR...
FACULTAD DE DERECHO MEXICALI. TRABAJO DE TECNOLOGIAS DE LA INVESTIGACION JUR...
 
Lista de datos (tecnología) combinación de...
Lista de datos (tecnología) combinación de...Lista de datos (tecnología) combinación de...
Lista de datos (tecnología) combinación de...
 
Teñidos a Temperatura Ambiente y Descargables
Teñidos a Temperatura Ambiente y DescargablesTeñidos a Temperatura Ambiente y Descargables
Teñidos a Temperatura Ambiente y Descargables
 
Combinación de correspondencia Sebastián Pérez
Combinación de correspondencia Sebastián PérezCombinación de correspondencia Sebastián Pérez
Combinación de correspondencia Sebastián Pérez
 
Desarrollo de Interfaces 2t Desarrollo Aplicaciones Móvilles
Desarrollo de Interfaces 2t Desarrollo Aplicaciones MóvillesDesarrollo de Interfaces 2t Desarrollo Aplicaciones Móvilles
Desarrollo de Interfaces 2t Desarrollo Aplicaciones Móvilles
 
Practica Web de la Sesión 2 , Creacion de base de datos
Practica Web de la Sesión 2 , Creacion de base de datosPractica Web de la Sesión 2 , Creacion de base de datos
Practica Web de la Sesión 2 , Creacion de base de datos
 
Videos de apoyo, actividad de tecnología
Videos de apoyo, actividad de tecnologíaVideos de apoyo, actividad de tecnología
Videos de apoyo, actividad de tecnología
 
IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024
 
IT + IA, La integración de la inteligencia artificial en las redes de comunic...
IT + IA, La integración de la inteligencia artificial en las redes de comunic...IT + IA, La integración de la inteligencia artificial en las redes de comunic...
IT + IA, La integración de la inteligencia artificial en las redes de comunic...
 
Herramientas tecnologicas para los abogados.pptx
Herramientas tecnologicas para los abogados.pptxHerramientas tecnologicas para los abogados.pptx
Herramientas tecnologicas para los abogados.pptx
 
Carta de trabajo para los empleados.docx.pdf
Carta de trabajo para los empleados.docx.pdfCarta de trabajo para los empleados.docx.pdf
Carta de trabajo para los empleados.docx.pdf
 
Creación de una base de datos en el hosting.pptx
Creación de una base de datos en el hosting.pptxCreación de una base de datos en el hosting.pptx
Creación de una base de datos en el hosting.pptx
 
Es una presentacion de memorias usb para booting
Es una presentacion de memorias usb para bootingEs una presentacion de memorias usb para booting
Es una presentacion de memorias usb para booting
 
Operadores de Kubernetes: El poder de la automatización
Operadores de Kubernetes: El poder de la automatizaciónOperadores de Kubernetes: El poder de la automatización
Operadores de Kubernetes: El poder de la automatización
 
EJEMPLO CARTA DE CORRESPONDENCIA EN WORD
EJEMPLO CARTA DE CORRESPONDENCIA EN WORDEJEMPLO CARTA DE CORRESPONDENCIA EN WORD
EJEMPLO CARTA DE CORRESPONDENCIA EN WORD
 
Premio (tecnología actividad)combinación...
Premio (tecnología actividad)combinación...Premio (tecnología actividad)combinación...
Premio (tecnología actividad)combinación...
 
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
Índice del libro: Máxima Seguridad en Windows: Secretos Técnicos. 6ª Edición ...
 

Rooted 2018 - Crawlino: The next level of crawling systems

  • 1. T H E N E X T L E V E L O F T H E C R A W L I N G S Y S T E M S C R A W L I N O
  • 2. < / S P A M > M E ( C R 0 H N ) < / S P A M > • C r e a t o r / c o - c r e a t o r m a n y s e c u r i t y t o o l s • S e c u r i t y r e s e a r c h e r / e t h i c a l h a c k i n g • C h a p t e r L e a d e r O W A S P M a d r i d • P y t h o n d e v e l o p e r y t e a c h e r • W o r k i n g o n B B V A - L a b s https://www.linkedin.com/in/garciagarciadaniel @ggdaniel
  • 5. @ggdaniel ¿ Q U É E S U N C R A W L E R ? "A Web crawler, sometimes called a spider, is an Internet bot that systematically browses the World Wide Web, typically for the purpose of Web indexing (web spidering).”
  • 6. @ggdaniel ¿ Q U É E S U N C R A W L E R ? "A Web crawler, sometimes called a spider, is an Internet bot that systematically browses the World Wide Web, typically for the purpose of Web indexing (web spidering).”
  • 7. https://www.linkedin.com/in/garciagarciadaniel @ggdaniel ¿ Q U É H A Y D E N U E V O , V I E J O ?
  • 8. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ?
  • 9. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ? • Frameworks farragosos • Necesitas sabre programar (más o menos bien) • Solo para web
  • 10. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ? • Frameworks farragosos • Necesitas sabre programar (más o menos bien) • Solo para web • Horribles de mantener
  • 11. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ?
  • 12. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ?
  • 13. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ?
  • 14. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ? https://jarroba.com/scraping-java-jsoup-ejemplos/
  • 15. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ?
  • 16. @ggdaniel ¿ Q U E H A D E N U E V O , V I E J O ?
  • 18. @ggdaniel N U E V A S R E G L A S
  • 19. @ggdaniel N U E V A S R E G L A S
  • 20. @ggdaniel N U E V A S R E G L A S
  • 21. @ggdaniel N U E V A S R E G L A S
  • 22. @ggdaniel N U E V A S R E G L A S R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L
  • 23. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L N U E V A S R E G L A S
  • 24. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B N U E V A S R E G L A S
  • 25. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B N U E V A S R E G L A S
  • 26. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B R E G L A - 3 : L A M A N T E N I B I L I D A D E S U N A M Á X I M A N U E V A S R E G L A S
  • 27. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B R E G L A - 3 : L A M A N T E N I B I L I D A D E S U N A M Á X I M A N U E V A S R E G L A S
  • 28. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B R E G L A - 3 : L A M A N T E N I B I L I D A D E S U N A M Á X I M A R E G L A - 4 : N O R E I N V E N T A R L A R U E D A N U E V A S R E G L A S
  • 29. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L
  • 30. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L
  • 31. @ggdaniel R E G L A - 1 : P R O G R A M A R D E B E R Í A S E R O P C I O N A L
  • 32. @ggdaniel R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B
  • 33. @ggdaniel R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B
  • 34. @ggdaniel R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B Port: 22
  • 35. @ggdaniel R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B Port: 22 Ports: 8000, …
  • 36. @ggdaniel R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B Port: 22 Ports: 8000, … Port: 5673, …
  • 37. @ggdaniel R E G L A - 2 : U N C R A W L E R N O S O L O E S W E B Port: 22 Ports: 8000, … Port: 5673, … Ports: ….
  • 38. @ggdaniel R E G L A - 3 : L A M A N T E N I B I L I D A D E S U N A M Á X I M A
  • 39. @ggdaniel R E G L A - 3 : L A M A N T E N I B I L I D A D E S U N A M Á X I M A Legibilidad
  • 40. @ggdaniel R E G L A - 3 : L A M A N T E N I B I L I D A D E S U N A M Á X I M A Legibilidad Fácil de aprender
  • 41. @ggdaniel R E G L A - 3 : L A M A N T E N I B I L I D A D E S U N A M Á X I M A Legibilidad Fácil de aprender
  • 42. @ggdaniel R E G L A - 4 : N O R E I N V E N T A R L A R U E D A
  • 43. @ggdaniel R E G L A - 4 : N O R E I N V E N T A R L A R U E D A
  • 44. @ggdaniel R E G L A - 4 : N O R E I N V E N T A R L A R U E D A
  • 46. @ggdaniel ¿ Q U É E S C R A W L I N O ?
  • 47. @ggdaniel ¿ Q U É E S C R A W L I N O ? Un sistema de crawling desarrollado desde cero… …que cumple las 4 reglas
  • 48. @ggdaniel ¿ Q U É E S C R A W L I N O ? Un sistema de crawling desarrollado desde cero… …que cumple las 4 reglas
  • 49. @ggdaniel E N O T R A S P A L A B R A S … “Una navaja suiza que nos permite crear herramientas y automatizaciones usando ficheros de definición de reglas.”
  • 50. @ggdaniel E N O T R A S P A L A B R A S … “Una navaja suiza que nos permite crear herramientas y automatizaciones usando ficheros de definición de reglas.”
  • 51. @ggdaniel L A S P R E S E N T A C I O N E S
  • 52. @ggdaniel L A S P R E S E N T A C I O N E S C r a w l i n o
  • 53. @ggdaniel L A S P R E S E N T A C I O N E S C r a w l i n o
  • 54. @ggdaniel ¿ Q U É E S C R A W L I N O ? https://github.com/crawlino
  • 55. @ggdaniel ¿ Q U É E S C R A W L I N O ? https://github.com/crawlino Alpha
  • 56. @ggdaniel ¿ Q U É E S C R A W L I N O ? https://github.com/crawlino CRAWLINO Alpha
  • 58. @ggdaniel R E S U M E N R Á P I D O - C O N C E P T O CRAWLINO
  • 59. @ggdaniel R E S U M E N R Á P I D O - C O N C E P T O CRAWLINO Definition
  • 60. @ggdaniel R E S U M E N R Á P I D O - C O N C E P T O CRAWLINO Definition Actions
  • 61. @ggdaniel I N T E R N A L S - B R I E F CRAWLINO
  • 62. @ggdaniel I N T E R N A L S - B R I E F Crawlers CRAWLINO
  • 63. @ggdaniel I N T E R N A L S - B R I E F Crawlers Engine CRAWLINO
  • 64. @ggdaniel I N T E R N A L S - B R I E F Crawlers Engine Plugins CRAWLINO
  • 65. @ggdaniel R E S U M E N R Á P I D O - E J E M P L O CRAWLINO
  • 66. @ggdaniel R E S U M E N R Á P I D O - E J E M P L O CRAWLINO
  • 67. @ggdaniel R E S U M E N R Á P I D O - E J E M P L O CRAWLINO Dónde
  • 68. @ggdaniel R E S U M E N R Á P I D O - E J E M P L O CRAWLINO Dónde Cómo
  • 69. @ggdaniel R E S U M E N R Á P I D O - E J E M P L O CRAWLINO Dónde Cómo Qué
  • 70. @ggdaniel C O N C E P T O - S T E P S CRAWLINO Dónde Cómo Qué
  • 71. @ggdaniel C O N C E P T O - S T E P S CRAWLINO Dónde Cómo Qué De qué manera Qué retengo Cómo reacciono
  • 72. @ggdaniel C O N C E P T O - S T E P S CRAWLINO Dónde Cómo Qué De qué manera Qué retengo Cómo reacciono C O N F I GStep 1
  • 73. @ggdaniel C O N C E P T O - S T E P S CRAWLINO Dónde Cómo Qué De qué manera Qué retengo Cómo reacciono C O N F I G S O U R C E S Step 1 Step 2
  • 74. @ggdaniel C O N C E P T O - S T E P S CRAWLINO Dónde Cómo Qué De qué manera Qué retengo Cómo reacciono C O N F I G S O U R C E S I N P U T Step 1 Step 2 Step 3
  • 75. @ggdaniel C O N C E P T O - S T E P S CRAWLINO Dónde Cómo Qué De qué manera Qué retengo Cómo reacciono C O N F I G S O U R C E S I N P U T E X T R A C T O R S Step 1 Step 2 Step 3 Step 4
  • 76. @ggdaniel C O N C E P T O - S T E P S CRAWLINO Dónde Cómo Qué De qué manera Qué retengo Cómo reacciono C O N F I G S O U R C E S I N P U T E X T R A C T O R S M O D E L Step 1 Step 2 Step 3 Step 4 Step 5
  • 77. @ggdaniel C O N C E P T O - S T E P S CRAWLINO Dónde Cómo Qué De qué manera Qué retengo Cómo reacciono C O N F I G S O U R C E S I N P U T E X T R A C T O R S M O D E L Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 H O O K S
  • 78. @ggdaniel M O D E L O D E F A S E S C O N F I G S O U R C E S I N P U T E X T R A C T O R S M O D E L Crawling global config actions Steps Locations where to get the data How to get the data What data want to extract Action to take after executionH O O K S How to store data in a database CRAWLINO
  • 79. @ggdaniel E J E M P L O - E N U M E R A C I Ó N D E U S U A R I O S C O N F I G S O U R C E S I N P U T E X T R A C T O R S M O D E L - Steps http://my_web_site.com/login.php?user=X web Regex: finding 200 Notify by eMail Store results in MongoDB CRAWLINO H O O K S
  • 80. @ggdaniel E J E M P L O - E S C A N E O D E P U E R T O S C O N F I G S O U R C E S I N P U T E X T R A C T O R S M O D E L - Steps 239.12.1.239 Open Socket Finding port status ‘open’ Notify by slack Store results in MongoDB CRAWLINO H O O K S
  • 81. @ggdaniel E J E M P L O - E X P L O T A C I Ó N V U L N E R A B I L I D A D E S C O N F I G S O U R C E S I N P U T E X T R A C T O R S M O D E L - Steps www.my_server.com domain Get apache specific version Launch Metasploit Store results in MongoDB CRAWLINO H O O K S
  • 82. @ggdaniel CRAWLINO I N S T A L A N D O C R A W L I N O
  • 83. @ggdaniel CRAWLINO D E M O 1 - C R A W L E R S E N C I L L O
  • 84. @ggdaniel CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=1 001.yaml D E M O 1 - C R A W L E R S E N C I L L O
  • 85. @ggdaniel CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=1 001.yaml > crawlino -v rooted/001.yaml > python dummy_site_ids.py Server: Crawlino command: D E M O 1 - C R A W L E R S E N C I L L O
  • 86. @ggdaniel I N T R O D U C C I Ó N A L O S G E N E R A D O R E S CRAWLINO
  • 87. @ggdaniel I N T R O D U C C I Ó N A L O S G E N E R A D O R E S • Capaces de generar datos. • Empotrados en el propio fichero de definición CRAWLINO
  • 88. @ggdaniel I N T R O D U C C I Ó N A L O S G E N E R A D O R E S • Capaces de generar datos. • Empotrados en el propio fichero de definición CRAWLINO • Generadores actuales: ➡ Textos aleatorios ➡ Rangos numéricos ➡ Valores específicos ➡ Wordlists
  • 89. @ggdaniel CRAWLINO D E M O 1 - C R A W L E R S E N C I L L O + G E N E R A D O R E S
  • 90. @ggdaniel CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=$generator(numeric, 1, 10) 002.yaml D E M O 1 - C R A W L E R S E N C I L L O + G E N E R A D O R E S
  • 91. @ggdaniel CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=$generator(numeric, 1, 10) 002.yaml D E M O 1 - C R A W L E R S E N C I L L O + G E N E R A D O R E S
  • 92. @ggdaniel CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=$generator(numeric, 1, 10) 002.yaml > crawlino -v rooted/002.yaml > python dummy_site_ids.py Server: Crawlino command: D E M O 1 - C R A W L E R S E N C I L L O + G E N E R A D O R E S
  • 93. @ggdaniel D E M O 1 - C R A W L E R E X T E N S O + G E N E R A D O R E S ( I ) CRAWLINO
  • 94. @ggdaniel D E M O 1 - C R A W L E R E X T E N S O + G E N E R A D O R E S ( I ) CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET timeout: 0.2 httpHeaders: Host: $generator(random, string, 20, 20) url: /?id=$generator(numeric, 1, 10) 003.yaml
  • 95. @ggdaniel D E M O 1 - C R A W L E R E X T E N S O + G E N E R A D O R E S ( I ) CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET timeout: 0.2 httpHeaders: Host: $generator(random, string, 20, 20) url: /?id=$generator(numeric, 1, 10) 003.yaml
  • 96. @ggdaniel D E M O 1 - C R A W L E R E X T E N S O + G E N E R A D O R E S ( I ) CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET timeout: 0.2 httpHeaders: Host: $generator(random, string, 20, 20) url: /?id=$generator(numeric, 1, 10) 003.yaml > crawlino -v rooted/003.yaml > nc -v -l -k 10000 Server: Crawlino command:
  • 97. @ggdaniel D E M O 1 - C R A W L E R E X T E N S O + G E N E R A D O R E S ( I I ) CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET timeout: 0.2 httpHeaders: Host: $generator(random, string, 20, 20) url: /?id=$generator(numeric, 1, 10) 003.yaml > crawlino -w processes -c 10 -v rooted/003.yaml > nc -v -l -k 10000 Server: Crawlino command:
  • 98. @ggdaniel D E M O 1 - C R A W L E R E X T E N S O + G E N E R A D O R E S ( I I ) CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET timeout: 0.2 httpHeaders: Host: $generator(random, string, 20, 20) url: /?id=$generator(numeric, 1, 10) 003.yaml > crawlino -w processes -c 10 -v rooted/003.yaml > nc -v -l -k 10000 Server: Crawlino command:
  • 99. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I ) CRAWLINO
  • 100. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I ) CRAWLINO Supuesto 1 El servicio dummy_site_ids que devolverá un código 200 un el id sea 9. En otro caso devolverá un 404
  • 101. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I ) CRAWLINO Supuesto 1 El servicio dummy_site_ids que devolverá un código 200 un el id sea 9. En otro caso devolverá un 404 Paso 1 - Probar en Postman
  • 102. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I ) CRAWLINO Supuesto 1 El servicio dummy_site_ids que devolverá un código 200 un el id sea 9. En otro caso devolverá un 404
  • 103. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I ) CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=$generator(numeric, 1, 20) extractors: - ruleSet: name: rule1 description: check if server returns 200 mapTo: result inputVar: status_code rules: - type: regex config: order: 1 expressions: - 200 Supuesto 1 El servicio dummy_site_ids que devolverá un código 200 un el id sea 9. En otro caso devolverá un 404
  • 104. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I ) CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=$generator(numeric, 1, 20) extractors: - ruleSet: name: rule1 description: check if server returns 200 mapTo: result inputVar: status_code rules: - type: regex config: order: 1 expressions: - 200 Supuesto 1 El servicio dummy_site_ids que devolverá un código 200 un el id sea 9. En otro caso devolverá un 404
  • 105. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I ) CRAWLINO name: SimpleWebRequest description: Do a simple HTTP request sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=$generator(numeric, 1, 20) extractors: - ruleSet: name: rule1 description: check if server returns 200 mapTo: result inputVar: status_code rules: - type: regex config: order: 1 expressions: - 200 > crawlino -v rooted/004.yaml > python dummy_site_ids.py Server: Crawlino command: Supuesto 1 El servicio dummy_site_ids que devolverá un código 200 un el id sea 9. En otro caso devolverá un 404
  • 106. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I ) CRAWLINO Supuesto 2 Igual que supuesto 1, pero además, queremos obtener valor del id que ha devuelto 200
  • 107. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO Supuesto 2 Igual que supuesto 1, pero además, queremos obtener valor del id que ha devuelto 200
  • 108. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO name: SimpleWebRequest sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=$generator(numeric, 1, 20) extractors: - ruleSet: name: rule1 description: check if server returns 200 mapTo: result report: request.url inputVar: status_code rules: - type: regex config: order: 1 expressions: - 200 Supuesto 2 Igual que supuesto 1, pero además, queremos obtener valor del id que ha devuelto 200
  • 109. @ggdaniel D E M O 2 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO name: SimpleWebRequest sources: - type: web config: url: http: //127.0.0.1:10000 input: type: web config: httpMethod: GET url: /?id=$generator(numeric, 1, 20) extractors: - ruleSet: name: rule1 description: check if server returns 200 mapTo: result report: request.url inputVar: status_code rules: - type: regex config: order: 1 expressions: - 200 > crawlino -v rooted/005.yaml > python dummy_site_ids.py Server: Crawlino command: Supuesto 2 Igual que supuesto 1, pero además, queremos obtener valor del id que ha devuelto 200
  • 110. @ggdaniel D E M O 3 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO
  • 111. @ggdaniel D E M O 3 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO Supuesto 3 Quiero hacer un bruteforzing de usuario / contraseña. El sitio web me devolverá el texto “Autentication done” si el user / pass es correcto
  • 112. @ggdaniel D E M O 3 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO Paso 1 - Probar en Postman Supuesto 3 Quiero hacer un bruteforzing de usuario / contraseña. El sitio web me devolverá el texto “Autentication done” si el user / pass es correcto
  • 113. @ggdaniel D E M O 3 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO Supuesto 3 Quiero hacer un bruteforzing de usuario / contraseña. El sitio web me devolverá el texto “Autentication done” si el user / pass es correcto
  • 114. @ggdaniel D E M O 3 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO name: SimpleWebRequest sources: - type: web config: url: http: //127.0.0.1:11000 input: type: web config: httpMethod: POST contentType: json data: '{"user": "admin", "password": "$generator(wordlist, password-small)"}' url: /user/auth extractors: - ruleSet: name: rule1 description: check if server returns 200 mapTo: myVar inputVar: content report: request.data rules: - type: regex config: order: 1 expressions: - Authentication done Supuesto 3 Quiero hacer un bruteforzing de usuario / contraseña. El sitio web me devolverá el texto “Autentication done” si el user / pass es correcto
  • 115. @ggdaniel D E M O 3 - C R A W L E R Y F I L T R O S ( I I ) CRAWLINO name: SimpleWebRequest sources: - type: web config: url: http: //127.0.0.1:11000 input: type: web config: httpMethod: POST contentType: json data: '{"user": "admin", "password": "$generator(wordlist, password-small)"}' url: /user/auth extractors: - ruleSet: name: rule1 description: check if server returns 200 mapTo: myVar inputVar: content report: request.data rules: - type: regex config: order: 1 expressions: - Authentication done > crawlino -v rooted/006.yaml > python dummy_site_user_auth.py Server: Crawlino command: Supuesto 3 Quiero hacer un bruteforzing de usuario / contraseña. El sitio web me devolverá el texto “Autentication done” si el user / pass es correcto
  • 116. @ggdaniel D E M O 4 - C R A W L E R Y O T R O S P R O T O C O L O S ( I ) CRAWLINO
  • 117. @ggdaniel D E M O 4 - C R A W L E R Y O T R O S P R O T O C O L O S ( I ) CRAWLINO Supuesto 4 Quiero hacer un escaneo de puertos de un Host
  • 118. @ggdaniel D E M O 4 - C R A W L E R Y O T R O S P R O T O C O L O S ( I ) CRAWLINO Supuesto 4 Quiero hacer un escaneo de puertos de un Host
  • 119. @ggdaniel D E M O 4 - C R A W L E R Y O T R O S P R O T O C O L O S ( I ) CRAWLINO name: BasicScrappingCrawler sources: - type: domain config: domain: 127.0.0.1 input: type: raw_socket config: port: $generator(numeric, 9999, 10010) proto: tcp timeout: 0.05 extractors: - ruleSet: name: rule1 description: detect an open port mapTo: myVar report: original inputVar: status rules: - type: regex config: expressions: - open Supuesto 4 Quiero hacer un escaneo de puertos de un Host
  • 120. @ggdaniel D E M O 4 - C R A W L E R Y O T R O S P R O T O C O L O S ( I ) CRAWLINO name: BasicScrappingCrawler sources: - type: domain config: domain: 127.0.0.1 input: type: raw_socket config: port: $generator(numeric, 9999, 10010) proto: tcp timeout: 0.05 extractors: - ruleSet: name: rule1 description: detect an open port mapTo: myVar report: original inputVar: status rules: - type: regex config: expressions: - open > crawlino -v rooted/007.yaml > python dummy_site_ids.py Server: Crawlino command: Supuesto 4 Quiero hacer un escaneo de puertos de un Host
  • 121. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L O S ( I I ) CRAWLINO
  • 122. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L O S ( I I ) CRAWLINO Supuesto 5 Detectar puerto del servidor Redis abierto y comprobar si se ha ejecutado un comando
  • 123. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L O S ( I I ) CRAWLINO Supuesto 5 Detectar puerto del servidor Redis abierto y comprobar si se ha ejecutado un comando
  • 124. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L O S ( I I ) CRAWLINO name: RedisBasicScan sources: - type: domain config: domain: 127.0.0.1 input: type: raw_socket config: port: $generator(numeric, 6378, 6380) proto: tcp timeout: 0.05 data: "$4rnINFOrn" extractors: - ruleSet: name: rule1 description: detect an open port mapTo: redisVersion report: group inputVar: data rules: - type: regex config: reportGroup: 2 expressions: - (redis_version:)([d.]+)(r) Supuesto 5 Detectar puerto del servidor Redis abierto y comprobar si se ha ejecutado un comando
  • 125. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L O S ( I I ) CRAWLINO name: RedisBasicScan sources: - type: domain config: domain: 127.0.0.1 input: type: raw_socket config: port: $generator(numeric, 6378, 6380) proto: tcp timeout: 0.05 data: "$4rnINFOrn" extractors: - ruleSet: name: rule1 description: detect an open port mapTo: redisVersion report: group inputVar: data rules: - type: regex config: reportGroup: 2 expressions: - (redis_version:)([d.]+)(r) > crawlino -v rooted/008.yaml > docker run -d -p 6379:6379 redis Server: Crawlino command: Supuesto 5 Detectar puerto del servidor Redis abierto y comprobar si se ha ejecutado un comando
  • 126. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L S ( I I ) CRAWLINO
  • 127. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L S ( I I ) CRAWLINO Supuesto 6 Queremos detectar redis abiertos en un rango de red
  • 128. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L S ( I I ) CRAWLINO Supuesto 6 Queremos detectar redis abiertos en un rango de red
  • 129. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L S ( I I ) CRAWLINO name: RedisBasicScan sources: - type: ip config: ip: 127.0.0.$generator(numeric, 1, 4) input: type: raw_socket config: port: 6379 proto: tcp timeout: 0.05 data: "$4rnINFOrn" extractors: - ruleSet: name: rule1 description: detect an open port mapTo: redisVersion report: host inputVar: data rules: - type: regex config: reportGroup: 2 expressions: - (redis_version:)([d.]+)(r) Supuesto 6 Queremos detectar redis abiertos en un rango de red
  • 130. @ggdaniel D E M O 5 - C R A W L E R Y O T R O S P R O T O C O L S ( I I ) CRAWLINO name: RedisBasicScan sources: - type: ip config: ip: 127.0.0.$generator(numeric, 1, 4) input: type: raw_socket config: port: 6379 proto: tcp timeout: 0.05 data: "$4rnINFOrn" extractors: - ruleSet: name: rule1 description: detect an open port mapTo: redisVersion report: host inputVar: data rules: - type: regex config: reportGroup: 2 expressions: - (redis_version:)([d.]+)(r) > crawlino -v rooted/009.yaml > docker run -d -p 6379:6379 redis Server: Crawlino command: Supuesto 6 Queremos detectar redis abiertos en un rango de red
  • 131. @ggdaniel V A R I A B L E S CRAWLINO
  • 132. @ggdaniel V A R I A B L E S • Crawlino es capaz de resolver variables de entorno en el fichero de configuración CRAWLINO
  • 133. @ggdaniel V A R I A B L E S • Crawlino es capaz de resolver variables de entorno en el fichero de configuración CRAWLINO • La variables pueden ser pasadas por el propio sistema operativo o a través de Crawlino
  • 134. @ggdaniel V A R I A B L E S • Crawlino es capaz de resolver variables de entorno en el fichero de configuración CRAWLINO • La variables pueden ser pasadas por el propio sistema operativo o a través de Crawlino
  • 135. @ggdaniel D E M O 6 - H O O K S CRAWLINO
  • 136. @ggdaniel D E M O 6 - H O O K S CRAWLINO Supuesto 7 Queremos enviar un mail que nos notifique Redis abiertos en nuestra red
  • 137. @ggdaniel D E M O 6 - H O O K S CRAWLINO 010.yaml Supuesto 7 Queremos enviar un mail que nos notifique Redis abiertos en nuestra red
  • 138. @ggdaniel D E M O 6 - H O O K S CRAWLINO name: RedisBasicScan … extractors: - ruleSet: name: rule1 mapTo: redisVersion report: host inputVar: data rules: - type: regex config: reportGroup: 2 expressions: - (redis_version:)([d.]+)(r) hooks: - type: mail config: from: $FROM_MAIL$ to: $TO_MAIL$ subject: Host with Redis open! bodyField: redisVersion server: user: $FROM_MAIL$ smtp: smtp.gmail.com password: $MAIL_PASSWORD$ 010.yaml Supuesto 7 Queremos enviar un mail que nos notifique Redis abiertos en nuestra red
  • 139. @ggdaniel D E M O 6 - H O O K S CRAWLINO name: RedisBasicScan … extractors: - ruleSet: name: rule1 mapTo: redisVersion report: host inputVar: data rules: - type: regex config: reportGroup: 2 expressions: - (redis_version:)([d.]+)(r) hooks: - type: mail config: from: $FROM_MAIL$ to: $TO_MAIL$ subject: Host with Redis open! bodyField: redisVersion server: user: $FROM_MAIL$ smtp: smtp.gmail.com password: $MAIL_PASSWORD$ 010.yaml > docker run -d -p 6379:6379 redis Server: Crawlino command: > crawlino -e FROM_MAIL=cr0hn@cr0hn.com -e TO_MAIL=daniel@abirtone.com -E .env -v rooted/010.yaml Supuesto 7 Queremos enviar un mail que nos notifique Redis abiertos en nuestra red
  • 140. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N CRAWLINO
  • 141. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N CRAWLINO Supuesto 8 Quiero reutilizar definiciones de crawlers anteriores. Completas o parciales
  • 142. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : C O M P L E T O CRAWLINO
  • 143. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : C O M P L E T O CRAWLINO name: BaseWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: $TARGER$:10000 input: type: web config: httpMethod: GET timeout: 0.2 httpHeaders: Host: $generator(random, string, 20, 20) url: /?id=$generator(numeric, 1, 10) base-crawler.yaml
  • 144. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : C O M P L E T O CRAWLINO name: BaseWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: $TARGER$:10000 input: type: web config: httpMethod: GET timeout: 0.2 httpHeaders: Host: $generator(random, string, 20, 20) url: /?id=$generator(numeric, 1, 10) base-crawler.yaml
  • 145. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : C O M P L E T O CRAWLINO name: BaseWebRequest description: Do a simple HTTP request tags: - general - basic sources: - type: web config: url: $TARGER$:10000 input: type: web config: httpMethod: GET timeout: 0.2 httpHeaders: Host: $generator(random, string, 20, 20) url: /?id=$generator(numeric, 1, 10) base-crawler.yaml name: MyCustomCrawler description: My custom crawler tags: - custom extends: base-crawler.yaml input: config: httpHeaders: Content-Type: application/x- www-form- urlencoded my-crawler.yaml
  • 146. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : P A R T I A L S CRAWLINO
  • 147. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : P A R T I A L S CRAWLINO - type: web config: url: $TARGER$:10000 partial-port-1000.yaml
  • 148. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : P A R T I A L S CRAWLINO - type: web config: url: $TARGER$:10000 partial-port-1000.yaml - type: mail config: from: $FROM_MAIL$ to: $TO_MAIL$ subject: Host with Redis open! bodyField: redisVersion server: user: $FROM_MAIL$ smtp: smtp.gmail.com password: $MAIL_PASSWORD$ partial-mail.yaml
  • 149. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : P A R T I A L S CRAWLINO - type: web config: url: $TARGER$:10000 partial-port-1000.yaml name: MyCustomPartialCrawler sources: - type: $import(partial-port-1000) input: type: raw_socket config: port: 6379 proto: tcp timeout: 0.05 data: "$4rnINFOrn" hooks: - type: $import(partial-mail) my-partial-crawler.yaml - type: mail config: from: $FROM_MAIL$ to: $TO_MAIL$ subject: Host with Redis open! bodyField: redisVersion server: user: $FROM_MAIL$ smtp: smtp.gmail.com password: $MAIL_PASSWORD$ partial-mail.yaml
  • 150. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : C A T Á L O G O CRAWLINO
  • 151. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : C A T Á L O G O CRAWLINO Búsqueda de crawlers completos > crawlino-search crawler redis-scanner
  • 152. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : C A T Á L O G O CRAWLINO Búsqueda de crawlers completos > crawlino-search crawler redis-scanner Búsqueda de partials > crawlino-search partial slack
  • 153. @ggdaniel E J E M P L O 7 - R E U T I L I Z A C I Ó N : : C A T Á L O G O CRAWLINO Búsqueda de crawlers completos > crawlino-search crawler redis-scanner Búsqueda de partials > crawlino-search partial slack Búsqueda de plugins > crawlino-search plugins metasploit
  • 155. @ggdaniel CRAWLINO P R Ó X I M A S V E R S I O N S
  • 156. @ggdaniel CRAWLINO P R Ó X I M A S V E R S I O N S • Crear más plugins, generadores, hooks…
  • 157. @ggdaniel CRAWLINO P R Ó X I M A S V E R S I O N S • Crear más plugins, generadores, hooks… • Trabajo en modo distribuido y multi-máquina
  • 158. @ggdaniel CRAWLINO P R Ó X I M A S V E R S I O N S • Crear más plugins, generadores, hooks… • Trabajo en modo distribuido y multi-máquina • Modo servidor con API
  • 159. @ggdaniel CRAWLINO P R Ó X I M A S V E R S I O N S • Crear más plugins, generadores, hooks… • Trabajo en modo distribuido y multi-máquina • Modo servidor con API • Interceptar Hooks de Github / Bitbucket cuando se produce un PUSH
  • 160. @ggdaniel CRAWLINO P R Ó X I M A S V E R S I O N S • Crear más plugins, generadores, hooks… • Trabajo en modo distribuido y multi-máquina • Modo servidor con API • Interceptar Hooks de Github / Bitbucket cuando se produce un PUSH • Repositorio centralizador de Plugins y Crawlers de ejemplo
  • 161. @ggdaniel CRAWLINO P R Ó X I M A S V E R S I O N S • Crear más plugins, generadores, hooks… • Trabajo en modo distribuido y multi-máquina • Modo servidor con API • Interceptar Hooks de Github / Bitbucket cuando se produce un PUSH • Repositorio centralizador de Plugins y Crawlers de ejemplo Beta Beta Beta
  • 163. @ggdaniel CRAWLINO C O N C L U S I O N E S
  • 164. @ggdaniel CRAWLINO C O N C L U S I O N E S • La cosas, si no nos hacen pensar más de lo necesario, mejor.
  • 165. @ggdaniel CRAWLINO C O N C L U S I O N E S • La cosas, si no nos hacen pensar más de lo necesario, mejor. • NO está todo inventado
  • 166. @ggdaniel CRAWLINO C O N C L U S I O N E S • La cosas, si no nos hacen pensar más de lo necesario, mejor. • NO está todo inventado • Cuando enviéis una charla a un conferencia… tened el proyecto algo avanzado :)
  • 167. @ggdaniel CRAWLINO C O N C L U S I O N E S • La cosas, si no nos hacen pensar más de lo necesario, mejor. • NO está todo inventado • Y, respecto a crawlino… • Cuando enviéis una charla a un conferencia… tened el proyecto algo avanzado :)
  • 168. @ggdaniel CRAWLINO C O N C L U S I O N E S • La cosas, si no nos hacen pensar más de lo necesario, mejor. • NO está todo inventado • Y, respecto a crawlino… • Cuando enviéis una charla a un conferencia… tened el proyecto algo avanzado :)