Logo Hardware.com.br
eyamamoto
eyamamoto Super Participante Registrado
865 Mensagens 13 Curtidas

Brute Force... Como funciona ??

#1 Por eyamamoto 11/02/2008 - 11:35
Gostaria de saber qual é a lógia do brute force (qq coisa. um algoritmo, explicação... tentei achar a lógica mas não consegui). Estou muito curioso para saber como funciona ,como se defender, e identificar os sintomas na prática. Achei um programa mas não sei se é legal postar seu nome policia.gif .

Obrigado.

Edit: eu sei que ele vai tentando advinhar a senha com tentativa e erro big_green.png. Mas como ?
Responder
peczenyj
peczenyj Geek Registrado
3K Mensagens 75 Curtidas
#2 Por peczenyj
11/02/2008 - 12:23
Imagine um sistema de login. vc quer descobrir a senha do usuario 'eyamamoto' por bruteforce logo vc testa TODAS as combinações de letras e números até acertar.

Outra: vc pega o hash md5 de uma lista de senhas. Vc pega uma lista de palavras comuns e calcula o md5 de cada uma delas. Imagine que o hash md5 é algo como 2de9d5424b1ba6ba8884d3593658986e e a sua lista possui "batata", logo vc encontra e pimba.

São dois estilos diferentes: um gera combinações absurdas, outras usa uma lista de palavras provaveis.

Defesa: use uma combinação bizonha de letras minusculas/maiusculas, numeros e caracteres especiais e, se vc projetar um sistema, coloque um delay de um segundo entre as tentativas de login de um dado usuario : isso inviabiliza o ataque pois o cara só podera fazer no maximo umas 86400 tentativas em um dia. Utilizar um Captcha no caso de mais de duas tentativas é interessante (um simples "qual a cor do ceu?" as vezes basta pois isso requer intervenção humana, ainda mais se o hacker estiver utilizando um OCR dos bons).
eyamamoto
eyamamoto Super Participante Registrado
865 Mensagens 13 Curtidas
#3 Por eyamamoto
11/02/2008 - 13:15
peczenyj disse:
Imagine um sistema de login. vc quer descobrir a senha do usuario 'eyamamoto' por bruteforce logo vc testa TODAS as combinações de letras e números até acertar.


Essa era a única lógica q eu conhecia... é como contar grão de arroz daa.png ...

peczenyj disse:

Outra: vc pega o hash md5 de uma lista de senhas. Vc pega uma lista de palavras comuns e calcula o md5 de cada uma delas. Imagine que o hash md5 é algo como 2de9d5424b1ba6ba8884d3593658986e e a sua lista possui "batata", logo vc encontra e pimba.


Essa eu não sabia. Mas o hash é o resultado do md5? Eu não entendi como usar o hash para achar algum resultado....

peczenyj disse:

São dois estilos diferentes: um gera combinações absurdas, outras usa uma lista de palavras provaveis.


peczenyj disse:

Defesa: use uma combinação bizonha de letras minusculas/maiusculas, numeros e caracteres especiais e, se vc projetar um sistema, coloque um delay de um segundo entre as tentativas de login de um dado usuario : isso inviabiliza o ataque pois o cara só podera fazer no maximo umas 86400 tentativas em um dia. Utilizar um Captcha no caso de mais de duas tentativas é interessante (um simples "qual a cor do ceu?" as vezes basta pois isso requer intervenção humana, ainda mais se o hacker estiver utilizando um OCR dos bons).


O que é Captcha ? Aquela senha randômica usara por exemplo: para baixar algo no rapidshare?

E OCR ? confuso.png

bom_trabalho.gif
rindo_atoa.gif
philix
philix Super Participante Registrado
946 Mensagens 14 Curtidas
#4 Por philix
11/02/2008 - 13:15
No final de 2006 eu fiz um "Brute Force" para a google account em python.

Eu criei o algoritmo que recombinava letras e números e testava cada combinação em um bloco try .. exception(algo assim, não programei muito em python).

Para minha surpresa: após muitas tentativas(umas 10) a senha verdadeira não servia mais!
Se eu colocasse a senha válida como primeira a ser testada funcionava.

Eu não consegui nem fazer o login pelo navegador logo após rodar o Brute Force.

