wipri/wipri

559 lines
23 KiB
Bash

#!/bin/bash
#
# wipri: WiFi/LAN Privacy Metadata Spoof/unique continual randomization options (device mimic/disinfo enhancement)
# MAC/device/WiFi TX randomizer + SSID/WiFi network randomization
#
# Run wipri -H for help/examples (as well as tips below)
#
# Tested on Pinephone (Mobian, Arch/Manj, and Linux laptops and Tablets (Pinetab)
# Should work on any Linux distro that has nmcli (networkmanager), wireless-tools (for signal related commands),
# and for the automated boot install (optional): current version requires systemd (can be run as command for systems without systemd)
#--------------------------------------------
#
# Happy to see / hear others finding this useful. Everyone is welcome to include wipri in
# anything they wish (1 distro asked about this). Please leave credit to creator as is, in turn will improve as long as remains useful..
#
#--------------------------------------------
#
# SUPPORT:
#
# Support Options Listed Here (if you like to): https://buymeacoffee.com/politictech (+ public blog + more)
# https://www.buymeacoffee.com/politictech/posts public blog posts, help to a coffee (if you like))
# Sharing wipri with others is another way to support the effort here :)
#---------------------------------------------
#
# SEE README.md FOR ADDITIONAL INFORMATION/LINKS
#
# WiPri MAC changer by default only uses valid OUI
# lists (why: invalid OUI's make your MAC more trackable)
# [You can also put your own .OUI lists together]
#
# Works out of box on most Linux (including most Pinephone/Linux phones)
# WiPri relies on built in Linux standards like ip to change mac address
#
# Issue: wipri -H
# for examples printout and descriptions;
#
# Unlike other mac changing, WiPri has unique function to ensures no leak on (static) -p, -m, -i modes
# as another backup to prevent mac leaks (setting mac again when change detected from flag/choice).
# ***WARNING: do not attempt to run conflicting commands on same device at same time as devices carry a single mac at a time
#
# Ethical Human Rights purposes;
# Helping you lose pesky advertising trackers/WiFi Beacon related;
# (Privacy: Declared a Universal Human Right under UN Dec Human Rights)
#
# You can set it to disable IPV6 by unhashing the lines in kernmit function
#
# Tip #1: -a enables 3 changes to happen simultaneously to mimic new
# devices: changes random MAC addresses/hostnames/txpower signal strengths,
# at varied, randomized continually changing (yet simultaneous) time periods;
#
# TIP #2: static flags recommended for home/work so as not flood home router w/new macs
# (ie: -p, -i, -m)
#
# TIP #3: continuously changing both times/mac addr flags for travel privacy/movement
# (ie: -r, -P, -a) (also -w flag to watch for disconnects and turn wifi off if not around saved net)
#
# TIP #4: If using -A for randomized SSID (hostapd), select a static mac randomization for simultaneous change to mimic new wifi network
#
# *If you try experimental txpower options be sure to keep 'hightx'
# variable low enough to do so within your countries regulations*
#
#---------------------------------------------------------------------
# PLEASE FILE ISSUE ON GITEA ONION REPOSITORY BELOW: OR LEAVE USAGE PROBLEM COMMENT ON VIDEO/BLOG
#
#
# DOWNLOADS/SCRIPTS/CODE:
# Anonymous Gitea Onion Tor .onion (Main): http://gg6zxtreajiijztyy5g6bt5o6l3qu32nrg7eulyemlhxwwl6enk6ghad.onion/RightToPrivacy/WiPri
# Gitlab: https://gitlab.com/Aresesi - Repository (backup)
# Github: https://github.com/righttoprivacy - Repository (backup)
#
# SOCIAL MEDIA:
# https://www.fosstodon.org/@RTP - Follow on Mastodon
# https://twitter.com/tvprivacy - Follow on Twitter
#
# VIDEO CHANNELS:
#
# ODYSEE: https://odysee.com/@RTP
# PEERTUBE: https://tube.tchncs.de/video-channels/privacy__tech_tips
# https://www.youtube.com/channel/UChVCEXzi39_YEpUQhqmEFrQ - videos on Linux/tech
# BITCHUTE: https://www.bitchute.com/yourprivacytv
#
# e-mail: <righttoprivacy[at]tutanota.com> (private (ethical) consulting available upon request)
# Free answers to questions in video/blog comments (maybe your question can help others!) :)
#
# BLOG:
#
# https://www.buymeacoffee.com/politictech/posts - Main Blog Posts/Extras (Public)
# https://politictech.wordpress.com - Backup Blog
#---------------------------------------------------------------------
# Text Colors
export BLUE='\033[1;94m'
export GREEN='\033[1;92m'
export RED='\033[1;91m'
export ENDCOLOR='\033[1;00m'
cat << "EOF"
@@ @@
@@ @@ ,@@ @.
&@ @@ @@ @& @@ @
@@ @@ @@ @@ @@ @@
@( @@ @@ [WiPri 1.2]@@ @@ @@
@@ @@ @ *@ @@ @@
@@ @@ .--.' @@ @@
@@ . |0_0 |' @@ @@
@@ |:_/ |' & @@
// \ \'
(| | )'
/'\_ _/'\\'
\___)=(___/'
██╗ ██╗██╗██████╗ ██████╗ ██╗
██║ ██║██║██╔══██╗██╔══██╗██║
██║ █╗ ██║██║██████╔╝██████╔╝██║
██║███╗██║██║██╔═══╝ ██╔══██╗██║
╚███╔███╔╝██║██║ ██║ ██║██║
╚══╝╚══╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚═╝
EOF
echo -e "[ $WHITE MAC/Hostname/TX Randomizer $ENDCOLOR ] $BLUE LAN/WiFi Device Privacy$ENDCOLOR"
echo ""
echo -e "$BLUE concept/code: $ENDCOLOR $RED righttoprivacy@tutanota.com $ENDCOLOR"
echo ""
echo -e "${WHITE} ----------------------------------------------------------- ${ENDCOLOR}"
echo -e "$BLUE Detected Devices: $ENDCOLOR"
nmcli dev status|awk '{print $1;}'| grep -v 'lo'| grep -v 'p2p' || echo "$RED nmcli not found:$ENDCOLOR $BLUEdon't worry, it was optional.$ENDCOLOR"
echo -e "$BLUE Usage: $ENDCOLOR"
echo "wipri -d [device][any combination of below flags here]"
echo "-w [turn off wifi radio when you leave home automatically after x min to prevent saved SSID tracking] (can be used with other flags)"
echo "-a [anonymous/ghost mode: continuously change MAC/hostname/signal strength at"
echo " continuously changing [coordinated/simultaneous] times/addresses to mimic new devices"
echo "-p [static smartphone mimic] Set single static Samsung/Apple MAC identity"
echo "-P [changing smartphone mimics] continously changing Samsung/Apple at rand times/mac addr"
echo "-r [randomizes mac continually changing times/addresses]"
echo "-m [Static MAC (Your Choice) Here]"
echo "-i [rand (valid) MAC identity]"
echo "-h [rand hostname]"
echo "-R [restore to original hostname]"
echo "-s [random signals]"
echo "-S [continual changing random signal strengths, continually changing random time periods]"
echo "-A [generic randomized WiFi SSID (AP)]"
echo "-H help"
echo -e "${BLUE} To see multiple examples/descriptions see:${ENDCOLOR} ${WHITE} wifi -H ${ENDCOLOR}"
echo ""
# VARIABLES
checktime=".5" # seconds between mac addr checks: lower = more frequent checks
hightime="600" # Make this number higher if you want randomization times longer
lowtime="300" # Make this number lower to lower min time randomized
rando=$((RANDOM%$hightime+$lowtime)) # Create Random time
kernmit="on" # Turn on to mitigate kernel (warning: passes changes to kernel) - it's optional
oui_file='/etc/wipri/final.OUI' # Valid OUI list required for verifiable MAC addresses
phoui_file='/etc/wipri/phone.OUI' # phone OUI file
# WiPri mitigation kern
if [ $kernmit == "on" ]; then
#sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 >/dev/null
#sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 >/dev/null
#sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1 >/dev/null
sudo sysctl -w net.ipv4.tcp_timestamps=0 >/dev/null
sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1 >/dev/null
fi
# machine-id randomization (regenerated) each wipri run
# machine-id is a unique identifer that can (unnecessarily) be used for tracking
# machine-id privacy concerns: https://lists.dyne.org/lurker/message/20190308.134955.e06f4b9c.en.html#dng
echo -e "${RED}Removing Old machine-id To Prevent Tracking...${ENDCOLOR}"
rm /etc/machine-id
echo -e "${BLUE}Generating New Unique machine-id...${ENDCOLOR}"
systemd-machine-id-setup && {
echo -e "${GREEN}New machine-id generated.${ENDCOLOR}"
}
# Hostname randomization - generic yet random hostname chosen
# Feel free to edit these arrays: keep in mind defaults are named strategically for a random yet generic base
echo -e "${BLUE}Checking For Saved Hostname File...${ENDCOLOR}"
if [ -f /etc/wipri/hostname.saved ]; then
echo -e "${GREEN}Hostname File Exists.${ENDCOLOR}"
else
echo $HOSTNAME > /etc/wipri/hostname.saved
echo "Original Hostname Saved. Use -R to restore"
fi
function hostn {
array[0]="localhost"
array[1]="laptop"
array[2]="computer"
array[3]="DESKTOP"
array[4]="Owner-iPhone"
array[5]="PC"
array[6]="Toshiba"
array[7]="WORKGROUP"
array[8]="macbook"
array[9]="mac"
array[10]="phone"
groupnum=$[ $RANDOM % 11 ]
hostbase=${array[$groupnum]}
hostnamectl set-hostname $hostbase || hostname $hostbase
### Below commented out for now - reverted back to more generic as this was 2yr ago (better blending in)
# if [ $hostbase == "localhost" ]; then
# hostnamectl set-hostname localhost
# echo -e "$BLUE hostname is $RED'localhost'$ENDCOLOR, $BLUE a fine generic Linux hostname. $ENDCOLOR"
# elif [ $hostbase == "My-iPhone" ]; then
# randhostname="My-iPhone"
# hostnamectl set-hostname My-iPhone
# /bin/echo -e "$BLUE Hostname (logged by router/network) is now $ENDCOLOR $RED My-iPhone $ENDCOLOR"
# elif [ $hostbase != "localhost" ]; then
# randhostname="$hostbase-$RANDOM"
# hostnamectl set-hostname $randhostname
# /bin/echo -e "$BLUE Hostname (logged by router/network) is now $ENDCOLOR$RED$randhostname $ENDCOLOR"
# fi
dhclient -r $netdev || echo -e "${RED}dhclient not found - OK we can still change things${ENDCOLOR}"
dhclient $netdev || echo -e "${RED}dhclient not found - OK we can still make due without it${ENDCOLOR}"
}
# MAC randomization/setting
function macrand {
hexchar="abcdef0123456789"
beg=$(shuf -n 1 $oui_file) # $oui_file contains important info to generate valid random macs: ma>
end=$( for i in {1..6} ; do echo -n ${hexchar:$(( $RANDOM % 16 )):1} ; done | sed -e 's/\(..\)/:\1/g' )
mac=$beg$end
/bin/echo -e "${BLUE}Changing MAC to:${ENDCOLOR} $RED$mac$ENDCOLOR"
ip link set dev $netdev down;ip link set dev $netdev address $mac;ip link set dev $netdev up;
echo ""
}
# MAC randomization (phone version- temp version)
function phmacrand {
hexchar="abcdef0123456789"
beg=$(shuf -n 1 $phoui_file) # $phoui_file contains important info to generate valid random phone macs
end=$( for i in {1..6} ; do echo -n ${hexchar:$(( $RANDOM % 16 )):1} ; done | sed -e 's/\(..\)/:\1/g' )
mac=$beg$end
/bin/echo -e "${BLUE}Changing MAC to:${ENDCOLOR} ${RED}$mac${ENDCOLOR}"
ip link set dev $netdev down;ip link set dev $netdev address $mac;ip link set dev $netdev up;
echo ""
}
# Signal TX strength randomization to confuse location trackers by signal strength (experimental)
function signaljumper() {
hightx=30 # WARNING: stay w/in bounds of tx regulations for your country
lowtx=3 # lower number for txpower variations
echo -e "${BLUE}signal variation (experimental):${ENDCOLOR} ${RED}ON$ENDCOLOR"
randtx=$((RANDOM%$hightx+$lowtx))
sleep 1
iwconfig $netdev txpower $randtx
echo -e "${BLUE} setting $netdev tx power:${ENDCOLOR} ${RED}$randtx${ENDCOLOR}"
}
# prevent static flag leaks
function maccheck() {
while :
do
curmac=$(cat /sys/class/net/$netdev/address)
sleep .25
if [ "$curmac" != "$mac" ]; then
echo "Sys MAC addr chang detected. Fixing!"
ip link set dev $netdev down;ip link set dev $netdev address $mac;ip link set dev $netdev up;
fi
sleep $checktime
done
}
# for w
function watchdev() {
while :
do
sleep 400 # check time period
dstatus=$(cat /sys/class/net/$netdev/operstate)
if [ "$dstatus" != "up" ]; then
sleep 20
echo -e "${BLUE}$netdev STATUS CHECK${ENDCOLOR}\n"
if [ "$dstatus" != "up" ]; then
echo -e "${GREEN}$netdev${ENDCOLOR} ${RED}VERIFIED AWAY${ENDCOLOR}\n" && sleep .5
echo -e "${BLUE}TURNING $netdev RADIO${ENDCOLOR} ${RED}OFF${ENDCOLOR} ${BLUE}to prevent (WiFi Probe Req) SSID leaks${ENDCOLOR}\n" && sleep .5
#systemctl stop bluetooth.service # delete the hash at beginning of line to turn off bluetooth as well
nmcli radio wifi off || echo -e "${RED}ERR FAILED TO TURN OFF RADIO - requires nmcli${ENDCOLOR}\n"
echo -e "${GREEN}TURNED WIFI RADIO${ENDCOLOR} ${RED}OFF${ENDCOLOR}"
continue 2
fi
fi
done
}
########## Begin access point stuff - experimental (for my own amusement at this time)
# Base name for network changes
# *These are common in US: feel free to edit to match your area*
namebase1="NETGEAR"
namebase2="FiOS"
namebase3="HOME"
namebase4="xfinitywifi"
# If setting nc (netcat) notify set "off" disregard below
ncnotify="off" # Turn on or off netcat name change notification
ncport="60821" # port to send name changes
ncprotocol="tcp" # netcat protocol [udp/tcp]
ncserver="192.168.42.38" # netcat server to notify each name change (static ip/name)
# **NOTE** edit these as needed to match your needs/system
hostapdconf='/etc/hostapd/hostapd.conf' # location for hostapd.conf file
netdev="wlan0" # Edit this to match your hostapd wifi device [-d flag should set this ]
netname() {
array[0]="$namebase1"
array[1]="$namebase2"
array[2]="$namebase3"
array[3]="$namebase4"
groupnum=$[ $RANDOM % 4 ]
randname=${array[$groupnum]}
echo "base is: $randname"
chars=$(cat /dev/random | tr -dc 'A-Z0-9' | fold -w 5 | head -n 1)
# Randomizing (Comcast = default: change $namebase3 to match your area)
if [ $randname == "$namebase3" ]; then
randname=$randname-$chars
# Randomizing (FiOS is default: change $namebase2 value to match your area)
elif [ $randname == "$namebase2" ]; then
randname=$randname-$chars
# Randomizing (NETGEAR default: change $namebase1 value mods this)
elif [ $randname == "$namebase1" ]; then
randname=$randname$RANDOM #| fold -w 10
# Common US name (change $namebase4 variable value above to change)
elif [ $randname == "$namebase4" ]; then
randname="$namebase4"
#/bin/echo -e "$BLUE Your new computer hostname (logged by router/network) is now \e[1;31m$randhostname"
else
randname="Guest"
fi
echo "SSID Name:"
echo "$randname"
}
# Notify server of new name changes [Work in progress- set the $ncnotify variable above to 'yes' or 'no' to turn off]
notify() {
if [ $ncnotify == "off" ]; then
echo -n $randname >>/dev/$ncprotocol/$ncserver/$ncport
fi
}
########## End access point stuff
# flags
while getopts ":d:wapPrm:ihRsAH" arg; do
case $arg in
# Device setting [-d devicename] [REQUIRED: with all MAC related functions]
d)
netdev=${OPTARG}
echo -e "device is ${RED}$netdev${ENDCOLOR}"
export netdev
;;
# watches device and if disconnected long enough, bring down to prev identifier leaks
# as mactrack python script demonstrated, saved SSID's and more can leak if not using this flag
# and these can be used to track saved wifi locations (mactrack script links to wigle lookups for demo)
w)
watchdev &
;;
# Anonymous/private mode: continually changing MAC/hostname/signal strength
# coordinating all 3 options to happen simultaneously scheduled at
# continually changing randomized time periods
a)
echo -e "${BLUE}WiPri Anonymous mode starting...${ENDCOLOR}"
echo -e "${BLUE}[Coordinated MAC/Hostnames/Txpower] - at continually changing times/addresses]${ENDCOLOR}"
echo -e "${BLUE}[randomized MAC addresses + hostnames + signal strength in unison help confuse trackers]${ENDCOLOR}"
echo ""
/bin/echo -e "${BLUE}ghosting MAC/device name ${ENDCOLOR}: ${BLUE}random times at random addresses '(MAC address in privacy mode)'${ENDCOLOR}"
while :
do
unset rando;unset mac;unset randtx
rando=$((RANDOM%$hightime+$lowtime))
sleep .5
macrand ; hostn; signaljumper
# maccheck - to be worked out later
echo ""
/bin/echo -e "${BLUE}next changes [New Device]: random times/MAC addresses/signal in: ${RED}$rando${ENDCOLOR} ${BLUE}sec${ENDCOLOR}"
sleep $rando
# killall -9 maccheck
done
;;
# static phone mac mimic: generate/set single valid OUI (Apple/Android) based mac and hold it
p)
echo -e "${BLUE} new static random cellphone MAC identity (retained/checked to prevent leaks) ${ENDCOLOR}"
phmacrand
maccheck
;;
# cellphone continuous mimics (Samsung/Apple mac addresses- continually changing times/random mac addresses)
P)
while :
do
rando=$((RANDOM%$hightime+$lowtime))
phmacrand
# maccheck TBC
echo -e "${RED} randomizing MAC addresses at continually changing times/iPhone / Android addresses ${ENDCOLOR}"
/bin/echo -e "${BLUE} Changing MAC to: ${RED}$mac${ENDCOLOR}"
/bin/echo -e "${BLUE} next changes: random times, random addresses in: ${RED} $rando${BLUE} sec${ENDCOLOR}"
sleep $rando
# killall -9 maccheck
done
;;
# Continually randomizing MAC address mode [changing times/addresses- all brands]
r)
echo -e "${RED}randomizing MAC address at continually changing times/addresses ${ENDCOLOR}"
while :
do
rando=$((RANDOM%$hightime+$lowtime))
macrand
# maccheck # TBC
#/bin/echo -e "${BLUE} Changing MAC to: ${RED}$mac${ENDCOLOR}"
/bin/echo -e "${BLUE} next changes: random times, random addresses in:${ENDCOLOR} ${RED} $rando${ENDCOLOR}${BLUE} sec${ENDCOLOR}"
sleep $rando
# killall -9 maccheck
done
;;
# Set your own static MAC choice with -m
m)
echo -e "${BLUE} setting static: ${RED} ${OPTARG} ${ENDCOLOR}"
mac=${OPTARG}
ip link set dev $netdev down;ip link set dev $netdev address $mac;ip link set dev $netdev up;
maccheck
;;
# New MAC identity option [-i] single randomized MAC address to be held as long as wipri running
i)
echo -e "${BLUE}new static random valid MAC identity${ENDCOLOR} ${RED}(HELD:${ENDCOLOR} ${BLUE}checked/retained to prevent leaks)${ENDCOLOR}"
macrand
maccheck
;;
# Randomized hostname option -h [generic/common base w/randomized extension to blend in]
h)
hostn
;;
# Restore your previous MAC address [must have first used -h to save address]
R)
if [ ! -f /etc/wipri/hostname.saved ]; then
echo -e "${RED}ERROR! Previously saved hostname does NOT exist!${ENDCOLOR}" >> /dev/stderr
sleep .5
echo ""
else
ORG_HOSTNAME=$(</etc/wipri/hostname.saved)
hostnamectl set-hostname $ORG_HOSTNAME
dhclient -r $netdev
dhclient $netdev
echo -e " ${GREEN}*${ENDCOLOR} ${BLUE}Hostname restored to $ORG_HOSTNAME${ENDCOLOR}\n"
sleep .5
rm /etc/wipri/hostname.saved
fi
;;
# Randomized signal at randomized changing times (NOTE: experimental proof of concept)
# continually changes signal radius for trackers adding confusion depending on layout
# can (depending on environment/trackers) simulate movement [EXPERIMENTAL]
# DISCLAIMER: be sure not to exceed any local regulations for tx
s)
while :
do
signaljumper
sleep $rando
done
;;
# Randomize WiFi Network Name (SSID)
# (If interested, see netcat notification closer to top of wipri)
# Set additional flags if you would like to set simultaneous random mac
### SSID randomization is super experimental/"just for fun", and offers netcat notification
### It's not meant to be convenient. It's one option for testing and not all hostapd accesspoints
### May be compatible with your system.
A)
netname
sed -i "3s/.*/ssid=$randname/" $hostapdconf
# TIP: include a wipri static mac flag to simultaneously change :)
# wipri -d $netdev -i & # uncomment this if you don't want to have to run flags for mac
systemctl restart hostapd
echo ' '
/bin/echo -e "${BLUE}WiFi Network SSID changed to:${ENDCOLOR} ${RED}$randname${ENDCOLOR}"
# Notify remote server of new name change via Netcat [set $ncnotify variable for on/off: default off]
notify
;;
# Examples/Help
H)
sleep .75
echo ""
echo -e "${WHITE}WiPri uses whichever flags you choose to use.${ENDCOLOR}"
echo -e "${RED}[Careful not to combine flags that conflict with one another] ${ENDCOLOR}"
echo -e "${WHITE}To use for seperate devices, run more than once instance${ENDCOLOR}"
echo -e "${WHITE}[I changed format to make integrating into scripts/programs/boot more efficient]${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE} Example #1:${ENDCOLOR}wipri -d wlan0 -r -h on -s"
echo -e "${BLUE}[Above] randomize wlan0 at continuously changing times/MAC addresses; randomize hostname; location randomization ${ENDCOLOR}"
echo -e "${BLUE} -r mode is ideal for fluid situations- when travelling it can help protect identity;${ENDCOLOR}"
echo -e "${WHITE}Example #2:${ENDCOLOR} wipri -d wlan1 -m 00:00:00:00:00:00 -h off -s off"
echo -e "${BLUE}[Above] sets wlan1 MAC of your choice (static); hostname change [off]; signal changes [off]${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE}Example #3:${ENDCOLOR} wipri -d wlan0 -i -h -s"
echo -e "${BLUE}[Above] sets wlan0 static random MAC identity; hostname changes; signal changes [on]${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE}Example #4:${ENDCOLOR} wipri -d wlan1mon -M"
echo -e "${BLUE}[Above] sets wlan1mon to new random MAC identity (static/single MAC) hostname/signal changes both [OFF]${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE}Example #5:${ENDCOLOR} wipri -R"
echo -e "${BLUE}[Above] sets/reverts back to original hostname: ${RED}NOTE: MUST HAVE USED -h PREVIOUSLY${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE}Example #6:${ENDCOLOR} wipri -d wlan0 -a"
echo -e "${BLUE}Above] continuously changing: randomized [wlan0] MAC addresses + hostnames ${ENDCOLOR}"
echo -e "${BLUE}+ signal randomization, each changing at the same time, continually; ${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE}Example #7:${ENDCOLOR} wipri -d wlan0 -P -s"
echo -e "${BLUE}[Above] sets wlan0 continuously changing times/smartphone MAC identities; -s adds txpower changes [on]${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE}Example #8:${ENDCOLOR} wipri -d wlan0 -p"
echo -e "${BLUE}[Above] sets wlan0 to single random smartphone MAC identity"
echo "" && sleep .2
echo -e "${WHITE}Example #9:${ENDCOLOR} wipri -d wlan0 -A"
echo -e "${BLUE}[Above] sets wlan0 hostapd WiFi Access Point to randomized SSID (Network Name)${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE} Example #10:${ENDCOLOR} wipri -d wlan0 -w -p"
echo -e "${BLUE} [Above] -w sets wlan0 dev to turn off wifi radio when not in range with saved networks preventing SSID probe leak: -p: static Apple/Android${ENDCOLOR}"
echo "" && sleep .2
echo -e "${WHITE} For more details:${ENDCOLOR} ${RED}README.md${ENDCOLOR}"
;;
esac
done