
هجوم على الفأرة/لوحة المفاتيح اللاسلكية مع إعادة الإرسال/إثبات المفهوم (PoC) للإرسال
هذا كود يوسع أدوات mousejack https://github.com/RFStorm/mousejack.
تمت إضافة أدوات إعادة الإرسال/الإرسال إلى الأدوات الأصلية.
حزمات إثبات المفهوم (POC) المبنية على Logitech Wireless Combo MK220 والتي تتكون من لوحة مفاتيح لاسلكية K220 وفأرة لاسلكية M150 مضمنة في مجلد logs.
المزيد من التفاصيل متاحة هنا https://www.ckn.io/blog/2016/07/09/hijacking-wireless-mice-and-keyboards/
#الاستخدام
أداة اكتشاف الأجهزة في وضع شبه غير متحيز (Pseudo-promiscuous)، والتي تمسح قائمة من القنوات وتطبع حزم Enhanced Shockburst المفككة.
usage: ./nrf24-scanner.py [-h] [-c N [N ...]] [-v] [-l] [-p PREFIX] [-d DWELL]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-p PREFIX, --prefix PREFIX Promiscuous mode address prefix
-d DWELL, --dwell DWELL Dwell time per channel, in milliseconds
مسح الأجهزة على القنوات 1-5
./nrf24-scanner.py -c {1..5}
مسح الأجهزة بعنوان يبدأ بـ 0xA9 على جميع القنوات
./nrf24-scanner.py -p A9
متشمم يتتبع جهازًا، يتابع جهاز nRF24 معين أثناء تنقله بين القنوات، ويطبع حزم Enhanced Shockburst المفككة من الجهاز. تم تعديل هذه النسخة أيضًا لتسجيل الحزم في ملف سجل.
usage: ./nrf24-sniffer.py [-h] [-c N [N ...]] [-v] [-l] -a ADDRESS -o OUTPUT [-t TIMEOUT] [-k ACK_TIMEOUT] [-r RETRIES]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-a ADDRESS, --address ADDRESS Address to sniff, following as it changes channels
-o OUTPUT, --output OUTPUT Output file to log the packets
-t TIMEOUT, --timeout TIMEOUT Channel timeout, in milliseconds
-k ACK_TIMEOUT, --ack_timeout ACK_TIMEOUT ACK timeout in microseconds, accepts [250,4000], step 250
-r RETRIES, --retries RETRIES Auto retry limit, accepts [0,15]
تشمم الحزم من العنوان 8C:D3:0F:3E:B4 على جميع القنوات واحفظها في output.log
./nrf24-sniffer.py -a 8C:D3:0F:3E:B4 -o logs/output.log
إعادة إرسال الحزم الملتقطة أو إرسال حزم مولدة. يتابع جهاز nRF24 معين أثناء تنقله، ويرسل حزمًا من ملف سجل.
usage: ./nrf24-replay.py [-h] [-c N [N ...]] [-v] [-l] -a ADDRESS -i INPUT_FILE [-t TIMEOUT] [-k ACK_TIMEOUT] [-r RETRIES]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-a ADDRESS, --address ADDRESS Address to sniff, following as it changes channels
-o INPUT_FILE, --input INPUT_FILE Input file that has the packets to sned
-t TIMEOUT, --timeout TIMEOUT Channel timeout, in milliseconds
-k ACK_TIMEOUT, --ack_timeout ACK_TIMEOUT ACK timeout in microseconds, accepts [250,4000], step 250
-r RETRIES, --retries RETRIES Auto retry limit, accepts [0,15]
أرسل الحزم من الملف keystroke.log إلى العنوان 8C:D3:0F:3E:B4 على قناة متغيرة
./nrf24-replay.py -a 8C:D3:0F:3E:B4 -i logs/keystroke.log
أداة تخطيط شبكة نجمية، تحاول اكتشاف العناوين النشطة في شبكة نجمية عن طريق تغيير البايت الأخير في العنوان المعطى، وإرسال ping إلى كل عنوان من 256 عنوانًا ممكنًا على كل قناة في قائمة القنوات.
usage: ./nrf24-network-mapper.py [-h] [-c N [N ...]] [-v] [-l] -a ADDRESS [-p PASSES] [-k ACK_TIMEOUT] [-r RETRIES]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-a ADDRESS, --address ADDRESS Known address
-p PASSES, --passes PASSES Number of passes (default 2)
-k ACK_TIMEOUT, --ack_timeout ACK_TIMEOUT ACK timeout in microseconds, accepts [250,4000], step 250
-r RETRIES, --retries RETRIES Auto retry limit, accepts [0,15]
تخطيط الشبكة النجمية التي ينتمي إليها العنوان 61:49:66:82:03
./nrf24-network-mapper.py -a 61:49:66:82:03
رقائق nRF24LU1+ تتضمن آلية اختبار لإرسال نغمة مستمرة، يمكن التحقق من ترددها إذا كان لديك وصول إلى SDR. هناك احتمالية أن تؤدي انحرافات التردد بين الأجهزة إلى سلوك غير متوقع. على سبيل المثال، إحدى لوحات SparkFun التجريبية التي تم اختبارها كان بها انحراف تردد يبلغ حوالي 300 كيلوهرتز، مما جعلها تستقبل حزمًا على قناتين متجاورتين.
سيؤدي هذا السكريبت إلى جعل جهاز الإرسال والاستقبال يرسل نغمة على القناة الأولى التي تم تمريرها.
usage: ./nrf24-continuous-tone-test.py [-h] [-c N [N ...]] [-v] [-l]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
إرسال نغمة مستمرة عند 2405 ميجاهرتز
./nrf24-continuous-tone-test.py -c 5
يستخدم هذا قاموسًا لربط ضغطات لوحة المفاتيح بالحزم المكافئة. يقرأ الإدخال من stdin ويسجل الحزم المعيّنة إلى logs/keystrokes.log. سيقبل الإدخال حتى يتم الضغط على Ctrl+C.
usage: ./keymapper.py
يحتوي المجلد logs على حزم محفوظة مسبقًا لمختلف عمليات لوحة المفاتيح.
Shell.log لاستغلال جهاز ويندوز عن طريق تشغيل سطر أوامر powershell واحد يتصل مرة أخرى بجهاز المهاجم.
الملف keys.log يعمل كمرجع حيث يتم تعيين ضغطات المفاتيح المختلفة وتركيباتها إلى الحزم المكافئة لها.
يمكن العثور على عرض توضيحي لاستغلال جهاز ويندوز هنا https://www.youtube.com/watch?v=YLzUeK1IvJs&feature=youtu.be