هرگونه ساخت و بهره برداری از فرستنده های رادیویی منوط به اخذ مجوز از سازمان تنظیم مقررات و ارتباطات رادیویی ایران میباشد و این سایت هیچ گونه مسئولیتی را به عهده نمیگیرد


بازگشت   جامعه رادیو آماتوری ایران > جامعه رادیو اماتوری ایران > متفرقه

پاسخ
 
ابزارهای جُستار جستجو در جُستار چگونگی نمایش
قدیمی 10-14-2015, 04:45 PM   #1
mehdi_asgari
Administrator
 
زمان کاربری: Jul 2015
جای زندگی: تهران
نوشته ها: 118
پیش فرض ساخت دستگاه شنود کیبورد های وایرلس

سلام
در این مقاله میخوام یک مدار ساده برای شنود اطلاعات کیبورد های وایرلس مایکروسافت سری 800 معرفی کنم.
اگرچه این مدار (و کد میکروکنترلرش) فقط برای این سری از کیبوردها کار می کنه، اما امکان انجام مهندسی معکوس بر روی دیگر کیبوردها و اضافه کردن کد مربوطه به این دستگاه جهت شناسایی و رمزگشایی اونا وجود داره.



کیبوردهای مایکروسافت از رمزنگاری ضعیفی برای ارسال کلیدهای فشرده شده استفاده می کنن که امکان رمزگشایی اونها در زمان نسبتا کمی وجود داره.
در این زمینه قبلا تحقیقات مختلفی انجام شده و در نهایت Samy Kamkar مداری رو بر اساس تحقیقات افراد بزرگی مثل Travis Goodspeed و دیگران (مثل پروژه KeyKeriki) طراحی کرده و ساخت که من هم همون رو با کمی تغییرات سخت افزاری و نرم افزاری ساختم.
مدار اصلی رو میتونید در این آدرس ببینید: samy.pl/keysweeper
من سعی می کنم تمامی جزییات مطرح شده توسط سامی کامکار و فرایند رمزگشایی رو اینجا تکرار نکنم و فقط به ذکر نکات مهم و تجاربم در ساخت این دستگاه اکتفا می کنم.



همونطور که در عکس فوق مشاهده می کنید، مداری که ساختم سه بخش اصلی داره:
۱- میکروکنترلر که یک Arduino Pro Mini هست (بورد کوچک وسط) که یک AVR هشت بیتی با ۲ کیلوبایت رم بوده و سرعتش ۱۶ مگاهرتز هست. این بخش در واقع قلب سیستم بوده و کارایی مثل کنترل دیگر ماژول ها و رمزگشایی رو بر عهده داره.
۲- ماژول GSM (سمت راست، که سیم کارت هم داره) جهت ارسال کلیدواژه های مهم با پیامک
۳- ماژول +nRF24L01 (بالا وسط) که در واقع گیرنده/فرستنده 2.4GHZ هست (کیبوردهای مایکروسافت در این محدوده فرکانسی کار می کنن)

نکته ۱: کار کردن این کیبوردها در محدوده 2.4GHZ به این معنا نیست که WiFi هستن (چون از پروتکل خاص خودشون استفاده می کنن و از 802.11x که پیچیده و سنگین هست استفاده نمی کنن)
نکته ۲: در مداری که من ساختم یک بورد در سمت چپ و یک رگولاتور هم بالا سمت چپ مشاهده میشه. این ها برای تغذیه ماژول GSM و nRF هستن. ماژول nRF نیاز به تغذیه 3.3v داره و چون آردوینویی که من استفاده کردم ۵ ولتی هست، تغذیه 3.3 ولت رو از یک آی سی رگولاتور LF33 دریافت کردم.
همچنین بورد سمت چپ یک رگولاتور ولتاژ متغیر هست که من بر روی 4.2 ولت تنظیم کردم و تغذیه ماژول GSM رو تامین می کنه (از رگولاتور LM2596 استفاده شده). سامی کامکار از آردوینو پرو مینی 3.3 ولت استفاده کرده بود که من نتونستم در بازار تهیه کنم و برای همین مجبور به تغییرات جزئی در مدار شدم.
نکته ۳: ماژول GSM که سامی استفاده کرده، اسمش FONA هست و توسط Adafruit تولید و فروخته میشه. ما معادلش رو (بورد راه انداز SIM900A) که در بازار ایران قابل تهیه بوده و با اپراتورهای موبایل داخلی سازگار هست استفاده کردیم.

ارتباط بین آردوینو و ماژول GSM ، سریال هست و برای ارتباط با nRF از SPI استفاده میشه.
سامی سعی کرد با استفاده از حداقل قطعات، کل دستگاه رو در یک شارژر جا بده. من به دلیل این که می خواستم فرایند ساخت، دیباگ و همچنین دموی دستگاه راحت باشه، نیازی به کوچک کردنش نداشتم و بر روی یک بورد سوراخدار ساختمش.
این دستگاه پس از پیدا کردن کیبورد و شکستن رمزش، کلیدهایی رو که کاربر فشار میده ذخیره می کنه. برای دسترسی به این اطلاعات ۵ روش وجود داره:
۱- مشاهده توسط اتصال سریال دستگاه به لپ تاپ (بهترین روش برای تست های اولیه هنگام ساخت دستگاه)
۲- ذخیره در یک آی سی حافظه
۳- ارسال با استفاده از ماژول nRF و سپس خوندن این اطلاعات با یک ماژول nRF ثانویه
۴- ارسال کلیدواژه های خاص (قابل تعریف در کد آردوینو) با پیامک
۵- استفاده از GPRS برای POST کردن این اطلاعات به یک سرور

