Advertisement
DarkProgrammer000

Hashcat (WPA-PBKDF2-PMKID+EAPOL)

Feb 23rd, 2023
919
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 14.08 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Configuracao do tipo de Hash a ser decodificado
  4. # 0        -> MD5
  5. # 22000    -> WPA-PBKDF2-PMKID+EAPOL
  6. hashType=22000 ## USER CHANGE
  7.  
  8. # Apresentacao
  9. apresentacao()
  10. {
  11.     clear
  12.     printf "     \e[1;92m.-\"\"\"\"-. \e[0m\n"
  13.     printf "    \e[1;92m/        \ \e[0m\n"
  14.     printf " \e[1;77m  \e[0m\e[1;92m/_        _\ \e[0m\n"
  15.     printf "\e[1;77m  \e[0m\e[1;92m// \      / \\ \e[0m\n"
  16.     printf "\e[1;77m  \e[0m\e[1;92m|\__\    /__/ \e[0m\n"
  17.     printf "\e[1;77m  \e[0m\e[1;92m\    ||    / \e[0m\n"
  18.     printf "\e[1;77m   \e[0m\e[1;92m\        / \e[0m\n"
  19.     printf "\e[1;92m \e[0m   \e[1;92m\  __  / \e[0m\n"
  20.     printf "     \e[1;92m'.__.' \e[0m\n\n"
  21.  
  22.     echo -e "\033[01;33m ################################### \033[01;37m"
  23.     echo -e "\033[01;32m  Desenvolvido por DarProgrammer000  \033[01;37m"
  24.     echo -e "\033[31;5m  Black Hat DarkProgrammer000     \033[0m"
  25.     echo -e "\033[01;33m ################################### \033[01;37m\n"
  26.    
  27.     echo -e "\033[01;34m -----------------                                              \033[01;37m"
  28.     echo -e "\033[01;31m      HashCat                                                   \033[01;37m"
  29.     echo -e "\033[01;34m -----------------                                              \033[01;37m"
  30.     #echo -e "\033[01;32m # Pasta 'sessions': /root/.hashcat/sessions                           \033[01;37m"
  31.     echo -e "\033[01;32m # Pasta 'sessions': /root/.local/share/hashcat/sessions                        \033[01;37m"
  32.     echo -e "\033[01;32m # Pasta   'senhas': /root/.local/share/hashcat/hashcat.potfile                         \033[01;37m"
  33.     echo -e -n "\033[01;34m # Converter HandShake para o padrao HashCat -> \033[01;35m https://hashcat.net/cap2hashcat/     \033[00;00m"
  34.     echo ""
  35. }
  36.  
  37. ####################################
  38. #        METODOS PRINCIPAIS        #
  39. ####################################
  40.  
  41. # Brute Force
  42. 1()
  43. {  
  44.     clear
  45.     echo -e "\033[01;34m ------------------------------- \033[01;37m"
  46.     echo -e "\033[01;35m      Brute Force - Default      \033[01;37m"
  47.     echo -e "\033[01;34m ------------------------------- \033[01;37m"
  48.     echo ""
  49.     echo -e "\033[01;31m [1] Attack      \033[01;37m"
  50.     echo -e "\033[01;32m [2] Restore session \033[01;37m"
  51.     echo -e "\033[01;33m [3] Resultados      \033[01;37m"
  52.     echo ""
  53.     echo -e "\033[01;34m [ENTER] Back    \033[01;37m"
  54.     echo ""
  55.  
  56.     # Entrada de dados
  57.     echo -e -n "\033[01;36m # Opc: \033[01;37m"
  58.     read opc
  59.  
  60.     # Comando [bruteForce MD5]: hashcat -S -O -w 4 -n 64 -u 256 -T 64 --force --session=bruteForce -a 3 -m 0 hash.txt
  61.     kernel="-S -O -w 4 -n 64 -u 256 -T 64 --force"
  62.     session="--session=bruteForce"
  63.     bruteForce="-a 3 -m $hashType"
  64.  
  65.     # Estrutura de escolha
  66.     case $opc in
  67.  
  68.     1)  # Metodo
  69.         arquivo && clear
  70.         hashcat $kernel $session $bruteForce "$arq";;
  71.    
  72.     2)  # Comando
  73.         clear && hashcat $kernel --session bruteForce --restore;;
  74.  
  75.     3)  # Metodo
  76.         show;;
  77.  
  78.     *)  ;;
  79.  
  80.     esac
  81.  
  82.     # Limpeza de variavel
  83.     opc=""
  84. }
  85.  
  86. # Brute Force
  87. 2()
  88. {  
  89.     clear
  90.     echo -e "\033[01;34m ------------------------------------ \033[01;37m"
  91.     echo -e "\033[01;35m      Brute Force All Caracteres      \033[01;37m"
  92.     echo -e "\033[01;34m ------------------------------------ \033[01;37m"
  93.     echo ""
  94.     echo -e "\033[01;31m [1] Attack      \033[01;37m"
  95.     echo -e "\033[01;32m [2] Restore session \033[01;37m"
  96.     echo -e "\033[01;33m [3] Resultados      \033[01;37m"
  97.     echo ""
  98.     echo -e "\033[01;34m [ENTER] Back    \033[01;37m"
  99.     echo ""
  100.  
  101.     # Entrada de dados
  102.     echo -e -n "\033[01;36m # Opc: \033[01;37m"
  103.     read opc
  104.  
  105.     # Comando [bruteForce MD5]: hashcat -S -O -w 4 -n 64 -u 256 -T 64 --force --session=bruteForce -a 3 -m 0 -1 ?a hash.txt ?1?1?1?1?1?1?1?1
  106.     kernel="-S -O -w 4 -n 64 -u 256 -T 64 --force"
  107.     session="--session=bruteForceAll"
  108.     bruteForceAll="-a 3 -m $hashType"
  109.  
  110.     # Estrutura de escolha
  111.     case $opc in
  112.  
  113.     1)  # Metodo
  114.         arquivo && clear
  115.  
  116.         # Entrada de dados
  117.         echo -e -n "\033[01;33m\n # Quantidade de caracteres (Ex: '8 caracteres' digite: ?1?1?1?1?1?1?1?1 | ?1lack?1at): \033[01;37m"
  118.         read qtdCaractere && clear
  119.  
  120.         # Comando
  121.         hashcat $kernel $session $bruteForceAll -1 ?a "$arq" $qtdCaractere;;
  122.  
  123.     2)  # Comando
  124.         clear && hashcat $kernel --session bruteForceAll --restore;;
  125.  
  126.     3)  # Metodo
  127.         show;;
  128.  
  129.     *)  ;;
  130.  
  131.     esac
  132.  
  133.     # Limpeza de variavel
  134.     opc=""
  135. }
  136.  
  137. # Word List
  138. 3()
  139. {
  140.     clear
  141.     echo -e "\033[01;34m ------------------- \033[01;37m"
  142.     echo -e "\033[01;35m      Word List      \033[01;37m"
  143.     echo -e "\033[01;34m ------------------- \033[01;37m"
  144.     echo ""
  145.     echo -e "\033[01;31m [1] Attack      \033[01;37m"
  146.     echo -e "\033[01;32m [2] Restore session \033[01;37m"
  147.     echo -e "\033[01;33m [3] Resultados      \033[01;37m"
  148.     echo ""
  149.     echo -e "\033[01;34m [ENTER] Back    \033[01;37m"
  150.     echo ""
  151.  
  152.     # Entrada de dados
  153.     echo -e -n "\033[01;36m # Opc: \033[01;37m"
  154.     read opc
  155.  
  156.     # Comando [bruteForce MD5]: hashcat -S -O -w 4 -n 64 -u 256 -T 64 --force --session=wordList -a 0 -m 0 hash.txt "/usr/share/wordlists/rockyou.txt"
  157.     kernel="-S -O -w 4 -n 64 -u 256 -T 64 --force"
  158.     session="--session=wordList"
  159.     wordList="-a 0 -m $hashType"
  160.  
  161.     # Estrutura de escolha
  162.     case $opc in
  163.  
  164.     1)  # Metodo
  165.         arquivo
  166.  
  167.         # Entrada de dados
  168.         echo -e -n "\033[01;33m\n # WordList (Ex: /usr/share/wordlists/rockyou.txt): \033[01;37m"
  169.             read path && clear
  170.  
  171.         # Comando
  172.         hashcat $kernel $session "$arq" $wordList "$path";;
  173.  
  174.     2)  # Comando
  175.         clear && hashcat $kernel --session wordList --restore;;
  176.  
  177.     3)  # Metodo
  178.         show;;
  179.  
  180.     *)  ;;
  181.        
  182.     esac
  183.  
  184.     # Limpeza de variavel
  185.     opc=""
  186. }
  187.  
  188. # Numbers
  189. 4()
  190. {
  191.     clear
  192.     echo -e "\033[01;34m ----------------- \033[01;37m"
  193.     echo -e "\033[01;35m      Numbers      \033[01;37m"
  194.     echo -e "\033[01;34m ----------------- \033[01;37m"
  195.     echo ""
  196.     echo -e "\033[01;31m [1] Attack      \033[01;37m"
  197.     echo -e "\033[01;32m [2] Restore session \033[01;37m"
  198.     echo -e "\033[01;33m [3] Resultados      \033[01;37m"
  199.     echo ""
  200.     echo -e "\033[01;34m [ENTER] Back    \033[01;37m"
  201.     echo ""
  202.  
  203.     # Entrada de dados
  204.     echo -e -n "\033[01;36m # Opc: \033[01;37m"
  205.     read opc
  206.  
  207.     # Comando [bruteForce MD5]: hashcat -S -O -w 4 -n 64 -u 256 -T 64 --force --session=numbers -1 ?d -a 3 -m 0 hash.txt ?1?1?1?1?1?1?1?1
  208.     kernel="-S -O -w 4 -n 64 -u 256 -T 64 --force"
  209.     session="--session=numbers"
  210.     numbers="-a 3 -m $hashType"
  211.  
  212.     # Estrutura de escolha
  213.     case $opc in
  214.  
  215.     1)  # Metodo
  216.         arquivo && clear
  217.  
  218.         # Entrada de dados
  219.         echo -e -n "\033[01;33m\n # Quantidade de caracteres (Ex: '8 caracteres' digite: ?1?1?1?1?1?1?1?1 | ?1lack?1at): \033[01;37m"
  220.             read qtdCaractere && clear
  221.  
  222.         # Comando
  223.         hashcat $kernel $session -1 ?d $numbers "$arq" $qtdCaractere;;
  224.  
  225.     2)  # Comando
  226.         clear && hashcat $kernel --session numbers --restore;;
  227.  
  228.     3)  # Metodo
  229.         show;;
  230.  
  231.     *)  ;;
  232.    
  233.     esac
  234.  
  235.     # Limpeza de variavel
  236.     opc=""
  237. }
  238.  
  239. # Letters
  240. 5()
  241. {
  242.     clear
  243.     echo -e "\033[01;34m ----------------- \033[01;37m"
  244.     echo -e "\033[01;35m      Letters      \033[01;37m"
  245.     echo -e "\033[01;34m ----------------- \033[01;37m"
  246.     echo ""
  247.     echo -e "\033[01;31m [1] Attack      \033[01;37m"
  248.     echo -e "\033[01;32m [2] Restore session \033[01;37m"
  249.     echo -e "\033[01;33m [3] Resultados      \033[01;37m"
  250.     echo ""
  251.     echo -e "\033[01;34m [ENTER] Back    \033[01;37m"
  252.     echo ""
  253.  
  254.     # Entrada de dados
  255.     echo -e -n "\033[01;36m # Opc: \033[01;37m"
  256.     read opc
  257.  
  258.     # Comando [bruteForce MD5]: hashcat -O -w 4 -n 64 -u 256 -T 64 --force --session=letters -1 ?l?u -a 3 -m 0 hash ?1?1?1?1?1?1?1?1
  259.     kernel="-S -O -w 4 -n 64 -u 256 -T 64 --force"
  260.     session="--session=letters"
  261.     numbers="-a 3 -m $hashType"
  262.  
  263.     # Estrutura de escolha
  264.     case $opc in
  265.  
  266.     1)  # Metodo
  267.         arquivo && clear
  268.  
  269.         # Entrada de dados
  270.         echo -e -n "\033[01;33m\n # Quantidade de caracteres (Ex: '8 caracteres' digite: ?1?1?1?1?1?1?1?1 | ?1lack?1at): \033[01;37m"
  271.             read qtdCaractere && clear
  272.  
  273.         # Comando
  274.         hashcat $kernel $session -1 ?l?u $numbers "$arq" $qtdCaractere;;
  275.  
  276.     2)  # Metodo
  277.         clear && hashcat $kernel --session letters --restore;;
  278.    
  279.     3)  # Metodo
  280.         show;;
  281.  
  282.     *)  ;;
  283.    
  284.     esac
  285.  
  286.     # Limpeza de variavel
  287.     opc=""
  288. }
  289.  
  290. # Minuscule letters
  291. 6()
  292. {
  293.     clear
  294.     echo -e "\033[01;34m -------------------------- \033[01;37m"
  295.     echo -e "\033[01;35m      Minuscule Letter      \033[01;37m"
  296.     echo -e "\033[01;34m -------------------------- \033[01;37m"
  297.     echo ""
  298.     echo -e "\033[01;31m [1] Attack      \033[01;37m"
  299.     echo -e "\033[01;32m [2] Restore session \033[01;37m"
  300.     echo -e "\033[01;33m [3] Resultados      \033[01;37m"
  301.     echo ""
  302.     echo -e "\033[01;34m [ENTER] Back    \033[01;37m"
  303.     echo ""
  304.  
  305.     # Entrada de dados
  306.     echo -e -n "\033[01;35m # Opc: \033[01;37m"
  307.     read opc
  308.  
  309.     # Comando [bruteForce MD5]: hashcat -O -w 4 -n 64 -u 256 -T 64 --force --session=numbers -1 ?l -a 3 -m 0 hash ?1?1?1?1?1?1?1?1
  310.     kernel="-S -O -w 4 -n 64 -u 256 -T 64 --force"
  311.     session="--session=minusculeLetter"
  312.     minusculeLetter="-a 3 -m $hashType"
  313.  
  314.     # Estrutura de escolha
  315.     case $opc in
  316.  
  317.     1)  # Metodo
  318.         arquivo
  319.  
  320.         # Tamanho da senha
  321.         echo -e -n "\033[01;33m\n # Quantidade de caracteres (Ex: '8 caracteres' digite: ?1?1?1?1?1?1?1?1 | ?1lack?1at): \033[01;37m"
  322.             read qtdCaractere && clear
  323.  
  324.         # Comando
  325.         hashcat $kernel $session -1 ?l $minusculeLetter "$arq" $qtdCaractere;;
  326.  
  327.     2)  # Comando
  328.         clear && hashcat $kernel --session minusculeLetter --restore;;
  329.  
  330.     3)  # Metodo
  331.         show;;
  332.  
  333.     *)  ;;
  334.    
  335.     esac
  336.  
  337.     # Limpeza de variavel
  338.     opc=""
  339. }
  340.  
  341. # Letter + Numbers
  342. 7()
  343. {
  344.     clear
  345.     echo -e "\033[01;34m --------------------------- \033[01;37m"
  346.     echo -e "\033[01;35m      Letters + Numbers      \033[01;37m"
  347.     echo -e "\033[01;34m --------------------------- \033[01;37m"
  348.     echo ""
  349.     echo -e "\033[01;31m [1] Attack      \033[01;37m"
  350.     echo -e "\033[01;32m [2] Restore session \033[01;37m"
  351.     echo -e "\033[01;33m [3] Resultados      \033[01;37m"
  352.     echo ""
  353.     echo -e "\033[01;34m [ENTER] Back    \033[01;37m"
  354.     echo ""
  355.  
  356.     # Entrada de dados
  357.     echo -e -n "\033[01;35m # Opc: \033[01;37m"
  358.     read opc
  359.  
  360.     # Comando [bruteForce MD5]: hashcat -O -w 4 -n 64 -u 256 -T 64 --force --session=numbers -1 ?l?d?u -a 3 -m 0 hash ?1?1?1?1?1?1?1?1
  361.     kernel="-S -O -w 4 -n 64 -u 256 -T 64 --force"
  362.     session="--session=lettersNumbers"
  363.     letterNumbers="-a 3 -m $hashType"
  364.  
  365.     # Estrutura de escolha
  366.     case $opc in
  367.  
  368.     1)  # Metodo
  369.         arquivo
  370.  
  371.         # Tamanho da senha
  372.         echo -e -n "\033[01;33m\n # Quantidade de caracteres (Ex: '8 caracteres' digite: ?1?1?1?1?1?1?1?1 | ?1lack?1at): \033[01;37m"
  373.             read qtdCaractere && clear
  374.  
  375.         # Comando
  376.         hashcat $kernel $session -1 ?l?d?u $letterNumbers "$arq" $qtdCaractere;;
  377.  
  378.     2)  # Comando
  379.         clear && hashcat $kernel --session letterNumbers --restore;;
  380.  
  381.     3)  # Metodo
  382.         show;;
  383.  
  384.     *)  ;;
  385.    
  386.     esac
  387.  
  388.     # Limpeza de variavel
  389.     opc=""
  390. }
  391.  
  392. # Custom
  393. 8()
  394. {
  395.     clear
  396.     echo -e "\033[01;34m ---------------- \033[01;37m"
  397.     echo -e "\033[01;35m      Custom      \033[01;37m"
  398.     echo -e "\033[01;34m ---------------- \033[01;37m"
  399.     echo ""
  400.     echo -e "\033[01;31m [1] Attack      \033[01;37m"
  401.     echo -e "\033[01;32m [2] Restore session \033[01;37m"
  402.     echo -e "\033[01;33m [3] Resultados      \033[01;37m"
  403.     echo ""
  404.     echo -e "\033[01;34m [ENTER] Back    \033[01;37m"
  405.     echo ""
  406.  
  407.     # Entrada de dados
  408.     echo -e -n "\033[01;35m # Opc: \033[01;37m"
  409.     read opc
  410.  
  411.     # Comando [bruteForce MD5]: hashcat -O -w 4 -n 64 -u 256 -T 64 --force --session=custom -1 abcde12345 -a 3 -m 0 hash ?1?1?1?1?1?1?1?1
  412.     kernel="-S -O -w 4 -n 64 -u 256 -T 64 --force"
  413.     session="--session=custom"
  414.     custom="-a 3 -m $hashType"
  415.  
  416.     # Estrutura de escolha
  417.     case $opc in
  418.  
  419.     1)  # Metodo
  420.         arquivo
  421.  
  422.             # Tamanho da senha
  423.         echo -e -n "\033[01;31m\n # Caracteres (Ex:abc123): \033[01;37m"
  424.             read caracteres
  425.        
  426.         # Tamanho da senha
  427.         echo -e -n "\033[01;33m\n # Quantidade de caracteres (Ex: '8 caracteres' digite: ?1?1?1?1?1?1?1?1 | ?1lack?1at): \033[01;37m"
  428.             read qtdCaractere && clear
  429.        
  430.         # Comando
  431.         hashcat $kernel $session -1 $caracteres $custom "$arq" $qtdCaractere;;
  432.  
  433.     2)  # Comando  
  434.         clear && hashcat $kernel --session custom --restore;;
  435.  
  436.     3)  # Metodo
  437.         show;;
  438.    
  439.     esac
  440.  
  441.     # Limpeza de variavel
  442.     opc=""
  443. }
  444.  
  445. ##################################
  446. #        CONTROLE DE MENU        #
  447. ##################################
  448.  
  449. # Montagem de menu principal
  450. montagemMenu()
  451. {
  452.     # Montagem de um array list
  453.     declare -a arr=("Brute force -> Default"
  454.                 "Brute force -> all"
  455.             "Word list"
  456.             "Numbers"
  457.             "Letters"
  458.             "Minuscule letters"
  459.             "Letters + Numbers"
  460.             "Custom"
  461.             )
  462.    
  463.     # Tamanho do vetor: ${#arr[@]}
  464.     # Estrutura em loop (estilo C))
  465.     # $i(indice): ${arr[$i]} (conteudo na lista)
  466.    
  467.     echo -e "\n\033[01;33m # Main Menu  \n\033[01;37m"
  468.    
  469.     for (( i=0; i < ${#arr[@]}; i++))
  470.     do
  471.         echo -e "\033[01;3$((i+1))m # [$((i+1))]: ${arr[$i]} \033[01;37m"
  472.     done
  473.    
  474.     echo ""
  475.     echo -e "\033[01;32m # [i]: Press Passwords  \033[01;37m"
  476.     echo -e "\033[01;31m # [0]: Exit         \n\033[01;37m"
  477.     echo -n -e "\033[01;37m # Opc.: \033[01;37m"
  478.     read opc
  479.  
  480.     escolha
  481. }
  482.  
  483. # Estrutura em escolha
  484. escolha()
  485. {
  486.     case $opc in
  487.     1)  1;;
  488.     2)  2;;
  489.     3)  3;;
  490.     4)  4;;
  491.     5)  5;;
  492.     6)  6;;
  493.     7)  7;;
  494.     8)  8;;
  495.     i | I)  imprimirSenhas;;
  496.     0)  exit 1;;
  497.     *)   ;;
  498.     esac
  499. }
  500.  
  501. # Controle de fluxo
  502. Programa()
  503. {
  504.     while [[ 1 ]]
  505.     do
  506.         apresentacao
  507.         montagemMenu
  508.         escolha
  509.     done
  510. }
  511.  
  512. #########################
  513. #        SUPORTE        #
  514. #########################
  515.  
  516. # Arquivo a ser analisado
  517. arquivo()
  518. {
  519.     # Configuracao do arquivo
  520.     echo -e -n "\033[01;33m\n # Arquivo (Ex: hash | hash.txt | WPA -> hash.hc22000): \033[01;37m"
  521.     read arq
  522. }
  523.  
  524. # Mostrar resultado das senhas
  525. show()
  526. {
  527.  
  528.     clear && cat /root/.local/share/hashcat/hashcat.potfile && echo -e "\n\033[01;33m<<< ENTER >>>\033[01;37m" && read
  529.     #clear && cat /root/.hashcat/hashcat.potfile && echo -e "\n\033[01;33m<<< ENTER >>>\033[01;37m" && read
  530.     #arquivo && clear && hashcat $kernel $session -1 ?1 $custom "$arq" ?1 --show && echo -e "\n\033[01;33m<<< ENTER >>>\033[01;37m" && read
  531. }
  532.  
  533. # Mostrar resultado das senhas
  534. imprimirSenhas()
  535. {
  536.     clear
  537.     echo -e "\033[01;34m ----------------------- \033[01;37m"
  538.     echo -e "\033[01;35m     Press Passwords     \033[01;37m"
  539.     echo -e "\033[01;34m ----------------------- \033[01;37m"
  540.     echo ""
  541.  
  542.     # Senhas
  543.     linhas=$(sort /root/.local/share/hashcat/hashcat.potfile | wc -l)
  544.     echo -e "\033[01;31m # Senhas: $linhas \n\033[01;37m"
  545.    
  546.     #cat /root/.local/share/hashcat/hashcat.potfile | sort
  547.    
  548.     # Relatorio
  549.     sort /root/.local/share/hashcat/hashcat.potfile | uniq > Relatorio.txt
  550.  
  551.     #echo $relatorio
  552.     echo -e "\n\n\033[01;34m [ENTER] Back \033[01;37m"
  553.     read
  554.    
  555.     # Limpeza de variavel
  556.     opc=""
  557. }
  558. # Inicio
  559. Programa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement