elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  RAR brute force [bash]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: RAR brute force [bash]  (Leído 2,075 veces)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
RAR brute force [bash]
« en: 1 Noviembre 2010, 09:34 am »

Hola, viendo algunos proyectos en sourceforge en shell script, hallé este:

Funciona bien, pero no me gustó el código, así que lo rehice siguiendo la idea del autor.

Código
  1. #!/bin/bash
  2. #===============================================================================
  3. #
  4. #          FILE:  bruto.sh
  5. #
  6. #         USAGE:  ./bruto.sh
  7. #
  8. #   DESCRIPTION:  Found passwords in RAR files using a word list
  9. #  Idea original de http://sourceforge.net/projects/rarbrute/
  10. #       OPTIONS:  ---
  11. #  REQUIREMENTS:  rar, sed, wc,
  12. #          BUGS:  ---
  13. #         NOTES:  ---
  14. #        AUTHOR:  Leo Gutierrez Ramirez (), leorocko13@hotmail.com
  15. #       VERSION:  1.0
  16. #       CREATED:  31/10/10 22:15:40 MST
  17. #      REVISION:  ---
  18. #===============================================================================
  19. function usage()
  20. {
  21. cat <<EOF
  22.  
  23. `basename $0` file.rar [-d word-list | -n number-limit | -h]
  24.  
  25. -h : Help
  26.  
  27. Author : Leo Gutiérrez R (leorocko13@hotmail.com),  idea from aciddata:
  28. http://sourceforge.net/projects/rarbrute/files/
  29.  
  30. EOF
  31. exit 1
  32. }
  33.  
  34. function isRAR()
  35. {
  36. [[ -f "$1" ]] && {
  37. if [ "`file -b "$1" | awk '{print $1}'`" = "RAR" ]
  38. then
  39. return 1;
  40. else
  41. return 0;
  42. fi
  43. } || {
  44. echo -e "Can't find or read file - $1 -";
  45. return 0;
  46. }
  47. }
  48.  
  49.  
  50. args=`getopt d:n:h $* 2> /dev/null`
  51. if test $? != 0
  52. then
  53. usage;
  54. fi
  55.  
  56. set -- $args
  57.  
  58. for i
  59. do
  60. case "$i" in
  61. # -n ##############################################################
  62. -n)
  63. shift;
  64.  
  65. RARFILE="$3";
  66. NLIMIT="$1";
  67.  
  68. # Checar que -n sean números :
  69. n=`echo ${NLIMIT} | tr -d "[0-9]"`
  70. if [[ ! -z $n ]]
  71. then
  72. echo -e "`basename $0` -> ${NLIMIT} Number needed ";
  73. exit 1;
  74. fi
  75.  
  76. isRAR ${RARFILE}
  77. if [ $? -ne 1 ]
  78. then
  79. echo -e "\n\t`basename ${RARFILE}` This is no RAR file\n";
  80. exit 1;
  81. fi
  82.  
  83. ((i = 0));
  84.  
  85. while((i <= $NLIMIT))
  86. do
  87. test=`rar x -p"${i}" "${RARFILE}" 1>/dev/null 2>/dev/null`
  88. test2=$?
  89. if [ "$test2" = 0 ]
  90. then
  91. echo -e "\n file "${RARFILE}" is successfully broken the used key is: \"${i}\"\n\a"
  92. exit 0;
  93. fi
  94. ((i++));
  95.  
  96. done
  97.  
  98. echo -e "\n\tKey not found\n";
  99.  
  100. shift;
  101.  
  102. # Romper el ciclo :
  103. break;
  104.  
  105. shift;
  106. ;;
  107. # -d #############################################################
  108. -d)
  109. shift;
  110.  
  111. WORDLIST="$1";
  112. RARFILE="$3";
  113. LINES=`wc -l "${WORDLIST}" | awk '{print $1}'`
  114.  
  115. ((n = 1));
  116. while [ "$LINES" -gt "$n" ]
  117. do
  118.  
  119. line=`head -"$n" "${WORDLIST}" | tail -1`
  120. testing=`rar x -p"$line" "${RARFILE}" 1>/dev/null 2>/dev/null`
  121. testing2=`echo $?`
  122. if [ "$testing2" = 0 ]
  123. then
  124. echo -e "\n\tfile "${RARFILE}" is successfully broken";
  125. echo -e "\tthe used keyword is: $line\n\a";
  126. exit 0;
  127. fi
  128. ((n++));
  129. done
  130.  
  131. # Romper el ciclo :
  132. break;
  133.  
  134. shift;
  135. ;;
  136.  
  137. -h)
  138. usage;
  139. ;;
  140. *)
  141. echo -e "[Unknow Option\a]";
  142. usage;
  143. ;;
  144. esac
  145. done
  146.  

Para que funcione bien, el formato del diccionario debe ser totalmente UNIX, por lo que hay que remover los CR/LF.

Usen dos2unix:

Código
  1. leo@leo-desktop:~/proyectos/brutorar$ dos2unix -a -d -vv -b -o dic.dic
  2. dos2unix: Converting dic.dic
  3. leo@leo-desktop:~/proyectos/brutorar$
  4.  

Ahora sí:

Código
  1. leo@leo-desktop:~/proyectos/brutorar$ bash my_bruto.sh a.rar -d dic.dic
  2.  
  3.        file a.rar is successfully broken
  4.        the used keyword is: leito
  5.  
  6. leo@leo-desktop:~/proyectos/brutorar$
  7.  


« Última modificación: 1 Noviembre 2010, 18:32 pm por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
zZznewbiezZz

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: RAR brute force [bash]
« Respuesta #1 en: 8 Noviembre 2010, 21:25 pm »

perdona la ignorancia pero q hago para compilarlo?
lo escribo en un block de notas y lo guardo como .bat?


En línea

xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: RAR brute force [bash]
« Respuesta #2 en: 8 Noviembre 2010, 21:32 pm »

perdona la ignorancia pero q hago para compilarlo?
lo escribo en un block de notas y lo guardo como .bat?
Es Bash.

En Windows no lo vas poder utilizar.

En un sistema Unix como GNU/Linux guárdalo como .sh y ejecútalo desde la consola:
Código:
./archivo.sh

Saludos !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ataques a red Wifi sin ser brute force [Solo curiosidad]
Hacking Wireless
Panic0 2 5,214 Último mensaje 16 Septiembre 2021, 21:02 pm
por 0x22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines