رفتن به مطلب
انجمن تیم امنیتی گارد ایران

ارسال های توصیه شده

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

 

همانطور که میدانید فضای جستجوی کلید ها در الگوریتم های پیشرفته بسیار بزرگ است

و عملا شکستن آن ها را با تکنولوژی پردازنده های مرکزی CPU در مقیاس یک تست نفوذ پذیری غیر ممکن می نماید

تا سالها تکنولوژی سخت افزاری شکستن الگوریتم های کوچک نظیر DES فقط در دسترس سازمان های امنیتی بزرگ همانند NSA  آمریکا بود.

اما با ورود پردازنده های گرافیکی که در ابتدا برای بهتر کردن حالت های 3D در بازی ها به کار گرفته می شدند 

اوضاع کاملا فرق کرد و سرعت خارق العاده و ارزان قیمتی برای طی کردن فضای کلید ها و رسیدن به رمز ها در اختیار قرار داد .

 

qpjg_gpu.jpg

 

معماري CPU ها و پردازنده هاي گرافیكي تفاوت هاي بنیادیني دارد و به همین دلیل، كار با آن ها مستلزم استفاده از روش ها و رویکرد های
متفاوت برنامه نویسي است. از دیدگاه یك برنامه نویس، پردازنده گرافیكي دستگاهي با عملكردهاي موازي است در حالي كه عملكرد
پردازنده CPU به صورت سري انجام مي شود. یك CPU دستورالعمل ها را یكي پس از دیگري اجرا مي كند

و هر دستورالعمل نیز تنها یك وظیفه را ( مانند جمع كردن یا تعویض محتواي دو بخش از حافظه سیستم )

انجام مي دهد. در مقابل یك GPU مي تواند چند جفت از اعداد را به طور همزمان جمع كند. علت این است كه GPU از چندین پردازنده متصل به هم تشكیل شده است.

 

اما علت معماري متفاوت GPU و CPU چیست؟

پردازنده هاي گرافیكي به منظور انجام پردازش هاي بسیار زیاد و تعیین نحوه رنگ بندي پیكسل هاي نمایشگر طراحي شده اند.

در گرافیك كامپیوتري، صحنه ها با استفاده از اشكال مثلثي ساخته مي شوند و هر مثلث با استفاده از سه بردار توصیف مي شود.
یك بردار مجموعه اي از مختصات است كه موقعیت نقطه اي را در فضاي سه بعدي مشخص مي كند. پیش از ظهور پردازنده هاي گرافیكي

براي ترسیم یك مثلث در فضاي سه بعدي، پردازنده سیستم باید دقیقا شكل ظاهري مثلث، موقعیت بردارها نسبت به بیننده، پیكسل ها و بخش هایي

از پس زمینه را كه براي بیننده قابل مشاهده بود، رنگ تمام پیكسل ها و ... پردازش مي كرد. این فرآیند بسیار طولاني بود.

 

با وجود این كه یك GPU عملیات محدودي را اجرا مي كند، توانایي آن در اجراي موازي عملیات محاسباتي فوق العاده است.

 

این پردازنده ها مي توانند صدها و حتي هزاران مثلث را بدون هیچ مشكلي و تنها در یك لحظه ترسیم كنند.

از همان ابتداي كار محققان ایده هاي جالبي براي استفاده از این توان پردازشي عظیم براي انجام سایر وظایف محاسباتي
در ذهن خود داشتند. در سال 2002 مارك هریس كه امروزه به عنوان محقق گرافیك كامپیوتر در NVidia مشغول كار است

واژه GPGPU  را براي اشاره به فرآیند پردازش چندمنظوره با استفاده از واحد پردازش گرافیكي به كار گرفت.

 

به علت این كه GPU روي یك كارت PC نصب شده است ، تمام داده ها پیش از این كه در اختیار GPU قرار گیرند، توسط یك گذرگاه به
نسبتا كند روي كارت PC كپي مي شوند. اما برنامه هایي با حجم پردازشي بالا و ورودی و خروجی کم :

مانند برنامه هاي شکستن پسورد ها ، دچار چنین محدودیت هایي نمي شوند.

 

