SlideShare una empresa de Scribd logo
1 de 223
Descargar para leer sin conexión
El poder de los reptiles
Hacer herramientas de hacking es fácil
>>> print(Me)
https://twitter.com/ggdaniel
http://cr0hn.com/me/
https://github.com/cr0hn/navajanegra
Aviso…
• Las ideas aquí presentadas son fruto de
la experiencia e investigación propia.
• Las soluciones presentadas pueden
no ser las mejores. Éstas son son
solo mis propuestas
¿Por qué?
¿Por qué?
Hackers != desarrolladores
¿Por qué?
Hackers != desarrolladores
¿Por qué?
Hackers != desarrolladores
¿Por qué?
Las herramientas de hacking muy mal diseñadas (en general)
Aplicaciones no re-usables. Buenas prácticas… ¿qué es eso?
Tolerancia a fallos pésima
Obsesión por reinventar la rueda…
Hackers != desarrolladores
¿Por qué?
Las herramientas de hacking muy mal diseñadas (en general)
Aplicaciones no re-usables. Buenas prácticas… ¿qué es eso?
Tolerancia a fallos pésima
Obsesión por reinventar la rueda… why?! :)
Hackers != desarrolladores
¿De qué va esta charla?
Hacer movidas tope chungas con Python
Nociones de esenciales de desarrollo
Buenas prácticas
Como hacer puzzles de frameworks y cómo unirlos
¿De qué va esta charla?
Hacer movidas tope chungas con Python
Nociones de esenciales de desarrollo
Buenas prácticas
Como hacer puzzles de frameworks y cómo unirlos
Cómo hacer caca en
Python
¿Qué vas a aprender?
Nociones de buenas prácticas
Organizar y crear tu herramienta de hacking
Casos concretos de uso
Ejemplos prácticos de cada uso
¿Porqué Python?
Fácil
Desarrollo muy rápido
Infinidad de librerías
Código limpio
Buena relación: tiempo desarrollo / rendimiento
¿Porqué Python 3.x?
Python 2.7.x
No será evolucionado
Muchos problemas de unicode, textos, core…
Python 3
Es el futuro de Python
Incluye infinidad de nuevas características muy interesantes
¡Manos a la obra!
Muchas herramientas no pueden ser usadas con un “import”
Usarlas en nuestro código puede ser muy complicado
Solo pueden ser usadas en linea de comandos
Problema 1
Solución 1
Una correcta estructuración del proyecto
Diseñar nuestra aplicación pensando en la potabilidad
Cómo 1
Wfuzz
theHardvester
Cómo 1
Wfuzz
theHardvester
Cómo 1
Cómo 1
lib
Cómo 1
lib
Cómo 1
lib
doc
Cómo 1
lib doc
Cómo 1
lib doc
bin
Cómo 1
lib doc bin
Cómo 1
Cómo 1
Cómo 1
Cómo 1
setup.py
Cómo 1
setup.py
Cómo 1
setup.py
LICENSE
Cómo 1
setup.py
LICENSE
Cómo 1
setup.py
LICENSE
README.rst
Cómo 1
setup.py
LICENSE
README.rst
Cómo 1
setup.py
LICENSE
README.rst
__init__.py
Cómo 1
setup.py
LICENSE
README.rst
__init__.py
Problema 2
Añadir nuevos parámetros de entrada
Cada cambio implica modificar mucho del código
Problema 2
Problema 2
Problema 2
Verbosity
Problema 2
Verbosity
Problema 2
Verbosity
1
Problema 2
Verbosity
1
2
Solución 2
Objeto contenedor de parámetros de aplicación
Posibilidad de comprobación exhaustiva de los parámetros
Cómo 2
Cómo 2
Cómo 2
Cómo 2
1
Problema 3
Obtención de resultados de ejecución no es sencilla
El mejor de los casos: parsear XML/JSON/YAML…
Problema 3
Problema 3
Problema 3
is_2_multiple
Problema 3
is_2_multiple
Problema 3
is_2_multiple1
2
3
Solución 3
Objeto contenedor de resultados.
Abstracción de resultado del formato de salida: XML/JSON…
Cómo 3
Cómo 3
Cómo 3
Cómo 3
1
Problema 4
Cada nueva UI implica cambiar mucho código.
Inclusión de nueva funcionalidad no es sencilla.
La aplicación no puede ser usada como librería.
Problema 4
Problema 4
Problema 4
Solución 4
Solución 4
Solución 4
API
Solución 4
API
Cómo 4
setup.py
LICENSE
README.rst
__init__.py
Cómo 4
setup.py
LICENSE
README.rst
__init__.py
api.py
Cómo 4
setup.py
LICENSE
README.rst
__init__.py
api.py
Cómo 4
Cómo 4
Cómo 4
Cómo 4
Cómo 4
Cómo 4
Cómo 4
1
2
Problema 5
Mostrar información por pantalla con un print(…)
Añadir nuevas localizaciones, además del print(…)
Enviar información a 2 localizaciones concurrentemente
Problema 5
Problema 5
Problema 5
Problema 5
Problema 5
1
Problema 5
1
2
Problema 5
Problema 5
Problema 5
Problema 5
Problema 5
1
2
Problema 5
Problema 5
Problema 5
1
3
2
4
Solución 5
Punto de entrada unificado a los medios de salida
Solución 5
Solución 5
Hello world
Solución 5
Hello world
Cómo 5
Cómo 5
1
2
3
Cómo 5
Cómo 5
Cómo 5
Cómo 5
Problema 6
Instalar dependencias es muy tedioso
Cada dependencias tiene su web oficial y su forma de
instalarse
Solución 6
Usar pip para instalar dependencias
Usar un fichero de dependencias: requirements.txt
Cómo 6
setup.py
LICENSE
README.rst
__init__.py
api.py
Cómo 6
setup.py
LICENSE
README.rst
__init__.py
requirements.txt
api.py
Cómo 6
setup.py
LICENSE
README.rst
__init__.py
api.py
requirements.txt
Cómo 6
Cómo 6
Problema 7
Las dependencias cruzadas entre proyectos.
Varias versiones de una misma libraría en el sistema.
Acceso como administrador.
Solución 7
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Un espacio virtual…?
Solución 7
¿Y en Python?
Cómo 7
Cómo 7
Problema 8
Python es mucho más lento que otros lenguajes
No no tiene coroutines integradas en el framework
Problema 8
Python es mucho más lento que otros lenguajes
No no tiene coroutines integradas en el framework
¡¡¡¿¿Co..rru..ti….. queeee??!!!
Problema 8
Python es mucho más lento que otros lenguajes
No no tiene coroutines integradas en el framework
¡¡¡¿¿Co..rru..ti….. queeee??!!!
Problema 8
Problema 8
def hello_coroutine(…):
return get_web_page(…)
Problema 8
def hello_coroutine(…):
return get_web_page(…)
…
hello_coroutine()
…
Run!
Problema 8
def hello_coroutine(…):
return get_web_page(…)
…
hello_coroutine()
…
Run! get_web_page()
1
Problema 8
def hello_coroutine(…):
return get_web_page(…)
…
hello_coroutine()
…
Run! get_web_page()
1
<—Respuesta
Problema 8
def hello_coroutine(…):
return get_web_page(…)
…
hello_coroutine()
…
Run! get_web_page()
1
return get_web_page()
<—Respuesta
2
Solución 8
Usar la librería asyncio (a.k.a. Tulip), incluida en Python 3.4
Instalarla en versiones anteriores de Python 3.4
Cómo 8
Cómo 8
Cómo 8
Bloqueo
Cómo 8
Bloqueo
Cómo 8
Bloqueo
NO
bloqueante
Problema 9
Python NO tiene multithreading real.
Los hilos no son realmente hilos, sino una simulación.
GIL (Global Interpreter Lock)
CTRL+C
Problema 9
GIL
thread
1
T0
thread
2
Problema 9
GIL
thread
1
T1
thread
2
Problema 9
GIL
thread
1
T2
thread
2
Problema 9
GIL
thread
1
thread
2
T3
Problema 9
GIL
thread
1
thread
2
T4
Solución 9
Usar multiprocessing
Cómo 9
Multithreading
Cómo 9
Multithreading
Cómo 9
Multithreading
Cómo 9
Multiprocessing
Cómo 9
Multiprocessing
Cómo 9
Multiprocessing
Problema 10
Ejecución de tareas en backgound
Ejecución de procesos muy costosos computacionalmente
Creación un flujo de información entre tareas
Solución 10
Usar Celery
Solución 10
Pero… ¿Qué es eso de Celery? ¿Se come?
Solución 10
Pero… ¿Qué es eso de Celery? ¿Se come?
Solución 10
Gestor de tareas distribuido
Consumidor3
Solución 10
Tarea
Generadora
Consumidor1
Consumidor2
Gestor de colas
Conceptualmente
Consumidor3
Solución 10
Tarea
Generadora
Consumidor1
Consumidor2
Gestor de colas
Conceptualmente
Consumidor3
Solución 10
Tarea
Generadora
Consumidor1
Consumidor2
Gestor de colas
Conceptualmente
Consumidor3
Solución 10
Tarea
Generadora
Consumidor1
Consumidor2
Gestor de colas
Conceptualmente
Registrar
visita
Solución 10
Enviar email
Enviar email
Caso concreto
Registrar
visita
Solución 10
Enviar email
Enviar email
Caso concreto
send_mail(“text”)
Registrar
visita
Solución 10
Enviar email
Enviar email
Caso concreto
send_mail(“text”)
Registrar
visita
Solución 10
Enviar email
Enviar email
Caso concreto
send_mail(“text”)
Registrar
visita
Solución 10
Enviar email
Enviar email
Caso concreto
send_mail(“text”)
Cómo 10
Tasks Servidor broker
Cómo 10
Cómo 10
Cómo 10
Cómo 10
Cómo 10
celery.py
Cómo 10
celery.py
Cómo 10
Cómo 10
main_task.py
Cómo 10
main_task.py
Cómo 10
main_task.py
__init__.py
Cómo 10
main_task.py
__init__.py
Cómo 10
celery.py
Cómo 10
celery.py
__init__.py
Cómo 10
celery.py
__init__.py
Cómo 10
celery.py
__init__.py
celeryconfig.py.py
Cómo 10
celery.py
__init__.py
celeryconfig.py
Cómo 10
celeryconfig.py
Cómo 10
celeryconfig.py
Cómo 10
celeryconfig.py
Cómo 10
celery.py
Cómo 10
celery.py
Cómo 10
celery.py
Cómo 10
main_task.py
Cómo 10
main_task.py
Cómo 10
main_task.py
Cómo 10
“pseudo-demo”
Cómo 10
“pseudo-demo”
Cómo 10
“pseudo-demo”
Cómo 10
“pseudo-demo”
Cómo 10
“pseudo-demo”
Problema 11
Quiero que se ejecuten tareas cada X tiempo
Solución 11
Usar Celery beat
Cómo 11
celeryconfig.py
Cómo 11
celeryconfig.py
Cómo 11
celeryconfig.py
Cómo 11
celeryconfig.py
Cómo 11
celeryconfig.py
Cómo 11
celeryconfig.py
Cómo 11
celeryconfig.py
Mini ejemplo: Análisis de Malware “cutre”
Mini ejemplo
Celery + Yara
Mini ejemplo
main_task.py
Mini ejemplo
main_task.py
Mini ejemplo
main_task.py
Mini ejemplo
main_task.py
export.py
Mini ejemplo
main_task.py
export.py
Mini ejemplo
start.py
Mini ejemplo
start.py
¡ Gracias !
https://github.com/cr0hn/navajanegra

