Advertisement
DarkProgrammer000

HashCat

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