Rèn WIFI BEACON KHUNG SỬ DỤNG Scapy

Trong bài viết này, chúng tôi sẽ cho bạn thấy làm thế nào để sử dụng Scapy để phát sóng khung đèn hiệu giả mạo cho một giả Wireless Access Point.
Làm thế nào để máy tính xách tay, máy trạm hoặc điện thoại thông minh của bạn biết mà mạng không dây có sẵn gần đó? Nó thực sự rất đơn giản, các điểm truy cập không dây (thường router băng thông rộng của bạn trong một môi trường SOHO) khung đèn hiệu liên tục phát sóng. khung Beacon bao gồm thông tin về các điểm truy cập, chẳng hạn như SSID, tốc độ dữ liệu được hỗ trợ và mã hoá nào đang được sử dụng. Đây là những nhận bởi giao diện mạng không dây của thiết bị và giải thích bởi hệ thống điều hành của bạn để xây dựng danh sách các mạng có sẵn.

Tôi muốn nhìn thấy nếu tôi có thể giả mạo khung đèn hiệu sử dụng Scapy để thêm một mạng không dây giả mạo vào danh sách trên hệ thống địa phương của tôi. Scapy là một thư viện thao tác gói cho phép gửi, rèn và chụp các gói tin mạng. Nó được viết bằng Python và hỗ trợ một loạt các giao thức.

Trong hướng dẫn này, chúng tôi sẽ quảng cáo cho một mạng lưới gọi là "testSSID" với bảo mật WPA2 sử dụng hoặc TKIP hoặc mã hóa AES.

TẠO SỰ PYTHON SCRIPT
Để bắt đầu, chúng ta cần phải nhập các module Scapy được sẽ được sử dụng:

từ scapy.all nhập Dot11, Dot11Beacon, Dot11Elt, radiotap, sendp, hexdump
Các biến sau đây được tạo ra và gán các giá trị sau đây để tạo thành khung đèn hiệu:

netSSID = tên #Network 'testSSID' ở đây
iface = 'wlan0mon' #Interface tên ở đây