Más contenido relacionado

Destacado

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)
 
How to break down a research question
How to break down a research questionHow to break down a research question
How to break down a research questionkrochalek
 
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)
 
The art of disguise - Antifingerprinting techniques
The art of disguise - Antifingerprinting techniquesThe art of disguise - Antifingerprinting techniques
The art of disguise - Antifingerprinting techniquesDaniel Garcia (a.k.a cr0hn)
 
Qué es el fingerprinting: Definición, peligros y medidas mitigadoras
Qué es el fingerprinting: Definición, peligros y medidas mitigadorasQué es el fingerprinting: Definición, peligros y medidas mitigadoras
Qué es el fingerprinting: Definición, peligros y medidas mitigadorasDaniel Garcia (a.k.a cr0hn)
 
Websphere MQ admin guide
Websphere MQ admin guideWebsphere MQ admin guide
Websphere MQ admin guideRam Babu
 
Talking TUF: Securing Software Distribution
Talking TUF: Securing Software DistributionTalking TUF: Securing Software Distribution
Talking TUF: Securing Software DistributionDocker, Inc.
 
Unikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSUnikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSDocker, Inc.
 
'The History of Metrics According to me' by Stephen Day
'The History of Metrics According to me' by Stephen Day'The History of Metrics According to me' by Stephen Day
'The History of Metrics According to me' by Stephen DayDocker, Inc.
 
