Change preference file

This commit is contained in:
Erik Dubois 2018-01-31 13:53:13 +01:00
parent d1a5d666f4
commit ec094539b4
2 changed files with 60 additions and 57 deletions

117
fluxion
View File

@ -8,21 +8,24 @@
# the script, however, will be loaded correctly.
# Path to directory containing the FLUXION executable script.
declare -r FLUXIONPath=$(cd "$(dirname "$0")"; pwd -P)
readonly FLUXIONPath=$(cd "$(dirname "$0")"; pwd -P)
# Path to the temp. directory available to FLUXION & subscripts.
declare -r FLUXIONWorkspacePath="/tmp/fluxspace"
readonly FLUXIONWorkspacePath="/tmp/fluxspace"
# Path to FLUXION's preferences file, to be loaded afterward.
declare -r FLUXIONPreferencesFile="$FLUXIONPath/preferences.conf"
readonly FLUXIONLanguagePreferencesFile="$FLUXIONPath/preferences/LanguagePreference.conf"
# Constants denoting the reference noise floor & ceiling levels.
# These are used by the the wireless network scanner visualizer.
declare -r FLUXIONNoiseFloor=-90
declare -r FLUXIONNoiseCeiling=-60
readonly FLUXIONNoiseFloor=-90
readonly FLUXIONNoiseCeiling=-60
declare -r FLUXIONVersion=4
declare -r FLUXIONRevision=1
readonly FLUXIONVersion=4
readonly FLUXIONRevision=2
# Declare window ration bigger = smaller windows
FLUXIONWindowRatio=4
# ============================================================ #
@ -79,14 +82,14 @@ source lib/HashUtils.sh
# ============================================================ #
if ! FLUXIONCLIArguments=$(
getopt --options="vdkrnmtb:e:c:l:a:" \
--longoptions="debug,version,killer,reloader,airmon-ng,multiplexer,target,test,bssid:,essid:,channel:,language:,attack:" \
--longoptions="debug,version,killer,reloader,ratio,airmon-ng,multiplexer,target,test,bssid:,essid:,channel:,language:,attack:" \
--name="FLUXION V$FLUXIONVersion.$FLUXIONRevision" -- "$@"
); then
echo -e "${CRed}Aborted$CClr, parameter error detected..."; exit 5
fi
AttackCLIArguments=${FLUXIONCLIArguments##*--}
declare -r FLUXIONCLIArguments=${FLUXIONCLIArguments%%--*}
readonly FLUXIONCLIArguments=${FLUXIONCLIArguments%%--*}
# ============================================================ #
@ -96,17 +99,18 @@ declare -r FLUXIONCLIArguments=${FLUXIONCLIArguments%%--*}
# ============= < Argument Loaded Configurables > ============ #
eval set -- "$FLUXIONCLIArguments" # Set environment parameters.
[ "$1" != "" ] && declare -r FLUXIONAuto=1 # Auto-mode if using CLI.
#[ "$1" != "" ] && readonly FLUXIONAuto=1 # Auto-mode if using CLI.
while [ "$1" != "" -a "$1" != "--" ]; do
case "$1" in
-v|--version) echo "FLUXION V$FLUXIONVersion.$FLUXIONRevision"; exit;;
-d|--debug) declare -r FLUXIONDebug=1;;
-k|--killer) declare -r FLUXIONWIKillProcesses=1;;
-r|--reloader) declare -r FLUXIONWIReloadDriver=1;;
-n|--airmon-ng) declare -r FLUXIONAirmonNG=1;;
-m|--multiplexer) declare -r FLUXIONTMux=1;;
-d|--debug) readonly FLUXIONDebug=1;;
-k|--killer) readonly FLUXIONWIKillProcesses=1;;
-r|--reloader) readonly FLUXIONWIReloadDriver=1;;
-n|--airmon-ng) readonly FLUXIONAirmonNG=1;;
-m|--multiplexer) readonly FLUXIONTMux=1;;
-b|--bssid) FluxionTargetMAC=$2; shift;;
--ratio) FLUXIONWindowRatio=$2;shift;;
-e|--essid) FluxionTargetSSID=$2;
FluxionTargetSSIDClean=$(
echo "$FluxionTargetSSID" | sed -r 's/( |\/|\.|\~|\\)+/_/g'
@ -126,67 +130,67 @@ shift # Remove "--" to prepare for attacks to read parameters.
# Load user-defined preferences if there's an executable script.
# If no script exists, prepare one for the user to store config.
# WARNING: Preferences file must assure no redeclared constants.
if [ -x "$FLUXIONPreferencesFile" ]; then
source "$FLUXIONPreferencesFile"
if [ -x "$FLUXIONLanguagePreferencesFile" ]; then
source "$FLUXIONLanguagePreferencesFile"
else
echo '#!/bin/bash' > "$FLUXIONPreferencesFile"
chmod u+x "$FLUXIONPreferencesFile"
echo '#!/bin/bash' > "$FLUXIONLanguagePreferencesFile"
chmod u+x "$FLUXIONLanguagePreferencesFile"
fi
# ================ < Configurable Constants > ================ #
if [ "$FLUXIONAuto" != "1" ]; then # If defined, assure 1.
declare -r FLUXIONAuto=${FLUXIONAuto:+1}
readonly FLUXIONAuto=${FLUXIONAuto:+1}
fi
if [ "$FLUXIONDebug" != "1" ]; then # If defined, assure 1.
declare -r FLUXIONDebug=${FLUXIONDebug:+1}
readonly FLUXIONDebug=${FLUXIONDebug:+1}
fi
if [ "$FLUXIONAirmonNG" != "1" ]; then # If defined, assure 1.
declare -r FLUXIONAirmonNG=${FLUXIONAirmonNG:+1}
readonly FLUXIONAirmonNG=${FLUXIONAirmonNG:+1}
fi
if [ "$FLUXIONWIKillProcesses" != "1" ]; then # If defined, assure 1.
declare -r FLUXIONWIKillProcesses=${FLUXIONWIKillProcesses:+1}
readonly FLUXIONWIKillProcesses=${FLUXIONWIKillProcesses:+1}
fi
if [ "$FLUXIONWIReloadDriver" != "1" ]; then # If defined, assure 1.
declare -r FLUXIONWIReloadDriver=${FLUXIONWIReloadDriver:+1}
readonly FLUXIONWIReloadDriver=${FLUXIONWIReloadDriver:+1}
fi
# FLUXIONDebug [Normal Mode "" / Developer Mode 1]
if [ $FLUXIONDebug ]; then
declare -r FLUXIONOutputDevice="/dev/stdout"
declare -r FLUXIONHoldXterm="-hold"
readonly FLUXIONOutputDevice="/dev/stdout"
readonly FLUXIONHoldXterm="-hold"
else
declare -r FLUXIONOutputDevice="/dev/null"
declare -r FLUXIONHoldXterm=""
readonly FLUXIONOutputDevice="/dev/null"
readonly FLUXIONHoldXterm=""
fi
# ================ < Configurable Variables > ================ #
declare -r FLUXIONPromptDefault="$CRed[${CSBlu}fluxion$CSYel@$CSWht$HOSTNAME$CClr$CRed]-[$CSYel~$CClr$CRed]$CClr "
readonly FLUXIONPromptDefault="$CRed[${CSBlu}fluxion$CSYel@$CSWht$HOSTNAME$CClr$CRed]-[$CSYel~$CClr$CRed]$CClr "
FLUXIONPrompt=$FLUXIONPromptDefault
declare -r FLUXIONVLineDefault="$CRed[$CSYel*$CClr$CRed]$CClr"
readonly FLUXIONVLineDefault="$CRed[$CSYel*$CClr$CRed]$CClr"
FLUXIONVLine=$FLUXIONVLineDefault
# ================== < Library Parameters > ================== #
declare -r InterfaceUtilsOutputDevice="$FLUXIONOutputDevice"
readonly InterfaceUtilsOutputDevice="$FLUXIONOutputDevice"
declare -r SandboxWorkspacePath="$FLUXIONWorkspacePath"
declare -r SandboxOutputDevice="$FLUXIONOutputDevice"
readonly SandboxWorkspacePath="$FLUXIONWorkspacePath"
readonly SandboxOutputDevice="$FLUXIONOutputDevice"
declare -r InstallerUtilsWorkspacePath="$FLUXIONWorkspacePath"
declare -r InstallerUtilsOutputDevice="$FLUXIONOutputDevice"
declare -r InstallerUtilsNoticeMark="$FLUXIONVLine"
readonly InstallerUtilsWorkspacePath="$FLUXIONWorkspacePath"
readonly InstallerUtilsOutputDevice="$FLUXIONOutputDevice"
readonly InstallerUtilsNoticeMark="$FLUXIONVLine"
declare -r PackageManagerLog="$InstallerUtilsWorkspacePath/package_manager.log"
readonly PackageManagerLog="$InstallerUtilsWorkspacePath/package_manager.log"
declare IOUtilsHeader="fluxion_header"
declare -r IOUtilsQueryMark="$FLUXIONVLine"
declare -r IOUtilsPrompt="$FLUXIONPrompt"
readonly IOUtilsQueryMark="$FLUXIONVLine"
readonly IOUtilsPrompt="$FLUXIONPrompt"
declare -r HashOutputDevice="$FLUXIONOutputDevice"
readonly HashOutputDevice="$FLUXIONOutputDevice"
# ============================================================ #
@ -418,30 +422,29 @@ trap fluxion_handle_exit SIGINT SIGHUP
# =============== < Resolution & Positioning > =============== #
# ============================================================ #
fluxion_set_resolution() { # Windows + Resolution
# Calc options
RATIO=4
# Get demensions
# Get dimensions
SCREEN_SIZE=$(xdpyinfo | grep dimension | awk '{print $4}' | tr -d "(")
SCREEN_SIZE_X=$(printf '%.*f\n' 0 $(echo $SCREEN_SIZE | sed -e s'/x/ /'g | awk '{print $1}'))
SCREEN_SIZE_Y=$(printf '%.*f\n' 0 $(echo $SCREEN_SIZE | sed -e s'/x/ /'g | awk '{print $2}'))
# Calculate proportional windows
PROPOTION=$(echo $(awk "BEGIN {print $SCREEN_SIZE_X/$SCREEN_SIZE_Y}")/1 | bc)
NEW_SCREEN_SIZE_X=$(echo $(awk "BEGIN {print $SCREEN_SIZE_X/$RATIO}")/1 | bc)
NEW_SCREEN_SIZE_Y=$(echo $(awk "BEGIN {print $SCREEN_SIZE_Y/$RATIO}")/1 | bc)
NEW_SCREEN_SIZE_X=$(echo $(awk "BEGIN {print $SCREEN_SIZE_X/$FLUXIONWindowRatio}")/1 | bc)
NEW_SCREEN_SIZE_Y=$(echo $(awk "BEGIN {print $SCREEN_SIZE_Y/$FLUXIONWindowRatio}")/1 | bc)
NEW_SCREEN_SIZE_BIG_X=$(echo $(awk "BEGIN {print 1.5*$SCREEN_SIZE_X/$RATIO}")/1 | bc)
NEW_SCREEN_SIZE_BIG_Y=$(echo $(awk "BEGIN {print 1.5*$SCREEN_SIZE_Y/$RATIO}")/1 | bc)
NEW_SCREEN_SIZE_BIG_X=$(echo $(awk "BEGIN {print 1.5*$SCREEN_SIZE_X/$FLUXIONWindowRatio}")/1 | bc)
NEW_SCREEN_SIZE_BIG_Y=$(echo $(awk "BEGIN {print 1.5*$SCREEN_SIZE_Y/$FLUXIONWindowRatio}")/1 | bc)
SCREEN_SIZE_MID_X=$(echo $(($SCREEN_SIZE_X + ($SCREEN_SIZE_X - 2 * $NEW_SCREEN_SIZE_X) / 2)))
SCREEN_SIZE_MID_Y=$(echo $(($SCREEN_SIZE_Y + ($SCREEN_SIZE_Y - 2 * $NEW_SCREEN_SIZE_Y) / 2)))
# Upper
# Upper windows
TOPLEFT="-geometry $NEW_SCREEN_SIZE_Xx$NEW_SCREEN_SIZE_Y+0+0"
TOPRIGHT="-geometry $NEW_SCREEN_SIZE_Xx$NEW_SCREEN_SIZE_Y-0+0"
TOP="-geometry $NEW_SCREEN_SIZE_Xx$NEW_SCREEN_SIZE_Y+$SCREEN_SIZE_MID_X+0"
# Lower
# Lower windows
BOTTOMLEFT="-geometry $NEW_SCREEN_SIZE_Xx$NEW_SCREEN_SIZE_Y+0-0"
BOTTOMRIGHT="-geometry $NEW_SCREEN_SIZE_Xx$NEW_SCREEN_SIZE_Y-0-0"
BOTTOM="-geometry $NEW_SCREEN_SIZE_Xx$NEW_SCREEN_SIZE_Y+$SCREEN_SIZE_MID_X-0"
@ -542,7 +545,7 @@ fluxion_do_sequence() {
if [ ${#@} -ne 2 ]; then return -1; fi
# TODO: Implement an alternative, better method of doing
# what this subroutine does, maybe using for-loop iteration.
# what this subroutine does, maybe using for-loop iteFLUXIONWindowRation.
# The for-loop implementation must support the subroutines
# defined above, including updating the namespace tracker.
@ -618,8 +621,8 @@ fluxion_header() {
fluxion_unset_language() {
FluxionLanguage=""
if [ "$FLUXIONPreferencesFile" ]; then
sed -i.backup "/FluxionLanguage=.\+/ d" "$FLUXIONPreferencesFile"
if [ "$FLUXIONLanguagePreferencesFile" ]; then
sed -i.backup "/FluxionLanguage=.\+/ d" "$FLUXIONLanguagePreferencesFile"
fi
}
@ -661,13 +664,13 @@ fluxion_set_language() {
source "$FLUXIONPath/language/$FluxionLanguage.sh"
if [ "$FLUXIONPreferencesFile" ]; then
if more $FLUXIONPreferencesFile | \
if [ "$FLUXIONLanguagePreferencesFile" ]; then
if more $FLUXIONLanguagePreferencesFile | \
grep -q "FluxionLanguage=.\+" &> /dev/null; then
sed -r "s/FluxionLanguage=.+/FluxionLanguage=$FluxionLanguage/g" \
-i.backup "$FLUXIONPreferencesFile"
-i.backup "$FLUXIONLanguagePreferencesFile"
else
echo "FluxionLanguage=$FluxionLanguage" >> "$FLUXIONPreferencesFile"
echo "FluxionLanguage=$FluxionLanguage" >> "$FLUXIONLanguagePreferencesFile"
fi
fi
}
@ -1013,7 +1016,7 @@ fluxion_target_get_candidates() {
return 3
fi
# Syntheize scan operation results from output file "dump-01.csv."
# Syntheize scan opeFLUXIONWindowRation results from output file "dump-01.csv."
echo -e "$FLUXIONVLine $FLUXIONPreparingScannerResultsNotice"
# WARNING: The code below may break with different version of airmon-ng.
# The times matching operator "{n}" isn't supported by mawk (alias awk).

0
preferences/.gitkeep Normal file
View File