아래는 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의 채널로 변경한 후에 차단 패킷을 보내도록 하는 순으로 자동화 시키면 될 것 같다.
'라즈베리파이 > WIFI 무선랜 해킹' 카테고리의 다른 글
파이썬 + Flask 로 WIPS 관리 화면 만들기 (0) | 2020.09.10 |
---|---|
RealTek 88x2au USB무선랜의 5Ghz 인식 및 설정 (0) | 2020.08.28 |
(4-1) wifi 무선랜 패킷 캡쳐 (pcap 라이브러리로 캡쳐한 structure설명) (0) | 2020.08.02 |
(4) wifi 무선랜 패킷 캡쳐 ( pcaplib을 이용한 SSID 추출 ) (0) | 2020.08.02 |
(3) wifi 무선랜 패킷 수집 ( pcap라이브러리로 ssid 추출 ) (0) | 2020.08.02 |