Cách tôi sử dụng AirDrop thay vì Tinder

Cách tôi sử dụng AirDrop thay vì Tinder

Các thiết bị của Apple có tính năng Airdrop tuyệt vời - nó được tạo ra để gửi dữ liệu giữa các thiết bị. Trong trường hợp này, không cần thiết lập hoặc ghép nối sơ bộ các thiết bị; mọi thứ sẽ hoạt động ngay lập tức chỉ sau hai cú nhấp chuột. Một tiện ích bổ sung qua Wi-Fi được sử dụng để truyền dữ liệu và do đó dữ liệu được truyền với tốc độ rất lớn. Đồng thời, sử dụng một số thủ thuật, bạn không chỉ có thể gửi tập tin mà còn có thể tìm ra số điện thoại của người đi cùng toa tàu điện ngầm với bạn.

Trong năm qua, tôi đã sử dụng chức năng này để làm quen với những người bạn thú vị trên đường đi làm, trên phương tiện giao thông công cộng và tại các cơ sở cung cấp dịch vụ ăn uống công cộng. Trung bình, tôi cố gắng làm quen với vài người mới mỗi ngày và đôi khi tôi rời tàu điện ngầm cùng với một người mới.

Dưới vết cắt tôi sẽ kể cho bạn nghe về tất cả những quả hồng.

AirDrop hoạt động như thế nào?

Cách tôi sử dụng AirDrop thay vì Tinder

AirDrop là một giao thức để truyền tệp trong mạng ngang hàng. Nó có thể hoạt động cả trên mạng cục bộ thông thường và qua mạng giữa mọi thiết bị Apple. Chúng tôi sẽ phân tích trường hợp cuối cùng, khi hai thiết bị không được kết nối với một mạng chung mà chỉ ở gần nhau, chẳng hạn như hai người có điện thoại đang di chuyển trên một toa tàu điện ngầm và không được kết nối với Wi-Fi chung.

Cách tôi sử dụng AirDrop thay vì Tinder
Giai đoạn truyền đầu tiên qua AirDrop là gửi gói BLE

Để bắt đầu truyền dữ liệu qua AirDrop, điện thoại của người khởi tạo sẽ gửi gói phát sóng BLE, chứa thông tin đã băm về tài khoản iCloud và số điện thoại của chủ sở hữu thiết bị của người khởi tạo, kèm theo đề xuất thiết lập kết nối qua AWDL (Liên kết trực tiếp không dây của Apple). ), giống như giao thức Wi-Fi. Fi Direct từ thế giới Android. Cấu trúc của gói BLE này rất thú vị, chúng tôi sẽ phân tích sâu hơn.

Về phía người nhận, AirDrop có thể ở ba trạng thái:

  • Đã tắt - sẽ không bị phát hiện chút nào
  • Chỉ dành cho người liên hệ — chỉ chấp nhận các tập tin từ danh bạ trong sổ địa chỉ của bạn. Trong trường hợp này, liên hệ được coi là số điện thoại hoặc email mà tài khoản icloud được liên kết. Logic tương tự để liên kết các tài khoản hoạt động ở đây giống như với trình nhắn tin iMessages.
  • Cho tất cả - điện thoại sẽ hiển thị với mọi người

Cách tôi sử dụng AirDrop thay vì Tinder
Cài đặt quyền riêng tư của AirDrop. Trạng thái mặc định được đặt thành “Dành cho danh bạ”.

Tùy thuộc vào cài đặt quyền riêng tư của bạn, điện thoại sẽ tiếp tục thiết lập kết nối qua AWDL hoặc đơn giản là bỏ qua gói BLE. Nếu AirDrop được đặt thành “dành cho mọi người”, thì trong bước tiếp theo, các thiết bị sẽ kết nối với nhau thông qua AWDL, tạo mạng IPv6 giữa chúng, trong đó AirDrop sẽ hoạt động như một giao thức ứng dụng thông thường sử dụng mDNS qua giao thức IP tiêu chuẩn.

Cách tôi sử dụng AirDrop thay vì Tinder

Để thử nghiệm, bạn có thể xem cách AWDL hoạt động trên MacBook. Tất cả trao đổi theo giao thức này xảy ra thông qua giao diện awdl0, có thể dễ dàng bị bắt bằng Wireshark hoặc tcpdump.