Isso é que é segurança!!!

EDIT:
Essa eu não sabia. Mas o hash é o resultado do md5? Eu não entendi como usar o hash para achar algum resultado....


md5 é uma função que embaralha/criptografa uma string.

md5("batata") retorna "2de9d5424b1ba6ba8884d3593658986e"

Não existe uma função eficiente para reverter o md5.

Um sistema de login simples poderia funcionar assim:

Se (senha == senha_do_usuario) acesso garantido Senão acesso negado

Os sistemas que usam senhas criptografadas funcionam assim(considerando que a senha válida é "batata"):

Se (md5(senha) == "2de9d5424b1ba6ba8884d3593658986e") acesso garantido Senão acesso negado
"A Matemática é a ginástica mental necessária na tentativa da compreenssão do universo" Linus Torvalds
eyamamoto
eyamamoto Super Participante Registrado
865 Mensagens 13 Curtidas
#6 Por eyamamoto
11/02/2008 - 14:07
philix disse:
No final de 2006 eu fiz um "Brute Force" para a google account em python.

Eu criei o algoritmo que recombinava letras e números e testava cada combinação em um bloco try .. exception(algo assim, não programei muito em python).

Para minha surpresa: após muitas tentativas(umas 10) a senha verdadeira não servia mais!
Se eu colocasse a senha válida como primeira a ser testada funcionava.

Eu não consegui nem fazer o login pelo navegador logo após rodar o Brute Force.

Isso é que é segurança!!!

EDIT:


md5 é uma função que embaralha/criptografa uma string.

md5("batata") retorna "2de9d5424b1ba6ba8884d3593658986e"

Não existe uma função eficiente para reverter o md5.

Um sistema de login simples poderia funcionar assim:

Se (senha == senha_do_usuario) acesso garantido Senão acesso negado

Os sistemas que usam senhas criptografadas funcionam assim(considerando que a senha válida é "batata"):

Se (md5(senha) == "2de9d5424b1ba6ba8884d3593658986e") acesso garantido Senão acesso negado


Mas isso não é como trocar 6 por meia dúzia? Se o MD5 de uma string for idêntica ao que está no servidor..... Ainda sim é só saber a senha ? Ou de alguma forma o hash auxilia, por exemplo: no caso de interceptação, o hash é quem vai ser descoberto... ?? confuso.png

confuso.png confuso.png confuso.png
rindo_atoa.gif
peczenyj
peczenyj Geek Registrado
3K Mensagens 75 Curtidas
#7 Por peczenyj
11/02/2008 - 14:08
O md5 foi um exemplo que veio na cabeça agora. A ideia é usar uma criptografia assimétrica (no caso de hashes, irreversível) para proteger dados seguros como senhas.

Entretanto, se vc guarda o HASH da senha no banco de dados e não a senha propriamente dita, vc tem algum tipo de segurança (se bem q, se o cara tiver acesso ao Banco de Dados, ferrou, mas vc pode capturar o hash de alguma forma, como em um ataque do tipo "Homem do Meio").

-----------

Assinaturas digitais tb usam o conceito de Hash : vc liberar um arquivo e fornece o MD5 criptografado com uma senha privada e "libera" a senha pública para que outras pessoas possam descriptografar e verificar a consistência da informação (ou seja, esse arquivo É da empresa X). Tem outras coisas embutidas nessa assinatura, não é só o hash.

http://en.wikipedia.org/wiki/Brute_force_attack
eyamamoto
eyamamoto Super Participante Registrado
865 Mensagens 13 Curtidas
#8 Por eyamamoto
11/02/2008 - 16:02
No caso de algum servidor ou serviço ou até mesmo um simples pc estar sob ataque de b.f, quais os prováveis sintomas ? Lentidão.... Pelos logs a gente consegue ver se tem muitas tentativas de acesso por segundo, mas e no momento?

off. nos logs do comodo firewall, as portas de sql, vnc e outros sempre estão sob ataque (aparece a tentativa de 'invasão', o serviço, a porta e o IP). Isso não me atrapalha muito, mas preocupa.
rindo_atoa.gif
ffugita
ffugita Zerinho Registrado
10K Mensagens 221 Curtidas
#9 Por ffugita
11/02/2008 - 16:22
peczenyj disse:
O md5 foi um exemplo que veio na cabeça agora. A ideia é usar uma criptografia assimétrica (no caso de hashes, irreversível) para proteger dados seguros como senhas.

