คำเตือน
เครื่องมือยังอยู่ระหว่างการก่อสร้างอย่างแข็งขัน ยูทิลิตี้ดมกลิ่นควรทำงานได้ดีกับแบนด์วิดท์ 125kHz ดังนั้นอย่าลังเลที่จะทดสอบ โปรดทราบว่าคุณลักษณะการส่งข้อมูลต้องมีการทดสอบมากขึ้นเนื่องจากตอนนี้ฉันไม่ได้เป็นเจ้าของเกตเวย์ Lorawan
หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะยกปัญหา
ลอเรตต์
ที่เก็บนี้เป็นชุดเครื่องมือสำหรับการประเมินความปลอดภัยของเครือข่าย Lorawan นี่คือสิ่งที่เสนอ:
- การดมกลิ่นหลายช่อง: จับภาพการรับส่งข้อมูล Lorawan ในหลายช่องทางโดยใช้ SDR (วิทยุที่กำหนดซอฟต์แวร์)
- การจับภาพตามเซสชัน: สร้างและจัดการเซสชัน จับมือกันภายในเซสชันจะถูกจัดเก็บโดยอัตโนมัติเพื่อการวิเคราะห์เพิ่มเติม
- Key Derivation: รับปุ่มเข้ารหัสลับจากข้อมูลการจับมือที่จับได้เฉพาะกับเซสชันทำให้สามารถถอดรหัสแพ็กเก็ตที่เป็นของเซสชันนั้นได้
- ความเข้ากันได้ของ Wireshark: จัดเก็บทราฟฟิกที่จับได้ในไฟล์ PCAP ด้วยหมายเลข DLT ที่แก้ไขแล้วเพื่อให้มั่นใจว่าการวิเคราะห์ที่ราบรื่นด้วย Wireshark
- การทดสอบช่องโหว่: เล่นซ้ำ payloads เฉพาะเพื่อตรวจสอบช่องโหว่ของ Lorawan ที่รู้จักในระหว่างการประเมินความปลอดภัย
- คำแนะนำการโจมตี: เข้าถึงคำอธิบายโดยละเอียดเกี่ยวกับการโจมตีและคำแนะนำทีละขั้นตอนเพื่อปรับปรุงกระบวนการทดสอบของคุณ

สารบัญ
- การติดตั้ง
- การใช้งาน
- การประชุม
- ดมกลิ่น
- การดมกลิ่น
- กำหนดค่า
- การถอดรหัสและถอดรหัส
- ที่เก็บแพ็คเก็ต
- เครื่องวิเคราะห์
- จู่โจม
- เล่นใหม่
- แพ็คเก็ตงานฝีมือ
- การออก
การติดตั้ง
ความต้องการ:
- ระบบ Linux (ทดสอบกับ Ubuntu, Debian)
- USRP ซอฟต์แวร์ที่กำหนด-Radio โดย ETTUS Research (ทดสอบด้วย B200, B205MINI)
1. ติดตั้งวิทยุ GNU และการพึ่งพา:
ทำตามคำแนะนำใน GNU Radio Wiki สำหรับการแจกจ่าย Linux ของคุณ: https://wiki.gnuradio.org/index.php/installinggr
2. ติดตั้งไดรเวอร์ฮาร์ดแวร์ USRP:
เพิ่มที่เก็บข้อมูลการวิจัย ETTUS:
sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev uhd-host
3. โคลนที่เก็บเครื่องมือ Lora Attack Toolkit:
git clone https://github.com/konicst1/lorattack.git
4. ติดตั้งการพึ่งพา:
นำทางไปยังไดเรกทอรี Toolkit และการติดตั้งการพึ่งพา:
cd lorattack
source venv/bin/activate
pip install -r requirements.txt
sudo apt-get update
sudo apt-get install bittwist
ติดตั้งไลบรารี GR-LORA จาก:
- https://github.com/rpp0/gr-lora
- https://github.com/tapparelj/gr-lora_sdr
5. อัปเดตเส้นทาง Python (หากใช้สภาพแวดล้อมเสมือนจริง):
ขั้นตอนนี้ทำให้มั่นใจได้ว่าสภาพแวดล้อมเสมือนจริงสามารถเข้าถึง Gnuradio ที่ติดตั้งนอกสภาพแวดล้อม
export PYTHONPATH=/usr/local/lib/python3.10/dist-packages:/usr/lib/python3.10/site-packages: $PYTHONPATH
export PYTHONPATH= " /usr/lib/python3/dist-packages: $PYTHONPATH "
# Update library path (if necessary)
export LD_LIBRARY_PATH=/usr/local/lib: $LD_LIBRARY_PATH
หมายเหตุ: แทนที่ /usr/local/lib/python3.10 ด้วยเส้นทางจริงไปยังไดเรกทอรีการติดตั้ง Python 3 ของคุณหากแตกต่างกัน ปรับการอัปเดตเส้นทางไลบรารี ( export LD_LIBRARY_PATH... ) เฉพาะในกรณีที่พบปัญหาที่เกี่ยวข้องกับไลบรารีที่หายไป
6. เรียกใช้ชุดเครื่องมือโจมตี LORA:
หมายเหตุ: อ้างอิงเอกสารของ Toolkit (ถ้ามี) สำหรับคำแนะนำการใช้งานโดยละเอียด
การใช้งาน
การประชุม
- เซสชั่นใหม่: สร้างเซสชันใหม่ด้วยชื่อเชิงพรรณนาเมื่อใดก็ตามที่คุณเริ่มทราฟฟิก Lorawan สิ่งนี้ทำให้มั่นใจได้ว่าการจับแต่ละครั้งจะมีชุดกุญแจสำหรับถอดรหัสในภายหลัง
- เลือกเซสชัน: เลือกเซสชันที่มีอยู่เพื่อเปิดใช้งานสำหรับการวิเคราะห์เพิ่มเติมหรือการโจมตีซ้ำ Lorattack ใช้ข้อมูลการจับมือจากเซสชันที่เลือกเพื่อรับคีย์ถอดรหัสเฉพาะสำหรับการจับภาพนั้น
เซสชันแยกเป็นสิ่งสำคัญสำหรับการถอดรหัส แต่ละเซสชั่นใน Lorattack Extracts Handshake Data เพื่อรับคีย์ที่ไม่ซ้ำกันสำหรับแพ็คเก็ตที่จับได้ภายในเซสชันนั้นทำให้สามารถวิเคราะห์รายละเอียดได้
ในการแก้ไขข้อมูลเซสชันให้แก้ไขไฟล์ เซสชัน/data/<session_name> /data.json
ดมกลิ่น
ดมกลิ่นของ Lorattack จับการรับส่งข้อมูล Lorawan ในหลายช่องทางรอบ ๆ ความถี่กลางที่ระบุทำให้สามารถถอดรหัสและถอดรหัสแบบเรียลไทม์ (ถ้ามีคีย์)