Prometheus design and philosophy
Prometheus design and philosophy   Prometheus design and philosophy
Prometheus design and philosophy Docker, Inc.
 
Orchestrating Least Privilege by Diogo Monica
Orchestrating Least Privilege by Diogo Monica Orchestrating Least Privilege by Diogo Monica
Orchestrating Least Privilege by Diogo Monica Docker, Inc.
 
Infinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsInfinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsDocker, Inc.
 
Docker Online Meetup: Infrakit update and Q&A
Docker Online Meetup: Infrakit update and Q&ADocker Online Meetup: Infrakit update and Q&A
Docker Online Meetup: Infrakit update and Q&ADocker, Inc.
 
Persistent storage tailored for containers
Persistent storage tailored for containersPersistent storage tailored for containers
Persistent storage tailored for containersDocker, Inc.
 

Destacado (20)

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
 
Topera: Evadiendo Snort con IPv6
Topera: Evadiendo Snort con IPv6Topera: Evadiendo Snort con IPv6
Topera: Evadiendo Snort con IPv6
 
GoLismero: The Web Knife
GoLismero: The Web KnifeGoLismero: The Web Knife
GoLismero: The Web Knife
 
How to break down a research question
How to break down a research questionHow to break down a research question
How to break down a research question
 
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
 
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
 