Entretanto, se vc guarda o HASH da senha no banco de dados e não a senha propriamente dita, vc tem algum tipo de segurança (se bem q, se o cara tiver acesso ao Banco de Dados, ferrou, mas vc pode capturar o hash de alguma forma, como em um ataque do tipo "Homem do Meio").

-----------

Assinaturas digitais tb usam o conceito de Hash : vc liberar um arquivo e fornece o MD5 criptografado com uma senha privada e "libera" a senha pública para que outras pessoas possam descriptografar e verificar a consistência da informação (ou seja, esse arquivo É da empresa X). Tem outras coisas embutidas nessa assinatura, não é só o hash.

http://en.wikipedia.org/wiki/Brute_force_attack


Em uma verificaçao de autenticidade de alguma coisa, como o processo de crptografia demanda tempo de CPU, para agilizar a coisa, é feito um hash daquilo que você quer assinar, e você assina só o hash daquela mensagem (ou soft ou afins). Usando MD5 é possivel gerar 2 textos (ou outra coisa) distintas com o mesmo hash, e sem gastar anos de CPU para isso. Logo, o MD5 não deve ser usado nem para verificaçao de integridade de arquivos.

Para mostrar o perigo disso, um atacante poderia invadir um repositório de algum soft qualquer, inserir um código malicioso no meio, e jogar lixo no final do arquivo, de modo que o hash do arquivo modificado fique igual ao hash original. As pessoas iam baixar o arquivo danificado, e o hash ia continuar igual. confuso.png

http://www.mscs.dal.ca/~selinger/md5collision/

Usando SHA1 é possivel ter problema semelhantes.

No que isso afeta o hash de senhas? Um ladrão , tendo o hash da sua senha pode calcular alguma string que resulte no hash de sua senha, e logo, ter acesso ao sistema tambem.

Outros metodos de ataques a sistemas com hashing envolvem o uso de rainbow tables.
http://en.wikipedia.org/wiki/Rainbow_table

Um quebrador de senhas para windows, usando rainbow table:
http://www.antsight.com/zsl/rainbowcrack/
Procurando algo mais descontraido?
http://www.bebuns.com.br comemorando.gif
Seu_Madruga
Seu_Madruga Veterano Registrado
1.9K Mensagens 4 Curtidas
#10 Por Seu_Madruga
14/02/2008 - 14:50
Força bruta é uma técnica inviável caso a senha seja maior que 5 caractéres pois as combinações possíveis são muitas. Pra quem não sabe, uma senha de 6 caracteres, apenas letras minúsculas e números, são mais de 2 bilhões de combinações, se passar pra 7 caractéres, já va pra 32 Bilhões. Só da pra fazer força bruta com vários computadores em clusters trbalhando 24hrs por dia.
trabalho_duro.gif Amigo não é aquele que separa a briga mas sim aquele que chega na voadora! super.gif
Seu_Madruga
Seu_Madruga Veterano Registrado
1.9K Mensagens 4 Curtidas
#12 Por Seu_Madruga
14/02/2008 - 17:44
peczenyj disse:
Lembre-se que, se a senha for uma palavra encontrada em um dicionario, ou composta apenas de números, então fica muito mais facil.


Sim, mas somente se vc usaro método de usar palavras prontas em um banco de dados de palavras, mas uma senha do tipo "grd450i", nunca iria pegar, sendo que se usar o esquema de geração de palavras, é muito mais demorado (muito mesmo heheh) mas te garante a senha.
trabalho_duro.gif Amigo não é aquele que separa a briga mas sim aquele que chega na voadora! super.gif
pflynn
pflynn Ubbergeek Registrado
5.5K Mensagens 122 Curtidas
#14 Por pflynn
14/02/2008 - 20:42
Se eu pedir pra você pensar em um número inteiro entre zero e mil e então, eu for "cantando" cada número, desde o zero até chegar ao número que você imaginou, eu teria adivinhado ele usando força bruta. Força bruta é só isso. O resto seria apenas implementação.
------------------------------------------------
Muito bom. Mas tijolo não revida!
------------------------------------------------
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal