Cute, امنیت و نفوذ, توصیه شده, دسته‌بندی نشده, سیسوگیها

عملیات غیرممکن – زئوس وارد می‌شود ( هک ماینر – قسمت پایانی)

هک ماینر قسمت سوم

 ( هک ماینر – قسمت سوم پایانی)

در قسمت قبل مقاله(عملیات غیرممکن – نفوذ به مزرعه) یک سری توضیحات اجمالی در راستای هک ماینرهای M3x دادیم که البته قابل بسط به دیگر انواع ماینر نیز هست و به سادگی با الگو برداری از آن قادر خواهید بود هر نوع دستگاه ماینرها را هک کنید؛ اما واقعا یک شبه ما به این توضیحات دست پیدا نکریم و فکر می‌کنم برای کامل تر شد مقاله لازمه بیشتر در خصوص مسیر طی شده توضیح بدیم ، مثلا این که چی شد که نرم افزار CGMinger رو پیدا کردیم یا این که چی شد تونستیم وارد سیستم عامل ماینر ها بشیم، در این مقاله بیشتر به این موضوعات خواهیم پرداخت و میدونم که برای خیلی ها میتونه جذاب باشه چرا که دریچه ای به هک سخت افزار های سیستم عامل دار باز می‌کنه که ماینرها یک بخش کوچک از دنیای بزرگ این مدل سخت افزارها هستند، به روترها و گجت‌های الکترونیکی مدرن فکر کنید که با این مدل هک چه تغییراتی نمی شود در آنها اعمال کرد. خوب اجازه بدهید پرحرفی رو کنار بگذاریم و مقاله رو شروع کنیم.

ایده پردازی برای هک ماینر

همه چیز با یک سوال ساده شروع شد:

چطور می‌شود بدون داشتن ماینر ارز دیجیتال استخراج کرد ؟

ممکن است جواب این سوال برای خیلی ها یک «نمی شود» ساده باشد ولی وقتی قرار است سیستمی را هک کنید نباید خیلی ساده از مسائل گذشت، همانطور که ما هم نگذشتیم و جواب سوال را پیدا کردیم 🙂

در واقع پایه و اصول هکی که قصد انجام آن را داشتیم بر دو چارچوب اساسی سوار بود:

  • ساده انگاری صاحبان دستگاه و استفاده از یوزر و پسورد پیشفرض
  • ساختار حاکم بر فارم‌های موجود در ایران (عدم ایزوله سازی دستگاه ها از هم)

با کنار هم قرار گرفتن این دو مساله به سادگی قادر خواهیم بود کنترل تک تک دستگاه‌های موجود در یک فارم را تحت کنترل خودمان در بیاوریم. اما چطور چنین چیزی ممکن است ؟

فرض کنید به طریقی در شبکه محلی یک فارم (LAN) وارد شده باشیم به سادگی با یک آیپی اسکن ساده قادر خواهیم بود لیست دستگاه های موجود در شبکه را به دست بیاوریم و از آنجایی که پسورد و نام کاربری تمام دستگاه ها همان نام کاربری و پسورد کارخانه است می‌توان وارد پنل مدیریت آنها شده و آدرس استخر ها را عوض کنیم یا هر تغییر دیگری که دلخواه باشد را اعمال کنیم.

تا اینجا که مساله بسیار ساده است ، اولین سوالی که باید به آن پاسخ داد نحوه ورود و گرفتن دسترسی به یک فارم است ! اینجاست که ایده اسب تروآ مطرح شده ! اگر ماجرای اسب تروآ رو نمیدونید توصیه می‌کنم به این لینک مراجعه کنید و از ماجرا سر در بیارید در دنیای هک کامپیوتر تروجان ها درواقع دقیقا از همین شیوه استفاده می کنند.

ساخت اسب تروآ برای هک ماینر

در واقع ایده اولیه اینه که ما یه دستگاهی که شکل ظاهریش مثل دستگاه ماینر است ولی باطنش یه چیز دیگه است (مثلا یه کامپیوتر) به یه فارم تحویل بدیم و منتظر باشیم که دستگاه نصب بشه و راه ارتباطی ما با شبکه لوکال فارم باشه. با وجود مینی کامپیوتر های مبتنی بر ARM ساخت چنین دستگاهی نباید کار سختی باشه، تنها کاری که باید انجام بدیم اینه که داخل یه جعبه ماینر مثلا یه رزبری پای جاسازی کنیم.