The art of disguise - Antifingerprinting techniques
The art of disguise - Antifingerprinting techniquesThe art of disguise - Antifingerprinting techniques
The art of disguise - Antifingerprinting techniques
 
Qué es el fingerprinting: Definición, peligros y medidas mitigadoras
Qué es el fingerprinting: Definición, peligros y medidas mitigadorasQué es el fingerprinting: Definición, peligros y medidas mitigadoras
Qué es el fingerprinting: Definición, peligros y medidas mitigadoras
 
Extreme security in web servers
Extreme security in  web serversExtreme security in  web servers
Extreme security in web servers
 
Websphere MQ admin guide
Websphere MQ admin guideWebsphere MQ admin guide
Websphere MQ admin guide
 
Talking TUF: Securing Software Distribution
Talking TUF: Securing Software DistributionTalking TUF: Securing Software Distribution
Talking TUF: Securing Software Distribution
 
Unikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSUnikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOS
 
'The History of Metrics According to me' by Stephen Day
'The History of Metrics According to me' by Stephen Day'The History of Metrics According to me' by Stephen Day
'The History of Metrics According to me' by Stephen Day
 
Prometheus design and philosophy
Prometheus design and philosophy   Prometheus design and philosophy
Prometheus design and philosophy
 
Orchestrating Least Privilege by Diogo Monica
Orchestrating Least Privilege by Diogo Monica Orchestrating Least Privilege by Diogo Monica
Orchestrating Least Privilege by Diogo Monica
 
Infinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container EnvironmentsInfinit: Modern Storage Platform for Container Environments
Infinit: Modern Storage Platform for Container Environments
 
Docker Online Meetup: Infrakit update and Q&A
Docker Online Meetup: Infrakit update and Q&ADocker Online Meetup: Infrakit update and Q&A
Docker Online Meetup: Infrakit update and Q&A
 
Persistent storage tailored for containers
Persistent storage tailored for containersPersistent storage tailored for containers
Persistent storage tailored for containers
 

Similar a El poder de los reptiles: Hacer herramientas de hacking es fácil

Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Sergio Soto
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Como programar en Java - 7ma Edicion - P. J. Deitel.pdf
Como programar en Java - 7ma Edicion - P. J. Deitel.pdfComo programar en Java - 7ma Edicion - P. J. Deitel.pdf
Como programar en Java - 7ma Edicion - P. J. Deitel.pdfAnaLpez275
 
Como programar en Java - 7ma Edicion - P. J. Deitel (1).pdf
Como programar en Java - 7ma Edicion - P. J. Deitel (1).pdfComo programar en Java - 7ma Edicion - P. J. Deitel (1).pdf
Como programar en Java - 7ma Edicion - P. J. Deitel (1).pdfAnaLpez275
 
Como programar en Java - 7ma Edicion - P. J. Deitel.pdf
Como programar en Java - 7ma Edicion - P. J. Deitel.pdfComo programar en Java - 7ma Edicion - P. J. Deitel.pdf
Como programar en Java - 7ma Edicion - P. J. Deitel.pdfAnaLpez275
 
