2005年2月1日

[PDA] Zaurus C760 新手筆記 (24) - kismet

底下是 Zaurus Software Index 對 kismet 的簡介:
Kismet is a 802.11b wireless network sniffer.
簡單說就是偷聽無線網路或掃描 AP 的軟體。我用的是 Asus WL-110 無線網卡,幾乎無須任何設定就可正常使用。

文字界面的 kismet:


GUI 界面的 kismet-qt:


不過這軟體在啟動的順序上有點討厭,所以寫了個 script 來簡化流程。

底下 script 的流程主要是依 PIL 上 Dabinn 的發言內容 而來:
  • 先安裝 kismet。也可選擇性地安裝 kismet-qt

  • 把下面這段 script 轉成 UTF-8/UNIX 格式的文字檔 (假設檔名為 kismet.sh),放到 Zaurus 上,並且給與執行的權限。
    #!/bin/bash

    # 指定 kismet 所監聽的 interface,正常來說應該都是 eth0。
    IFACE="eth0"

    # 指定啟動無線網卡的設定,可以查閱 /etc/pcmcia/network.opts,
    # 比對該檔的 INFO 及其前一行,可以找到相對應的 scheme name。
    # 系統預設的 "指定なし" 連線服務設定為 qpewlan0。
    WLAN="qpewlan0"

    # 在沒有可連接的 AP 時,timeout 的時間。單位;秒。
    DELAY=5

    function start_iface {

      # 先確定有無預先已啟動的 $IFACE。若有,則直接使用。
      IFACE_LINE="`ifconfig | grep -e "$IFACE"`"
      
      if [ "$IFACE_LINE!" == "!" ]; then
      
        # 若沒有預先啟動的 $IFACE,則啟動之。
        cardctl scheme CardResume
        cardctl scheme "$WLAN" &
        WLANPID=$!
        
        # 啟動 $IFACE 後,等待 $DELAY 秒。
        sleep $DELAY
        
        # 若能正確連上 AP,則後續無須再強制啟動 $IFACE。
        ps -p $WLANPID > /dev/null
        if [ $? -eq 0 ]; then
        
          # 無法連上 AP,清除等待中的程序。(光殺掉 cardctl 沒用)
          # 下面這一行有點暴力。
          killall cardctl wlan-ng network dhcpcd
          
          # 強制啟動 $IFACE。
          /etc/pcmcia/wlan-ng start "$IFACE"
        fi    
      fi
    }

    function end_iface {

      IFACE_LINE="`ifconfig | grep -e "$IFACE"`"
      
      if [ "$IFACE_LINE!" != "!" ]; then
        # 如果 $IFACE 還活著,砍掉它。
        cardctl scheme default
      fi  
    }

    # 啟動 $IFACE。
    start_iface

    # 如果使用文字界面的 kismet,保留下面三行。
    kismet_monitor
    kismet
    kismet_unmonitor

    # 如果使用 GUI 界面的 kismet,保留下面一行。
    #kismet_qt

    # 關閉 $IFACE。
    end_iface
  • 執行 kismet:
    sudo kismet.sh
    原則上如果無線網卡符合 kismet 預設的 source 設定值,那這樣就可以開始監測了。

  • 如果不行,就要回頭改 kismet 的設定。設定主要是在 /usr/etc/kismet.conf 檔。找到 source=prism2_legacy,eth0,kismet 這一行,把 prism2_legacy 改成其它的試試看 (可以看 kismet.conf 檔,裏面有說明)。

  • 另外,因 kismet 的 log 檔又多又大,所以可以把 log 檔改移到記憶卡上。一樣是在 kismet.conf 檔上,把 logtemplate=%n-%d-%i.%l,改成 logtemplate=/mnt/card/or/anywhere/%n-%d-%i.%l。


1 則留言:

故障妹:) 提到...

我看得霧煞煞.....不懂=(
能麻煩你為我講解嗎0.0?