
Rociado de contraseñas usando AWS Lambda para rotación de IP
Lanza fácilmente un spray de contraseñas usando AWS Lambda a través de múltiples regiones, rotando direcciones IP con cada solicitud.
Presentado por:

uso: credking.py [-h] --plugin PLUGIN [--threads THREADS] --userfile USERFILE --passwordfile PASSWORDFILE --access_key ACCESS_KEY --secret_access_key SECRET_ACCESS_KEY [--useragentfile USERAGENTFILE]
Arguments:
-h, --help muestra este mensaje de ayuda y sale
--plugin PLUGIN plugin de spraying
--threads THREADS número de hilos (por defecto: 1)
--userfile USERFILE archivo de usuarios
--passwordfile PASSWORDFILE archivo de contraseñas
--access_key ACCESS_KEY clave de acceso de AWS
--secret_access_key SECRET_ACCESS_KEY clave de acceso secreta de AWS
--useragentfile archivo useragent
El plugin de Gmail no requiere argumentos adicionales.
El plugin de Okta agrega un nuevo argumento requerido llamado oktadomain.
uso: credking.py <argumentos habituales> --oktadomain org.okta.com
Puedes instalar y ejecutar automáticamente usando Python 3 con el siguiente comando:
$ git clone https://github.com/ustayready/CredKing
$ cd CredKing
~/CredKing$ python3 credking.py
Nota que se requiere Python 3.
Los reportes de errores, solicitudes de características y parches son bienvenidos.
Puedes crear nuevos plugins mediante:
$ cd plugins
$ mkdir newplugin
$ cd newplugin
$ touch __init__.py
$ touch newplugin.py
Luego, asegúrate de incluir la función lambda handler en tu newplugin.py:
def lambda_handler(event, context):
return your_function(event['username'], event['password'])
CredKing genera un archivo zip de despliegue que las lambdas reciben cuando son creadas. Debido a esto, CredKing requiere que los prerequisitos sean instalados directamente en la carpeta newplugin. Puedes hacerlo mediante:
$ pip install <pre-req> -t .
Los argumentos específicos del plugin pueden ser especificados sin modificaciones a credking.py, simplemente pásalos como --argumentname value
Si tu plugin requiere argumentos específicos del plugin, puedes implementar una función validate en el archivo __init__.py de tu directorio del plugin que recibirá un diccionario de todos los argumentos opcionales.
A continuación se muestra un ejemplo de validación de argumentos del plugin utilizado por el plugin de okta __init__.py.
def validate(args):
if 'oktadomain' in args.keys():
return True,None
else:
error = "Missing oktadomain argument, specify as --oktadomain org.okta.com"
return False,error
La función lambda_handler de okta.py luego accede al argumento oktadomain como se muestra a continuación.
def lambda_handler(event, context):
domain = event['args']['oktadomain']
return okta_authenticate(domain, event['username'], event['password'], event['useragent'])
¡Eso es todo, disfruta!