Cómo programar C++, 9na Edición - Paul Deitel.pdf
Cómo programar C++, 9na Edición - Paul Deitel.pdfCómo programar C++, 9na Edición - Paul Deitel.pdf
Cómo programar C++, 9na Edición - Paul Deitel.pdfMonica277891
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
 
Volviendo a poner el “soft” en software
Volviendo a poner el “soft” en softwareVolviendo a poner el “soft” en software
Volviendo a poner el “soft” en softwareDanijel Arsenovski
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfonycsalazart
 
Desarrollo_web_con_PHP_y_MySQL.pdf
Desarrollo_web_con_PHP_y_MySQL.pdfDesarrollo_web_con_PHP_y_MySQL.pdf
Desarrollo_web_con_PHP_y_MySQL.pdfMauricioGArmoa
 
Mariano Iglesias: Lithium - Un framework que pega como piña
Mariano Iglesias: Lithium - Un framework que pega como piñaMariano Iglesias: Lithium - Un framework que pega como piña
Mariano Iglesias: Lithium - Un framework que pega como piñaGrupo PHP Argentina
 
BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012Asier Marqués
 
Masterclass ADWE Madrid
Masterclass ADWE MadridMasterclass ADWE Madrid
Masterclass ADWE MadridKubide
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyJuan Eladio Sánchez Rosas
 
Pythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxPythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxDiegoSalvetti2
 

Similar a El poder de los reptiles: Hacer herramientas de hacking es fácil (20)

Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEO
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
Como programar en Java - 7ma Edicion - P. J. Deitel.pdf
Como programar en Java - 7ma Edicion - P. J. Deitel.pdfComo programar en Java - 7ma Edicion - P. J. Deitel.pdf
Como programar en Java - 7ma Edicion - P. J. Deitel.pdf
 
Como programar en Java - 7ma Edicion - P. J. Deitel (1).pdf
Como programar en Java - 7ma Edicion - P. J. Deitel (1).pdfComo programar en Java - 7ma Edicion - P. J. Deitel (1).pdf
Como programar en Java - 7ma Edicion - P. J. Deitel (1).pdf
 
Como programar en Java - 7ma Edicion - P. J. Deitel.pdf
Como programar en Java - 7ma Edicion - P. J. Deitel.pdfComo programar en Java - 7ma Edicion - P. J. Deitel.pdf
Como programar en Java - 7ma Edicion - P. J. Deitel.pdf
 
Cómo programar C++, 9na Edición - Paul Deitel.pdf
Cómo programar C++, 9na Edición - Paul Deitel.pdfCómo programar C++, 9na Edición - Paul Deitel.pdf
Cómo programar C++, 9na Edición - Paul Deitel.pdf
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
Volviendo a poner el “soft” en software
Volviendo a poner el “soft” en softwareVolviendo a poner el “soft” en software
Volviendo a poner el “soft” en software
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfony
 
Desarrollo_web_con_PHP_y_MySQL.pdf
Desarrollo_web_con_PHP_y_MySQL.pdfDesarrollo_web_con_PHP_y_MySQL.pdf
Desarrollo_web_con_PHP_y_MySQL.pdf
 
Mariano Iglesias: Lithium - Un framework que pega como piña
Mariano Iglesias: Lithium - Un framework que pega como piñaMariano Iglesias: Lithium - Un framework que pega como piña
Mariano Iglesias: Lithium - Un framework que pega como piña
 
BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012
 
Masterclass ADWE Madrid
Masterclass ADWE MadridMasterclass ADWE Madrid
Masterclass ADWE Madrid
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Pythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptxPythonlearn-01-Intro.pptx
Pythonlearn-01-Intro.pptx
 

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)
 
Rooted 2018 - Crawlino: The next level of crawling systems
Rooted 2018 - Crawlino: The next level of crawling systemsRooted 2018 - Crawlino: The next level of crawling systems
Rooted 2018 - Crawlino: The next level of crawling systemsDaniel 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)
 
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)
 

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

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
 
Rooted 2018 - Crawlino: The next level of crawling systems
Rooted 2018 - Crawlino: The next level of crawling systemsRooted 2018 - Crawlino: The next level of crawling systems
Rooted 2018 - Crawlino: The next level of crawling systems
 
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
 
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
 

Último

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Último (10)

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

El poder de los reptiles: Hacer herramientas de hacking es fácil