├── Installer ├── README.md ├── WifiExploit.jpg ├── airmon └── wiploit /Installer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ########## DEBUG Mode ########## 4 | ## ## 5 | if [ -z ${INSTALLER_DEBUG+x} ]; then INSTALLER_DEBUG=0 6 | else INSTALLER_DEBUG=1 7 | fi 8 | ## ## 9 | ################################ 10 | 11 | #Config 12 | version=2.0.0 13 | #Colors 14 | red='\e[1;31m' 15 | blue='\e[1;34m' 16 | yellow='\e[1;33m' 17 | transparent="\e[0m" 18 | 19 | #DUMP_PATH 20 | rm -rf /tmp/Installer/ 21 | mkdir /tmp/Installer/ 22 | DUMP_PATH="/tmp/Installer/" 23 | 24 | function conditional_clear() { 25 | 26 | if [[ "$INSTALLER_output_device" != "/dev/stdout" ]]; then clear; fi 27 | } 28 | 29 | #Config_END 30 | if [ $INSTALLER_DEBUG = 1 ]; then 31 | ## Developer Mode 32 | export INSTALLER_output_device=/dev/stdout 33 | HOLD="-hold" 34 | else 35 | ## Normal Mode 36 | export INSTALLER_output_device=/dev/null 37 | HOLD="" 38 | fi 39 | 40 | #Check root 41 | if [[ $EUID -ne 0 ]]; then 42 | echo -e "\e[1;31mYou don't have admin privilegies, execute the script as root."$transparent 43 | exit 44 | fi 45 | 46 | clear 47 | 48 | #Check for X display 49 | 50 | if [ -z "${DISPLAY:-}" ]; then 51 | echo -e "\e[1;31mThe script should be executed inside a X (graphical) session."$transparent"" 52 | exit 1 53 | fi 54 | 55 | 56 | 57 | function mostrarheader(){ 58 | 59 | 60 | echo -e "$red[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]" 61 | echo -e "$red[ ]" 62 | echo -e "$red[ $red Wi-Ploit v$version" "${yellow} ${red} " ${blue}" by" ${yellow}"L3r" ${red}" ]" 63 | echo -e "$blue[ ]" 64 | echo -e "$blue[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]""$transparent" 65 | echo 66 | echo 67 | 68 | } 69 | 70 | function setresolution { 71 | 72 | function resA { 73 | 74 | TOPLEFT="-geometry 90x13+0+0" 75 | TOPRIGHT="-geometry 83x26-0+0" 76 | BOTTOMLEFT="-geometry 90x24+0-0" 77 | BOTTOMRIGHT="-geometry 75x12-0-0" 78 | TOPLEFTBIG="-geometry 91x42+0+0" 79 | TOPRIGHTBIG="-geometry 83x26-0+0" 80 | } 81 | 82 | function resB { 83 | 84 | TOPLEFT="-geometry 92x14+0+0" 85 | TOPRIGHT="-geometry 68x25-0+0" 86 | BOTTOMLEFT="-geometry 92x36+0-0" 87 | BOTTOMRIGHT="-geometry 74x20-0-0" 88 | TOPLEFTBIG="-geometry 100x52+0+0" 89 | TOPRIGHTBIG="-geometry 74x30-0+0" 90 | } 91 | function resC { 92 | 93 | TOPLEFT="-geometry 100x20+0+0" 94 | TOPRIGHT="-geometry 109x20-0+0" 95 | BOTTOMLEFT="-geometry 100x30+0-0" 96 | BOTTOMRIGHT="-geometry 109x20-0-0" 97 | TOPLEFTBIG="-geometry 100x52+0+0" 98 | TOPRIGHTBIG="-geometry 109x30-0+0" 99 | } 100 | function resD { 101 | TOPLEFT="-geometry 110x35+0+0" 102 | TOPRIGHT="-geometry 99x40-0+0" 103 | BOTTOMLEFT="-geometry 110x35+0-0" 104 | BOTTOMRIGHT="-geometry 99x30-0-0" 105 | TOPLEFTBIG="-geometry 110x72+0+0" 106 | TOPRIGHTBIG="-geometry 99x40-0+0" 107 | } 108 | function resE { 109 | TOPLEFT="-geometry 130x43+0+0" 110 | TOPRIGHT="-geometry 68x25-0+0" 111 | BOTTOMLEFT="-geometry 130x40+0-0" 112 | BOTTOMRIGHT="-geometry 132x35-0-0" 113 | TOPLEFTBIG="-geometry 130x85+0+0" 114 | TOPRIGHTBIG="-geometry 132x48-0+0" 115 | } 116 | function resF { 117 | TOPLEFT="-geometry 100x17+0+0" 118 | TOPRIGHT="-geometry 90x27-0+0" 119 | BOTTOMLEFT="-geometry 100x30+0-0" 120 | BOTTOMRIGHT="-geometry 90x20-0-0" 121 | TOPLEFTBIG="-geometry 100x70+0+0" 122 | TOPRIGHTBIG="-geometry 90x27-0+0" 123 | } 124 | 125 | detectedresolution=$(xdpyinfo | grep -A 3 "screen #0" | grep dimensions | tr -s " " | cut -d" " -f 3) 126 | ## A) 1024x600 127 | ## B) 1024x768 128 | ## C) 1280x768 129 | ## D) 1280x1024 130 | ## E) 1600x1200 131 | case $detectedresolution in 132 | "1024x600" ) resA ;; 133 | "1024x768" ) resB ;; 134 | "1280x768" ) resC ;; 135 | "1366x768" ) resC ;; 136 | "1280x1024" ) resD ;; 137 | "1600x1200" ) resE ;; 138 | "1366x768" ) resF ;; 139 | * ) resA ;; 140 | esac 141 | } 142 | 143 | #Install Main 144 | conditional_clear 145 | mostrarheader 146 | 147 | echo "Updating system..." 148 | 149 | #cleaning up 150 | sudo apt-get install -f -y 151 | sudo apt-get autoremove -y 152 | sudo apt-get autoclean -y 153 | sudo apt-get clean -y 154 | sudo apt-get update 155 | sudo apt-get install xterm --yes 156 | clear 157 | mostrarheader 158 | xterm $HOLD -title "Updating System" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get install software-properties-common --yes 159 | 160 | 161 | 162 | ############################## 163 | 164 | echo -ne "Aircrack-ng....." 165 | if ! hash aircrack-ng 2>/dev/null; then 166 | echo -e "\e[1;31mInstalling ..."$transparent 167 | xterm $HOLD -title "Installing Aircrack-ng" -e apt-get --yes install aircrack-ng 168 | else 169 | echo -e "\e[1;32mOK!"$transparent 170 | fi 171 | sleep 0.025 172 | 173 | ############################## 174 | 175 | echo -ne "Aireplay-ng....." 176 | if ! hash awk 2>/dev/null; then 177 | echo -e "\e[1;31mInstalling ..."$transparent"" 178 | xterm $HOLD -title "Installing Awk" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install gawk 179 | else 180 | echo -e "\e[1;32mOK!"$transparent 181 | fi 182 | sleep 0.025 183 | ############################## 184 | 185 | echo -ne "Airodump-ng....." 186 | if ! hash airodump-ng 2>/dev/null; then 187 | echo -e "\e[1;31mInstalling ..."$transparent"" 188 | xterm $HOLD -title "Installing Airodump-ng" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install aircrack-ng 189 | else 190 | echo -e "\e[1;32mOK!"$transparent"" 191 | fi 192 | ############################## 193 | echo -ne "Curl............" 194 | if ! hash curl 2>/dev/null; then 195 | echo -e "\e[1;31mInstalling ..."$transparent"" 196 | xterm $HOLD -title "Installing Curl" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install curl 197 | else 198 | echo -e "\e[1;32mOK!"$transparent 199 | fi 200 | sleep 0.025 201 | ############################## 202 | 203 | echo -ne "Dhcpd..........." 204 | if ! hash dhcpd 2>/dev/null; then 205 | echo -e "\e[1;31mInstalling ..."$transparent"" 206 | xterm $HOLD -title "Installing isc-dhcp-server" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install isc-dhcp-server 207 | else 208 | echo -e "\e[1;32mOK!"$transparent 209 | fi 210 | sleep 0.025 211 | ############################## 212 | 213 | echo -ne "Hostapd........." 214 | if ! hash hostapd 2>/dev/null; then 215 | echo -e "\e[1;31mInstalling ..."$transparent"" 216 | xterm $HOLD -title "Installing Hostapd" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install hostapd 217 | else 218 | echo -e "\e[1;32mOK!"$transparent 219 | fi 220 | sleep 0.025 221 | ############################## 222 | 223 | echo -ne "Iwconfig........" 224 | if ! hash iwconfig 2>/dev/null; then 225 | echo -e "\e[1;31mInstalling ..."$transparent"" 226 | xterm $HOLD -title "Installing Iwconfig" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install iwconfig 227 | else 228 | echo -e "\e[1;32mOK!"$transparent"" 229 | fi 230 | sleep 0.025 231 | ############################## 232 | echo -ne "Lighttpd........" 233 | if ! hash lighttpd 2>/dev/null; then 234 | echo -e "\e[1;31mInstalling ..."$transparent"" 235 | xterm $HOLD -title "Installing Lighttpd" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install lighttpd 236 | else 237 | echo -e "\e[1;32mOK!"$transparent 238 | fi 239 | sleep 0.025 240 | ############################## 241 | 242 | echo -ne "Macchanger......" 243 | if ! hash macchanger 2>/dev/null; then 244 | echo -e "\e[1;31mInstalling ..."$transparent"" 245 | xterm $HOLD -title "Installing Macchanger" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install macchanger 246 | else 247 | echo -e "\e[1;32mOK!"$transparent 248 | fi 249 | sleep 0.025 250 | ############################## 251 | 252 | echo -ne "Mdk3............" 253 | if ! hash mdk3 2>/dev/null; then 254 | echo -e "\e[1;31mInstalling ..."$transparent"" 255 | xterm $HOLD -title "Installing Macchanger" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install mdk3 256 | else 257 | echo -e "\e[1;32mOK!"$transparent 258 | fi 259 | sleep 0.025 260 | 261 | ############################## 262 | 263 | echo -ne "Nmap............" 264 | if ! hash nmap 2>/dev/null; then 265 | echo -e "\e[1;31mInstalling ..."$transparent"" 266 | xterm $HOLD -title "Installing Nmap" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get install --yes nmap 267 | else 268 | echo -e "\e[1;32mOK!"$transparent 269 | fi 270 | sleep 0.025 271 | ############################## 272 | echo -ne "Openssl........." 273 | if ! hash openssl 2>/dev/null; then 274 | echo -e "\e[1;31mInstalling ..."$transparent"" 275 | xterm $HOLD -title "Installing Openssl" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install openssl 276 | else 277 | echo -e "\e[1;32mOK!"$transparent"" 278 | fi 279 | sleep 0.025 280 | ############################## 281 | echo -ne "Php-cgi........." 282 | if ! hash php-cgi 2>/dev/null; then 283 | echo -e "\e[1;31mInstalling ..."$transparent"" 284 | xterm $HOLD -title "Installing php-cgi" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install php-cgi 285 | else 286 | echo -e "\e[1;32mOK!"$transparent 287 | fi 288 | sleep 0.025 289 | ############################## 290 | 291 | # echo -ne "Pyrit..........." 292 | # if ! hash pyrit 2>/dev/null; then 293 | # echo -e "\e[1;31mInstalling ..."$transparent"" 294 | # xterm $HOLD -title "Installing Pyrit" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install pyrit 295 | # else 296 | # echo -e "\e[1;32mOK!"$transparent 297 | # fi 298 | # sleep 0.025 299 | # ############################## 300 | 301 | # echo -ne "Python.........." 302 | # if ! hash python 2>/dev/null; then 303 | # echo -e "\e[1;31mInstalling ..."$transparent"" 304 | # xterm $HOLD -title "Installing Python" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install python 305 | # else 306 | # echo -e "\e[1;32mOK!"$transparent 307 | # fi 308 | # sleep 0.025 309 | 310 | ############################## 311 | echo -ne "Reaver.........." 312 | if ! hash reaver 2>/dev/null; then 313 | echo -e "\e[1;31mInstalling ..."$transparent"" 314 | xterm $HOLD -title "Installing Reaver" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install reaver 315 | else 316 | echo -e "\e[1;32mOK!"$transparent"" 317 | fi 318 | sleep 0.025 319 | ############################## 320 | 321 | echo -ne "rfkill.........." 322 | if ! hash rfkill 2>/dev/null; then 323 | echo -e "\e[1;31mInstalling ..."$transparent"" 324 | xterm $HOLD -title "Installing Rfkill" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install rfkill 325 | else 326 | echo -e "\e[1;32mOK!"$transparent"" 327 | fi 328 | sleep 0.025 329 | 330 | ############################## 331 | 332 | echo -ne "Unzip..........." 333 | if ! hash unzip 2>/dev/null; then 334 | echo -e "\e[1;31mInstalling ..."$transparent"" 335 | xterm $HOLD -title "Installing unzip" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install unzip 336 | else 337 | echo -e "\e[1;32mOK!"$transparent 338 | fi 339 | sleep 0.025 340 | ############################## 341 | 342 | echo -ne "Xterm..........." 343 | if ! hash xterm 2>/dev/null; then 344 | echo -e "\e[1;31mInstalling ..."$transparent"" 345 | apt-get install xterm 346 | else 347 | echo -e "\e[1;32mOK!"$transparent 348 | fi 349 | sleep 0.025 350 | ############################## 351 | echo -ne "strings........." 352 | if ! hash strings 2>/dev/null; then 353 | echo -e "\e[1;31mInstalling ..."$transparent"" 354 | xterm $HOLD -title "Installing binutils" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install binutils 355 | else 356 | echo -e "\e[1;32mOK!"$transparent"" 357 | fi 358 | sleep 0.025 359 | ############################# 360 | echo -ne "fuser..........." 361 | if ! hash fuser 2>/dev/null; then 362 | echo -e "\e[1;31mInstalling ..."$transparent"" 363 | xterm $HOLD -title "Installing psmisc" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get --yes install psmisc 364 | else 365 | echo -e "\e[1;32mOK!"$transparent"" 366 | fi 367 | sleep 0.025 368 | ############################## 369 | echo -ne "Git............." 370 | if ! hash git 2>/dev/null; then 371 | echo -e "\e[1;31mInstalling ..."$transparent"" 372 | xterm $HOLD -title "Installing git" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get -y install git 373 | else 374 | echo -e "\e[1;32mOK!"$transparent"" 375 | fi 376 | sleep 0.025 377 | ############################## 378 | echo -ne "Bully..........." 379 | if ! hash bully 2>/dev/null; then 380 | echo -e "\e[1;31mInstalling ..."$transparent"" 381 | xterm $HOLD -title "Installing Bully" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get -y install build-essential libpcap-dev pixiewps && wget https://github.com/aanarchyy/bully/archive/master.zip && unzip master.zip && rm master.zip && cd bully*/ && cd src/ && make && make install 382 | else 383 | echo -e "\e[1;32mOK!"$transparent"" 384 | fi 385 | sleep 0.025 386 | 387 | ############################## 388 | echo -ne "Hostapd-mana...." 389 | if [ ! -d "./hostapd-mana" ]; then 390 | echo -e "\e[1;31mInstalling ..."$transparent"" 391 | xterm $HOLD -title "Installing Hostapd-mana" $TOPLEFTBIG -bg "#FFFFFF" -fg "#000000" -e apt-get -y install build-essential pkg-config libnl-genl-3-dev libssl-dev && git clone https://github.com/sensepost/hostapd-mana && cd hostapd-mana && make -C hostapd 392 | else 393 | echo -e "\e[1;32mOK!"$transparent"" 394 | fi 395 | sleep 0.025 396 | 397 | 398 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![alt text](https://github.com/Johnler/Wi-Ploit/blob/master/WifiExploit.jpg) 2 | # Wi-Ploit 1.0.1 3 | Wi-Ploit is a library of Wi-Fi exploitation tools. 4 | * Base code script of deltaflux Fluxion old version. 5 | * For old Kali/ParrotOs version. 6 | 7 | # (New Update)Wi-Ploit 2.0.0 8 | Wi-Ploit is a library of Wi-Fi exploitation tools. 9 | * Removes Python2 and dependecies. 10 | ** Pryit (disabled, waiting for python3 release). 11 | * Updated Scripts. 12 | * Tested on Kali (2020-05-12) 13 | 14 | # Attacks: 15 | 1. Rogue Access Point (hostapd). 16 | 2. Rogue Access Point (hostapd-mana). 17 | 3. WPS attack (Reaver) * Upcoming. 18 | 19 | ## Rogue Access Point (hostapd) 20 | * Scan the networks. 21 | * Capture a handshake (can't be used without a valid handshake, it's necessary to verify the password) 22 | * Use WEB Interface * 23 | * Launch a FakeAP instance to imitate the original access point 24 | * Spawns a MDK3 process, which deauthenticates all users connected to the target network, so they can be lured to connect to the FakeAP and enter the WPA password. 25 | * A fake DNS server is launched in order to capture all DNS requests and redirect them to the host running the script 26 | * A captive portal is launched in order to serve a page, which prompts the user to enter their WPA password 27 | * Each submitted password is verified by the handshake captured earlier 28 | * The attack will automatically terminate, as soon as a correct password is submitted 29 | 30 | ## Rogue Access Point (hostapd-mana) 31 | ### attracting as many devices as possible to connect to perform MitM attacks. 32 | * Scan the networks. 33 | * Capture a handshake (can't be used without a valid handshake, it's necessary to verify the password) 34 | * Use WEB Interface * 35 | * Launch a FakeAP instance to imitate the original access point AND VICTIMS AUTOMATICALLY CONNECTS TO CREATED FAKEAP 36 | * Spawns a MDK3 process, which deauthenticates all users connected to the target network, so they can be lured to connect to the FakeAP and enter the WPA password. 37 | * A fake DNS server is launched in order to capture all DNS requests and redirect them to the host running the script 38 | * A captive portal is launched in order to serve a page, which prompts the user to enter their WPA password 39 | * Each submitted password is verified by the handshake captured earlier 40 | * The attack will automatically terminate, as soon as a correct password is submitted 41 | 42 | # Requirements 43 | * Kali Linux OS or Ubuntu 18.04 OS 44 | * External Wireless Adapters 45 | 46 | ## Recommended Wireless Adapters Chipsets 47 | *Atheros: 48 | ATH9KHTC (AR9271, AR7010) 49 | Tested: AR9271 (AWUS036NHA) 50 | 51 | *Ralink: 52 | RT3070 53 | 54 | *Realtek: 55 | RTL8192CU 56 | 57 | # Installation 58 | 1. git clone https://github.com/Johnler/Wi-Ploit.git 59 | 2. cd Wi-Ploit/ 60 | 3. chmod +x Installer 61 | 4. ./Installer 62 | 5. chmod +x wiploit 63 | 6. ./wiploit 64 | 65 | # Versioning 66 | 1.b.c 67 | b = major release 68 | c = minor release 69 | 70 | # Credits 71 | 1. vk496 - developer(s) of linset 72 | 2. deltaxflux - developer(s) of fluxion 73 | 3. SensePost - developer(s) of hostapd-mana 74 | 75 | 76 | 77 | # Disclaimer 78 | This is not responsibility of the developer(s) of any destructions, broken pc, illegal activities and nuclear war. 79 | -------------------------------------------------------------------------------- /WifiExploit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Johnler/Wi-Ploit/a9c017d35b7ddbab9820bf326e7792a8d3531a29/WifiExploit.jpg -------------------------------------------------------------------------------- /airmon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | USERID="" 4 | IFACE="" 5 | KISMET=/etc/kismet/kismet.conf 6 | CH=$3; [ x$3 = "x" ] && CH=10 7 | IFACE_FOUND="false" 8 | MADWIFI=0 9 | MAC80211=0 10 | USE_IW=0 11 | IW_SOURCE="https://www.kernel.org/pub/software/network/iw/iw-3.17.tar.xz" 12 | IW_ERROR="" 13 | UDEV_ISSUE=0 14 | 15 | if [ -f "`which iw 2>&1`" ] 16 | then 17 | USE_IW=1 18 | fi 19 | 20 | if [ "x$MON_PREFIX" = "x" ] 21 | then 22 | MON_PREFIX="mon" 23 | fi 24 | 25 | PROCESSES="wpa_action\|wpa_supplicant\|wpa_cli\|dhclient\|ifplugd\|dhcdbd\|dhcpcd\|NetworkManager\|knetworkmanager\|avahi-autoipd\|avahi-daemon\|wlassistant\|wifibox" 26 | PS_ERROR="invalid" 27 | 28 | usage() { 29 | printf "usage: `basename $0` [channel or frequency]\n" 30 | echo 31 | exit 32 | } 33 | 34 | startStdIface() { 35 | iwconfig $1 mode monitor >/dev/null 2>&1 36 | if [ ! -z $2 ] 37 | then 38 | if [ $2 -lt 1000 ] 39 | then 40 | iwconfig $1 channel $2 >/dev/null 2>&1 41 | else 42 | iwconfig $1 freq "$2"000000 > /dev/null 2>&1 43 | fi 44 | fi 45 | iwconfig $1 key off >/dev/null 2>&1 46 | ifconfig $1 up 47 | printf " (monitor mode enabled)" 48 | } 49 | 50 | 51 | stopStdIface() { 52 | ifconfig $1 down >/dev/null 2>&1 53 | iwconfig $1 mode Managed >/dev/null 2>&1 54 | ifconfig $1 down >/dev/null 2>&1 55 | printf " (monitor mode disabled)" 56 | } 57 | 58 | getModule() { 59 | if [ -f "/sys/class/net/$1/device/driver/module/srcversion" ] 60 | then 61 | srcver1=`cat "/sys/class/net/$1/device/driver/module/srcversion"` 62 | for j in `lsmod | awk '{print $1}' | grep -v "^Module$"` 63 | do 64 | srcver2="`modinfo $j 2>/dev/null | grep srcversion | awk '{print $2}'`" 65 | if [ $srcver1 = "$srcver2" ] 66 | then 67 | MODULE=$j 68 | break 69 | fi 70 | done 71 | else 72 | MODULE="" 73 | fi 74 | # return 0 75 | } 76 | 77 | getDriver() { 78 | if [ -e "/sys/class/net/$1/device/driver" ] 79 | then 80 | DRIVER="`ls -l "/sys/class/net/$1/device/driver" | sed 's/^.*\/\([a-zA-Z0-9_-]*\)$/\1/'`" 81 | BUS="`ls -l "/sys/class/net/$1/device/driver" | sed 's/^.*\/\([a-zA-Z0-9_-]*\)\/.*\/.*$/\1/'`" 82 | else 83 | DRIVER="" 84 | BUS="" 85 | fi 86 | if [ x$(echo $DRIVER | grep ath5k) != "x" ] 87 | then 88 | DRIVER="ath5k" 89 | fi 90 | if [ x$(echo $DRIVER | grep ath9k) != "x" ] 91 | then 92 | DRIVER="ath9k" 93 | fi 94 | if [ x$DRIVER = "x" ] 95 | then 96 | if [ -d /sys/class/net/tiwlan0/wireless ] 97 | then 98 | DRIVER=WiLink 99 | fi 100 | fi 101 | 102 | } 103 | 104 | scanProcesses() { 105 | if [ -f "`which service 2>&1`" ] && [ x"$1" = "xkill" ] 106 | then 107 | service network-manager stop 2>/dev/null >/dev/null 108 | service avahi-daemon stop 2>/dev/null >/dev/null 109 | fi 110 | 111 | match=`ps -A -o comm= | grep $PROCESSES | grep -v grep | wc -l` 112 | if [ $match -gt 0 -a x"$1" != "xkill" ] 113 | then 114 | printf "\n\n" 115 | echo "Found $match processes that could cause trouble." 116 | echo "If airodump-ng, aireplay-ng or airtun-ng stops working after" 117 | echo "a short period of time, you may want to kill (some of) them!" 118 | echo -e "\nPID\tName" 119 | else 120 | if [ x"$1" != "xkill" ] 121 | then 122 | return 123 | fi 124 | fi 125 | 126 | if [ $match -gt 0 -a x"$1" = "xkill" ] 127 | then 128 | echo "Killing all those processes..." 129 | fi 130 | 131 | i=1 132 | while [ $i -le $match ] 133 | do 134 | pid=`ps -A -o pid= -o comm= | grep $PROCESSES | grep -v grep | head -n $i | tail -n 1 | awk '{print $1}'` 135 | pname=`ps -A -o pid= -o comm= | grep $PROCESSES | grep -v grep | head -n $i | tail -n 1 | awk '{print $2}'` 136 | if [ x"$1" != "xkill" ] 137 | then 138 | printf "$pid\t$pname\n" 139 | else 140 | kill $pid 141 | fi 142 | i=$(($i+1)) 143 | done 144 | } 145 | 146 | checkProcessesIface() { 147 | if [ x"$1" = "x" ] 148 | then 149 | return 150 | fi 151 | 152 | match2=`ps -o comm= -p 1 2>&1 | grep $PS_ERROR | grep -v grep | wc -l` 153 | if [ $match2 -gt 0 ] 154 | then 155 | return 156 | fi 157 | 158 | for i in `ps auxw | grep $1 | grep -v "grep" | grep -v "airmon" | awk '{print $2}'` 159 | do 160 | pname=`ps -o comm= -p $i` 161 | echo "Process with PID $i ($pname) is running on interface $1" 162 | done 163 | } 164 | 165 | getStack() { 166 | if [ x"$1" = "x" ] 167 | then 168 | return 169 | fi 170 | 171 | if [ -d /sys/class/net/$1/phy80211/ ] 172 | then 173 | MAC80211=1 174 | else 175 | MAC80211=0 176 | fi 177 | } 178 | 179 | #you need to run getDriver $iface prior to getChipset 180 | getChipset() { 181 | if [ x"$1" = "x" ] 182 | then 183 | return 184 | fi 185 | 186 | CHIPSET="Unknown " 187 | 188 | if [ x$DRIVER = "xOtus" -o x$DRIVER = "xarusb_lnx" ] 189 | then 190 | CHIPSET="AR9001U" 191 | fi 192 | 193 | if [ x$DRIVER = "xWiLink" ] 194 | then 195 | CHIPSET=`dmesg | grep TIWLAN | grep CHIP | tail -n 1 | awk -F\ '{ print $6 }'` 196 | if [ x$CHIPSET = "x" ] 197 | then 198 | CHIPSET="Unknown" 199 | else 200 | CHIPSET="TI${CHIPSET}" 201 | fi 202 | fi 203 | 204 | if [ x$DRIVER = "xar9170usb" ] 205 | then 206 | getPhy $2 207 | CHIPSET="Atheros `dmesg | grep $PHYDEV | grep "is registered as" | cut -d':' -f 2 | cut -d' ' -f 3`" 208 | fi 209 | 210 | if [ x$DRIVER = "xzd1211rw_mac80211" ] 211 | then 212 | CHIPSET="ZyDAS 1211" 213 | fi 214 | 215 | if [ x$DRIVER = "xzd1211rw" ] 216 | then 217 | getPhy $2 218 | TEMP_USBPORT="`dmesg | grep $PHYDEV | grep zd1211rw | cut -d'w' -f 2 | cut -d' ' -f 2`" 219 | TEMP_CHIPSET="`dmesg | grep "$TEMP_USBPORT" | grep chip | tail -n 1 | cut -d':' -f 3 | cut -d' ' -f 2`" 220 | CHIPSET="Zydas $TEMP_CHIPSET" 221 | fi 222 | 223 | if [ x$DRIVER = "xacx" -o x$DRIVER = "xacx-mac80211" -o x$DRIVER = "xacx1xx" ] 224 | then 225 | CHIPSET="TI ACX1xx" 226 | fi 227 | 228 | if [ x$DRIVER = "adm8211" ] 229 | then 230 | CHIPSET="ADMtek 8211" 231 | fi 232 | 233 | if [ x$DRIVER = "xat76_usb" ] 234 | then 235 | CHIPSET="Atmel " 236 | fi 237 | 238 | if [ x$DRIVER = "xb43" -o x$DRIVER = "xb43legacy" -o x$DRIVER = "xbcm43xx" -o x$DRIVER = "xwl" ] 239 | then 240 | CHIPSET="Broadcom" 241 | if [ x$DRIVER = "xb43" ] 242 | then 243 | getPhy $2 244 | TEMP_CHIPSET="`dmesg | grep $PHYDEV | grep found | cut -d':' -f 2 | cut -d' ' -f 3`" 245 | if [ x$TEMP_CHIPSET = "x4318" ] 246 | then 247 | CHIPSET="$CHIPSET $TEMP_CHIPSET" 248 | fi 249 | fi 250 | fi 251 | 252 | if [ x$DRIVER = "xprism54" -o x$DRIVER = "xp54pci" -o x$DRIVER = "xp54usb" ] 253 | then 254 | CHIPSET="PrismGT " 255 | fi 256 | 257 | if [ x$DRIVER = "xhostap" ] 258 | then 259 | CHIPSET="Prism 2/2.5/3" 260 | fi 261 | 262 | if [ x$DRIVER = "xr8180" -o x$DRIVER = "xrtl8180" ] 263 | then 264 | CHIPSET="RTL8180/RTL8185" 265 | fi 266 | 267 | # r8187 is reporting itself as rtl8187 268 | if [ x$DRIVER = "xrtl8187" ] 269 | then 270 | getPhy $2 271 | if [ x"$PHYDEV" = "x" ] 272 | then 273 | CHIPSET="RTL8187 " 274 | else 275 | CHIPSET="`dmesg | grep $PHYDEV | grep hwaddr | cut -d',' -f 2 | cut -d' ' -f 2`" 276 | if [ x$CHIPSET = "xRTL8187vB" ] 277 | then 278 | CHIPSET="Realtek RTL8187L" 279 | else 280 | CHIPSET="Realtek $CHIPSET" 281 | fi 282 | fi 283 | fi 284 | 285 | if [ x$DRIVER = "xr8187" ] 286 | then 287 | CHIPSET="RTL8187 " 288 | fi 289 | 290 | if [ x$DRIVER = "xrt2570" -o x$DRIVER = "xrt2500usb" ] 291 | then 292 | CHIPSET="Ralink 2570 USB" 293 | fi 294 | 295 | if [ x$DRIVER = "xrt2400" -o x$DRIVER = "xrt2400pci" ] 296 | then 297 | CHIPSET="Ralink 2400 PCI" 298 | fi 299 | 300 | if [ x$DRIVER = "xrt2500" -o x$DRIVER = "xrt2500pci" ] 301 | then 302 | CHIPSET="Ralink 2560 PCI" 303 | fi 304 | 305 | if [ x$DRIVER = "xrt61" -o x$DRIVER = "xrt61pci" ] 306 | then 307 | CHIPSET="Ralink 2561 PCI" 308 | fi 309 | 310 | if [ x$DRIVER = "xrt73" -o x$DRIVER = "xrt73usb" ] 311 | then 312 | CHIPSET="Ralink 2573 USB" 313 | fi 314 | 315 | #if [ x$DRIVER = "xrt2800usb" ] 316 | #then 317 | # getPhy $2 318 | # CHIPSET="Ralink `dmesg | grep rt2800usb | grep firmware | cut -d':' -f 4 | cut -d' ' -f 3 | cut -d'.' -f 1`" 319 | #fi 320 | 321 | if [ x$DRIVER = "xrt2800" -o x$DRIVER = "xrt2800usb" -o x$DRIVER = "xrt3070sta" ] 322 | then 323 | CHIPSET="Ralink RT2870/3070" 324 | fi 325 | 326 | if [ x$DRIVER = "xipw2100" ] 327 | then 328 | CHIPSET="Intel 2100B" 329 | fi 330 | 331 | if [ x$DRIVER = "xipw2200" ] 332 | then 333 | CHIPSET="Intel 2200BG/2915ABG" 334 | fi 335 | 336 | if [ x$DRIVER = "xipw3945" -o x$DRIVER = "xipwraw" -o x$DRIVER = "xiwl3945" ] 337 | then 338 | CHIPSET="Intel 3945ABG" 339 | fi 340 | 341 | if [ x$DRIVER = "xipw4965" -o x$DRIVER = "xiwl4965" ] 342 | then 343 | CHIPSET="Intel 4965AGN" 344 | fi 345 | 346 | if [ x$DRIVER = "xiwlagn" -o x$DRIVER = "xiwlwifi" ] 347 | then 348 | CHIPSET="Intel 4965/5xxx/6xxx/1xxx" 349 | 350 | DETECTED_STR="`dmesg | grep $DRIVER | grep Detected | tail -n 1 `" 351 | LINK_POS="3" 352 | FOUND="0" 353 | 354 | if [ x"$DETECTED_STR" != "x" ] 355 | then 356 | INTEL_WORD="Link" 357 | if [ "`echo "$DETECTED_STR" | grep $INTEL_WORD | wc -l`" = "0" ] 358 | then 359 | INTEL_WORD="Wireless" 360 | if [ "`echo "$DETECTED_STR" | grep $INTEL_WORD | wc -l`" = "0" ] 361 | then 362 | INTEL_WORD="Ultimate" 363 | if [ "`echo "$DETECTED_STR" | grep $INTEL_WORD | wc -l`" = "0" ] 364 | then 365 | INTEL_WORD="Advanced" 366 | fi 367 | fi 368 | fi 369 | 370 | while [ $FOUND = "0" ] 371 | do 372 | FOUND=`echo "$DETECTED_STR" | cut -d' ' -f $LINK_POS | grep $INTEL_WORD | wc -l` 373 | LINK_POS=$(($LINK_POS+1)) 374 | done 375 | 376 | TEMP_CHIPSET=`echo "$DETECTED_STR" | cut -d' ' -f $LINK_POS` 377 | 378 | case "x${TEMP_CHIPSET}" in 379 | # x5100AGN) 380 | # CHIPSET="Intel $TEMP_CHIPSET" 381 | # ;; 382 | x5300) 383 | TYPE_TEMP=`echo "$DETECTED_STR" | cut -d' ' -f $(($LINK_POS+1)) | awk -F, '{ print $1 }' ` 384 | CHIPSET="Intel ${TEMP_CHIPSET}${TYPE_TEMP}" 385 | ;; 386 | x1000) 387 | TYPE_TEMP=`echo "$DETECTED_STR" | cut -d' ' -f $[$LINK_POS+2]` 388 | CHIPSET="Intel ${TEMP_CHIPSET}${TYPE_TEMP}" 389 | ;; 390 | *) 391 | CHIPSET="Intel $TEMP_CHIPSET" 392 | ;; 393 | esac 394 | fi 395 | 396 | fi 397 | 398 | if [ x$DRIVER = "xath5k" ] 399 | then 400 | getPhy $2 401 | CHIPSET="Atheros `dmesg | grep $PHYDEV | grep "chip found" | cut -d':' -f 2 | cut -d' ' -f 3`" 402 | fi 403 | 404 | if [ x$DRIVER = "xath_pci" ] 405 | then 406 | CHIPSET="Atheros " 407 | fi 408 | 409 | if [ x$DRIVER = "xath9k" ] 410 | then 411 | getPhy $2 412 | CHIPSET="Atheros `dmesg | grep $PHYDEV | grep Atheros | tail -n 1 | cut -d':' -f 2 | cut -d' ' -f 3`" 413 | fi 414 | 415 | if [ x$DRIVER = "xorinoco" ] 416 | then 417 | CHIPSET="Hermes/Prism" 418 | fi 419 | 420 | if [ x$DRIVER = "xath9k_htc" -o x$DRIVER = "xusb" ] 421 | then 422 | CHIPSET="AR9001/9002/9271" 423 | fi 424 | 425 | if [ x$DRIVER = "xwl12xx" ] 426 | then 427 | CHIPSET="TI WL1251/WL1271" 428 | IS_WL1251="`dmesg| grep firmware | grep wl1251 | wc -l`" 429 | IS_WL1271="`dmesg| grep firmware | grep wl1271 | wc -l`" 430 | 431 | if [ $IS_WL1251 != "0" ] && [ $IS_WL1271 = "0" ] 432 | then 433 | CHIPSET="TI WL1251" 434 | fi 435 | if [ $IS_WL1271 != "0" ] && [ $IS_WL1251 = "0" ] 436 | then 437 | CHIPSET="TI WL1271" 438 | fi 439 | # In any other case, we can't determine the chipset and thus give the generic: 1251/1271 440 | fi 441 | 442 | 443 | if [ x$DRIVER = "xr871x_usb_drv" ] 444 | then 445 | CHIPSET="Realtek 81XX" 446 | fi 447 | 448 | if [ x$DRIVER = "xcarl9170" ] 449 | then 450 | getPhy $2 451 | CHIPSET=`dmesg | grep usb | grep $PHYDEV | awk -F\ '{ print $3 " " $4 }'` 452 | if [ `echo $CHIPSET | grep -i atheros | wc -l` -eq 0 ] 453 | then 454 | CHIPSET=`dmesg | grep usb | grep $PHYDEV | awk -F\ '{ print $5 " " $6 }'` 455 | fi 456 | fi 457 | } 458 | 459 | getPhy() { 460 | PHYDEV="" 461 | if [ x"$1" = "x" ] 462 | then 463 | return 464 | fi 465 | 466 | if [ x$MAC80211 = "x" ] 467 | then 468 | return 469 | fi 470 | 471 | if [ -d /sys/class/net/$1/phy80211/ ] 472 | then 473 | PHYDEV="`ls -l "/sys/class/net/$1/phy80211" | sed 's/^.*\/\([a-zA-Z0-9_-]*\)$/\1/'`" 474 | fi 475 | } 476 | 477 | getNewMon() { 478 | i=0 479 | 480 | while [ -d /sys/class/net/$MON_PREFIX$i/ ] 481 | do 482 | i=$(($i+1)) 483 | done 484 | 485 | MONDEV="$MON_PREFIX$i" 486 | } 487 | 488 | if [ x"`which id 2> /dev/null`" != "x" ] 489 | then 490 | USERID="`id -u 2> /dev/null`" 491 | fi 492 | 493 | if [ x$USERID = "x" -a x$UID != "x" ] 494 | then 495 | USERID=$UID 496 | fi 497 | 498 | if [ x$USERID != "x" -a x$USERID != "x0" ] 499 | then 500 | echo Run it as root ; exit ; 501 | fi 502 | 503 | iwpriv > /dev/null 2> /dev/null || 504 | { echo Wireless tools not found ; exit ; } 505 | 506 | if [ x"$1" = "xcheck" ] || [ x"$1" = "xstart" ] 507 | then 508 | scanProcesses 509 | for iface in `iwconfig 2>/dev/null | egrep '(IEEE|ESSID|802\.11|WLAN)' | sed 's/^\([a-zA-Z0-9_.]*\) .*/\1/' | grep -v wifi` 510 | do 511 | # getModule $iface 512 | # getDriver $iface 513 | checkProcessesIface $iface 514 | done 515 | 516 | if [ x"$2" = "xkill" ] 517 | then 518 | scanProcesses "$2" 519 | fi 520 | if [ x"$1" = "xcheck" ] 521 | then 522 | exit 523 | fi 524 | fi 525 | 526 | printf "\n\n" 527 | 528 | if [ $# -ne "0" ] 529 | then 530 | if [ x$1 != "xstart" ] && [ x$1 != "xstop" ] 531 | then 532 | usage 533 | fi 534 | 535 | if [ x$2 = "x" ] 536 | then 537 | usage 538 | fi 539 | fi 540 | 541 | SYSFS=0 542 | if [ -d /sys/ ] 543 | then 544 | SYSFS=1 545 | fi 546 | 547 | printf "Interface\tChipset\t\tDriver\n\n" 548 | 549 | 550 | for iface in `ifconfig -a 2>/dev/null | egrep UNSPEC | sed 's/^\([a-zA-Z0-9_]*\) .*/\1/'` 551 | do 552 | 553 | if [ x"`iwpriv $iface 2>/dev/null | grep ipwraw-ng`" != "x" ] 554 | then 555 | printf "$iface\t\tIntel 3945ABG\tipwraw-ng" 556 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 557 | then 558 | cp $KISMET~ $KISMET 2>/dev/null && 559 | echo "source=ipw3945,$iface,Centrino_abg" >>$KISMET 560 | startStdIface $iface $CH 561 | iwconfig $iface rate 1M 2> /dev/null >/dev/null 562 | iwconfig $iface txpower 16 2> /dev/null >/dev/null 563 | fi 564 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 565 | then 566 | stopStdIface $iface 567 | iwconfig $iface txpower 15 2> /dev/null >/dev/null 568 | iwconfig $iface rate 54M 2> /dev/null >/dev/null 569 | fi 570 | echo 571 | continue 572 | fi 573 | 574 | if [ -e "/proc/sys/dev/$iface/fftxqmin" ] 575 | then 576 | MADWIFI=1 577 | ifconfig $iface up 578 | printf "$iface\t\tAtheros\t\tmadwifi-ng" 579 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 580 | then 581 | IFACE=`wlanconfig ath create wlandev $iface wlanmode monitor -bssid | grep ath` 582 | cp $KISMET~ $KISMET 2>/dev/null && 583 | echo "source=madwifi_g,$iface,Atheros" >>$KISMET 584 | ifconfig $iface up 2>/dev/null >/dev/null 585 | if [ $CH -lt 1000 ] 586 | then 587 | iwconfig $IFACE channel $CH 2>/dev/null >/dev/null 588 | else 589 | iwconfig $IFACE freq "$CH"000000 2>/dev/null >/dev/null 590 | fi 591 | ifconfig $IFACE up 2>/dev/null >/dev/null 592 | UDEV_ISSUE=$? 593 | fi 594 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 595 | then 596 | echo "$iface does not support 'stop', do it on ath interface" 597 | fi 598 | echo 599 | continue 600 | fi 601 | done 602 | 603 | if [ $MADWIFI -eq 1 ] 604 | then 605 | sleep 1s 606 | fi 607 | 608 | for iface in `iwconfig 2>/dev/null | egrep '(IEEE|ESSID|802\.11|WLAN)' | sed 's/^\([a-zA-Z0-9_.]*\) .*/\1/' | grep -v wifi` 609 | do 610 | getModule $iface 611 | getDriver $iface 612 | getStack $iface 613 | getChipset $DRIVER $iface 614 | 615 | 616 | if [ x$MAC80211 = "x1" ] 617 | then 618 | getPhy $iface 619 | getNewMon 620 | printf "$iface\t\t$CHIPSET\t$DRIVER - [$PHYDEV]" 621 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 622 | then 623 | if [ $USE_IW = 1 ] 624 | then 625 | IW_ERROR=`iw dev $iface interface add $MONDEV type monitor 2>&1 | grep "nl80211 not found"` 626 | if [ x$IW_ERROR = "x" ] 627 | then 628 | sleep 1s 629 | if [ ! -z $3 ] 630 | then 631 | if [ $3 -lt 1000 ] 632 | then 633 | iwconfig $MONDEV channel $3 >/dev/null 2>&1 634 | else 635 | iwconfig $MONDEV freq "$3"000000 >/dev/null 2>&1 636 | fi 637 | fi 638 | ifconfig $MONDEV up 639 | printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)" 640 | else 641 | if [ -f /sys/class/ieee80211/"$PHYDEV"/add_iface ] 642 | then 643 | echo -n "$MONDEV" > /sys/class/ieee80211/"$PHYDEV"/add_iface 644 | sleep 1s 645 | if [ $3 -lt 1000 ] 646 | then 647 | iwconfig $MONDEV mode Monitor channel $3 >/dev/null 2>&1 648 | else 649 | iwconfig $MONDEV mode Monitor freq "$3"000000 >/dev/null 2>&1 650 | fi 651 | ifconfig $MONDEV up 652 | printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)" 653 | else 654 | printf "\n\nERROR: nl80211 support is disabled in your kernel.\nPlease recompile your kernel with nl80211 support enabled.\n" 655 | fi 656 | fi 657 | else 658 | if [ -f /sys/class/ieee80211/"$PHYDEV"/add_iface ] 659 | then 660 | echo -n "$MONDEV" > /sys/class/ieee80211/"$PHYDEV"/add_iface 661 | sleep 1s 662 | if [ $3 -lt 1000 ] 663 | then 664 | iwconfig $MONDEV mode Monitor channel $3 >/dev/null 2>&1 665 | else 666 | iwconfig $MONDEV mode Monitor freq "$3"000000 >/dev/null 2>&1 667 | fi 668 | ifconfig $MONDEV up 669 | printf "\n\t\t\t\t(monitor mode enabled on $MONDEV)" 670 | else 671 | printf "\n\nERROR: Neither the sysfs interface links nor the iw command is available.\nPlease download and install iw from\n$IW_SOURCE\n" 672 | fi 673 | fi 674 | fi 675 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 676 | then 677 | z="`echo $iface | cut -b -${#MON_PREFIX}`" 678 | if [ x$z = "x$MON_PREFIX" ] 679 | then 680 | if [ $USE_IW = 1 ] 681 | then 682 | IW_ERROR=`iw dev "$iface" interface del 2>&1 | grep "nl80211 not found"` 683 | if [ x$IW_ERROR = "x" ] 684 | then 685 | printf " (removed)" 686 | else 687 | if [ -f /sys/class/ieee80211/"$PHYDEV"/remove_iface ] 688 | then 689 | echo -n "$iface" > /sys/class/ieee80211/"$PHYDEV"/remove_iface 690 | printf " (removed)" 691 | else 692 | printf "\n\nERROR: nl80211 support is disabled in your kernel.\nPlease recompile your kernel with nl80211 support enabled.\n" 693 | fi 694 | fi 695 | else 696 | if [ -f /sys/class/ieee80211/"$PHYDEV"/remove_iface ] 697 | then 698 | echo -n "$iface" > /sys/class/ieee80211/"$PHYDEV"/remove_iface 699 | printf " (removed)" 700 | else 701 | printf "\n\nERROR: Neither the sysfs interface links nor the iw command is available.\nPlease download and install iw from\n$IW_SOURCE\n" 702 | fi 703 | fi 704 | else 705 | ifconfig $iface down 706 | iwconfig $iface mode managed 707 | printf "\n\t\t\t\t(monitor mode disabled)" 708 | fi 709 | fi 710 | echo 711 | continue 712 | fi 713 | 714 | 715 | if [ x$DRIVER = "xorinoco" ] || [ x"`iwpriv $iface 2>/dev/null | grep get_rid`" != "x" ] || [ x"`iwpriv $iface 2>/dev/null | grep dump_recs`" != "x" ] 716 | then 717 | printf "$iface\t\tHermesI\t\torinoco" 718 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 719 | then 720 | cp $KISMET~ $KISMET 2>/dev/null && 721 | echo "source=orinoco,$iface,HermesI" >>$KISMET 722 | if [ $CH -lt 1000 ] 723 | then 724 | iwconfig $iface mode Monitor channel $CH >/dev/null 2>&1 725 | else 726 | iwconfig $iface mode Monitor freq "$CH"000000 >/dev/null 2>&1 727 | fi 728 | iwpriv $iface monitor 1 $CH >/dev/null 2>&1 729 | ifconfig $iface up 730 | printf " (monitor mode enabled)" 731 | fi 732 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 733 | then 734 | ifconfig $iface down 735 | iwpriv $iface monitor 0 >/dev/null 2>&1 736 | iwconfig $iface mode Managed >/dev/null 2>&1 737 | printf " (monitor mode disabled)" 738 | fi 739 | echo 740 | continue 741 | fi 742 | 743 | if [ x$DRIVER = "xrtl819xU" ] 744 | then 745 | printf "$iface\t\tRealtek 819x\trtl819xU" 746 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 747 | then 748 | startStdIface $iface $CH 749 | fi 750 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 751 | then 752 | stopStdIface $iface 753 | fi 754 | echo 755 | continue 756 | fi 757 | 758 | if [ x$DRIVER = "xipw2100" ] || [ x"`iwpriv $iface 2>/dev/null | grep set_crc_check`" != "x" ] 759 | then 760 | printf "$iface\t\tIntel 2100B\tipw2100" 761 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 762 | then 763 | cp $KISMET~ $KISMET 2>/dev/null && 764 | echo "source=ipw2100,$iface,Centrino_b" >>$KISMET 765 | startStdIface $iface $CH 766 | fi 767 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 768 | then 769 | stopStdIface $iface 770 | fi 771 | echo 772 | continue 773 | fi 774 | 775 | 776 | if [ x$DRIVER = "xarusb_lnx" ] || [ x$DRIVER = "Otus" ] 777 | then 778 | printf "$iface\t\tAR9001USB\tOtus" 779 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 780 | then 781 | echo "Monitor mode not yet supported" 782 | fi 783 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 784 | then 785 | stopStdIface $iface 786 | fi 787 | echo 788 | continue 789 | fi 790 | 791 | if [ x$DRIVER = "xWiLink" ] 792 | then 793 | getChipset $iface 794 | printf "$iface\t\t${CHIPSET}\t\t${DRIVER}" 795 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 796 | then 797 | printf "\n\t\t\t\tMonitor mode not yet supported" 798 | fi 799 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 800 | then 801 | stopStdIface $iface 802 | fi 803 | echo 804 | continue 805 | fi 806 | 807 | if [ x$DRIVER = "xipw2200" ] || [ x"`iwpriv $iface 2>/dev/null | grep sw_reset`" != "x" ] 808 | then 809 | MODINFO=`modinfo ipw2200 2>/dev/null | awk '/^version/ {print $2}'` 810 | if { echo "$MODINFO" | grep -E '^1\.0\.(0|1|2|3)$' ; } 811 | then 812 | echo "Monitor mode not supported, please upgrade" 813 | else 814 | printf "$iface\t\tIntel 2200BG\tipw2200" 815 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 816 | then 817 | cp $KISMET~ $KISMET 2>/dev/null && 818 | echo "source=ipw2200,$iface,Centrino_g" >>$KISMET 819 | startStdIface $iface $CH 820 | fi 821 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 822 | then 823 | stopStdIface $iface 824 | fi 825 | 826 | if { echo "$MODINFO" | grep -E '^1\.0\.(5|7|8|11)$' ; } 827 | then 828 | printf " (Warning: bad module version, you should upgrade)" 829 | fi 830 | fi 831 | echo 832 | continue 833 | fi 834 | 835 | 836 | if [ x$DRIVER = "xcx3110x" ] || [ x"`iwpriv $iface 2>/dev/null | grep set_backscan`" != "x" ] 837 | then 838 | printf "$iface\t\tNokia 770\t\tcx3110x" 839 | if [ x$1 = "xstart" ] || [ x$1 = "xstop" ] 840 | then 841 | printf " (Enable/disable monitor mode not yet supported)" 842 | fi 843 | echo 844 | continue 845 | fi 846 | 847 | 848 | if [ x$DRIVER = "xipw3945" ] || [ x"`iwpriv $iface 2>/dev/null | grep set_preamble | grep -v set_crc_check`" != "x" ] 849 | then 850 | printf "$iface\t\tIntel 3945ABG\tipw3945" 851 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 852 | then 853 | cp $KISMET~ $KISMET 2>/dev/null && 854 | echo "source=ipw3945,$iface,Centrino_g" >>$KISMET 855 | startStdIface $iface $CH 856 | fi 857 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 858 | then 859 | stopStdIface $iface 860 | fi 861 | echo 862 | continue 863 | fi 864 | 865 | 866 | if [ x"`iwpriv $iface 2>/dev/null | grep inact_auth`" != "x" ] 867 | then 868 | if [ -e "/proc/sys/net/$iface/%parent" ] 869 | then 870 | printf "$iface\t\tAtheros\t\tmadwifi-ng VAP (parent: `cat /proc/sys/net/$iface/%parent`)" 871 | if [ x$2 = x$iface ] && [ x$1 = "xstop" ] 872 | then 873 | wlanconfig $iface destroy 874 | printf " (VAP destroyed)" 875 | fi 876 | if [ x$1 = "xstart" ] 877 | then 878 | if [ $iface = "$IFACE" ] 879 | then 880 | printf " (monitor mode enabled)" 881 | fi 882 | if [ x$2 = x$iface ] 883 | then 884 | printf " (VAP cannot be put in monitor mode)" 885 | fi 886 | fi 887 | 888 | echo "" 889 | continue 890 | 891 | fi 892 | printf "$iface\t\tAtheros\t\tmadwifi" 893 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 894 | then 895 | cp $KISMET~ $KISMET 2>/dev/null && 896 | echo "source=madwifi_g,$iface,Atheros" >>$KISMET 897 | startStdIface $iface $CH 898 | fi 899 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 900 | then 901 | stopStdIface $iface 902 | fi 903 | echo 904 | continue 905 | fi 906 | 907 | 908 | if [ x$DRIVER = "xprism54" ] || [ x"`iwpriv $iface 2>/dev/null | grep getPolicy`" != "x" ] 909 | then 910 | printf "$iface\t\tPrismGT\t\tprism54" 911 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 912 | then 913 | cp $KISMET~ $KISMET 2>/dev/null && 914 | echo "source=prism54g,$iface,Prism54" >>$KISMET 915 | ifconfig $iface up 916 | if [ $CH -lt 1000 ] 917 | then 918 | iwconfig $iface mode Monitor channel $CH 919 | else 920 | iwconfig $iface mode Monitor freq "$CH"000000 921 | fi 922 | iwpriv $iface set_prismhdr 1 >/dev/null 2>&1 923 | printf " (monitor mode enabled)" 924 | fi 925 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 926 | then 927 | stopStdIface $iface 928 | fi 929 | echo 930 | continue 931 | fi 932 | 933 | 934 | if [ x$DRIVER = "xhostap" ] || [ x"`iwpriv $iface 2>/dev/null | grep antsel_rx`" != "x" ] 935 | then 936 | printf "$iface\t\tPrism 2/2.5/3\tHostAP" 937 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 938 | then 939 | cp $KISMET~ $KISMET 2>/dev/null && 940 | echo "source=hostap,$iface,Prism2" >>$KISMET 941 | if [ $CH -lt 1000 ] 942 | then 943 | iwconfig $iface mode Monitor channel $CH 944 | else 945 | iwconfig $iface mode Monitor freq "$CH"000000 946 | fi 947 | iwpriv $iface monitor_type 1 >/dev/null 2>&1 948 | ifconfig $iface up 949 | printf " (monitor mode enabled)" 950 | fi 951 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 952 | then 953 | stopStdIface $iface 954 | fi 955 | echo 956 | continue 957 | fi 958 | 959 | 960 | if [ x$DRIVER = "xwlan-ng" ] || [ x"`wlancfg show $iface 2>/dev/null | grep p2CnfWEPFlags`" != "x" ] 961 | then 962 | printf "$iface\t\tPrism 2/2.5/3\twlan-ng" 963 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 964 | then 965 | cp $KISMET~ $KISMET 2>/dev/null && 966 | echo "source=wlanng,$iface,Prism2" >>$KISMET 967 | wlanctl-ng $iface lnxreq_ifstate ifstate=enable >/dev/null 968 | wlanctl-ng $iface lnxreq_wlansniff enable=true channel=$CH \ 969 | prismheader=true wlanheader=false \ 970 | stripfcs=true keepwepflags=true >/dev/null 971 | echo p2CnfWEPFlags=0,4,7 | wlancfg set $iface 972 | ifconfig $iface up 973 | printf " (monitor mode enabled)" 974 | fi 975 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 976 | then 977 | ifconfig $iface down 978 | wlanctl-ng $iface lnxreq_wlansniff enable=false >/dev/null 979 | wlanctl-ng $iface lnxreq_ifstate ifstate=disable >/dev/null 980 | printf " (monitor mode disabled)" 981 | fi 982 | echo 983 | continue 984 | fi 985 | 986 | 987 | if [ x$SYSFS = "x" ] && [ x"`iwpriv $iface 2>/dev/null | grep get_RaAP_Cfg`" != "x" ] 988 | then 989 | if [ x"`iwconfig $iface | grep ESSID | awk -F\ '{ print $2}' | grep -i rt61`" != "x" ] 990 | then 991 | printf "$iface\t\tRalink 2561 PCI\trt61" 992 | fi 993 | 994 | if [ x"`iwconfig $iface | grep ESSID | awk -F\ '{ print $2}' | grep -i rt73`" != "x" ] 995 | then 996 | printf "$iface\t\tRalink 2573 USB\trt73" 997 | fi 998 | 999 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1000 | then 1001 | startStdIface $iface $CH 1002 | iwpriv $iface rfmontx 1 1003 | if [ x"`iwpriv $iface 2>/dev/null | grep forceprismheader`" != "x" ] 1004 | then 1005 | iwpriv $iface forceprismheader 1 1006 | fi 1007 | if [ x"`iwpriv $iface 2>/dev/null | grep forceprism`" != "x" ] 1008 | then 1009 | iwpriv $iface forceprism 1 1010 | fi 1011 | fi 1012 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1013 | then 1014 | stopStdIface $iface 1015 | fi 1016 | echo 1017 | continue 1018 | 1019 | fi 1020 | 1021 | 1022 | if [ x$DRIVER = "xrt61" ] 1023 | then 1024 | printf "$iface\t\tRalink 2561 PCI\trt61" 1025 | 1026 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1027 | then 1028 | startStdIface $iface $CH 1029 | iwpriv $iface rfmontx 1 1030 | if [ x"`iwpriv $iface 2>/dev/null | grep forceprismheader`" != "x" ] 1031 | then 1032 | iwpriv $iface forceprismheader 1 1033 | fi 1034 | if [ x"`iwpriv $iface 2>/dev/null | grep forceprism`" != "x" ] 1035 | then 1036 | iwpriv $iface forceprism 1 1037 | fi 1038 | fi 1039 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1040 | then 1041 | stopStdIface $iface 1042 | fi 1043 | echo 1044 | continue 1045 | 1046 | fi 1047 | 1048 | 1049 | if [ x$DRIVER = "xrt73" ] 1050 | then 1051 | printf "$iface\t\tRalink 2573 USB\trt73" 1052 | 1053 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1054 | then 1055 | startStdIface $iface $CH 1056 | iwpriv $iface rfmontx 1 1057 | if [ x"`iwpriv $iface 2>/dev/null | grep forceprismheader`" != "x" ] 1058 | then 1059 | iwpriv $iface forceprismheader 1 1060 | fi 1061 | if [ x"`iwpriv $iface 2>/dev/null | grep forceprism`" != "x" ] 1062 | then 1063 | iwpriv $iface forceprism 1 1064 | fi 1065 | fi 1066 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1067 | then 1068 | stopStdIface $iface 1069 | fi 1070 | echo 1071 | continue 1072 | 1073 | fi 1074 | 1075 | 1076 | if [ x$DRIVER = "xrt2500" ] || [ x"`iwpriv $iface 2>/dev/null | grep bbp`" != "x" ] 1077 | then 1078 | printf "$iface\t\tRalink 2560 PCI\trt2500" 1079 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1080 | then 1081 | cp $KISMET~ $KISMET 2>/dev/null && 1082 | echo "source=rt2500,$iface,Ralink_g" >>$KISMET 1083 | iwconfig $iface mode ad-hoc 2> /dev/null >/dev/null 1084 | startStdIface $iface $CH 1085 | fi 1086 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1087 | then 1088 | stopStdIface $iface 1089 | fi 1090 | echo 1091 | continue 1092 | fi 1093 | 1094 | 1095 | if [ x$DRIVER = "xrt2570" ] || [ x"`iwpriv $iface 2>/dev/null | grep wpapsk`" != "x" ] && [ x"`iwpriv $iface 2>/dev/null | grep get_RaAP_Cfg`" = "x" ] 1096 | then 1097 | printf "$iface\t\tRalink 2570 USB\trt2570" 1098 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1099 | then 1100 | cp $KISMET~ $KISMET 2>/dev/null && 1101 | echo "source=rt2500,$iface,Ralink_g" >>$KISMET 1102 | iwconfig $iface mode ad-hoc 2> /dev/null >/dev/null 1103 | startStdIface $iface $CH 1104 | if [ x"`iwpriv $iface 2>/dev/null | grep forceprismheader`" != "x" ] 1105 | then 1106 | iwpriv $iface forceprismheader 1 1107 | fi 1108 | if [ x"`iwpriv $iface 2>/dev/null | grep forceprism`" != "x" ] 1109 | then 1110 | iwpriv $iface forceprism 1 1111 | fi 1112 | fi 1113 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1114 | then 1115 | stopStdIface $iface 1116 | fi 1117 | echo 1118 | continue 1119 | fi 1120 | 1121 | 1122 | if [ x$DRIVER = "xr8180" ] || [ x"`iwpriv $iface 2>/dev/null | grep debugtx`" != "x" ] 1123 | then 1124 | printf "$iface\t\tRTL8180/RTL8185\tr8180" 1125 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1126 | then 1127 | cp $KISMET~ $KISMET 2>/dev/null && 1128 | echo "source=rt8180,$iface,Realtek" >>$KISMET 1129 | if [ $CH -lt 1000 ] 1130 | then 1131 | iwconfig $iface mode Monitor channel $CH 1132 | else 1133 | iwconfig $iface mode Monitor freq "$CH"000000 1134 | fi 1135 | if [ x"`iwpriv $iface 2>/dev/null | grep prismhdr`" != "x" ] 1136 | then 1137 | iwpriv $iface prismhdr 1 >/dev/null 2>&1 1138 | fi 1139 | ifconfig $iface up 1140 | printf " (monitor mode enabled)" 1141 | fi 1142 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1143 | then 1144 | stopStdIface $iface 1145 | fi 1146 | echo 1147 | continue 1148 | fi 1149 | 1150 | 1151 | if [ x$DRIVER = "xr8187" ] || [ x"`iwpriv $iface 2>/dev/null | grep badcrc`" != "x" ] 1152 | then 1153 | printf "$iface\t\tRTL8187\t\tr8187" 1154 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1155 | then 1156 | cp $KISMET~ $KISMET 2>/dev/null && 1157 | echo "source=rt8180,$iface,Realtek" >>$KISMET 1158 | if [ $CH -lt 1000 ] 1159 | then 1160 | iwconfig $iface mode Monitor channel $CH 1161 | else 1162 | iwconfig $iface mode Monitor freq "$CH"000000 1163 | fi 1164 | if [ x"`iwpriv $iface 2>/dev/null | grep rawtx`" != "x" ] 1165 | then 1166 | iwpriv $iface rawtx 1 >/dev/null 2>&1 1167 | fi 1168 | ifconfig $iface up 1169 | printf " (monitor mode enabled)" 1170 | fi 1171 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1172 | then 1173 | stopStdIface $iface 1174 | fi 1175 | echo 1176 | continue 1177 | fi 1178 | 1179 | 1180 | if [ x$DRIVER = "xzd1211rw" ] || [ x"`iwpriv $iface 2>/dev/null | grep get_regdomain`" != "x" ] 1181 | then 1182 | printf "$iface\t\tZyDAS 1211\tzd1211rw" 1183 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1184 | then 1185 | cp $KISMET~ $KISMET 2>/dev/null && 1186 | echo "source=zd1211,$iface,ZyDAS" >>$KISMET 1187 | startStdIface $iface $CH 1188 | fi 1189 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1190 | then 1191 | stopStdIface $iface 1192 | fi 1193 | echo 1194 | continue 1195 | fi 1196 | 1197 | 1198 | if [ x$DRIVER = "xzd1211" ] || [ x"`iwpriv $iface 2>/dev/null | grep dbg_flag`" != "x" ] 1199 | then 1200 | printf "$iface\t\tZyDAS 1211\tzd1211" 1201 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1202 | then 1203 | cp $KISMET~ $KISMET 2>/dev/null && 1204 | echo "source=zd1211,$iface,ZyDAS" >>$KISMET 1205 | startStdIface $iface $CH 1206 | fi 1207 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1208 | then 1209 | stopStdIface $iface 1210 | fi 1211 | echo 1212 | continue 1213 | fi 1214 | 1215 | 1216 | if [ x$DRIVER = "xacx" ] || [ x"`iwpriv $iface 2>/dev/null | grep GetAcx1`" != "x" ] 1217 | then 1218 | printf "$iface\t\tTI ACX1xx\tacx" 1219 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1220 | then 1221 | cp $KISMET~ $KISMET 2>/dev/null && 1222 | echo "source=acx100,$iface,TI" >>$KISMET 1223 | iwpriv $iface monitor 2 $CH 2> /dev/null >/dev/null 1224 | startStdIface $iface $CH 1225 | fi 1226 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1227 | then 1228 | stopStdIface $iface 1229 | fi 1230 | echo 1231 | continue 1232 | fi 1233 | 1234 | 1235 | if [ x$DRIVER = "xbcm43xx" ] || [ x"`iwpriv $iface 2>/dev/null | grep write_sprom`" != "x" ] 1236 | then 1237 | printf "$iface\t\tBroadcom\tbcm43xx" 1238 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1239 | then 1240 | cp $KISMET~ $KISMET 2>/dev/null && 1241 | echo "source=bcm43xx,$iface,broadcom" >>$KISMET 1242 | startStdIface $iface $CH 1243 | fi 1244 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1245 | then 1246 | stopStdIface $iface 1247 | ifconfig $iface up 1248 | fi 1249 | echo 1250 | continue 1251 | fi 1252 | 1253 | 1254 | if [ x$DRIVER = "xislsm" ] || [ x"`iwpriv $iface 2>/dev/null | grep set_announcedpkt`" != "x" ] 1255 | then 1256 | printf "$iface\t\tPrismGT\t\tislsm" 1257 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1258 | then 1259 | startStdIface $iface $CH 1260 | fi 1261 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1262 | then 1263 | stopStdIface $iface 1264 | fi 1265 | echo 1266 | continue 1267 | 1268 | fi 1269 | 1270 | 1271 | if [ x$DRIVER = "xat76c503a" ] || [ x"`iwpriv $iface 2>/dev/null | grep set_announcedpkt`" != "x" ] 1272 | then 1273 | printf "$iface\t\tAtmel\t\tat76c503a" 1274 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1275 | then 1276 | startStdIface $iface $CH 1277 | fi 1278 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1279 | then 1280 | stopStdIface $iface 1281 | fi 1282 | echo 1283 | continue 1284 | 1285 | fi 1286 | 1287 | 1288 | if [ x$DRIVER = "xndiswrapper" ] || [ x"`iwpriv $iface 2>/dev/null | grep ndis_reset`" != "x" ] 1289 | then 1290 | printf "$iface\t\tUnknown\t\tndiswrapper" 1291 | if [ x$2 = x$iface ] 1292 | then 1293 | echo " (MONITOR MODE NOT SUPPORTED)" 1294 | fi 1295 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1296 | then 1297 | stopStdIface $iface 1298 | fi 1299 | echo 1300 | continue 1301 | fi 1302 | 1303 | 1304 | if [ x$DRIVER != "x" ] 1305 | then 1306 | if [ x$CHIPSET = "x" ] 1307 | then 1308 | printf "$iface\t\tUNKNOWN\t\t$DRIVER" 1309 | else 1310 | printf "$iface\t\t$CHIPSET\t\t$DRIVER" 1311 | fi 1312 | 1313 | if [ x$1 = "xstart" ] && [ x$2 = x$iface ] 1314 | then 1315 | startStdIface $iface $CH 1316 | fi 1317 | if [ x$1 = "xstop" ] && [ x$2 = x$iface ] 1318 | then 1319 | stopStdIface $iface 1320 | fi 1321 | echo 1322 | continue 1323 | fi 1324 | 1325 | printf "$iface\t\tUnknown\t\tUnknown (MONITOR MODE NOT SUPPORTED)\n" 1326 | 1327 | done 1328 | 1329 | ################################ < STOP > ######################### 1330 | --------------------------------------------------------------------------------