فارغ از ظاهر دستگاه مساله ای که ممکنه باعث لو رفتن اسب تروآ بشه اینه که فارم دار بخواد وارد پنل مدیریت اسب تروآ بشه و بخواد اونو کانفیگ کنه که دقیقا مساله ساز میشه! چرا که پنل مدیریتی نداریم اگر هم بخوایم بسازیم احتمالا زمان زیادی خواهد گرفت با توجه به هیجانی که داشتیم برای انجام هرچه سریعتر کار زیاد معقول نبود.

خوب چه کار دیگه ای میشه کرد – یکی از دوستان اتاق فکر ایده داد که یه سوئیچ داخل دستگاه جاساز کنیم که هم برد خود ماینر باشه و هم میکروکامپیوتر هکر ما ! خوب ایده بدی نبود ولی با توجه به محدودیت فضای موجود توی قسمت کنترلر ماینر شاید انجامش زیاد معقول به نظر نمی رسید. تا این که ایده طلایی به ذهنم رسید 😎

فریمور ماینر رو هک کنیم 

دوستان زیاد موافق نبودن و به نظرشون شدنی نبود که بخوایم فریمور یک برد سیستم عامل دار رو هک کنیم، یا فکر می‌کردند اگر هم شدنی باشه اینقدر پیچیده خواهد بود که کار بسیار زمانبری است. اما به نظر من با توجه به ساختار لینوکس کار نباید اینقدر ها هم سخت باشه ! با این قرار از هم جدا شدیم که من برم بررسی کنم ببینم چطور میشه و این که آیا اصلا میشه فریمور Mainboard دستگاه رو هک کرد. ماینر هدف هم همون ماینری بود که همه ازش دارن یعنی Whatsminer M3.

 

هک فریمور دستگاه Whatsminer M3

هک ماینر m3 ام تری

عکس بالا در واقع برد کنترلر دستگاه Whatsminer M3 است ، چیزی که روی برد مشخصه اینه که با یه SoC طرف هستیم که احتمالا لینوکس رو از روی NAND (همون آیسی بالای عکس که دو طرفش پایه داره و مستطیل شکل است) فلش داره بوت میکنه ! خوب این که بخوایم آیسی فلش رو دمونتاژ کنیم و اطلاعات داخل اونو بخونیم با توجه به پیچیدگی هایی که داره در واقع آخرین کاری هست که قصد داریم انجامش بدیم، اما با نگاه کردن به برد چیزهایی دیگه ای هست که ما رو به عنوان یک الکترونیکی قلقلک بده.

و اون چیزی نیست جز مشاهده عبارت TX و RX روی پین هدر ۳ پایه J8 کنار خازن های الکترولیت؛ این دو عبارت برای ما مثل پیدا کردن رمز سیستم کامپیوتری است برای هکرهای نرم افزار ! بله دیگه دنیای ما هم این شکلیه، در واقع ارتباط سریال برای تبادل داده از این دو پایه استفاده میکنه – و حدس من این بود که طراح سیستم برای رفع عیب و احتمالا ارتقاء سیستم باید از این رابط استفاده کنه! اما چطور میشه فهمید ؟ به سادگی اتصال یه مبدل یو اس بی به سریال و نرم‌افزار screen برای ما لینوکسی ها و putty برای شما ویندوزی ها.

هک سخت افزار بیت کوین

الان همه چیز آماده است و برای دیدن نتیجه باید سیستم رو روشن کرد، معمولا باوود ریت پیش فرض سیستم ها ۱۱۵۲۰۰ است که ما هم اول با همین باوود چک میکنیم اگر دیتایی دریافت نکردیم باوود های دیگه رو چک میکنیم ؛ یا این که همون اول میتونیم به سراغ لاجیک آنالایزر بریم و سعی و خطا رو کنار بگذاریم 🙂

هک cgminer

تصویر بالا نشون میده که حدسمان درست بوده و کنسول دیفالت لینوکس دقیقا روی همین پورت سریال تنظیم شده است و اتفاقا دسترسی به root سیستم هم دارد – گام اول به خوبی برداشته شد و دسترسی به سیستم حاصل شد بعد از بررسی ها مشخص شد که سیستم از پلتفرم OpenWRT استفاده میکنه که خوشیمان را دو چندان کرد ، این یعنی این که سیستم پک منیجر هم در اختیار داریم 🙂