Ở giai đoạn này chúng ta biết ba thực thể:

Gói Bluetooth LowEnergy (BLE) - gói này chứa dữ liệu dựa vào đó điện thoại sẽ quyết định xem người khởi tạo có trong danh sách liên lạc của nó hay không.
Liên kết trực tiếp không dây của Apple (AWDL) — một giải pháp thay thế độc quyền cho Wi-Fi Direct của Apple, được kích hoạt nếu giao tiếp qua BLE thành công.
thả dù - một giao thức ứng dụng hoạt động trong mạng IP thông thường sử dụng mDNS, HTTP, v.v. Có thể hoạt động trong bất kỳ mạng Ethernet nào.

Cấu trúc gói BLE

Có vẻ như gói BLE này chỉ bay một lần từ người khởi tạo đến người nhận và sau đó việc trao đổi chỉ diễn ra thông qua AWDL. Trên thực tế, kết nối AWDL có tuổi thọ rất ngắn, chỉ vài phút hoặc ít hơn. Vì vậy, nếu người nhận tệp muốn phản hồi bạn, anh ta cũng sẽ đóng vai trò là người khởi tạo và gửi gói BLE.

Làm sao điện thoại bên nhận biết được số/email của người khởi tạo có trong danh bạ của mình hay không? Tôi rất ngạc nhiên khi biết được câu trả lời: người khởi xướng gửi số và email của anh ấy dưới dạng hàm băm sha256, nhưng không hoàn toàn mà chỉ có 3 byte đầu tiên.

Cách tôi sử dụng AirDrop thay vì Tinder
Cấu trúc của gói BLE từ trình khởi tạo AirDrop. Bằng cách sử dụng giá trị băm từ số điện thoại và email, người phản hồi sẽ hiểu được liệu người khởi xướng có nằm trong danh sách liên hệ của mình hay không.

Ví dụ: nếu tài khoản Apple của bạn (còn gọi là iCloud, hay còn gọi là iMessages) được liên kết với số +79251234567, hàm băm từ số đó sẽ được tính như sau:

echo -n "+79251234567" | shasum -a 256
07de58621e5d274f5844b6663a918a94cfd0502222ec2adee0ae1aed148def36

Và kết quả là giá trị trong gói BLE sẽ bay đi 07de58 cho một số điện thoại. Điều này có vẻ chưa đủ, nhưng thường thì ba byte này cũng đủ để tìm ra số điện thoại thực.

Điều quan trọng cần nhớ là cài đặt quyền riêng tư của AirDrop không ảnh hưởng đến dữ liệu trong gói BLE. Hàm băm của số điện thoại sẽ được chứa trong đó, ngay cả khi cài đặt “Dành cho mọi người” được đặt. Ngoài ra, gói BLE có hàm băm của số điện thoại sẽ được gửi khi cửa sổ Chia sẻ được mở và khi nhập mật khẩu của mạng Wi-Fi.

Để biết phân tích chi tiết về cấu trúc của gói BLE và các cuộc tấn công có thể xảy ra với nó, hãy đọc nghiên cứu Táo Bleee và tiếng Nga bản dịch sang tiếng Habré.

Nghiên cứu của Apple Bleee đã xuất bản các tập lệnh python tạo sẵn để tự động hóa phân tích dữ liệu trong các gói BLE. Tôi thực sự khuyên bạn nên kiểm tra nghiên cứu và thử các chương trình, có rất nhiều điều thú vị ở đó.

AWDL (Liên kết trực tiếp không dây của Apple)

AWDL là một tiện ích bổ sung độc quyền của Apple dành cho Wi-Fi thông thường, triển khai tính năng tương tự như Wi-Fi Direct. Tôi không hoàn toàn biết nó hoạt động như thế nào, có một cách đặc biệt để thông báo và điều phối các kênh và nó chỉ hoạt động trên các trình điều khiển độc quyền của Apple. Tức là chỉ MacBook/iPhone mới có thể kết nối qua AWDL.

Những người sở hữu điện thoại Android đáng buồn vẫn chỉ mơ về chức năng Wi-Fi Direct hoạt động bình thường.

