diff --git a/attacks/Handshake Snooper/attack.sh b/attacks/Handshake Snooper/attack.sh index fb22a67..d93dc56 100755 --- a/attacks/Handshake Snooper/attack.sh +++ b/attacks/Handshake Snooper/attack.sh @@ -277,6 +277,7 @@ handshake_snooper_set_verifier_identifier() { local choices=( "$FLUXIONHashVerificationMethodPyritOption" "$FLUXIONHashVerificationMethodAircrackOption" + "$FLUXIONHashVerificationMethodCowpattyOption" "$FLUXIONGeneralBackOption" ) io_query_choice "$FLUXIONHashVerificationMethodQuery" choices[@] @@ -288,6 +289,8 @@ handshake_snooper_set_verifier_identifier() { HandshakeSnooperVerifierIdentifier="pyrit" ;; "$FLUXIONHashVerificationMethodAircrackOption") HandshakeSnooperVerifierIdentifier="aircrack-ng" ;; + "$FLUXIONHashVerificationMethodCowpattyOption") + HandshakeSnooperVerifierIdentifier="cowpatty" ;; "$FLUXIONGeneralBackOption") handshake_snooper_unset_verifier_identifier return 1 diff --git a/fluxion.sh b/fluxion.sh index 96c5f9e..516f7d1 100755 --- a/fluxion.sh +++ b/fluxion.sh @@ -1512,6 +1512,7 @@ fluxion_hash_verify() { local choices=( \ "$FLUXIONHashVerificationMethodPyritOption" \ "$FLUXIONHashVerificationMethodAircrackOption" \ + "$FLUXIONHashVerificationMethodCowpattyOption" \ "$FLUXIONGeneralBackOption" \ ) @@ -1526,6 +1527,9 @@ fluxion_hash_verify() { "$FLUXIONHashVerificationMethodAircrackOption") local -r verifier="aircrack-ng" ;; + "$FLUXIONHashVerificationMethodCowpattyOption") + local -r verifier="cowpatty" ;; + "$FLUXIONGeneralBackOption") return -1 ;; esac diff --git a/language/ar.sh b/language/ar.sh index 4ddc7aa..65688bf 100644 --- a/language/ar.sh +++ b/language/ar.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="حدد المسار ل hash" FLUXIONHashVerificationMethodQuery="اختر طريقة للتحقق من hash" FLUXIONHashVerificationMethodPyritOption="التحقق من pyrit (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodAircrackOption="التحقق من aircrack-ng (${CYel}unreliable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="حدد هجومًا لاسلكيًا لنقطة الوصول" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr جاري الهجوم..." diff --git a/language/cs.sh b/language/cs.sh index 6aefca2..aeff771 100755 --- a/language/cs.sh +++ b/language/cs.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Select a wireless attack for the access point" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attack in progress..." diff --git a/language/de.sh b/language/de.sh index 400c4ba..70edf7c 100755 --- a/language/de.sh +++ b/language/de.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Wählen sie eine Methode um den Hash zu verifizieren" FLUXIONHashVerificationMethodPyritOption="Pyrit verifizierung (${CGrn}Empfohlen$CClr)" FLUXIONHashVerificationMethodAircrackOption="Aircrack verfizierung (${CYel}Nicht empfohlen$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Wählen Sie einen drahtlosen Angriff für den Zugangspunkt aus" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr Angriff gestartet" diff --git a/language/el.sh b/language/el.sh index 08aa26e..cf3c0d4 100755 --- a/language/el.sh +++ b/language/el.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Επιλέξτε μια μέθοδο επαλήθευσης για το hash" FLUXIONHashVerificationMethodPyritOption="επαλήθευση με pyrit (${CGrn}συνιστώμενη$CClr)" FLUXIONHashVerificationMethodAircrackOption="επαληθευση με aircrack-ng (${CYel}αναξιόπιστη$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Καντε μια επιλογη" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr επιθεση σε εξελιξη..." diff --git a/language/en.sh b/language/en.sh index c7919bf..2111b9b 100755 --- a/language/en.sh +++ b/language/en.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Select a wireless attack for the access point" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attack in progress..." diff --git a/language/es.sh b/language/es.sh index 1f6ff6c..424097c 100755 --- a/language/es.sh +++ b/language/es.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Seleccione un ataque inalámbrico para el punto de acceso" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attack in progress..." diff --git a/language/fr.sh b/language/fr.sh index 8b6d93a..ffa643c 100755 --- a/language/fr.sh +++ b/language/fr.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Sélectionnez une méthode de vérification du hash" FLUXIONHashVerificationMethodPyritOption="vérification pyrit (${CGrn}recommandé$CClr)" FLUXIONHashVerificationMethodAircrackOption="vérification aircrack-ng (${CYel}peu fiable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Sélectionnez une attaque wireless pour le point d'accès" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attaque en cours..." diff --git a/language/it.sh b/language/it.sh index 9a086cb..0b6c6bf 100755 --- a/language/it.sh +++ b/language/it.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Seleziona il metodo di verifica dell'hash" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}raccomandato$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}inaffidabile$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Seleziona la tua scelta" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attacco in corso..." diff --git a/language/pl.sh b/language/pl.sh index 068e6cc..1a21fcb 100644 --- a/language/pl.sh +++ b/language/pl.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Wybierz metodę weryfikacji hash'a" FLUXIONHashVerificationMethodPyritOption="weryfikacja przy pomocy pyrit-a (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodAircrackOption="weryfikacja przy pomocy aircrack-ng (${CYel}unreliable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Wybierz rodzaj ataka na punkt dostępowy" FLUXIONAttackInProgressNotice="Atak ${CCyn}\$FluxionAttack$CClr w trakcie..." diff --git a/language/pt-br.sh b/language/pt-br.sh index 21b2fc5..9a73702 100755 --- a/language/pt-br.sh +++ b/language/pt-br.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Selecione um método de verificação para a hash" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recomendada$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}não confiável$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Selecione uma rede sem fio para atacar" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr ataque em progresso..." diff --git a/language/ro.sh b/language/ro.sh index d4a74b5..2dd3cc5 100755 --- a/language/ro.sh +++ b/language/ro.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Selecteaza optiunea ta" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attack in progress..." diff --git a/language/ru.sh b/language/ru.sh index 34b7072..20ecabb 100755 --- a/language/ru.sh +++ b/language/ru.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Укажите путь к рукопожатию" FLUXIONHashVerificationMethodQuery="Выберите метод проверки рукопожатия" FLUXIONHashVerificationMethodPyritOption="проверка с помощью pyrit (${CGrn}рекомендуется$CClr)" FLUXIONHashVerificationMethodAircrackOption="проверка с помощью aircrack-ng (${CYel}ненадёжная$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Выбор беспроводной атаки для точки доступа" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr идёт атака..." diff --git a/language/sk.sh b/language/sk.sh index e03fb2c..6fb8a11 100644 --- a/language/sk.sh +++ b/language/sk.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Vyberte spôsob overenia pre 'hash'" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}Odporúčané$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}nespoľahlivé$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Vyberte spôsob útoku pre prístupový bod" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr prebieha útok..." diff --git a/language/sl.sh b/language/sl.sh index 4981df7..37636c9 100755 --- a/language/sl.sh +++ b/language/sl.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Izberi možnost" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attack in progress..." diff --git a/language/tk.sh b/language/tk.sh index d0bae5a..3610640 100755 --- a/language/tk.sh +++ b/language/tk.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="Secenegi Sec" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attack in progress..." diff --git a/language/zh.sh b/language/zh.sh index 165a65e..7203f2c 100755 --- a/language/zh.sh +++ b/language/zh.sh @@ -63,6 +63,7 @@ FLUXIONSpecifyHashPathOption="Specify path to hash" FLUXIONHashVerificationMethodQuery="选择Hash的验证方法" FLUXIONHashVerificationMethodPyritOption="验证码 (${CGrn}推荐用这个$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng 验证 (${CYel}不推荐$CClr)" +FLUXIONHashVerificationMethodCowpattyOption="cowpatty verification" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FLUXIONAttackQuery="请选择一个攻击方式" FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attack in progress..." diff --git a/lib/HashUtils.sh b/lib/HashUtils.sh index 5ee5bad..a5e94f8 100755 --- a/lib/HashUtils.sh +++ b/lib/HashUtils.sh @@ -45,6 +45,17 @@ function hash_check_handshake() { local hashData=$(echo "${analysis[@]}" | grep -E "${handshakeAPMAC^^}\s+" | grep -F "$handshakeAPSSID") ;; + "cowpatty") + readarray analysis < <(aircrack-ng "$handshakePath" 2> $HashOutputDevice) + if [ "${#analysis[@]}" -eq 0 -o $? != 0 ]; then + echo "Error: cowpatty (aircrack-ng) seems to be broken!" > $HashOutputDevice + return 1 + fi + + if echo "${analysis[@]}" | grep -E "${handshakeAPMAC^^}\s+" | grep -qF "$handshakeAPSSID"; then + local hashData=$(cowpatty -cr "$handshakePath") + fi + ;; *) echo "Invalid verifier, quitting!" > $HashOutputDevice return 1 @@ -66,6 +77,11 @@ function hash_check_handshake() { if echo "$hashData" | grep -qE "\([0-9]+ handshake\)"; then local -r hashResult=1 fi ;; + + "cowpatty") + if echo "$hashData" | grep -q "Collected all necessary data to mount crack against WPA2/PSK passphrase."; then + local -r hashResult=1 + fi ;; esac if [ -z "$hashResult" ]; then