el poder de los reptiles: hacer herramientas de hacking es fácil

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

Upload: daniel-garcia-aka-cr0hn

Post on 14-Aug-2015

183 views

Category:

Technology


1 download

TRANSCRIPT

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

El poder de los reptilesHacer herramientas de hacking es fácil

Page 2: 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

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

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

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

¿Por qué?

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

¿Por qué?

Hackers != desarrolladores

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

¿Por qué?

Hackers != desarrolladores

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

¿Por qué?

Hackers != desarrolladores

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

¿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

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

¿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

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

¿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

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

¿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

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

¿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

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

¿Porqué Python?

Fácil

Desarrollo muy rápido

Infinidad de librerías

Código limpio

Buena relación: tiempo desarrollo / rendimiento

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

¿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

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

¡Manos a la obra!

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

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

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

Solución 1

Una correcta estructuración del proyecto

Diseñar nuestra aplicación pensando en la potabilidad

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

Cómo 1Wfuzz

theHardvester

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

Cómo 1Wfuzz

theHardvester

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

Cómo 1

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

Cómo 1

lib

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

Cómo 1

lib

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

Cómo 1

lib

doc

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

Cómo 1

lib doc

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

Cómo 1

lib doc

bin

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

Cómo 1

lib doc bin

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

Cómo 1

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

Cómo 1

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

Cómo 1

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

Cómo 1

setup.py

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

Cómo 1

setup.py

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

Cómo 1

setup.py

LICENSE

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

Cómo 1

setup.pyLICENSE

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

Cómo 1

setup.pyLICENSE

README.rst

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

Cómo 1

setup.pyLICENSE

README.rst

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

Cómo 1

setup.pyLICENSE

README.rst

__init__.py

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

Cómo 1

setup.pyLICENSE

README.rst__init__.py

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

Problema 2

Añadir nuevos parámetros de entrada

Cada cambio implica modificar mucho del código

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

Problema 2

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

Problema 2

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

Problema 2

Verbosity

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

Problema 2

Verbosity

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

Problema 2

Verbosity

1

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

Problema 2

Verbosity

1

2

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

Solución 2

Objeto contenedor de parámetros de aplicación

Posibilidad de comprobación exhaustiva de los parámetros

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

Cómo 2

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

Cómo 2

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

Cómo 2

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

Cómo 2

1

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

Problema 3

Obtención de resultados de ejecución no es sencilla

El mejor de los casos: parsear XML/JSON/YAML…

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

Problema 3

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

Problema 3

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

Problema 3

is_2_multiple

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

Problema 3

is_2_multiple

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

Problema 3

is_2_multiple12

3

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

Solución 3

Objeto contenedor de resultados.

Abstracción de resultado del formato de salida: XML/JSON…

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

Cómo 3

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

Cómo 3

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

Cómo 3

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

Cómo 3

1

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

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.

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

Problema 4

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

Problema 4

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

Problema 4

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

Solución 4

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

Solución 4

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

Solución 4

API

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

Solución 4

API

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

Cómo 4

setup.pyLICENSE

README.rst__init__.py

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

Cómo 4

setup.pyLICENSE

README.rst__init__.py

api.py

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

Cómo 4

setup.pyLICENSE

README.rst__init__.pyapi.py

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

Cómo 4

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

Cómo 4

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

Cómo 4

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

Cómo 4

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

Cómo 4

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

Cómo 4

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

Cómo 4

12

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

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

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

Problema 5

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

Problema 5

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

Problema 5

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

Problema 5

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

Problema 5

1

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

Problema 5

12

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

Problema 5

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

Problema 5

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

Problema 5

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

Problema 5

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

Problema 5

12

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

Problema 5

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

Problema 5

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

Problema 5

1

32

4

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

Solución 5

Punto de entrada unificado a los medios de salida

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

Solución 5

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

Solución 5

Hello world

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

Solución 5

Hello world

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

Cómo 5

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

Cómo 5

12

3

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

Cómo 5

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

Cómo 5

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

Cómo 5

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

Cómo 5

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

Problema 6

Instalar dependencias es muy tedioso

Cada dependencias tiene su web oficial y su forma de instalarse

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

Solución 6

Usar pip para instalar dependencias

Usar un fichero de dependencias: requirements.txt

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

Cómo 6

setup.pyLICENSE

README.rst__init__.pyapi.py

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

Cómo 6

setup.pyLICENSE

README.rst__init__.py

requirements.txt

api.py

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

Cómo 6

setup.pyLICENSE

README.rst__init__.pyapi.py

requirements.txt

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

Cómo 6

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

Cómo 6

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

Problema 7

Las dependencias cruzadas entre proyectos.

Varias versiones de una misma libraría en el sistema.

Acceso como administrador.

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

Solución 7

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Un espacio virtual…?

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

Solución 7¿Y en Python?

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

Cómo 7

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

Cómo 7

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

Problema 8

Python es mucho más lento que otros lenguajes

No no tiene coroutines integradas en el framework

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

Problema 8

Python es mucho más lento que otros lenguajes

No no tiene coroutines integradas en el framework

¡¡¡¿¿Co..rru..ti….. queeee??!!!

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

Problema 8

Python es mucho más lento que otros lenguajes

No no tiene coroutines integradas en el framework

¡¡¡¿¿Co..rru..ti….. queeee??!!!

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

Problema 8

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

Problema 8def hello_coroutine(…):