Cách tôi sử dụng AirDrop thay vì Tinder

Nhưng cách đây không lâu những người từ phòng thí nghiệm dường như đã viết một triển khai AWDL mã nguồn mở hoàn toàn và gọi nó là Mở liên kết không dây (CON CÚ). Để chạy OWL, bộ điều hợp Wi-Fi phải hỗ trợ chế độ giám sát và chèn gói, do đó nó không chạy trên mọi phần cứng. Trang web có các ví dụ về cấu hình trên Raspberry pi. Điều này hoạt động kém hơn đáng kể so với AWDL ban đầu, ví dụ: thời gian thiết lập kết nối được kéo dài thêm ~ 10 giây thay vì vài giây đối với AWDL ban đầu, nhưng nó vẫn hoạt động.

Cách tôi sử dụng AirDrop thay vì Tinder

Ngoài ra, những người này đã viết từ đầu một cách triển khai giao thức AirDrop bằng Python, được gọi là mởDrop. Nó có thể được sử dụng kết hợp với OWL để khởi chạy AirDrop trên Linux và với AWDL gốc trên macOS.

Cách cuộn lên qua AirDrop

Cách tôi sử dụng AirDrop thay vì Tinder
Tình huống điển hình khi triển khai qua AirDrop

Lý thuyết nhàm chán đủ rồi, đã đến lúc bắt đầu thực hành. Vì vậy, bạn đã được trang bị tất cả các thiết bị cần thiết và sẵn sàng tiến về phía trước và lăn bóng bằng công nghệ cao.

Đầu tiên bạn cần nhớ những điểm chính:

  • AirDrop sẽ chỉ hoạt động nếu điện thoại được mở khóa – tốt nhất là mục tiêu liên tục nhìn vào điện thoại. Thông thường điều này xảy ra ở những nơi nhàm chán, chẳng hạn như trong tàu điện ngầm.
  • Cần thời gian — thông thường, chuyển đổi tích cực xảy ra ở hình ảnh thứ 3-5 được gửi, vì vậy bạn cần ít nhất 5 phút yên tĩnh ở một nơi. Tôi coi chuyển đổi tích cực là thời điểm bạn đồng ý thông qua AirDrop để tiếp tục liên lạc trong trình nhắn tin. Điều này rất khó thực hiện ngay lập tức vì không rõ ngay lập tức ai đã chấp nhận tải trọng của bạn và rất có thể bạn sẽ khởi động trước khi có thể đồng ý về điều gì đó.
  • Quảng cáo được cá nhân hóa hoạt động tốt hơn — Tôi gọi tải trọng là nội dung đa phương tiện mà bạn gửi qua AirDrop. Chỉ một bức ảnh có meme rất có thể sẽ chẳng dẫn đến đâu; nội dung phải phù hợp với tình huống và có lời kêu gọi hành động rõ ràng.

Phương pháp cổ điển - chỉ cần một chiếc điện thoại

Thích hợp cho tất cả những người có iPhone, không yêu cầu bất kỳ kỹ năng đặc biệt nào ngoài kỹ năng xã hội. Chúng tôi chuyển AirDrop sang chế độ Mọi người và đi xuống tàu điện ngầm. Vào một ngày bình thường (trước khi tự cách ly) trên một toa tàu điện ngầm ở Moscow, tôi đã quan sát thấy một điều như thế này:

Cách tôi sử dụng AirDrop thay vì Tinder
Danh sách các mục tiêu

Như bạn có thể thấy, hầu hết tất cả các điện thoại đều phát sóng tên chủ sở hữu, nhờ đó chúng ta có thể dễ dàng xác định giới tính của người đó và chuẩn bị tải trọng phù hợp.

Khối hàng

Như tôi đã viết ở trên, tải trọng duy nhất hoạt động tốt hơn. Tốt nhất, hình ảnh nên đề cập đến chủ sở hữu bằng tên. Trước đây, tôi phải sáng tạo bằng cách sử dụng trình chỉnh sửa đồ họa trong ứng dụng ghi chú và một số loại sơ khai Photoshop trên thiết bị di động. Kết quả là đến lúc vẽ được bức tranh theo yêu cầu thì đã phải xuống xe rồi.

