
Password Spraying mit AWS Lambda zur IP-Rotation
Starten Sie ganz einfach einen Password-Spray mit AWS Lambda über mehrere Regionen, wobei die IP-Adressen bei jeder Anfrage rotiert werden.
Bereitgestellt von:

usage: 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 show this help message and exit
--plugin PLUGIN spraying plugin
--threads THREADS thread count (default: 1)
--userfile USERFILE username file
--passwordfile PASSWORDFILE password file
--access_key ACCESS_KEY aws access key
--secret_access_key SECRET_ACCESS_KEY aws secret access key
--useragentfile useragent file
Das Gmail-Plugin erfordert keine zusätzlichen Argumente.
Das Okta-Plugin fügt ein neues erforderliches Argument namens oktadomain hinzu. usage: credking.py <usual arugments> --oktadomain org.okta.com
Sie können es mit Python 3 automatisch installieren und ausführen, indem Sie den folgenden Befehl verwenden:
$ git clone https://github.com/ustayready/CredKing
$ cd CredKing
~/CredKing$ python3 credking.py
Beachten Sie, dass Python 3 erforderlich ist.
Fehlerberichte, Feature-Anfragen und Patches sind willkommen.
Sie können neue Plugins erstellen, indem Sie:
$ cd plugins
$ mkdir newplugin
$ cd newplugin
$ touch __init__.py
$ touch newplugin.py
Stellen Sie als Nächstes sicher, dass Sie die Lambda-Handler-Funktion in Ihrer newplugin.py einfügen:
def lambda_handler(event, context):
return your_function(event['username'], event['password'])
CredKing erzeugt eine Deployment-Zip-Datei, die die Lambdas beim Erstellen erhalten. Aus diesem Grund erfordert CredKing, dass die Voraussetzungen direkt in den newplugin-Ordner installiert werden. Sie können dies erreichen, indem Sie:
$ pip install <pre-req> -t .
Pluginspezifische Argumente können ohne Änderungen an credking.py angegeben werden, indem Sie sie einfach als --argumentname value übergeben.
Wenn Ihr Plugin pluginspezifische Argumente benötigt, können Sie eine validate-Funktion in der __init__.py-Datei Ihres Plugin-Verzeichnisses implementieren, der ein Dictionary aller optionalen Argumente übergeben wird.
Unten ist ein Beispiel für die Plugin-Argumentvalidierung, die vom Okta-Plugin __init__.py verwendet wird.
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
Die okta.py lambda_handler-Funktion greift dann wie unten gezeigt auf das oktadomain-Argument zu.
def lambda_handler(event, context):
domain = event['args']['oktadomain']
return okta_authenticate(domain, event['username'], event['password'], event['useragent'])
Das war's, viel Spaß!