هک فارم

تقریبا تا اینجای ساخت اسب تروآ خوب پیش رفته و مشخص شده که با لینوکس طرف هستیم دسترسی به یوزر اصلی سیستم رو هم داریم و این یعنی هر ان چیزی که برای تغییر لازم داریم رو در اختیار خواهیم داشت در ضمن مشخص شد که سرویس dropbear هم روی سخت افزار در حال اجراست که ما را از اتصال هر باره پورت سریال بی نیاز می کند و به سادگی با ssh قادر هستیم به سیستم وصل شویم.

در این مرحله لازم بود که مجددا اتاق فکری تشکیل شود و راهکار های احتمالا را بررسی کنیم. الان در واقع میتوان گفت که یک سیستم آماده داریم که به سادگی می‌شود آن را به اسب تروآ تبدیل کرد – اما سوال کلیدی این است که درون این اسب چه جنگ افزار هایی باید قرار گیرد ؟

اتاق فکر و بروزرسانی ایده اولیه

بگذارید اشاره کنم در زمانی که در حال گشودن قفل های سخت افزار بودم دیگر دوستان بیکار ننشسته بودند و ایده های نرم افزاری خودشون رو پیش می بردند ! در واقع نرم افزاری رو نوشته بودند که به صورت خودکار در دستگاه Whatsminer M3 لاگین می‌کرد، آدرس استخر های ماینیگ رو عوض می‌کرد و دستگاه رو ریست می‌کرد و این کار رو به شکل دوره ای انجام می‌داد مدتی هم نرم افزار رو زیر بار گذاشته بودند و جواب مطلوبی هم گرفته بودند. اما مشکل کجاست ؟

مشکل اینجا بود که سایت های استخراج نظیر BTC وقتی دستگاهی از استخرش جدا میشه به کاربر اطلاع میده، یعنی با ارسال یک پیامک میگه فلان دستگاه قطع شده که خوب در واقع پاشنه آشیل این هک از این قرار بود که کاربر متوجه هک نشه ! پس این راه حل جامع مورد نظر نبود خوب ایده های دیگه ای مطرح میشد که هر کدام به شکلی دچار مشکل بودند.

راه حل اولیه ای که به ذهنم رسید این بود که ترافیک تمام ماینرها رو به سیستم خودمون منتقل کنیم و ما به عنوان پاراکسی پروتکل Stratum را پیاده سازی کنیم که در واقع بتونیم لابلای کارهای اصلی کار خودمون رو هم بدیم ماینر انجام بده  😀 اما باز مشکلی وجود داشت، اول این که پیاده سازی Stratum کار ساده ای نبود و سمپل پراکسی آماده ای هم براش پیدا نکردم و مهم تر از همه موقعیت اسب تروآ رو لو میداد (پیدا کردن آیپی gateway)  چیزی که اصلا ما دنبالش نبودیم.

یه راه دیگه این بود که کانفیگ یکی از هش بردهای دستگاه رو از روی CGMiner برداریم به نحوی که فکر کنه این هش برد اصلا وجود نداره و یک CGMiner دومی بر روی سیستم عامل اجرا کنیم که کارهای ما رو با این هش برد انجام بده، اما اشکال این بود که یک سوم توان دستگاه کم می شد! خوب BTC اطلاع نمیداد که دستگاه قطع شده ولی اگر کاربر خودش چک می‌کرد متوجه میشد یکی از هش برد ها خراب شده و احتمالا دستگاه رو برای تعمیر از فارم خارج می کرد و رشته های من کلا پنبه می‌شد.

پس راه حل چی می‌تونست باشه ؟

کامپایل مجدد سیستم عامل یا نرم افزار استخراج ارز دیجیتال بیت کوین به نحوی که علاوه بر لینک های ورودی از یک منبع دومی هم ورودی بگیره و درصد خیلی کمی که خیلی هم محسوس نباشه رو به ورودی دوم اختصاص بده – خوشبختانه  CGminer متن باز است و سورسش هم در دسترس همگان و البته امیدوار باشیم که شرکت Whatsminer سورس رو کاستوم نکرده باشه!