Bạn tôi Anya koteeq, cụ thể là theo yêu cầu của tôi, đã viết một bot Telegram để tạo ra những bức ảnh cần thiết kèm theo chú thích một cách nhanh chóng: @AirTrollBot. Tôi cảm ơn cô ấy rất nhiều vì giờ đây tôi có thể lăn bóng bằng công nghệ tốt hơn nhiều so với trước đây.

Chỉ cần gửi cho bot một dòng văn bản là đủ và nó sẽ tạo ra nó dưới dạng hình ảnh khớp chính xác với tỷ lệ khung hình cho bản xem trước trong cửa sổ AirDrop. Bạn có thể chọn một ký tự trong ảnh bằng cách nhấn các nút. Bạn cũng có thể tùy ý kích hoạt thêm thông tin đăng nhập Telegram của mình vào ảnh ở góc.

Cách tôi sử dụng AirDrop thay vì Tinder
Trình tạo trọng tải

Điều tồi tệ nhất là hình ảnh được hiển thị ngay lập tức trên màn hình của nạn nhân mà không có bất kỳ hành động nào. Bạn thậm chí không cần phải nhấp vào "chấp nhận". Bạn có thể thấy phản ứng tức thì trên khuôn mặt khi tải trọng tải. Thật không may, kể từ iOS 13, hình ảnh từ các liên hệ lạ không còn hiển thị trên màn hình nữa. Đây là những gì nó trông giống như trước đây:

Cách tôi sử dụng AirDrop thay vì Tinder
Tải trọng được phân phối trên iOS 12

Bây giờ, thay vì xem trước, chỉ có tên thiết bị của người gửi được hiển thị. Do đó, cách duy nhất để liên hệ với nạn nhân có iOS ≥13 bằng tên là đặt tên đó trong cài đặt thiết bị của bạn, chẳng hạn như gọi điện thoại “Yulia, xin chào”. Gợi ý: Bạn có thể sử dụng biểu tượng cảm xúc trong tên thiết bị. Tất nhiên, phương pháp này không sáng bằng ảnh nhưng nó làm tăng đáng kể cơ hội nhấp vào nút “chấp nhận”.

Mô tả sâu hơn về các hành động nằm ngoài phạm vi của một bài viết kỹ thuật và chỉ phụ thuộc vào trí tưởng tượng, khả năng ứng biến và sự hài hước của bạn. Tôi chỉ có thể nói rằng những người tham gia trò chơi này và bắt đầu phản hồi bạn bằng hình ảnh hoặc gửi ghi chú thường là những người rất vui vẻ, cởi mở và thú vị. Những người sau khi xem ảnh không trả lời, hoặc tệ hơn là từ chối tin nhắn, thường là những kẻ hợm hĩnh và thô lỗ nhàm chán. Yếu tố sợ hãi cũng thường đóng một vai trò nào đó: những người mong manh, rụt rè ngại tiếp xúc với một người lạ vô danh kiêu ngạo như vậy.

Máy gắp tự động

Nếu bạn quá lười tạo và gửi tải trọng theo cách thủ công và bạn muốn tự động hóa quy trình, bạn có thể tạo một máy chọn giọng nói tự động, ở chế độ nền sẽ gửi ảnh qua AirDrop cho mọi người trong phạm vi phủ sóng. Chúng tôi sẽ sử dụng Raspberry Pi Zero làm nền tảng phần cứng, nhưng bất kỳ máy tính nào chạy Linux cũng sẽ làm được, điều chính là thẻ Wi-Fi hỗ trợ chế độ giám sát và chèn gói.

Cách tôi sử dụng AirDrop thay vì Tinder
Người gửi loa qua Airdrop dựa trên Raspberry Pi Zero w + tấm chắn pin UPS Lite

Có chương trình AirDrop Flooder cho iPhone Jailbreak, hoạt động ổn định hơn phiên bản mở trên Raspberry Pi

Thiết lập OWL trên Raspberry Pi được mô tả chi tiết tại trang web dự án, nhưng tôi thích sử dụng bản dựng Kali Linux cho Raspberry Pi Zero hơn vì nó đã cài đặt sẵn các bản vá nexmon để bật chế độ giám sát Wi-Fi trên rpi0.