در این راستا ما CPU را به کنار گذاشته و تنها به رویکردهای استفاده از GPU می پردازیم ، زیرا Hash ها و یا الگوریتم
هایی رمزنگاری متداول بالای 128 بیت بوده و اغلب آنها در نواحی 256 تا 512 بیت میباشند ، به همین دلیل میتوان از
پردازنده های گرافیکی برای برنامه نویسی عملیات های Bruteforce و یا پیاده سازی الگوریتم هایی برای شکستن آنها استفاده نمود

 

siob_gg.jpg

 

اگر به برخی از الگوریتم ها همانند SHA-1 و فضای کلیدی آن در جدول زیر نگاهی بیاندازید متوجه می گردید

که این فضاها حتی با پردازنده های GPU هم به راحتی مورد پویش قرار نمیگیرند

به همین دلیل 2 موضوع برای طی کردن سریع تر این فضا ها پیشنهاد گردید :

 

 - استفاده از توزیع پردازش ها بین GPU های مختلف

 -  استفاده از ( Rainbow tables )

 

             فضای کلید                               الگوریتم - نوع کاراکتر- تعداد کاراکتر

 

ntlm_loweralpha-numeric#1-10     ===>    3,760,620,109,779,060

md5_loweralpha-numeric#1-10     ===>    3,760,620,109,779,060

sha1_loweralpha-numeric#1-10     ===>    3,760,620,109,779,060

 

توزیع پردازش ها :

توزیع پردازش ها یعنی استفاده از GPU سرور ها و یا سرور های شامل پردازنده های
گرافیکی ای که با استفاده از روش هایی توانایی تقسیم بار پردازش را به صورت تقریبا مساوی

بین یکدیگر دارند . به عنوان مثال دانشگاه امیر کبیر و یا دانشگاه صنعتی اصفهان دارای توانایی استفاده از
پردازش گر ها موازی گرافیکی نیز میباشند . در حال حاظر اغلب کارت های

گرافیکی ATI , NVidia دارای حالت به اشتراک گذاری منابع هستند ، به طوری که شما میتوانید

با خرید 2 یا 3 عدد کارت گرافیکی و اتصال آنها به کارهای PCI Express برو روی مادر برد

و سپس اتصال آنها به یکدیگر از منابع هر سه به صورت هم زمان بهره مند گردید

 

جداول Rainbow :

در دسته بندی استراتژی های حمله ،  روشی به نام Code book حضور دارد
که در آن در صورتی که از یک کلید یکتا و غیر متغیر برای رمزنگاری استفاده شود

ما توانایی تولید یک کتاب رمز برای آن را خواهیم داشت . جدول های رنگین کمان نیز

از همان روش برای شکستن الگوریتم ها استفاده میکنند . این روش را در اصطلاح معاوضه زمان
حافظه برای کرک کردن hash ها و یا الگوریتم ها و بدست آوردن پسورد ها میگویند .

ابتدا تمامی Plaintext ها در فضای کلید آن الگوریتم تولید شده و سپس در یک سری جدول بر روی

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

در این حالت اگر بخواهند یک هش md5 را در این جدول ها جستجو کنند ، با استفاده از الگوریتم های جستجو
میتوانند زمان رسیدن به مقصود را از چندین روز به یک تا دو ساعت کاهش دهند . نمونه های موفق و عمومی این نوع حمله ، شکستن
الگوریتم 40 بیتی آفیس 2000 و PDF های نسخه قدیمی و یا استفاده در شکستن الگوریتم های A51 و یا الگوریتم های

SHA-1 و MD5 و LM و NTLM بوده اند .

 

به دلیل وقت گیر و پر هزینه بودن ساخت این جدول ها ، ما از جدول های آنلاین بهره می بریم :

 

سایت cmd5.org با داشتن بیش از 7,80,000,000,000 رکورد یکی از یزرگ ترین و در عین حال موفق ترین سایت های
جداول رنگین کمانی در اینترنت میباشد   ( دارای محدوده تقریبا کاملی از هش ها )

 

ابزار Findmyhash در KALI به سایت های آنلاین کرک پسورد متصل شده و آنها را چک میکند ( دارای محدوده تقریبا خوبی از هش ها )

 

سایت cracker.kalkulators.org توانایی گردش در 16 سایت آنلاین به صورت همزمان دارد ( LM , NTLM , MD5 , SHA1 , SHA256 )

 

خدمات غیر رایگان پردازش ابری توسط سایت : a( WPA , WPA2 , NTLM , SHA512 , MD5(unix) , MS-CHAPV2 ) cloudcracker.com
 