اما قبلا به بررسی های کلید های ورودی  CGMinner پرداختیم تا ببینیم آیا خودش چنین امکانی رو داره اصلا یا نه ؟ که در کمال تعجب دیدیم که بله همچین امکانی بدون دردسر قابل تعریف است (جزییات بیشترش رو قسمت دوم مقاله میتونید پیدا کنید.) – و چی بهتر از این.

آماده سازی اسب تروآ

حالا که ابزار و روش حمله مشخص شد باید بتونیم اسب تروآ رو آماده کنیم ! که به یه مساله جدید برخورد کردیم :/ فایل سیستم های موجود بر روی دستگاه ماینر یا توی رم mount شده بودند یا این که ReadOnly بودند.

که خوب ممکن بود کار پیش رو را بسیار دشوار کند، ولی به لطف لینوکس و فایل سیستم ext4 با دستور زیر فایل سیستم رو مجددا در حالت خواندنی نوشتنی mount کردم 🙂

خوب بعد از این مرحله اسب ما آماده نصب ابزار های جنگی خود است تا به فتح مزارع ماینر بپردازد.

 

دسترسی از پشت NAT !

بعد از آماده سازی اسب تروآ  لازمه که از طریقی باهاش در ارتباط باشیم و دستور های لازم رو از مرکز کنترل صادر کنیم که مثلا کی و چطور به کدوم دستگاه حمله کنه ! احتمالا ایده‌ال ترین حالت داشتن دسترسی ssh است ولی همونطور که میدونیم اینترنت توی شبکه لوکال به شکل NAT در دسترس خواهد بود و داشتن ارتباط ssh بدون دردسر غیر ممکنه برای همین بعد از کلی ایده پردازی به سراغ پیاده سازی سیستم C2 (command and control) رفتم و با کمک Bash اسکریت بسیار محدود روی openwrt یه اسکریپت قابل قبول توی زمان معقولی نوشتم (حدود یکی دو ساعت با پیاده سازی سمت سرورش) !‌ و نتیجه کد زیر بود

که از مرکز کنترل (که با php نوشتم) دستوری رو برای اجرا بر روی دستگاه میگیره و جواب رو به سرور برمی‌گردونه!

هر دستگاهی هم بر اساس مک شبکه از باقی دستگاه ها جدا میشه و بعد از الوده شدن به این اسکریپت خودش به یک اسب تروآ تبدیل میشه 🙂 و احتمالا در صورت ادامه ارتشی رو خلق خواهد کرد از دستگاه های ماینر که علاوه بر ماین کردن احتمالا کاربرد دیگری نیز خواهند داشت (احتمالا هکر ها منظورم رو متوجه خواهند شد).

وظیفه شناسایی و آلوده کردن دیگر دستگاه ها از سمت مرکز کنترل مدیریت میشه ! که بعد از حدود یک ساعت فعالیت ۳۰ دستگاه از نوع m3 رو آلوده کرد !‌!!!

جلوگیری از هک ماینر

و این بود سر انجام هک دستگاه ها و فارم های ماینر !!

 

چطور از هک ماینر و فارم جلوگیری کنیم!

ما از ارائه این مطلب دو هدف عمده را دنبال میکنیم اول اینکه موضوع هک یک موضوع کاملا جدیه و اینکه بگیم که چطوری میشه از نفوذ هکر های بالقوه جلوگیری کنیم, هکرهایی که میتونند به فارم یا دستگاه‌های شما نفوذ کنند و حاصل زحمت شما را به راحتی به سرقت ببرند, که من در اینجا به چند مورد اولیه و ساده اشاره میکنم. ( در ضمن ما در سه مقاله سعی کردیم از ارائه فوت های کوزه گری جلوگیری کنیم تا خدای ناکرده این مقاله ها نتونه کمک کننده به افراد سودجو باشه 🙂 )

 

اول اینکه حتما سعی کنید موارد مربوط به شبکه و اصول اون را درست پیاده سازی کنید و به هیچ عنوان اگر اطلاعات دقیق ندارید سعی نکنید خودتون شبکه ای را راه اندازی کنید و دسترسی هم به افراد غیر معتمد به هیچ عنوان ندهید, افرادی که میتونند با یک ساعت در شبکه شما بودن ارتباط کاملی در اینده بین خودشون و فارم شما ایجاد کنند و حاصل دسترنج شما را به یغما ببرن! ( این هم یکی از خواص ویژه بیت کوین و کلا ارزهای دیجیتال هست)

