Advertisement
Guest User

wordlist_generator.sh

a guest
Jul 12th, 2021
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.19 KB | None | 0 0
  1. #! bash
  2.  
  3. generate ()
  4. {
  5.   (( $len != ${#1} )) && return 1
  6.   if [ ${pattern:0:1} = y ]
  7.     then
  8.       case ${#1} in
  9.         4)
  10.           [ ${1:0:1} != ${1:1:1} ] && \
  11.           [ ${1:1:1} != ${1:2:1} ] && \
  12.           [ ${1:2:1} != ${1:3:1} ] && \
  13.           [ ${1:0:1} != ${1:2:1} ] && \
  14.           [ ${1:0:1} != ${1:3:1} ] && \
  15.           [ ${1:1:1} != ${1:3:1} ] && \
  16.           echo "$1" && echo -e "${1}\r" >> wordlist.txt
  17.         ;;
  18.         5)
  19.           [ ${1:0:1} != ${1:1:1} ] && \
  20.           [ ${1:1:1} != ${1:2:1} ] && \
  21.           [ ${1:2:1} != ${1:3:1} ] && \
  22.           [ ${1:3:1} != ${1:4:1} ] && \
  23.           [ ${1:0:1} != ${1:2:1} ] && \
  24.           [ ${1:0:1} != ${1:3:1} ] && \
  25.           [ ${1:0:1} != ${1:4:1} ] && \
  26.           [ ${1:1:1} != ${1:3:1} ] && \
  27.           [ ${1:1:1} != ${1:4:1} ] && \
  28.           [ ${1:2:1} != ${1:4:1} ] && \
  29.           echo "$1" && echo -e "${1}\r" >> wordlist.txt
  30.         ;;
  31.         6)
  32.           [ ${1:0:1} != ${1:1:1} ] && \
  33.           [ ${1:1:1} != ${1:2:1} ] && \
  34.           [ ${1:2:1} != ${1:3:1} ] && \
  35.           [ ${1:3:1} != ${1:4:1} ] && \
  36.           [ ${1:4:1} != ${1:5:1} ] && \
  37.           [ ${1:0:1} != ${1:2:1} ] && \
  38.           [ ${1:0:1} != ${1:3:1} ] && \
  39.           [ ${1:0:1} != ${1:4:1} ] && \
  40.           [ ${1:0:1} != ${1:5:1} ] && \
  41.           [ ${1:1:1} != ${1:3:1} ] && \
  42.           [ ${1:1:1} != ${1:4:1} ] && \
  43.           [ ${1:1:1} != ${1:5:1} ] && \
  44.           [ ${1:2:1} != ${1:4:1} ] && \
  45.           [ ${1:2:1} != ${1:5:1} ] && \
  46.           [ ${1:3:1} != ${1:5:1} ] && \
  47.           echo "$1" && echo -e "${1}\r" >> wordlist.txt
  48.         ;;
  49.       esac
  50.     else
  51.       echo "$1" && echo -e "${1}\r" >> wordlist.txt
  52.   fi
  53.   return 0
  54. }
  55.  
  56. if [ -f wordlist.txt ]
  57.   then
  58.     echo -e "\nfile 'wordlist.txt' exist, abort"
  59.     exit 1
  60. fi
  61.  
  62. read -p "enter pin with dot as wildcard: " passwd
  63.  
  64. len=${#passwd}
  65. if (( $len < 4 )) || (( $len > 6 ))
  66.   then
  67.     echo -e "\ninvalid pin length, abort"
  68.     exit 1
  69. fi
  70.  
  71. read -p "pin is pattern [y/n]? : " pattern
  72. pattern=${pattern,}
  73.  
  74. for (( i; i<${#passwd}; i++ ))
  75.   do
  76.     if [ ${passwd:$i:1} != . ]
  77.       then
  78.         let $(printf 'digit_%02d=%c\n' $((i+1)) ${passwd:$i:1})
  79.     fi
  80. done
  81.  
  82. d1=$digit_01
  83. d2=$digit_02
  84. d3=$digit_03
  85. d4=$digit_04
  86. d5=$digit_05
  87. d6=$digit_06
  88.  
  89. for (( d1=${digit_01:-0}; d1<=${digit_01:-9}; d1++ ))
  90.   do
  91.     generate "${d1:-0}" || \
  92.     for (( d2=${digit_02:-0}; d2<=${digit_02:-9}; d2++ ))
  93.       do
  94.         generate "${d1:-0}${d2:-0}" || \
  95.         for (( d3=${digit_03:-0}; d3<=${digit_03:-9}; d3++ ))
  96.           do
  97.             generate "${d1:-0}${d2:-0}${d3:-0}" || \
  98.             for (( d4=${digit_04:-0}; d4<=${digit_04:-9}; d4++ ))
  99.               do
  100.                 generate "${d1:-0}${d2:-0}${d3:-0}${d4:-0}" || \
  101.                 for (( d5=${digit_05:-0}; d5<=${digit_05:-9}; d5++ ))
  102.                   do
  103.                     generate "${d1:-0}${d2:-0}${d3:-0}${d4:-0}${d5:-0}" || \
  104.                     for (( d6=${digit_06:-0}; d6<=${digit_06:-9}; d6++ ))
  105.                       do
  106.                         generate "${d1:-0}${d2:-0}${d3:-0}${d4:-0}${d5:-0}${d6:-0}"
  107.                     done
  108.                 done
  109.             done
  110.         done
  111.     done
  112. done
  113.  
  114. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement