
Marco de distribución de tareas sin servidor que paraleliza herramientas CLI a través de miles de funciones en la nube para reconocimiento rápido y procesamiento de datos.
ShadowClone te permite distribuir dinámicamente tus tareas de larga duración a través de miles de funciones serverless y te da los resultados en cuestión de segundos donde habría tomado horas completarlas.
Puedes aprovechar al máximo los niveles gratuitos proporcionados por los proveedores de nube y potenciar tus herramientas cli mundanas con el jutsu de clon de sombra (¡estilo Naruto)!
Visita la wiki para instrucciones de instalación y configuración inicial
⚡ python shadowclone.py -h
usage: shadowclone.py [-h] -i INPUT [-s SPLITNUM] [-o OUTPUT] -c COMMAND
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
-s SPLITNUM, --split SPLITNUM
Number of lines per chunk of file
-o OUTPUT, --output OUTPUT
-c COMMAND, --command COMMAND
command to execute
--no-split NOSPLIT File to be used without splitting
Creamos una imagen de contenedor durante la configuración inicial y la registramos como un tiempo de ejecución para nuestra función en AWS/GCP/Azure o lo que sea. Cuando ejecutas ShadowClone en tu computadora, se activan instancias de ese contenedor automáticamente y solo están activas durante la duración de su ejecución. La cantidad de instancias a activar se decide dinámicamente en tiempo de ejecución dependiendo del tamaño del archivo de entrada proporcionado y el factor de división. Luego, la entrada se divide en fragmentos y se distribuye equitativamente entre todas las instancias para ejecutarlas en paralelo. Por ejemplo, si tu archivo de entrada tiene 10,000 líneas y estableces el factor de división en 100 líneas, ¡entonces se dividirá en 100 fragmentos de 100 líneas cada uno y se ejecutarán 100 instancias en paralelo!
Esta herramienta fue inspirada por los increíbles proyectos Axiom y Fleex y va más allá del concepto de VPS para ejecutar herramientas mediante el uso de funciones serverless y contenedores.
*La mayoría de los proveedores de nube no permiten iniciar demasiadas instancias por defecto, por lo que estás limitado a alrededor de 10-15 instancias como máximo. Debes hacer una solicitud al soporte para aumentar este número.
** AWS y Azure permiten 1 millón de invocaciones por mes de forma gratuita. Google permite 2 millones de invocaciones por mes de forma gratuita. Solo se te cobrará si superas estos límites.
Fuerza bruta de DNS usando un archivo de 43mb - 34 segundos
Ejecutando httpx en 94K subdominios en 1 min
Obviamente, puedes realizar cualquier número de invocaciones de funciones por mes. La tabla anterior solo muestra cuántas invocaciones son gratuitas.
Si te gusta ShadowClone y quieres mostrar algo de aprecio, ¡envíame los errores que encuentres usando esta herramienta ;)
O puedes invitarme un café :)
Esta herramienta está diseñada como una implementación de prueba de concepto y su uso está destinado únicamente a fines educativos. El uso para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no se hacen responsables de ningún uso indebido o daño causado por este programa.
| Características | Axiom/Fleex | ShadowClone |
|---|
| Instancias | 10-100s* | 1000s |
| Costo | Por instancia/por minuto | Mayormente Gratuito** |
| Tiempo de inicio | 4-5 minutos | 2-3 segundos |
| Tiempo máximo de ejecución | Ilimitado | 15 minutos |
| Costo en inactividad | $++ | Gratuito |
| Escalabilidad bajo demanda | No | ∞ |
| Proveedor de nube | Asignación gratuita | Enlace |
|---|
| Google Functions | 2 millones de invocaciones, 400,000 GB-segundos por mes | Programa gratuito de Google Cloud |
| AWS Lambda | 1 millón de invocaciones, Hasta 3.2 millones de segundos de tiempo de cómputo por mes | Servicios gratuitos de computación en la nube - AWS Free Tier |
| Azure Functions | 1 millón invocaciones | Servicios gratuitos de Microsoft Azure |