- SNIFF: เมนูย่อยนี้ช่วยให้คุณสามารถจับการจราจรของ Lorawan:
- ลิงค์ดมกลิ่นขึ้น/ลง (สองทิศทาง): เริ่มจับภาพทั้งอัปลิงค์ (อุปกรณ์ไปยังเครือข่าย) และการรับส่งข้อมูล (เครือข่ายไปยังอุปกรณ์) หมายเหตุ: การจับภาพแบบสองทิศทางอาจส่งผลให้แพ็คเก็ตซ้ำกันหากมีการส่งข้อมูลเดียวกันทั้งสองทิศทาง
- Sniff Uplink: เริ่มจับภาพการรับส่งข้อมูลเฉพาะ
- Sniff Downlink: เริ่มจับภาพการจราจรดาวน์ลิงก์เท่านั้น
- กำหนดค่า: เมนูย่อยนี้ให้คุณแก้ไขไฟล์กำหนดค่า Sniffer (
config/sniffer.config ) ซึ่งกำหนดการตั้งค่าการจับภาพ:- ความถี่ (ความถี่กลาง): ระบุความถี่กลาง (เช่น "868.6E6") สำหรับการดมกลิ่น Lorattack จะจับช่องทางรอบ ๆ ความถี่กลางนี้ตามแบนด์วิดท์ที่เลือก
- แบนด์วิดท์: ตั้งค่าแบนด์วิดท์ช่อง (เช่น "125000") เพื่อกำหนดช่วงความถี่ที่จับรอบความถี่กลาง
- อัตราตัวอย่าง: กำหนดอัตราการสุ่มตัวอย่าง (เช่น "10,00000") สำหรับฮาร์ดแวร์ SDR
- ปัจจัยการแพร่กระจาย: ระบุปัจจัยการแพร่กระจาย (7 - 12) ที่ใช้โดยเครือข่าย Lorawan (ส่งผลกระทบต่ออัตราข้อมูลและช่วง)
- Gain (db): ตั้งค่ากำไร (เช่น "10 dB") ของเสาอากาศ SDR เพื่อปรับความแรงของสัญญาณ
การถอดรหัสและถอดรหัส:
- แพ็คเก็ตที่ถูกจับจะถูกถอดรหัสแบบเรียลไทม์ให้ข้อมูลเชิงลึกเกี่ยวกับโครงสร้างการสื่อสารของ Lorawan
- การถอดรหัสเป็นไปได้และดำเนินการโดยอัตโนมัติหากปุ่มเข้ารหัสลับอยู่ในไฟล์กำหนดค่าเซสชัน:
- สามารถระบุกุญแจได้ด้วยตนเอง
- คีย์สามารถได้รับโดยอัตโนมัติหากเข้าร่วมคำขอและเข้าร่วมข้อความที่รับจะถูกจับภายใน (AppKey จะต้องกำหนดค่าด้วยตนเอง)

ที่เก็บแพ็คเก็ต:
- แพ็คเก็ตที่ดมกลิ่นทั้งหมดจะถูกเก็บไว้ในรูปแบบ PCAP ภายในไดเรกทอรีของเซสชันปัจจุบัน
- PCAPS พร้อมคำนำหน้า Wireshark มีส่วนหัว UDP ที่ถูกถอดออกและ DLT ถูกตั้งค่าเป็น Lorawan (147) เพื่อการวิเคราะห์ที่ง่ายด้วย Wireshark
เครื่องวิเคราะห์
Submenu ตัววิเคราะห์แสดงรายการไฟล์ PCAP ที่เกี่ยวข้องกับเซสชันที่ใช้งานอยู่ของคุณ การเลือกไฟล์ PCAP เริ่มต้นกระบวนการวิเคราะห์:

- การวิเคราะห์การจราจร: เครื่องวิเคราะห์ตรวจสอบโครงสร้างแพ็คเก็ตและถอดรหัสการสื่อสารของ Lorawan และอัปเดตค่าเซสชันหากพบข้อความร้องขอ/รับข้อความ
- การถอดรหัส (ถ้ามี): หากการกำหนดค่าเซสชันมีคีย์การเข้ารหัสที่จำเป็น (NWKSKEY และ APPSKEY) เครื่องวิเคราะห์พยายามที่จะถอดรหัสแพ็กเก็ต payloads
จู่โจม

แนวทางการจำลองการจำลอง
TBD