Điều quan trọng cần nhớ là Airdrop (hay đúng hơn là AWDL) chỉ được kích hoạt cho bệnh nhân sau khi nhận được gói BLE. Do đó, chúng tôi phải gửi nó trong khoảng thời gian vài giây. Điều này có thể được thực hiện bằng cách sử dụng tiện ích py-bluetooth-utils. Bằng cách sử dụng hàm start_le_advertising(), tôi gửi chuỗi dữ liệu từ các ví dụ về apple bleee: 000000000000000001123412341234123400.

Khi bạn có daemon OWL đang hoạt động, bạn có thể khởi chạy fork của tôi giọt mở. Có một tập lệnh trong kho flooder.py, gửi cho mọi người một bức ảnh kak_dela.jpeg.

Theo quan sát của tôi thì Raspberry pi zero w không ổn định ở chế độ màn hình. Sau khoảng 20 phút hoạt động của Flooder, hệ thống con Wi-Fi gặp sự cố. Vấn đề được tác giả mô tả pwnagotchi, và có lẽ là do quá nóng. Cần cung cấp cơ quan giám sát hoặc sử dụng phần cứng ổn định hơn

Chế độ Maniacello - Tôi biết số của bạn

Nếu bạn muốn thể hiện mình là một kẻ điên khùng và mãi mãi ngăn cản mong muốn tiếp tục liên lạc với mình, bạn có thể thử tìm ra số điện thoại của người ở gần.

Như chúng ta đã tìm hiểu trước đó, các gói BLE do người khởi tạo gửi chứa ba byte đầu tiên của số điện thoại sha256. Hàm băm này có thể bị bắt khi nạn nhân nhấp vào nút “chia sẻ” và bắt đầu quét các thiết bị airdrop hoặc nhấn vào mật khẩu Wi-Fi để tìm mạng mới trong trường đầu vào (bằng cách này, Apple sẽ tìm kiếm bạn bè trong phạm vi mà bạn có thể yêu cầu mật khẩu mạng).

Bạn sẽ cần bằng cách nào đó kích hoạt thông điệp băm từ nạn nhân và nắm bắt nó. Tôi đang sử dụng các tiện ích từ kho lưu trữ Táo Bleee. Vì địa chỉ MAC Bluetooth của các thiết bị là ngẫu nhiên và liên tục thay đổi nên bạn sẽ phải tìm cách khác để xác định thiết bị mong muốn trong danh sách này. Nhiệm vụ được đơn giản hóa bởi thực tế là iOS phát sóng trạng thái hiện tại của điện thoại như: tắt màn hình, bật màn hình, màn hình khóa, mở khóa, v.v. Do đó, chỉ cần quan sát hành động của nạn nhân, bạn có thể so sánh trạng thái hiện tại của thiết bị với thiết bị trong bảng. Cách dễ nhất là ghi lại khoảnh khắc người dùng lấy điện thoại ra khỏi túi, bật màn hình và mở khóa điện thoại bằng ngón tay hoặc khuôn mặt. Tất cả điều này sẽ được hiển thị trong sniffer.

Cách tôi sử dụng AirDrop thay vì Tinder
Biểu tượng Х có nghĩa là một gói có băm điện thoại đã bị bắt.

Trình phân tích cú pháp của họ đôi khi bị hỏng, nhưng hầu hết nó đều hoạt động. Tôi sẽ không kể lại hoàn toàn bản chất của lỗ hổng, vì nó đã được các tác giả của Apple Blee phân tích chi tiết nên tôi sẽ chỉ mô tả trải nghiệm của mình. Tôi chỉ nói rằng tôi sử dụng bộ chuyển đổi USB Bluetooth trên chip CSR 8510, vì đối với tôi nó hoạt động ổn định hơn nhiều so với bộ chuyển đổi Bluetooth được tích hợp trong MacBook và được cắm vào máy ảo.

Vì vậy, chúng tôi đã lấy được hàm băm từ điện thoại của nạn nhân và nhận được ba byte đáng mơ ước từ hàm băm của số điện thoại.

Cách tôi sử dụng AirDrop thay vì Tinder
Gói BLE bị chặn với hàm băm số điện thoại bằng tiện ích read_ble_state.py