return get_web_page(…)

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

Problema 8def hello_coroutine(…):

return get_web_page(…)

… hello_coroutine() …

Run!

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

Problema 8def hello_coroutine(…):

return get_web_page(…)

… hello_coroutine() …

Run! get_web_page()1

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

Problema 8def hello_coroutine(…):

return get_web_page(…)

… hello_coroutine() …

Run! get_web_page()1

<—Respuesta

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

Problema 8def hello_coroutine(…):

return get_web_page(…)

… hello_coroutine() …

Run! get_web_page()1

return get_web_page()

<—Respuesta

2

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

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

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

Cómo 8

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

Cómo 8

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

Cómo 8

Bloqueo

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

Cómo 8

Bloqueo

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

Cómo 8

Bloqueo

NO bloqueante

Page 145: El poder de los reptiles: Hacer herramientas de hacking es fácil
Page 146: El poder de los reptiles: Hacer herramientas de hacking es fácil
Page 147: El poder de los reptiles: Hacer herramientas de hacking es fácil

Problema 9

Python NO tiene multithreading real.

Los hilos no son realmente hilos, sino una simulación.

GIL (Global Interpreter Lock)

CTRL+C

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

Problema 9

GIL

thread 1

T0

thread 2

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

Problema 9

GIL

thread 1

T1

thread 2

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

Problema 9

GIL

thread 1

T2

thread 2

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

Problema 9

GIL

thread 1

thread 2

T3

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

Problema 9

GIL

thread 1

thread 2

T4

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

Solución 9

Usar multiprocessing

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

Cómo 9Multithreading

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

Cómo 9Multithreading

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

Cómo 9Multithreading

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

Cómo 9Multiprocessing

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

Cómo 9Multiprocessing

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

Cómo 9Multiprocessing

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

Problema 10

Ejecución de tareas en backgound

Ejecución de procesos muy costosos computacionalmente

Creación un flujo de información entre tareas

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

Solución 10

Usar Celery

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

Solución 10Pero… ¿Qué es eso de Celery? ¿Se come?

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

Solución 10Pero… ¿Qué es eso de Celery? ¿Se come?

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

Solución 10

Gestor de tareas distribuido

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

Consumidor3

Solución 10

Tarea Generadora

Consumidor1

Consumidor2Gestor de colas

Conceptualmente

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

Consumidor3

Solución 10

Tarea Generadora

Consumidor1

Consumidor2Gestor de colas

Conceptualmente

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

Consumidor3

Solución 10

Tarea Generadora

Consumidor1

Consumidor2Gestor de colas

Conceptualmente

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

Consumidor3

Solución 10

Tarea Generadora

Consumidor1

Consumidor2Gestor de colas

Conceptualmente

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

Registrar visita

Solución 10

Enviar email

Enviar email

Caso concreto

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

Registrar visita

Solución 10

Enviar email

Enviar email

Caso concreto

send_mail(“text”)

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

Registrar visita

Solución 10

Enviar email

Enviar email

Caso concreto

send_mail(“text”)

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

Registrar visita

Solución 10

Enviar email

Enviar email

Caso concreto

send_mail(“text”)

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

Registrar visita

Solución 10

Enviar email

Enviar email

Caso concreto

send_mail(“text”)

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

Cómo 10

Tasks Servidor broker

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

Cómo 10

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

Cómo 10

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

Cómo 10

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

Cómo 10

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

Cómo 10

celery.py

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

Cómo 10

celery.py

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

Cómo 10

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

Cómo 10

main_task.py

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

Cómo 10

main_task.py

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

Cómo 10

main_task.py

__init__.py

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

Cómo 10

main_task.py

__init__.py

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

Cómo 10

celery.py

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

Cómo 10

celery.py

__init__.py

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

Cómo 10

celery.py

__init__.py

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

Cómo 10

celery.py

__init__.py

celeryconfig.py.py

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

Cómo 10

celery.py

__init__.py

celeryconfig.py

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

Cómo 10celeryconfig.py

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

Cómo 10celeryconfig.py

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

Cómo 10celeryconfig.py

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

Cómo 10celery.py

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

Cómo 10celery.py

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

Cómo 10celery.py

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

Cómo 10main_task.py

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

Cómo 10main_task.py

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

Cómo 10main_task.py

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

Cómo 10“pseudo-demo”

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

Cómo 10“pseudo-demo”

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

Cómo 10“pseudo-demo”

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

Cómo 10“pseudo-demo”

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

Cómo 10“pseudo-demo”

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

Problema 11

Quiero que se ejecuten tareas cada X tiempo

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

Solución 11

Usar Celery beat

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

Cómo 11celeryconfig.py

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

Cómo 11celeryconfig.py

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

Cómo 11celeryconfig.py

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

Cómo 11celeryconfig.py

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

Cómo 11celeryconfig.py

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

Cómo 11celeryconfig.py

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

Cómo 11celeryconfig.py

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

Mini ejemplo: Análisis de Malware “cutre”

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

Mini ejemploCelery + Yara

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

Mini ejemplomain_task.py

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

Mini ejemplomain_task.py

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

Mini ejemplomain_task.py

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

Mini ejemplomain_task.py

export.py

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

Mini ejemplomain_task.py

export.py

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

Mini ejemplo

start.py

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

Mini ejemplo

start.py

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

¡ Gracias !

https://github.com/cr0hn/navajanegra