
Spray de senhas usando AWS Lambda para rotação de IP
Lance facilmente um password spray usando AWS Lambda em várias regiões, rotacionando endereços IP a cada requisição.
Oferecido 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 Mostra esta mensagem de ajuda e sai
--plugin PLUGIN Plugin de spray
--threads THREADS Número de threads (padrão: 1)
--userfile USERFILE Arquivo de nomes de usuário
--passwordfile PASSWORDFILE Arquivo de senhas
--access_key ACCESS_KEY Chave de acesso AWS
--secret_access_key SECRET_ACCESS_KEY Chave secreta de acesso AWS
--useragentfile Arquivo de user-agent
O plugin Gmail não requer argumentos adicionais.
O plugin Okta adiciona um novo argumento obrigatório chamado oktadomain.
uso: credking.py <argumentos habituais> --oktadomain org.okta.com
Você pode instalar e executar automaticamente usando Python 3 com o seguinte comando:
$ git clone https://github.com/ustayready/CredKing
$ cd CredKing
~/CredKing$ python3 credking.py
Note que Python 3 é necessário.
Relatórios de bugs, solicitações de funcionalidades e patches são bem-vindos.
Você pode criar novos plugins da seguinte forma:
$ cd plugins
$ mkdir newplugin
$ cd newplugin
$ touch __init__.py
$ touch newplugin.py
Em seguida, certifique-se de incluir a função handler lambda no seu newplugin.py:
def lambda_handler(event, context):
return your_function(event['username'], event['password'])
O CredKing gera um arquivo zip de implantação que as lambdas recebem quando são criadas. Por conta disso, o CredKing exige que os pré-requisitos sejam instalados diretamente na pasta newplugin. Você pode fazer isso com:
$ pip install <pre-req> -t .
Argumentos específicos de plugins podem ser especificados sem modificações no credking.py, basta passá-los como --argumentonome valor
Se o seu plugin requer argumentos específicos, você pode implementar uma função validate no arquivo __init__.py do diretório do plugin, que receberá um dicionário com todos os argumentos opcionais.
Abaixo está um exemplo de validação de argumentos de plugin usada pelo __init__.py do plugin okta: __init__.py.
def validate(args):
if 'oktadomain' in args.keys():
return True,None
else:
error = "Faltando o argumento oktadomain, especifique como --oktadomain org.okta.com"
return False,error
A função lambda_handler do okta.py então acessa o argumento oktadomain conforme mostrado abaixo.
def lambda_handler(event, context):
domain = event['args']['oktadomain']
return okta_authenticate(domain, event['username'], event['password'], event['useragent'])
É isso, aproveite!