Chúng tôi biết rằng ở Nga, tất cả các số điện thoại di động đều bắt đầu bằng mã +79 và rất có thể điện thoại của nạn nhân của chúng tôi cũng có cùng mã. Hóa ra chúng ta có một dãy số từ +79000000000 đến +79999999999, khoảng một tỷ con số.

Để thu hẹp phạm vi, chúng tôi chỉ lấy những mã thực sự được đăng ký với bất kỳ nhà cung cấp dịch vụ nào và loại bỏ phần còn lại. Kết quả là phạm vi trở nên lớn bằng một nửa, khoảng nửa tỷ con số.

Tiếp theo, chúng tôi tạo sha256 từ tất cả các số và chỉ lưu 3 byte đầu tiên từ mỗi hàm băm. Chúng ta nhập danh sách này vào cơ sở dữ liệu Sqlite và xây dựng chỉ mục để tăng tốc độ tìm kiếm.

Dữ liệu trong cơ sở dữ liệu trông như thế này:

Cách tôi sử dụng AirDrop thay vì Tinder
Tất cả số điện thoại của Nga và ba byte đầu tiên của hàm băm

Tiếp theo, có hàm băm của nạn nhân, chúng ta có thể tìm kiếm tất cả các kết quả trùng khớp trong cơ sở dữ liệu. Thông thường có 15-30 kết quả phù hợp cho mỗi lần băm.

Cách tôi sử dụng AirDrop thay vì Tinder
Tất cả các số khớp với hàm băm của nạn nhân

Rõ ràng, không phải tất cả những con số này đều thực sự được sử dụng. Chúng tôi có thể cắt bỏ những thứ không cần thiết bằng cách sử dụng yêu cầu HLR hoặc SMS vô hình. Trong số 30 số, có 5 số được tìm thấy trên mạng.

Cách tôi sử dụng AirDrop thay vì Tinder
Kết quả của yêu cầu HLR. Số mạng được đánh dấu bằng màu xanh lá cây.

Tôi có thể tiếp tục sàng lọc các con số, chẳng hạn như thêm tất cả chúng vào Telegram/Whatsapp và xem hình đại diện, kiểm tra các cơ sở dữ liệu như Getcontact, v.v. Nhưng hóa ra sẽ dễ dàng hơn nếu chỉ gọi từng số một và quan sát khi điện thoại của nạn nhân đổ chuông.

Cách tôi sử dụng AirDrop thay vì Tinder
Đã xác định được mục tiêu

tất cả

  • Flooder trên Raspberry Pi rất không ổn định, bạn cần thử các board đơn khác.
  • Một chương trình Flooder gốc dành cho iOS sẽ tốt hơn nhiều, nhưng tôi không thể tìm thấy một chương trình nào hoạt động trên iOS 12-13 ngay cả khi đã bẻ khóa.
  • Kịch bản Flooder.py rất ngu ngốc. Nó có thể tạo ra một bức ảnh được cá nhân hóa bằng cách lấy tên từ tên thiết bị của người nhận và cắt chữ iPhone.
  • Phương pháp xác định số điện thoại có thể được tối ưu hóa bằng cách chỉ kiểm tra xem số đó có được liên kết với iMessage hay không. Điều này rất có thể sẽ mang lại cho bạn tỷ lệ trúng gần 100%.

Kết luận

Đây là giải trí hoàn hảo cho tàu điện ngầm. Có một hiệu ứng wow, những người tò mò quan tâm đến điều này. Có rất nhiều tình tiết ngẫu hứng, có những tình huống rất hài hước. Hóa ra là nhiều người sẵn sàng chơi cùng và thậm chí hủy bỏ kế hoạch của họ để xuống ga tàu điện ngầm của bạn và đi uống cà phê. Trong suốt một năm, tôi đã gặp rất nhiều người và tiếp tục liên lạc với một số người trong số họ.

Thỉnh thoảng tôi tắt đăng nhập Telegram và giải trí như thế này.

Cách tôi sử dụng AirDrop thay vì Tinder

Cách tôi sử dụng AirDrop thay vì Tinder

Nguồn: www.habr.com

Thêm một lời nhận xét