Monitor Modu Açma ve Kapama (Airmon-ng Kullanımı)

İçerik:

  1. Monitor Modu Nedir?
  2. Wireless Kartının Arayüz Adını Öğrenme (iw dev)
  3. Wireless Arayüzünün Monitor Modu Özelliği Olup Olmadığını Kontrol Etmek (iw list)
  4. Monitor Modunun Çalışmasını Engelleyen Servisleri Sonlandırmak (airmon-ng check kill)
  5. Monitor Modunu Açmak (airmon-ng start <interface>)
  6. Monitor Modunu Kapatmak (airmon-ng stop <interface>)
  7. Monitor Modunu Engelleyen Servisleri Yeniden Başlatmak (networking, network-manager)
  8. Monitor Modu Aç/Kapa(toggle) Bash Script

Monitor Mode Nedir?

Monitor modu bilgisayarımızın hiç bir sinyal göndermediği sadece çevresindeki sinyalleri dinlendiği moddur.

NOT: Anlatım Debian tabanlı sistemler içindir. Diğer sistemlerde farklı komutlar gerekebilir.

Wireless Kartının Arayüz Adını Öğrenme (iw, iwconfig)

Monitor modunu açmadan önce wi-fi arayüzümüzün(interface) adını öğrenmemiz lazım. Arayüz adını öğrenmek için iw veya iwconfig komutu kullanılabilir.


$ iw dev | grep Interface
	Interface wlp2s0

Wireless interface adının wlp2s0 olduğunu öğrendik. Bu arayüz adı her bilgisayarda farklı olabilir.

Wireless Arayüzünün Monitor Modu Özelliği Olup Olmadığını Kontrol Etmek

Wireless arayüzünüzde eğer monitor modu desteği yok ise monitor moduna geçiş yapamazsınız. Arayüzünüzün monitor modu desteği olup olmadığını kontrol etmek için iw list komutu kullanılabilir.


$ iw list
...
Supported interface modes:
	 * IBSS
	 * managed
	 * AP
	 * AP/VLAN
	 * monitor
	 * P2P-client
	 * P2P-GO
	 * P2P-device
...

iw list komutunu verdikten sonra gelen çıktıda Supported interface modes: alanında monitor adında bir ifade varsa wireless arayüzünüz monitor modunu destekliyordur.

Monitor Modunun Çalışmasını Engelleyen Servisleri Sonlandırmak (airmon-ng check kill)

Monitor modunun çalışmasını engelleyen bazı servisler bulunmaktadır. Bu servisleri airmon-ng check kill komutu ile sonlandırabiliriz.


Öncelikle monitor moduna geçtiğimizde bize sorun çıkarabilecek işlemlere bakalım. airmon-ng check komutunu vererek bilgisayarımızın monitor modundayken çalışmasını engelleyecek processleri listeleyebiliriz.


# airmon-ng check

Found 5 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to run 'airmon-ng check kill'

PID Name
772 NetworkManager
776 avahi-daemon
830 avahi-daemon
1087 wpa_supplicant
1219 dhclient


Şimdi monitor modunu açmamızı engelleyen işlemleri sonlandırmak için airmon-ng check kill komutu kullanıyoruz.


# airmon-ng check kill

Killing these processes:

  PID Name
 1087 wpa_supplicant
30717 avahi-daemon
30718 avahi-daemon


NOT: Bu sayfadaki tüm komutlar root kullanıcısı yetkisiyle çalıştırılmıştır. Eğer root kullanıcısı değilseniz komutların başına sudo eklemelisiniz.

Monitor Modunu Açmak (airmon-ng start <interface>)

Bilgisayarımızı monitor moduna geçirmek için aircrack-ng araçları içerisinde gelen airmon-ng aracını kullanılabiliriz.


NOT: iwconfig ve iw programları kullanılarak da monitor modu açılıp kapatılabilir.


Airmon-ng programına bu wireless arayüzüz adımızı airmon-ng start wlp2s0 şeklinde vererek monitor modunu başlatabiliriz.


# airmon-ng start wlp2s0

PHY	Interface	Driver		Chipset

phy0	wlp2s0		iwlwifi		Intel Corporation Wireless 3160 (rev 93)

		(mac80211 monitor mode vif enabled for [phy0]wlp2s0 on [phy0]wlp2s0mon)
		(mac80211 station mode vif disabled for [phy0]wlp2s0)