dot11 = Dot11 (type = 0, kiểu phụ = 8, addr1 = 'ff: ff: ff: ff: ff: ff',
addr2 = '22: 22: 22: 22: 22: 22 ', addr3 = '33: 33: 33: 33: 33: 33')
đèn hiệu = Dot11Beacon (mũ = 'ESS + riêng tư')
ESSID = Dot11Elt (ID = 'SSID, info = netSSID, len = len (netSSID))
RSN = Dot11Elt (ID = 'RSNinfo', info = (
'\ X01 \ x00'
'\ X00 \ x0f \ xac \ x02'
'\ X02 \ x00'
'\ X00 \ x0f \ xac \ x04'
'\ X00 \ x0f \ xac \ x02'
'\ X01 \ x00'
'\ X00 \ x0f \ xac \ x02'
'\ X00 \ x00'))
Lưu ý, bạn sẽ phải chắc chắn rằng "iface" bằng tên của giao diện mà bạn muốn sử dụng trên thiết bị của bạn.

Đối với "dot11" biến các thông số có nghĩa như sau:

type = 0 Để chỉ ra các khung là một khung quản lý (loại 0).
subtype = 8 Để chỉ ra các khung quản lý kiểu phụ là một ngọn hải đăng (loại 8).
addr1 Điểm đến địa chỉ MAC.
địa chỉ addr2 MAC nguồn của người gửi.
địa chỉ addr3 MAC của Access Point.
Những "ngọn hải đăng" biến cho thấy khả năng của điểm truy cập của chúng tôi. Ở đây chúng ta đang nói nó là một mạng lưới ESS và "riêng tư" tham số được yêu cầu cho các mạng để xuất hiện bảo đảm khi phát hiện ra từ một thiết bị của Apple.

Để xác định các mạng như WPA2, chúng ta cần thêm một mạng an toàn mạnh mẽ (RSN) Thông tin Element (IE) vào khung quản lý của chúng tôi. Biến "RSN" chứa thông tin này và được quy định để Scapy trong hệ thập lục phân.

Bình luận về mỗi dòng chỉ ra các giá trị thập lục phân có nghĩa là:

RSN = Dot11Elt (ID = 'RSNinfo', info = (
'\ X01 \ x00' #RSN Version 1
'\ X00 \ x0f \ xac \ x02' #Group Cipher Suite: 00-0f-ac TKIP
'\ X02 \ x00' # 2 từng đôi Cipher Suites (Hai dòng tiếp theo)
'\ X00 \ x0f \ xac \ x04' #AES Cipher
'\ X00 \ x0f \ xac \ x02' #TKIP Cipher
'\ X01 \ x00' # 1 Xác thực chính Managment Suite (hàng dưới đây)
'\ X00 \ x0f \ xac \ x02' # Pre-Shared Key
'\ X00 \ x00')) Khả năng #RSN (không có khả năng thêm)
Phần còn lại của kịch bản xây dựng các khung hình và cho thấy nó trước khi để người sử dụng bắt đầu gửi các khung:

frame = radiotap () / dot11 / đèn hiệu / ESSID / RSN

frame.show ()
print ( "\ nHexDump khung:")
hexdump (khung)
raw_input ( "\ nBấm nhập để bắt đầu \ n")

sendp (khung, iface = iface, liên = 0,100, loop = 1)
Sendp được sử dụng để gửi khung phát sóng của chúng tôi. "Liên = 0,100" kết hợp với "loop = 1" sẽ gây ra một khung được gửi mỗi 100 mili giây cho đến khi chương trình là đã thoát.

Toàn bộ kịch bản nên trông giống như sau:

từ scapy.all nhập Dot11, Dot11Beacon, Dot11Elt, radiotap, sendp, hexdump

netSSID = tên #Network 'testSSID' ở đây
iface = 'wlan0mon' #Interface tên ở đây

dot11 = Dot11 (type = 0, kiểu phụ = 8, addr1 = 'ff: ff: ff: ff: ff: ff',
addr2 = '22: 22: 22: 22: 22: 22 ', addr3 = '33: 33: 33: 33: 33: 33')
đèn hiệu = Dot11Beacon (mũ = 'ESS + riêng tư')
ESSID = Dot11Elt (ID = 'SSID, info = netSSID, len = len (netSSID))
RSN = Dot11Elt (ID = 'RSNinfo', info = (
'\ X01 \ x00' #RSN Version 1
'\ X00 \ x0f \ xac \ x02' #Group Cipher Suite: 00-0f-ac TKIP
'\ X02 \ x00' # 2 từng đôi Cipher Suites (Hai dòng tiếp theo)
'\ X00 \ x0f \ xac \ x04' #AES Cipher
'\ X00 \ x0f \ xac \ x02' #TKIP Cipher
'\ X01 \ x00' # 1 Xác thực chính Managment Suite (hàng dưới đây)
'\ X00 \ x0f \ xac \ x02' # Pre-Shared Key
'\ X00 \ x00')) Khả năng #RSN (không có khả năng thêm)

frame = radiotap () / dot11 / đèn hiệu / ESSID / RSN

frame.show ()
print ( "\ nHexdump khung:")
hexdump (khung)
raw_input ( "\ nBấm nhập để bắt đầu \ n")

sendp (khung, iface = iface, liên = 0,100, loop = 1)

LẬP Một GIAO DIỆN WIRELESS GIÁM SÁT PHƯƠNG
Trước khi chúng tôi chạy kịch bản, chúng ta cần phải chắc chắn rằng chúng tôi có giao diện không dây chúng ta muốn sử dụng các thiết lập để theo dõi chế độ cung cấp truy cập để gửi và nhận các khung quản lý không dây. Kể từ khi tôi đang sử dụng Kali Linux, tôi có thể sử dụng các lệnh sau đây để tìm tên của giao diện không dây của tôi và đặt nó vào chế độ giám sát.

Liệt kê các giao diện không dây:

root @ kali: ~ # airmon-ng

Chipset Driver PHY Giao diện

phy0 wlan0 rt2800usb nghệ Ralink, Corp. RT2870 / RT3070
Kiểm tra cho các quá trình có thể can thiệp với các thiết lập giao diện để theo dõi chế độ chạy:

root @ kali: ~ # airmon-ng kiểm tra

Tìm thấy 2 quá trình đó có thể gây ra rắc rối.
Nếu airodump-ng, aireplay-ng hoặc airtun-ng ngừng hoạt động sau khi
một khoảng thời gian ngắn, bạn có thể muốn giết (một số) cho họ!

 Tên PID
 647 NetworkManager
 755 wpa_supplicant
Giết chết các quá trình có thể can thiệp:

root @ kali: ~ # airmon-ng check giết

Giết chết các quá trình này:

 Tên PID
 755 wpa_supplicant
Thiết lập giao diện để theo dõi chế độ:

root @ kali: ~ # airmon-ng wlan0 bắt đầu
Chipset Driver PHY Giao diện
phy0 wlan0 rt2800usb nghệ Ralink, Corp. RT2870 / RT3070

        (Mac80211 chế độ màn hình vif kích hoạt cho [phy0] wlan0 trên [phy0] wlan0mon)
        (Chế độ trạm mac80211 vif tàn tật cho [phy0] wlan0)
Lưu ý giao diện của chúng tôi được thành lập như wlan0mon được thiết lập trong biến iface trong kịch bản Python của chúng tôi.

RUNNING THE SCRIPT
Bây giờ chúng ta có một giao diện ở chế độ màn hình chúng tôi đã sẵn sàng để chạy các kịch bản. Khi chạy các kịch bản bạn sẽ thấy các thông tin sau:

root @ kali: ~ / Documents / Python # python newSSID.py
CẢNH BÁO: Không tìm thấy tuyến đường cho các điểm đến IPv6 :: (không có tuyến đường mặc định?)
### [Radiotap giả] ###
 version = 0
 pad = 0
 len = None
 hiện tại =
 notdecoded = ''
### [802.11] ###
 subtype = 8
 type = Quản lý
 proto = 0
 FCfield =
 ID = 0
 addr1 = ff: ff: ff: ff: ff: ff
 addr2 = 22: 22: 22: 22: 22: 22
 addr3 = 33: 33: 33: 33: 33: 33
 SC = 0
 addr4 = 00: 00: 00: 00: 00: 00
### [802.11 Beacon] ###
 timestamp = 0
 beacon_interval = 100
 nắp = ESS + riêng tư
### [802.11 Thông tin phần tử] ###
 ID = SSID
 len = 8
 info = 'testSSID'
### [802.11 Thông tin phần tử] ###
 ID = RSNinfo
 len = None
 info = '\ x01 \ x00 \ x00 \ x0f \ xac \ x02 \ x02 \ x00 \ x00 \ x0f \ xac \ x04 \ x00 \ x0f \ xac \ x02 \ x01 \ x00 \ x00 \ x0f \ xac \ x02 \ x00 \ x00 '

Hexdump của khung:
0000 00 00 08 00 00 00 00 00 80 00 00 00 FF FF FF FF ................
0010 FF FF 22 22 22 22 22 22 33 33 33 33 33 33 00 00 .. "" "" "" 333333 ..
00 00 00 0020 00 00 00 00 00 64 00 11 00 00 08 74 65 ........ d ..... te
0030 73 74 53 53 49 44 30 18 01 00 00 0F AC 02 02 00 stSSID0 .........
0040 00 0F AC 04 00 0F AC 02 01 00 00 0F AC 02 00 00 ................

Nhấn Enter để bắt đầu
Từ những điều trên, chúng ta có thể khẳng định các cấu trúc của khung đèn hiệu, thuộc tính của nó và xem một bãi chứa hex của nó.

Nhấn phím Enter sẽ bắt đầu phát sóng vào khung đèn hiệu:

Tại thời điểm này, các thiết bị với giao diện mạng không dây sẽ có thể nhìn thấy mạng:

root @ kali: ~ # iwlist wlan0 quét
Di động 14 - Địa chỉ: 33: 33: 33: 33: 33: 33
           Channel: 4
           Tần số: 2,427 GHz (Channel 4)
           Chất lượng = 70/70 độ tín hiệu = -31 dBm
           Khoá mật mã: trên
           ESSID: "testSSID"
           Chế độ: Thạc sỹ
           Extra: TSF = 0000000000000000
           Extra: ngọn hải đăng cuối: 2428ms trước
           IE: Unknown: 00087465737453534944
           IE: IEEE 802.11i / WPA2 Version 1
               Nhóm Cipher: TKIP
               Mật mã cặp (2): CCMP TKIP
               Xác thực Suites (1): PSK
Để thoát khỏi kịch bản, nhấn "Ctrl + C".

Kể từ khi chúng tôi chỉ tạo ra các cảnh báo không dây, cố gắng kết nối sẽ thất bại vì không có điểm truy cập thực.

TÓM LƯỢC
Đây là một cuộc biểu tình đơn giản về cách dễ dàng những khung hình có thể được sản xuất, các cuộc tấn công không dây phức tạp hơn nhiều tồn tại và các công cụ mã nguồn mở để thực hiện chúng có sẵn nhưng nó phục vụ để nhấn mạnh rằng kết nối với bất kỳ mạng không dây nên được thực hiện một cách thận trọng như danh tính của mạng có thể không nhất thiết phải được tin cậy.

https://www.4armed.com/blog/forging-wifi-beacon-frames-using-scapy/

Comments

Popular posts from this blog

Npcap

Monitor mode

Thiết lập card không dây trên Kali Linux