OPHCRACK  ابزاریست که توانایی شکستن پسورد های ویندوز را توسط جداول رنگین کمانی که توسط نویسندگان برنامه
تهیه شده است را دارا میباشد ، البته شما میتوانید خودتان با ابزاری که در اختیارتان قرار میدهد آن را بسازید ( lM,NTLM )

 

حملات BruteForce به Hash ها با استفاده از GPU های توزیع شده توسط ابزار Hashcat :

 

ابزار hashcat یکی از سود جویان بازار به هم ریخته CPU ها می باشد ،
زمانی که ابزار های قدیمی همانند John The Ripper به کُندی خود را برای ورود به عرصه GPU ها

به روز رسانی کردند و حتی این به روز رسانی ها دارای مشکلات محاسباتی و سرعتی هستند ، ابزارهایی همانند
Hashcat توانستند وارد گود شوند .

 

این برنامه دارای چندین نسخه برای کارت های معروف می باشد
 cudaHashcat  =>  برای استفاده از کارت های گرافیکی NVidia

و oclHashcat   =>  برای استفاده از کارهای ATI

 

چند سوئیچ مهم این ابزار : ( به علت ساپورت بهتر و آسانتر GPU در ویندوز از ویرایش ویندوزی آن استفاده گردیده است )

 

( a - ) ===> مشخص کننده نوع حمله :

 

0= Straight ( استفاده مستقیم از خود دیکشنری )
1 = Combination ( ترکیب کلمات مختلف موجود در دیکشنری )
2 = Toggle-Case ( ترکیب تمام حالت های حروف در داخل دیکشنری به صورت کوچک و بزرگ )
3 = Brute-force
4 = Permutation ( تست همه حالتهایی که با جابه جایی حروف هر کلمه در دیکشنری رخ میدهد )
5 = Table-Lookup
6 = Hybrid dict + mask
7 = Hybrid mask + dict

 

( m - ) ===> مشخص کننده نوع Hash ای که میخواهیم به آن حمله کنیم برای این کار شماره هش را مینویسیم

 

0=MD5
11=Joomla
21=osCommerce
100=SHA1
101=nsldap
111=nsldaps
112=Oracle11g
121=SMF>v1.1
122=OSX
131=MSSQL(2000
132=MSSQL(2005
300=MySQL

 

400=phpass,MD5(Wordpress), MD5(phpBB3)
500=md5crypt,MD5(Unix) ,FreeBSDMD5,Cisco-IO
900=MD4
1000=NTLM
1100=DomainCachedCredentials, mscash
1400=SHA256
1500=descrypt,DES(Unix), TraditionalDES
1600=md5apr1,MD5(APR), ApacheMD5

 

1700=SHA512
1722=OSXv10.7
2100=DomainCachedCredentials2, mscash2
2400=Cisco-PIXMD5
2500=WPA/WPA2
2600=DoubleMD5
2611=vBulletin<v3.8.5
2711=vBulletin>v3.8.5
2811=IPB2+,MyBB1.2+
3000=LM
3100=
Oracle7-10g, DES(Oracle)

 

( o - ) ===> نام فایلی , برای ذخیره جواب ها توسط این سوئیچ از شما گرفته می شود .

با استفاده از سوئیچ outfile-format=NUM--  نیز میتوانید از بین فرمت های زیر یکی را انتخاب کنید

 

1=hash[:salt]
2=plain
3=hash[:salt]:plain
4=hex_plain
5=hash[:salt]:hex_plain
6=plain:hex_plain
7=hash[:salt]:plain:hex_plain

 

-----------------------------------------------------------------------------------------------------------------------------

 

با تشکر از وقتی‌ که گذاشتید

     امیدوارم مفید واقع بشه

        guardiran.org

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

انجمن تیم امنیتی گارد ایران

تیم امنیتی گارد ایران یک گروه مستقل است که قوانین آن با خط مشی جمهوری اسلامی ایران مغایرت ندارد. تیم امنیتی گارد ایران از سال 1393 فعالیت خود را آغاز کرد و هدف این تیم تامین امنیت سایت ها و سرورهای ایرانی است. تیم ما همیشه برای دفاع از مرزهای سایبری سرزمین عزیزمان ایران آماده است.

شبکه های اجتماعی

×
×
  • اضافه کردن...