
Repositório Ideaslocas
Este projeto visa auxiliar na busca por senhas vazadas, mantendo um alto nível de privacidade utilizando o método de k-anonimato.
Para isso, são utilizadas as APIs de diferentes serviços, enviando apenas uma parte do Hash da senha que queremos verificar, por exemplo, os primeiros 5 caracteres.
O projeto precisa de algumas bibliotecas para funcionar. Para instalá-las, use o seguinte comando:
pip install -r requirements
Lembre-se de que o Python 3 é necessário.
passme.py [FUNC] [ELEMENT] -engine [ENGINE] -api_key [API_KEY]
FUNC: O tipo de elemento que você deseja verificar, pode ser -h/--hash ou -p/--password ou -f/--file ou -l/--list ou --help.
ELEMENT: O "Hash", "Password" ou o nome do arquivo que contém uma lista de hashes ou senhas separados por uma nova linha.
ENGINE: O mecanismo de vazamentos que você deseja utilizar, por padrão utiliza HIBP (Have I been PWN).
API_KEY: A API_KEY necessária para algumas funções de alguns mecanismos.
A função principal do projeto recebe a senha com hash, o mecanismo a ser utilizado e a chave de API.
Dependendo do mecanismo recebido, tanto a chave de API quanto a senha com hash serão enviadas para uma função ou outra.
Se você deseja adicionar seu próprio mecanismo ou um mecanismo que ainda não foi implementado, basta adicionar mais uma opção aqui.
passme_hash(hashed_password, engine="HIBP", api_key="0")
Esta função aplica hash à senha recebida usando SHA-1 e envia o hash para a função passme_hash().
passme_password(password, engine="HIBP", api_key="0")
Esta função lê uma a uma as linhas do arquivo recebido para verificar cada senha, fornecendo informações sobre a senha recebida e se ela foi filtrada ou não.
passme_file(filename, engine="HIBP", api_key="0")
Esta função lê uma a uma as linhas do arquivo recebido para verificar cada hash, fornecendo informações sobre o hash recebido e se ele foi filtrado ou não.
passme_list(filename, engine="HIBP", api_key="0")
A função que lida com a API do HIBP (Have i been pwned), envia os primeiros cinco caracteres do hash e, em seguida, compara com o hash completo para verificar se a senha/hash foi vazada.
engine_HIBP(hashed_password, engine, api_key)
Este projeto possui uma série de testes para verificar o funcionamento correto de todas as suas funções. Para isso, foi utilizada a biblioteca "pytest". Para executar os testes, instale o pytest com o seguinte comando:
pip install pytest
Após a instalação, basta executar o comando "pytest" para que os testes sejam executados automaticamente; quaisquer erros encontrados serão retornados pelo terminal.
Os resultados dos testes em laboratório são os seguintes:
Este projeto está licenciado sob a GNU General Public License - veja o arquivo LICENSE para detalhes.
O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.
Este software não possui um processo de QA. Este software é uma Prova de Conceito.
Se você tiver algum problema, pode entrar em contato:
[email protected] - Ideas Locas CDCO - Telefónica
Em muitos lugares, pode ser crime instalar software em um computador que não pertence a você, sem o consentimento do proprietário. Não aprovamos o uso de PoC para qualquer propósito ilegal. Para baixar ou usar nosso software de qualquer forma, você deve reconhecer e aprovar o seguinte:
1 - Você declara que esta PoC será usada exclusivamente de forma legal. Se tiver dúvidas sobre a legalidade, consulte um advogado licenciado na jurisdição onde usará esta PoC.
2 - Você reconhece que o computador no qual o software será instalado é seu ou você tem o consentimento do proprietário para gerenciar e instalar o software nele.
| Versão do Python | Função Hash | Função List | Função Password | Hash RANDOM | Password RANDOM | Comentário |
|---|
| 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.5 | ✅ | ✅ | ✅ | ❌ | ❌ | Random.choice não está disponível no Python 3.5 // Versão do Python obsoleta |