ขั้นตอนแรกของการส่งข้อมูลผ่าน AirDrop คือการส่งแพ็กเก็ต BLE
ในการเริ่มต้นการถ่ายโอนข้อมูลผ่าน AirDrop โทรศัพท์ของผู้ริเริ่มจะส่งแพ็กเก็ตการออกอากาศ BLE ซึ่งมีข้อมูลที่แฮชเกี่ยวกับบัญชี iCloud และหมายเลขโทรศัพท์ของเจ้าของอุปกรณ์ของผู้ริเริ่ม พร้อมด้วยข้อเสนอเพื่อสร้างการเชื่อมต่อผ่าน AWDL (Apple Wireless Direct Link ) โปรโตคอลบางอย่าง เช่น Wi-Fi Fi ส่งตรงจากโลกของ Android โครงสร้างของแพ็กเก็ต BLE นี้น่าสนใจมาก เราจะวิเคราะห์เพิ่มเติม
แพ็คเกจ Bluetooth LowEnergy (BLE) - แพ็กเก็ตนี้มีข้อมูลที่โทรศัพท์ตัดสินใจว่าผู้ริเริ่มอยู่ในรายชื่อผู้ติดต่อหรือไม่ ลิงค์ไร้สายโดยตรงของ Apple (AWDL) — การทดแทนที่เป็นกรรมสิทธิ์สำหรับ Wi-Fi Direct จาก Apple ซึ่งเปิดใช้งานหากการสื่อสารผ่าน BLE สำเร็จ AirDrop - โปรโตคอลแอปพลิเคชันที่ทำงานภายในเครือข่าย IP ปกติโดยใช้ mDNS, HTTP ฯลฯ สามารถทำงานได้ภายในเครือข่าย Ethernet ใด ๆ
โครงสร้างแพ็กเก็ต BLE
อาจดูเหมือนว่าแพ็กเก็ต BLE นี้จะบินเพียงครั้งเดียวจากตัวเริ่มต้นไปยังผู้รับ จากนั้นการแลกเปลี่ยนจะเกิดขึ้นผ่าน AWDL เท่านั้น ในความเป็นจริง การเชื่อมต่อ AWDL มีอายุการใช้งานสั้นมาก เพียงไม่กี่นาทีหรือน้อยกว่านั้น ดังนั้นหากผู้รับไฟล์ต้องการตอบกลับคุณ เขาจะทำหน้าที่เป็นผู้ริเริ่มและส่งแพ็กเก็ต BLE ด้วย
echo -n "+79251234567" | shasum -a 256
07de58621e5d274f5844b6663a918a94cfd0502222ec2adee0ae1aed148def36
และผลก็คือค่าในแพ็กเก็ต BLE จะหายไป 07de58 สำหรับหมายเลขโทรศัพท์ ดูเหมือนจะไม่เพียงพอ แต่บ่อยครั้งที่ไบต์ทั้งสามนี้เพียงพอที่จะค้นหาหมายเลขโทรศัพท์จริง
สิ่งสำคัญคือต้องจำไว้ว่าการตั้งค่าความเป็นส่วนตัวของ AirDrop จะไม่ส่งผลต่อข้อมูลในแพ็กเก็ต BLE แฮชของหมายเลขโทรศัพท์จะอยู่ในนั้น แม้ว่าจะตั้งค่าการตั้งค่า "สำหรับทุกคน" ไว้ก็ตาม นอกจากนี้ แพ็คเก็ต BLE พร้อมแฮชของหมายเลขโทรศัพท์จะถูกส่งเมื่อเปิดหน้าต่างแชร์และเมื่อป้อนรหัสผ่านสำหรับเครือข่าย Wi-Fi
สำหรับการวิเคราะห์โดยละเอียดเกี่ยวกับโครงสร้างของแพ็กเก็ต BLE และการโจมตีที่เป็นไปได้ โปรดอ่านการศึกษา แอปเปิ้ล บลี และรัสเซีย แปลเป็นภาษาฮาเบร.
การศึกษาของ Apple Bleee เผยแพร่สคริปต์ Python สำเร็จรูปสำหรับการวิเคราะห์ข้อมูลอัตโนมัติในแพ็คเกจ BLE ฉันขอแนะนำให้ตรวจสอบการวิจัยและลองใช้โปรแกรม มีสิ่งที่น่าสนใจมากมาย
AWDL (ลิงก์โดยตรงไร้สายของ Apple)
AWDL เป็นส่วนเสริมที่เป็นกรรมสิทธิ์ของ Apple สำหรับ Wi-Fi ปกติซึ่งมีการใช้งานบางอย่างเช่น Wi-Fi Direct ฉันไม่รู้ว่ามันทำงานอย่างไร มีวิธีพิเศษในการประกาศและประสานงานช่องทาง และใช้งานได้กับไดรเวอร์ที่เป็นกรรมสิทธิ์ของ Apple เท่านั้น นั่นคือเฉพาะ MacBooks/iPhone เท่านั้นที่สามารถเชื่อมต่อผ่าน AWDL
เจ้าของโทรศัพท์ Android ที่น่าเศร้ายังคงฝันถึงฟังก์ชั่น Wi-Fi Direct ที่ทำงานได้อย่างถูกต้องเท่านั้น
หากคุณขี้เกียจเกินไปที่จะสร้างและส่งเพย์โหลดด้วยตนเอง และคุณต้องการทำให้กระบวนการเป็นแบบอัตโนมัติ คุณสามารถสร้างเครื่องเลือกเสียงอัตโนมัติ ซึ่งจะส่งรูปภาพผ่าน AirDrop ไปยังทุกคนที่อยู่ในระยะในพื้นหลัง เราจะใช้ Raspberry Pi Zero เป็นแพลตฟอร์มฮาร์ดแวร์ แต่คอมพิวเตอร์ทุกเครื่องที่ใช้ Linux จะทำสิ่งสำคัญคือการ์ด Wi-Fi รองรับโหมดจอภาพและการฉีดแพ็กเก็ต
ผู้ส่งลำโพงผ่าน Airdrop ที่ใช้ Raspberry Pi Zero W + แผงป้องกันแบตเตอรี่ UPS Lite
มีโปรแกรม AirDrop Flooder สำหรับ Jailbreak iPhone ซึ่งทำงานได้เสถียรกว่าเวอร์ชันเปิดบน Raspberry Pi
การตั้งค่า OWL บน Raspberry Pi มีอธิบายรายละเอียดไว้ที่ เว็บไซต์โครงการแต่ฉันชอบใช้บิลด์ Kali Linux สำหรับ Raspberry Pi Zero เนื่องจากมีการติดตั้งแพทช์ nexmon เพื่อเปิดใช้งานโหมดมอนิเตอร์ Wi-Fi บน rpi0 อยู่แล้ว
สิ่งสำคัญคือต้องจำไว้ว่า Airdrop (หรือ AWDL) จะเปิดใช้งานสำหรับผู้ป่วยหลังจากได้รับแพ็คเก็ต BLE เท่านั้น ดังนั้นเราจึงต้องส่งไปเป็นระยะหลายวินาที ซึ่งสามารถทำได้โดยใช้ยูทิลิตี้ py-bluetooth-utils. เมื่อใช้ฟังก์ชัน start_le_advertising() ฉันส่งสตริงข้อมูลจากตัวอย่าง apple bleee: 000000000000000001123412341234123400.
ไอคอน Х หมายความว่าแพ็กเก็ตที่มีแฮชโทรศัพท์ถูกจับได้
parser ของพวกเขาบางครั้งพัง แต่ส่วนใหญ่มักจะใช้งานได้ ฉันจะไม่เล่าสาระสำคัญของช่องโหว่ซ้ำทั้งหมดเนื่องจากผู้เขียน Apple Blee วิเคราะห์อย่างละเอียด ฉันจะอธิบายเฉพาะประสบการณ์ของฉันเท่านั้น ฉันจะบอกว่าฉันใช้อะแดปเตอร์ USB Bluetooth บนชิป CSR 8510 เนื่องจากมันทำงานได้เสถียรสำหรับฉันมากกว่าอะแดปเตอร์ Bluetooth ที่ติดตั้งใน MacBook และเสียบเข้าไปในเครื่องเสมือน