SlideShare a Scribd company logo
1 of 223
Download to read offline
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

More Related Content

Viewers also liked

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.
 

Viewers also liked (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 to 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 to 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
 

More from 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)
 

More from 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
 

Recently uploaded

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Recently uploaded (10)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

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