Mangling, interfaces, format, renaming, & fixes.
Added identifier mangling to sequencing framework to prevent collisions. Added the redo to interfaces by taking a lambda rather than an array ref. Started correcting some issues with formatting to follow the style guide. Reidentified some subroutines, variables, & constants. Fixed some bugs with the currently implemented subroutines. Added some test subroutines.
This commit is contained in:
parent
1613eec221
commit
2aefa3bb22
177
fluxion
177
fluxion
|
@ -76,7 +76,7 @@ source lib/HashUtils.sh
|
||||||
# ============================================================ #
|
# ============================================================ #
|
||||||
# =================== < Parse Parameters > =================== #
|
# =================== < Parse Parameters > =================== #
|
||||||
# ============================================================ #
|
# ============================================================ #
|
||||||
if ! FLUXIONCLIArguments=$(getopt --options="vdkrntl:a:" --longoptions="debug,version,killer,reloader,airmon-ng,target,language:,attack:" --name="FLUXION V$FLUXIONVersion.$FLUXIONRevision" -- "$@")
|
if ! FLUXIONCLIArguments=$(getopt --options="vdkrntl:a:" --longoptions="debug,version,killer,reloader,airmon-ng,target,test,language:,attack:" --name="FLUXION V$FLUXIONVersion.$FLUXIONRevision" -- "$@")
|
||||||
then echo -e "${CRed}Aborted$CClr, parameter error detected..."; exit 5
|
then echo -e "${CRed}Aborted$CClr, parameter error detected..."; exit 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -427,31 +427,34 @@ declare -rA FLUXIONUndoable=( \
|
||||||
["start"]="stop" \
|
["start"]="stop" \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Yes, I know, the identifiers are fucking ugly. If only we had
|
||||||
|
# some type of mangling with bash identifiers, that'd be great.
|
||||||
function fluxion_do() {
|
function fluxion_do() {
|
||||||
if [ ${#@} -lt 2 ]; then return -1; fi
|
if [ ${#@} -lt 2 ]; then return -1; fi
|
||||||
|
|
||||||
local -r namespace=$1
|
local -r __fluxion_do__namespace=$1
|
||||||
local -r identifier=$2
|
local -r __fluxion_do__identifier=$2
|
||||||
|
|
||||||
eval FXDLog_$namespace+=\("$identifier"\)
|
eval FXDLog_$__fluxion_do__namespace+=\("$__fluxion_do__identifier"\)
|
||||||
eval ${namespace}_$identifier "${@:3}"
|
eval ${__fluxion_do__namespace}_$__fluxion_do__identifier "${@:3}"
|
||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
function fluxion_undo() {
|
function fluxion_undo() {
|
||||||
if [ ${#@} -ne 1 ]; then return -1; fi
|
if [ ${#@} -ne 1 ]; then return -1; fi
|
||||||
|
|
||||||
local -r namespace=$1
|
local -r __fluxion_undo__namespace=$1
|
||||||
|
|
||||||
eval local -r history=\("\${FXDLog_$namespace[@]}"\)
|
eval local -r __fluxion_undo__history=\("\${FXDLog_$__fluxion_undo__namespace[@]}"\)
|
||||||
|
|
||||||
local i
|
local __fluxion_undo__i
|
||||||
for (( i=${#history[@]}; i > 0; i-- )); do
|
for (( __fluxion_undo__i=${#__fluxion_undo__history[@]}; \
|
||||||
local -r instruction=${history[i-1]}
|
__fluxion_undo__i > 0; __fluxion_undo__i-- )); do
|
||||||
local -r command=${instruction%%_*}
|
local -r __fluxion_undo__instruction=${__fluxion_undo__history[__fluxion_undo__i-1]}
|
||||||
local -r identifier=${instruction#*_}
|
local -r __fluxion_undo__command=${__fluxion_undo__instruction%%_*}
|
||||||
if eval ${namespace}_${FLUXIONUndoable["$command"]}_$identifier; then
|
local -r __fluxion_undo__identifier=${__fluxion_undo__instruction#*_}
|
||||||
eval FXDLog_$namespace=\("${history[@]::$i}"\)
|
if eval ${__fluxion_undo__namespace}_${FLUXIONUndoable["$__fluxion_undo__command"]}_$__fluxion_undo__identifier; then
|
||||||
|
eval FXDLog_$__fluxion_undo__namespace=\("${__fluxion_undo__history[@]::$__fluxion_undo__i}"\)
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -460,14 +463,20 @@ function fluxion_undo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function fluxion_done() {
|
function fluxion_done() {
|
||||||
eval "FluxionDone=\${FXDLog_$namespace[-1]}"
|
if [ ${#@} -ne 1 ]; then return -1; fi
|
||||||
|
|
||||||
|
local -r __fluxion_done__namespace=$1
|
||||||
|
|
||||||
|
eval "FluxionDone=\${FXDLog_$__fluxion_done__namespace[-1]}"
|
||||||
[ ! $FluxionDone ] && return 1
|
[ ! $FluxionDone ] && return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function fluxion_done_reset() {
|
function fluxion_done_reset() {
|
||||||
if [ ${#@} -ne 1 ]; then return -1; fi
|
if [ ${#@} -ne 1 ]; then return -1; fi
|
||||||
local -r namespace=$1
|
|
||||||
eval FXDLog_$namespace=\(\)
|
local -r __fluxion_done_reset__namespace=$1
|
||||||
|
|
||||||
|
eval FXDLog_$__fluxion_done_reset__namespace=\(\)
|
||||||
}
|
}
|
||||||
|
|
||||||
function fluxion_do_sequence() {
|
function fluxion_do_sequence() {
|
||||||
|
@ -745,10 +754,17 @@ function fluxion_allocate_interface() { # Reserve interfaces
|
||||||
# as the key for the global FluxionInterfaces hash/map/dictionary.
|
# as the key for the global FluxionInterfaces hash/map/dictionary.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Parameters: <interfaces:lambda>
|
||||||
|
# Note: The interfaces lambda must print an interface per line.
|
||||||
|
# ------------------------------------------------------------ #
|
||||||
|
# Return -1: Go back
|
||||||
|
# Return 1: Missing interfaces lambda identifier (not passed).
|
||||||
function fluxion_get_interface() {
|
function fluxion_get_interface() {
|
||||||
if [[ "$1" != *"[@]" ]]; then return 1; fi
|
if ! type -t "$1" &> /dev/null; then return 1; fi
|
||||||
|
|
||||||
local interfacesAvailable=("${!1}")
|
while true; do
|
||||||
|
local interfacesAvailable
|
||||||
|
readarray -t interfacesAvailable < <($1)
|
||||||
local interfacesAvailableInfo=()
|
local interfacesAvailableInfo=()
|
||||||
local interfacesAvailableColor=()
|
local interfacesAvailableColor=()
|
||||||
local interfacesAvailableState=()
|
local interfacesAvailableState=()
|
||||||
|
@ -802,14 +818,16 @@ function fluxion_get_interface() {
|
||||||
echo
|
echo
|
||||||
|
|
||||||
case "${IOQueryFormatFields[1]}" in
|
case "${IOQueryFormatFields[1]}" in
|
||||||
"$FLUXIONGeneralRepeatOption") return -2;;
|
"$FLUXIONGeneralRepeatOption") continue;;
|
||||||
"$FLUXIONGeneralBackOption") return -1;;
|
"$FLUXIONGeneralBackOption") return -1;;
|
||||||
|
*) break;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
FluxionGetInterfaceSelected="${IOQueryFormatFields[1]}"
|
|
||||||
FluxionGetInterfaceSelectedState="${IOQueryFormatFields[2]}"
|
|
||||||
FluxionGetInterfaceSelectedInfo="${IOQueryFormatFields[3]}"
|
|
||||||
fi
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
FluxionInterfaceSelected="${IOQueryFormatFields[1]}"
|
||||||
|
FluxionInterfaceSelectedState="${IOQueryFormatFields[2]}"
|
||||||
|
FluxionInterfaceSelectedInfo="${IOQueryFormatFields[3]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -820,7 +838,7 @@ function fluxion_get_interface() {
|
||||||
# Return 2: Xterm failed to start airmon-ng.
|
# Return 2: Xterm failed to start airmon-ng.
|
||||||
# Return 3: Invalid capture file was generated.
|
# Return 3: Invalid capture file was generated.
|
||||||
# Return 4: No candidates were detected.
|
# Return 4: No candidates were detected.
|
||||||
function fluxion_get_target_candidates() {
|
function fluxion_target_get_candidates() {
|
||||||
# Assure a valid wireless interface for scanning was given.
|
# Assure a valid wireless interface for scanning was given.
|
||||||
if [ ! "$1" ] || ! interface_is_wireless "$1"; then return 1; fi
|
if [ ! "$1" ] || ! interface_is_wireless "$1"; then return 1; fi
|
||||||
|
|
||||||
|
@ -855,13 +873,13 @@ function fluxion_get_target_candidates() {
|
||||||
# The times matching operator "{n}" isn't supported by mawk (alias awk).
|
# The times matching operator "{n}" isn't supported by mawk (alias awk).
|
||||||
# readarray FLUXIONTargetCandidates < <(gawk -F, 'NF==15 && $1~/([A-F0-9]{2}:){5}[A-F0-9]{2}/ {print $0}' $FLUXIONWorkspacePath/dump-01.csv)
|
# readarray FLUXIONTargetCandidates < <(gawk -F, 'NF==15 && $1~/([A-F0-9]{2}:){5}[A-F0-9]{2}/ {print $0}' $FLUXIONWorkspacePath/dump-01.csv)
|
||||||
# readarray FLUXIONTargetCandidatesClients < <(gawk -F, 'NF==7 && $1~/([A-F0-9]{2}:){5}[A-F0-9]{2}/ {print $0}' $FLUXIONWorkspacePath/dump-01.csv)
|
# readarray FLUXIONTargetCandidatesClients < <(gawk -F, 'NF==7 && $1~/([A-F0-9]{2}:){5}[A-F0-9]{2}/ {print $0}' $FLUXIONWorkspacePath/dump-01.csv)
|
||||||
readarray FLUXIONTargetCandidates < <(awk -F, 'NF==15 && length($1)==17 && $1~/([A-F0-9][A-F0-9]:)+[A-F0-9][A-F0-9]/ {print $0}' "$FLUXIONWorkspacePath/dump-01.csv")
|
readarray FluxionTargetCandidates < <(awk -F, 'NF==15 && length($1)==17 && $1~/([A-F0-9][A-F0-9]:)+[A-F0-9][A-F0-9]/ {print $0}' "$FLUXIONWorkspacePath/dump-01.csv")
|
||||||
readarray FLUXIONTargetCandidatesClients < <(awk -F, 'NF==7 && length($1)==17 && $1~/([A-F0-9][A-F0-9]:)+[A-F0-9][A-F0-9]/ {print $0}' "$FLUXIONWorkspacePath/dump-01.csv")
|
readarray FluxionTargetCandidatesClients < <(awk -F, 'NF==7 && length($1)==17 && $1~/([A-F0-9][A-F0-9]:)+[A-F0-9][A-F0-9]/ {print $0}' "$FLUXIONWorkspacePath/dump-01.csv")
|
||||||
|
|
||||||
# Cleanup the workspace to prevent potential bugs/conflicts.
|
# Cleanup the workspace to prevent potential bugs/conflicts.
|
||||||
sandbox_remove_workfile "$FLUXIONWorkspacePath/dump*"
|
sandbox_remove_workfile "$FLUXIONWorkspacePath/dump*"
|
||||||
|
|
||||||
if [ ${#FLUXIONTargetCandidates[@]} -eq 0 ]; then
|
if [ ${#FluxionTargetCandidates[@]} -eq 0 ]; then
|
||||||
echo -e "$FLUXIONVLine $FLUXIONScannerDetectedNothingNotice"
|
echo -e "$FLUXIONVLine $FLUXIONScannerDetectedNothingNotice"
|
||||||
sleep 3
|
sleep 3
|
||||||
return 4
|
return 4
|
||||||
|
@ -873,6 +891,8 @@ function fluxion_get_target() {
|
||||||
# Assure a valid wireless interface for scanning was given.
|
# Assure a valid wireless interface for scanning was given.
|
||||||
if [ ! "$1" ] || ! interface_is_wireless "$1"; then return 1; fi
|
if [ ! "$1" ] || ! interface_is_wireless "$1"; then return 1; fi
|
||||||
|
|
||||||
|
local -r interface=$1
|
||||||
|
|
||||||
local choices=( \
|
local choices=( \
|
||||||
"$FLUXIONScannerChannelOptionAll (2.4GHz)" \
|
"$FLUXIONScannerChannelOptionAll (2.4GHz)" \
|
||||||
"$FLUXIONScannerChannelOptionAll (5GHz)" \
|
"$FLUXIONScannerChannelOptionAll (5GHz)" \
|
||||||
|
@ -886,13 +906,13 @@ function fluxion_get_target() {
|
||||||
|
|
||||||
case "$IOQueryChoice" in
|
case "$IOQueryChoice" in
|
||||||
"$FLUXIONScannerChannelOptionAll (2.4GHz)")
|
"$FLUXIONScannerChannelOptionAll (2.4GHz)")
|
||||||
fluxion_get_target_candidates $interface "" "bg";;
|
fluxion_target_get_candidates $interface "" "bg";;
|
||||||
|
|
||||||
"$FLUXIONScannerChannelOptionAll (5GHz)")
|
"$FLUXIONScannerChannelOptionAll (5GHz)")
|
||||||
fluxion_get_target_candidates $interface "" "a";;
|
fluxion_target_get_candidates $interface "" "a";;
|
||||||
|
|
||||||
"$FLUXIONScannerChannelOptionAll (2.4GHz & 5Ghz)")
|
"$FLUXIONScannerChannelOptionAll (2.4GHz & 5Ghz)")
|
||||||
fluxion_get_target_candidates $interface "" "abg";;
|
fluxion_target_get_candidates $interface "" "abg";;
|
||||||
|
|
||||||
"$FLUXIONScannerChannelOptionSpecific")
|
"$FLUXIONScannerChannelOptionSpecific")
|
||||||
fluxion_header
|
fluxion_header
|
||||||
|
@ -910,7 +930,7 @@ function fluxion_get_target() {
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
fluxion_get_target_candidates $interface $channels;;
|
fluxion_target_get_candidates $interface $channels;;
|
||||||
|
|
||||||
"$FLUXIONGeneralBackOption")
|
"$FLUXIONGeneralBackOption")
|
||||||
return -1;;
|
return -1;;
|
||||||
|
@ -931,22 +951,29 @@ function fluxion_get_target() {
|
||||||
# Gather information from all the candidates detected.
|
# Gather information from all the candidates detected.
|
||||||
# TODO: Clean up this for loop using a cleaner algorithm.
|
# TODO: Clean up this for loop using a cleaner algorithm.
|
||||||
# Maybe try using array appending & [-1] for last elements.
|
# Maybe try using array appending & [-1] for last elements.
|
||||||
for candidateAPInfo in "${candidates[@]}"; do
|
for candidateAPInfo in "${FluxionTargetCandidates[@]}"; do
|
||||||
# Strip candidate info from any extraneous spaces after commas.
|
# Strip candidate info from any extraneous spaces after commas.
|
||||||
candidateAPInfo=$(echo "$candidateAPInfo" | sed -r "s/,\s*/,/g")
|
candidateAPInfo=$(echo "$candidateAPInfo" | sed -r "s/,\s*/,/g")
|
||||||
|
|
||||||
local i=${#candidatesMAC[@]}
|
local i=${#candidatesMAC[@]}
|
||||||
|
|
||||||
candidatesMAC[i]=$(echo "$candidateAPInfo" | cut -d , -f 1)
|
candidatesMAC[i]=$(echo "$candidateAPInfo" | cut -d , -f 1)
|
||||||
candidatesClientsCount[i]=$(echo "${candidatesClients[@]}" | grep -c "${candidatesMAC[i]}")
|
candidatesClientsCount[i]=$(
|
||||||
|
echo "${FluxionTargetCandidatesClients[@]}" |
|
||||||
|
grep -c "${candidatesMAC[i]}"
|
||||||
|
)
|
||||||
candidatesChannel[i]=$(echo "$candidateAPInfo" | cut -d , -f 4)
|
candidatesChannel[i]=$(echo "$candidateAPInfo" | cut -d , -f 4)
|
||||||
candidatesSecurity[i]=$(echo "$candidateAPInfo" | cut -d , -f 6)
|
candidatesSecurity[i]=$(echo "$candidateAPInfo" | cut -d , -f 6)
|
||||||
candidatesPower[i]=$(echo "$candidateAPInfo" | cut -d , -f 9)
|
candidatesPower[i]=$(echo "$candidateAPInfo" | cut -d , -f 9)
|
||||||
candidatesColor[i]=$([ ${candidatesClientsCount[i]} -gt 0 ] && echo $CGrn || echo $CClr)
|
candidatesColor[i]=$(
|
||||||
|
[ ${candidatesClientsCount[i]} -gt 0 ] && echo $CGrn || echo $CClr
|
||||||
|
)
|
||||||
|
|
||||||
# Parse any non-ascii characters by letting bash handle them.
|
# Parse any non-ascii characters by letting bash handle them.
|
||||||
# Just escape all single quotes in ESSID and let bash's $'...' handle it.
|
# Just escape all single quotes in ESSID and let bash's $'...' handle it.
|
||||||
local sanitizedESSID=$(echo "${candidateAPInfo//\'/\\\'}" | cut -d , -f 14)
|
local sanitizedESSID=$(
|
||||||
|
echo "${candidateAPInfo//\'/\\\'}" | cut -d , -f 14
|
||||||
|
)
|
||||||
candidatesESSID[i]=$(eval "echo \$'$sanitizedESSID'")
|
candidatesESSID[i]=$(eval "echo \$'$sanitizedESSID'")
|
||||||
|
|
||||||
local power=${candidatesPower[i]}
|
local power=${candidatesPower[i]}
|
||||||
|
@ -983,15 +1010,17 @@ function fluxion_get_target() {
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
FLUXIONGetTargetMAC=${IOQueryFormatFields[7]}
|
FluxionTargetMAC=${IOQueryFormatFields[7]}
|
||||||
FLUXIONGetTargetSSID=${IOQueryFormatFields[1]}
|
FluxionTargetSSID=${IOQueryFormatFields[1]}
|
||||||
FLUXIONGetTargetChannel=${IOQueryFormatFields[5]}
|
FluxionTargetChannel=${IOQueryFormatFields[5]}
|
||||||
|
|
||||||
FLUXIONGetTargetEncryption=${IOQueryFormatFields[6]}
|
FluxionTargetEncryption=${IOQueryFormatFields[6]}
|
||||||
|
|
||||||
FLUXIONGetTargetMakerID=${APTargetMAC:0:8}
|
FluxionTargetMakerID=${FluxionTargetMAC:0:8}
|
||||||
FLUXIONGetTargetMaker=$(
|
FluxionTargetMaker=$(
|
||||||
macchanger -l | grep ${FLUXIONGetTargetMakerID,,} | cut -d ' ' -f 5-
|
macchanger -l |
|
||||||
|
grep ${FluxionTargetMakerID,,} 2> $FLUXIONOutputDevice |
|
||||||
|
cut -d ' ' -f 5-
|
||||||
)
|
)
|
||||||
|
|
||||||
# Sanitize network ESSID to make it safe for manipulation.
|
# Sanitize network ESSID to make it safe for manipulation.
|
||||||
|
@ -1015,9 +1044,9 @@ function fluxion_target_show() {
|
||||||
local colorlessFormat="$FormatApplyAutosize"
|
local colorlessFormat="$FormatApplyAutosize"
|
||||||
local colorfullFormat=$(echo "$colorlessFormat" | sed -r 's/%-32s/%-32b/g')
|
local colorfullFormat=$(echo "$colorlessFormat" | sed -r 's/%-32s/%-32b/g')
|
||||||
|
|
||||||
printf "$colorlessFormat" "" "ESSID" "\"${FLUXIONGetTargetSSID:-[N/A]}\" / ${FLUXIONGetTargetEncryption:-[N/A]}" ""
|
printf "$colorlessFormat" "" "ESSID" "\"${FluxionTargetSSID:-[N/A]}\" / ${FluxionTargetEncryption:-[N/A]}" ""
|
||||||
printf "$colorlessFormat" "" "Channel" "${FLUXIONGetTargetChannel:-[N/A]}" ""
|
printf "$colorlessFormat" "" "Channel" " ${FluxionTargetChannel:-[N/A]}" ""
|
||||||
printf "$colorfullFormat" "" "BSSID" "${FLUXIONGetTargetMAC:-[N/A]} ($CYel${FLUXIONGetTargetMaker:-[N/A]}$CClr)" ""
|
printf "$colorfullFormat" "" "BSSID" " ${FluxionTargetMAC:-[N/A]} ($CYel${FluxionTargetMaker:-[N/A]}$CClr)" ""
|
||||||
|
|
||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
@ -1172,14 +1201,15 @@ function fluxion_hash_get() {
|
||||||
# Assure we've got the bssid and the essid passed in.
|
# Assure we've got the bssid and the essid passed in.
|
||||||
if [ ${#@} -lt 2 ]; then return 1; fi
|
if [ ${#@} -lt 2 ]; then return 1; fi
|
||||||
|
|
||||||
|
while true; do
|
||||||
if ! fluxion_hash_set_path "$1"; then return $?; fi
|
if ! fluxion_hash_set_path "$1"; then return $?; fi
|
||||||
|
|
||||||
# TODO: People are gonna bitch about this, I can already tell:
|
if fluxion_hash_verify "$FluxionHashPath" "${@:1}"; then
|
||||||
# "The back button isn't taking me back!" So yeah, fix this.
|
break;
|
||||||
if ! fluxion_hash_verify "$@"; then return $?; fi
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# Copy to hash file to workspace for operations.
|
# At this point FluxionHashPath will be set and ready.
|
||||||
cp "$APTargetHashPath" "$hashPath"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1225,7 +1255,7 @@ function fluxion_set_attack() {
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if [ "${IOQueryFormatFields[1]}" = "$FLUXIONGeneralExitOption" ]; then
|
if [ "${IOQueryFormatFields[1]}" = "$FLUXIONGeneralExitOption" ]; then
|
||||||
fluxion_shutdown
|
fluxion_shutdown; exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FluxionAttack=${IOQueryFormatFields[0]}
|
FluxionAttack=${IOQueryFormatFields[0]}
|
||||||
|
@ -1284,6 +1314,19 @@ function fluxion_run_attack() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================ #
|
||||||
|
# =================== < Test Subroutines > =================== #
|
||||||
|
# ============================================================ #
|
||||||
|
function subtest1() {
|
||||||
|
local interface
|
||||||
|
interface_list_all
|
||||||
|
for interface in "${InterfaceListAll[@]}"; do
|
||||||
|
echo "$interface"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ============================================================ #
|
# ============================================================ #
|
||||||
# ================= < Argument Executables > ================= #
|
# ================= < Argument Executables > ================= #
|
||||||
# ============================================================ #
|
# ============================================================ #
|
||||||
|
@ -1292,6 +1335,36 @@ eval set -- "$FLUXIONCLIArguments" # Set environment parameters.
|
||||||
while [ "$1" != "--" ]; do
|
while [ "$1" != "--" ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-t|--target) echo "Not yet implemented!"; sleep 3; fluxion_shutdown;;
|
-t|--target) echo "Not yet implemented!"; sleep 3; fluxion_shutdown;;
|
||||||
|
--test)
|
||||||
|
while true; do
|
||||||
|
if ! fluxion_get_interface subtest1; then
|
||||||
|
echo Failed to get interface with code $?
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! fluxion_allocate_interface "$FluxionInterfaceSelected"; then
|
||||||
|
echo Failed to allocate "$FluxionInterfaceSelected" with code $?
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
interfaceA=${FluxionInterfaces["$FluxionInterfaceSelected"]}
|
||||||
|
|
||||||
|
echo "Allocated $FluxionInterfaceSelected -> $interfaceA"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fluxion_get_target $interfaceA
|
||||||
|
result=$?
|
||||||
|
if [ $result -ne 0 ]; then
|
||||||
|
echo Failed to get target with code $result
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! fluxion_target_show; then
|
||||||
|
echo Failed to show target with code $?
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
exit
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
shift # Shift new parameters
|
shift # Shift new parameters
|
||||||
done
|
done
|
||||||
|
|
|
@ -31,8 +31,10 @@ FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..
|
||||||
FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
|
FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
|
||||||
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
|
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
|
||||||
FLUXIONHashValidNotice="${CGrn}Success$CClr, hash verification completed!"
|
FLUXIONHashValidNotice="${CGrn}Success$CClr, hash verification completed!"
|
||||||
FLUXIONPathToHandshakeFileQuery="Enter path to handshake file $CClr(Example: /.../dump-01.cap)"
|
FLUXIONPathToHandshakeFileQuery="Enter path to handshake file $CClr(Example: /path/to/file.cap)"
|
||||||
|
FLUXIONPathToHandshakeFileReturnTip="To go back, leave the hash path blank."
|
||||||
FLUXIONAbsolutePathInfo="Absolute path"
|
FLUXIONAbsolutePathInfo="Absolute path"
|
||||||
|
FLUXIONEmptyOrNonExistentHashError="${CRed}Error$CClr, path points to non-existing or empty hash file."
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
FLUXIONScannerChannelQuery="Select a channel to monitor"
|
FLUXIONScannerChannelQuery="Select a channel to monitor"
|
||||||
FLUXIONScannerChannelOptionAll="All channels"
|
FLUXIONScannerChannelOptionAll="All channels"
|
||||||
|
@ -52,6 +54,8 @@ FLUXIONHashSourcePathOption="Path to capture file"
|
||||||
FLUXIONHashSourceRescanOption="Handshake directory (rescan)"
|
FLUXIONHashSourceRescanOption="Handshake directory (rescan)"
|
||||||
FLUXIONFoundHashNotice="A hash for the target AP was found."
|
FLUXIONFoundHashNotice="A hash for the target AP was found."
|
||||||
FLUXIONUseFoundHashQuery="Do you want to use this file?"
|
FLUXIONUseFoundHashQuery="Do you want to use this file?"
|
||||||
|
FLUXIONUseFoundHashOption="Use hash"
|
||||||
|
FLUXIONSpecifyHashPathOption="Specify hash path"
|
||||||
FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash"
|
FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash"
|
||||||
FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)"
|
FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)"
|
||||||
FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)"
|
FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)"
|
||||||
|
|
Loading…
Reference in New Issue