Eu tenho um pendrive criptografado com LUKS + Ext4. esqueci a senha...
No entanto, sei quais palavras serão incluídas na senha e tenho uma lista de todas as permutações dessas palavras. Cerca de 10.000 permutações.
Em vez de eu tentar cada permutação 1 por 1 manualmente (o que será um processo longo, lento e dolorosamente tedioso), é possível automatizar esse processo? Eu sei que isso soa como algum tipo de ataque de força bruta malicioso, mas não é. Se eu quisesse algo assim, poderia facilmente ter baixado algum software desonesto da internet.
Em vez disso, quero usar algo que seja seguro no meu computador, um script (ou qualquer solução segura) que seja personalizado especificamente para mim.
Isso é possível?
A maneira mais eficiente de realizar esse ataque é usar o luks2john de John the Ripper para extrair o hash e depois atacá-lo com John (formato de hash 'LUKS') ou hashcat (modo de hash 14600).
Isso tem a vantagem de escalar até o número de núcleos (com suporte para CPU John ou suporte para CPU hashcat OpenCL) ou o número de GPUs (com suporte para GPU hashcat OpenCL) que você possui.
Ele também aproveita as eficiências criptográficas do lado do ataque que são mais rápidas do que usar a interface nativa. Essas eficiências às vezes podem ser dramaticamente mais rápidas do que simplesmente tentar um desbloqueio normal repetidamente.
Isso também oferece o conjunto completo de modos de ataque que essas ferramentas suportam (lista de palavras, regras, máscara, híbrido etc.).
Bem, no caso mais ingênuo, você pode fazer algo como
e passa por todas as peças do quebra-cabeça ... foobarbz foobarbaz foobarbazz ... etc. em ordem. (Se você tiver peças opcionais, adicione '' string vazia. Se suas peças estiverem em ordem aleatória, bem, pense nisso você mesmo).
Para otimizar o desempenho, você pode:
cryptsetup
para continuar lendo as senhas do stdin (lukscrackplus no github para um exemplo, mas é datado)split
em arquivos separados e execute vários desses loops (um por núcleo, talvez até em várias máquinas)Mas provavelmente é inútil otimizar se você tiver muito pouco (pode passar em um dia sem otimizar) ou muitas possibilidades (nenhuma quantidade de otimização será bem-sucedida).
Ao mesmo tempo, verifique:
(com LUKS1 não há como saber com certeza, mas se você
hexdump -C
e não houver dados aleatórios onde deveria estar, não há necessidade de perder tempo então)Há também uma pergunta semelhante aqui: https://security.stackexchange.com/q/128539
Mas se você é realmente capaz de reduzi-lo muito, a abordagem ingênua também funciona.
Sim. Eu tive quase esse problema exato. Eu escrevi um script que percorria todas as possibilidades até que uma funcionasse. Mas o meu era um
truecrypt
volume. O único problema seria se houvesse alguma limitação de taxa, mas isso só seria o caso se você estivesse passando o cheque para um site ou algo parecido. Com o volume em sua posse, é relativamente fácil fazer isso.Mas também isso é muito força bruta. Você acabou de restringir as opções para um número pequeno, então não será difícil fazer isso.
Sim, como respostas anteriores,
hashcat
é uma das melhores opções. Como o LUKS não armazena nenhum hashe, precisamos obter uma amostra de dados criptografada (cabeçalho) do seu drive USB. Vamos trabalhar apenas nessa amostra.Hashcat
tem muitas opções para quebrar uma senha, desde força bruta direta até ataques de dicionário, ataques baseados em regras e ataques de máscara. Neste cenário, temos password_candidates.txt:Isso deve fornecer sua senha em segundos. Razão Social