Monitor modumuzun başarılı bir şekilde wlp2s0mon arayüzünde başlatıldığını görüyoruz. Kontrol etmek için iw dev komutunu verelim.


# iw dev
phy#0
	Interface wlp2s0mon
		ifindex 6
		wdev 0x3
		addr de:de:de:ba:ba:ba
		type monitor
		channel 10 (2457 MHz), width: 20 MHz (no HT), center1: 2457 MHz
		txpower 0.00 dBm

iw dev komutu ile wireless arayüzümüze baktığımızda type kısmının Monitor olarak değiştiğini görüyoruz. Artık monitor modunda işlemleri yapmak için wlp2s0mon arayüzünü kullanacağız.

Monitor Modunu Kapamak (airmon-ng stop <interface>)

Monitor modunu kapatmak, açmak gibidir sadece start ifadesi yerine stop ifadesini yazmamız yeterlidir. Ancak bu sefer kullanacağımız arayüz monitor modunu temsil eden arayüzümüz yani wlp2s0mon arayüzü.


# airmon-ng stop wlp2s0mon

PHY	Interface	Driver		Chipset

phy0	wlp2s0mon	iwlwifi		Intel Corporation Wireless 3160 (rev 93)

		(mac80211 station mode vif enabled on [phy0]wlp2s0)

		(mac80211 monitor mode vif disabled for [phy0]wlp2s0mon)


Kontrol etmek için iw dev komutunu tekrar verelim.

# iw dev
phy#0
	Interface wlp2s0
		ifindex 9
		wdev 0x7
		addr de:de:de:ba:ba:ba
		type managed
		txpower 0.00 dBm

Çıktıdan anlaşıldığı üzere tekrar managed moduna geri döndük ve monitor modunu kapatmış olduk.

Monitor Modunu Engelleyen Servisleri Yeniden Başlatmak

# service network-manager start
# service networking start

Yukarıdaki komutları verdikten sonra wireless arayüzünüzün düzgün bir şekilde çalışması için gerekli servisler tekrar başlatılacaktır.

Monitor Modu Aç/Kapa(toggle) Bash Script

Monitor modunu açıp kapayan basit bir bash script yazarak tüm bu işlemleri otomatik hale getirebiliriz.


#!/bin/bash
#Monitor Mode Aç/Kapa(toggle) Script v1.0
#Date: 18.11.2018
#Author: Ömür Furkan Ulu
#Requirements: aircrack-ng and a *nix system

# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
   echo "Bu script root yetkisiyle çalıştırılmalı (sudo $0)" 1>&2
   exit 1
fi

interface=`iw dev | grep Interface | awk '{print $2}'`
moninterface=`iw dev | grep Interface | grep mon | awk '{print $2}'`

#echo "Monitor mode interface: $moninterface"

#if monitor mode is open, then close the monitor mode
#if monitor mode is close, then open the monitor mode
if [ -z "$moninterface" ]
then
 #monitor modu kapalı ise aç
 airmon-ng check kill >/dev/null
 airmon-ng start $interface >/dev/null
 iw dev | grep Interface | grep mon | awk '{print $2}'
else
 #monitor modu açık ise kapat
 airmon-ng stop $moninterface >/dev/null
 service networking start >/dev/null
 service network-manager start >/dev/null
 iw dev | grep Interface | awk '{print $2}'
fi

sleep 2

Kurulum için yukarıdaki komutları kopyalayıp bir dosyaya kaydedin örnek olarak adı monmodtoggle.sh olsun. Dosyanın izinlerine çalıştırma iznini ekleyin. Daha sonra dosyayı PATH değişkenizdeki bir dizine kopyalayın. Son olarak bu yola bir sembolik link ekleyerek programa bir kısayol ekleyin.

$ sudo su
# chmod +x monmodtoggle.sh
# cp monmodetoggle.sh /usr/local/sbin/
# ln -s /usr/local/sbin/monmodetoggle.sh /usr/local/sbin/monitormod

Scripti kullanmak için

$ monitormod
Bu script root yetkisiyle çalıştırılmalı (sudo /usr/local/sbin/monitormod)
$ sudo monitormod
wlp2s0mon
$ sudo monitormod
wlp2s0

NOT: Bu scriptte tek bir wireless arayüzünün olduğu kabul edilmiştir. Birden fazla wireless arayüzünüz var ise düzgün çalışmayabilir.