قیمت قطعات استفاده شده هم بسیار ارزون و قابل توجیه هست:
بورد سوراخدار: ۱۵۰۰ تومن
آردوینو: ۱۲ هزار تومن
ماژول GSM (در صورت نیاز به این ویژگی): ۷۵ هزار تومن
ماژول nRF : پنج هزار تومن

توجه کنید که این کار رو می شد توسط یک SDR مثل HackRF هم انجام داد، اما اون روش گرون تری نسبت به این دستگاه هست.
کیبورد های مایکروسافت در محدوده 2403 تا 2480 مگاهرتز (یا 2.403 تا 2.480 گیگاهرتز) فعالیت کرده و از چیپست nRF استفاده می کنن. همچنین این کیبورد ها در حالت 2Mbps فعالیت می کنن
(چیپست های nRF در سه حالت 250kbps، 1Mbps و 2Mbps قادر به فعالیت هستن)
ضمنا ما از قبل می دونیم که آدرس MAC تمامی کیبورد های مایکروسافت با 0xCD شروع میشه.
روش استفاده شده در این دستگاه شامل چندین حقه و اصطلاحا trick هم هست که قبلا توسط Travis Goodspeed کشف شده بود (به عنوان مثال ماژول های nRF فقط میتونن داده هایی رو که به یک MAC address خاص ارسال میشه دریافت کنن و باید اون آدرس رو داشته باشن، یا مثلا nRF ها قادر به اسکن فرکانس نیستن یعنی چیزی شبیه promiscious mode ندارن، اما همه این موانع رو با روش های کشف شده توسط Travis میشه دور زد)
کل عملیات شناسایی و رمزگشایی کیبورد در کمتر از ۴۰ ثانیه انجام میشه.
ضمنا توجه داشته باشید که امکان ارسال کلید بر روی کانال کیبورد مورد نظر و تایپ به جای کاربر! هم وجود داره (یعنی برنامه ما میتونه یک اسکریپت رو بر روی سیستم کاربر و از راه دور اجرا کنه!)

نکاتی که در ساخت این مدار بهشون برخوردم:
در کد آردوینوی سامی، baudrate ای که برای صحبت با ماژول FONA استفاده شده 4800 هست، اما ماژول هایی که در ایران به فروش میرن از 9600 استفاده می کنن.
با اضافه کردن یک خازن ۱۰ میکروفاراد بین پایه های GND و VCC ماژول nRF، ثبات کار این ماژول بالاتر میره (همچنین در خروجی و ورودی رگولاتور LF33 هم دو تا خازن عدسی ۱۰۰ نانو فاراد استفاده کردم)
کدی که سامی نوشته، به خاطر وجود متغیرهای سراسری (global) زیاد، حجم زیادی از حافظه رو به خودش تخصیص میده که در هنگام اجرا، کار رو با مشکل روبرو می کنه.
من تا جایی که می تونستم، متغیرها و توابع غیرضروری رو از کد ایشون و همچنین از کتابخانه های استفاده شده حذف کردم تا میزان حافظه کم بشه. همچنین سایز بافر FONA رو از ۲۵۵ بایت به ۱۰۰ بایت کاهش دادم. دقت کنید که ما فقط ۲ کیلوبایت رم در دسترس داریم.
اگر حافظه سیم کارت، پر از پیامک باشه، ممکنه در ارسال پیامک به مشکل بخوره. باید پیامک های قبلی رو از روی حافظه سیم کارت پاک کرد.

اگر سوالی در زمینه ساخت یا نحوه کارکرد این دستگاه دارید میتونید در همین فروم مطرح کنید.

در پایان از آقای سعید شکراللهی که در فرایند ساخت این مدار کمک و همفکری های بسیار ارزشمندی کردن، تشکر می کنم.

ویرایش شده بدست mehdi_asgari : 10-14-2015 در تسوک(ساعت) 10:57 PM
mehdi_asgari انلاین نیست.   پاسخ با گفت آورد
پاسخ

برچسب ها
arduino, keyboard, keysweeper, nrf24l01, sim900

ابزارهای جُستار جستجو در جُستار
جستجو در جُستار:

جستجوی پیشرفته
چگونگی نمایش

آیین نامه فرستادن
شما نمی توانید نوشته ی تازه ای بفرستید.
شما نمی توانید پاسخ بفرستید.
شما نمی توانید پرونده پیوست کنید.
شما نمی توانید نوشته های خود را ویرایش کنید.

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
کدهای HTML غیر فعال است

گزينش شتابناك یک انجمن


جامعه راديو آماتوري ايران

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

جامعه راديو اماتوري ايران اجامعه راديو اماتوري ايران
نشر و توسعه توسط
جامعه راديو اماتوري ايران