حتما کلمه عبور های سیستم و پسورد یوزرهای ادمین را عوض کنید تا افراد به سادگی نتونن به سیستم شما نفوذ کنند.

به هیچ عنوان اجازه ورود هر دستگاه ماینری را به مزرعه خودتون ندید.

همیشه سعی کنید کلیه دستگاه‌های خودتون و عکس العمل های اونها را مانیتور کنید و در صورتیکه هر گونه تداخل یا مشکلی دیدید اونها را دقیق بررسی کنید!

 

 

در اخر لازمه این را بگم که وقتی به عنوان یک مهندس الکترونیک این داستان هک را میخونید متوجه خواهید شد که شما به عنوان یک متخصص این حوزه لازمه همزمان اطلاعات زیادی در حوزه های نرم افزاری هم داشته باشید و صد البته اگر در این حوزه ها همراهان نرم افزاری هم مثل ما داشته باشید متوجه خواهید شد که یک پروژه بزرگ چطور میتونه به خوبی ایده پردازی بشه و در اخر هم انجام بشه.

البته متاسفانه یا خوشبختانه یکی از اعضای تیم سیسوگ Meisam که عضو نرم افزاری تیم هک ماینر هم بود در راه آلمان هستند که امیدوارم هر جا هستند خوش و خرم باشند و مثل زمان حضورشون در ایران موفق و فعال باشن و سیسوگ را هم فراموش نکنن 🙂

 

 

 


انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.  همکاری با سیسوگ

 

نوشته های مشابه

7 دیدگاه در “عملیات غیرممکن – زئوس وارد می‌شود ( هک ماینر – قسمت پایانی)

  1. سلام مهندس. دستت درد نکنه جالب بود. ولی فکر کنم این پروژه در جبهه مقابل بهتر بتونه به درامد زایی برسه یعنی مقابله با نفوذ راهشم اینه که یه شایعه بندازید که ماینرها رخنه دارن و از این حرفا و اون موقع است که شما میتونید وارد میدان بشید و فریم ویر یا بهتر بگم بوت لودر خودتون و یا راهکارهاتون رو ارائه بدید. چون واسه نفوذ احتیاج به دسترسی به سخت افزار هست یه مقدار کار نفوذ رو سخت میکنه و یک یا چند تا از فازهای نفوذتون رو باید اختصاص بدید به دسترسی به محل سخت افزار و …
    و دست اخر هم تشکر میکنم بابت لو ندادن کل اطلاعات.

  2. کار قشنگی بود خداییش احسنت مخصوصا اون قسمت که مثل ویروس پخش میشه …

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم
      در واقع میخواستیم نشون بدیم ویروس ها و تروجان ها محدود به دنیای کامپیوترهای شخصی و سرور نمی شن 🙂

  3. علی گفت:

    سلام
    من مهندس الکترونیکم و البته کارم طراحی بردهای کنترل هست
    ولی وقتی این مطالب شما رو میخونم به مهندسی خودم شک میکنم اگر من مهندسم شما دانشمندین
    دم شما گرم خدایی
    همیشه میخوای هر چی بشی بهترینش باش قصه شماست

    1. زئوس Zeus زئوس Zeus گفت:

      سلام و درود دوست عزیز
      نظر لطف شماست 🙂
      برای بهترین بودن (البته خودم رو لایق چنین لقبی نمی دونم) تنها کافیه که ممارست و علاقه داشته باشید 🙂

  4. حامد گفت:

    خیلی عالی بود خداقوت!
    این طور که معلومه مهندس واقعی بودن کار خیلی سختیه علاوه بر مباحث تخصصی مهندسی برق آشنایی با شبکه و امنیت, لینوکس , برنامه نویسی به زبان های مختلف برای سیستم ها و شرایط مختلف (حداقل به اندازه آشنایی با اصول اولیه) برای مهندس برق لازم و ضروریه

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم
      بله درسته با تو جه به این که الکترونیک در وقتی در کنار دیگر علوم قرار بگیره
      اون وقته که به معنی واقعی کلمه شکوفا میشه به نظرم
      تنها کافیه که به ترکیب الکترونیک و ریاضی و یا الکترونیک مکانیک و … فکر کنید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *