Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore kasr-2

kasr-2

Published by siyavashporgham, 2016-07-23 08:01:51

Description: kasr-2

Search

Read the Text Version

101 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ 6 ‫نتایج شماره‬Use the \"--format=Snefru-128\" option to force loading these as that type insteadWarning: detected hash type \"LM\", but the string is also recognized as \"NT-old\"Use the \"--format=NT-old\" option to force loading these as that type insteadUsing default input encoding: UTF-8Using default target encoding: CP850Loaded 2 password hashes with no different salts (LM [DES 32/32])Warning: OpenMP is disabled; a non-OpenMP build may be fasterPress 'q' or Ctrl-C to abort, almost any other key for status ‫ روش دوم شناسایی نوع هش – منابع آنلاین‬2-2-4‫ از جمله‬.‫در این روش از وب گاه هایی که به صورت آنلاین نوع سیستم رمزنگاری بکار رفته را شناسایی می کنند استفاده می کنیم‬‫ است که در شکل‬http://www.onlinehashcrack.com/hash-identification.php ‫محبوب ترین این وب گاه ها‬ ‫ صفحه مربوطه را مشاهده می کنید‬1 ‫شماره‬7 ‫شکل شماره‬ ‫ گزارش شده اند‬2 ‫نتایج برای هش های بالا در نتایج شماره‬ 8 ‫نتایج شماره‬ ‫نتایج هش شماره یک‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪102‬‬ ‫نتایج شماره ‪8‬‬ ‫نتایج هش شماره دو‬ ‫نتایج هش شماره سه‬ ‫حال با مقایسه نتایج هر دو نوع روش میتوان نتایج اصلی را در نتایج شماره ‪ 1‬گزارش داد‬ ‫نتایج شماره ‪9‬‬‫‪MySQL 4.1+‬‬ ‫‪*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19‬‬ ‫هش شماره یک‬ ‫‪SHA1‬‬ ‫‪2c12471b9239ff8697b41621cc0be83e4d55c0f8‬‬ ‫هش شماره دو‬ ‫‪MD5‬‬ ‫‪05fe635675068d79a041e02fe64617b6‬‬ ‫هش شماره سه‬ ‫در ادامه مراحل درگیر در استراتژی اصلی حملات کرک پسورد را بیان خواهیم کرد‬ ‫‪3-2-4‬مرحله یک – حمله ‪ brute force‬با استفاده از پسوردهایی با طول کوتاه‬ ‫در اولین مرحله ما بایستی از پسورد هایی که دارای طول کوتاه مثلا حداکثر ‪ 1‬کاراکتر هستند استفاده کنیم‪ .‬بر خلاف حمله ‪brute force‬‬‫بروی پسوردهای بلند که روزها‪ ،‬هفته ها و شاید سالها نیاز به زمان داشته باشند‪ ،‬در این حالت در عرض چند دقیقه میتوان تمامی حالات‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪103‬‬ ‫رابررسی کرد‪ .‬برای این حمله از برنامه ‪ cain and abel‬در حالتی که پسورد تنها متشکل از اعداد است و طول آن حداقل یک‬ ‫کاراکتر و حداکثر ‪ 1‬کاراکتر است‪ .‬فرض کنید مقدار هش شماره سه که نوع آنرا در نتایج شماره ‪ 1‬مشخص کردیم را به جدول برنامه‬ ‫همانند شکل ‪ 12‬اضافه کرده ایم و مطابق با شکل ‪ 11‬نوع حمله را مشخص کرده ایم و در شکل شماره ‪ 12‬نوع و تعداد کاراکتر های‬ ‫حمله مشخص شده است‪.‬‬ ‫شکل شماره ‪11‬‬ ‫شکل شماره ‪11‬‬ ‫شکل شماره ‪12‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪104‬‬‫برای اضافه کردن هش به لیست در خانه های ستون ‪ MD5 Hash‬کافیست راست کلید کرده و مقدار هش بدست آورده شده را‬‫کپی کنیم‪ .‬برای مشخص کردن نوع حمله نیز بروی هش راست کلیک کرده و نوع ‪ Brute Force Attack‬را انتخاب می کنیم‪.‬‬ ‫‪4-2-4‬مرحله دو – شناسایی سیاست پسورد گذاری سازمان(در صورت وجود)‬‫این مرحله را در صورتی انجام خواهیم داد که از سیاست سازمان در تعیین روش پسورد گذاری بروی سیستم ها مطلع باشیم‪ .‬همان‬‫طور که در مرحله قبل دیدید ما تمامی حالات را برای پسورد هایی با طول کوتاه تست کردیم‪ .‬ذکر این نکته بسیار مهم است که در‬‫صورت نفوذ به یک سیستم که ممکن است حق دسترسی آن در شبکه کم باشد‪ ،‬با استفاده از تکنیک های افزایش سطح دسترسی‬ ‫می توانیم به بخش های مربوط به ‪ sysadmin‬و یا ‪ root‬برسیم‪ .‬بنابراین‬ ‫احتمال در اختیار گرفتن کل شبکه با تنها نفوذ به یک سیستم با پسورد گذاری ضعیف بسیار بالاست و این باتوانایی‬ ‫متخصص تست نفوذ ارتباط مستقیم دارد‬‫فرض کنید با استفاده ازتکنیک های مهندسی اجتماعی و شناسایی متوجه شده ایم که سیاست پسورد گذاری سازمان عبارت است‬ ‫از‬‫انتخاب پسورد هایی با طول حداقل ‪ 1‬کاراکتر و حداکثر ‪ 12‬کاراکتر‬ ‫‪‬‬ ‫پنج رقم اول پسورد شناسه کاربری افراد در سازمان‬ ‫‪‬‬ ‫باقی کاراکترها اختیاری‬ ‫‪‬‬‫طبیعتا با دانستن چنین اطلاعاتی ما در امر نفوذ با استفاده از تکنیک های کرک پسورد بسیار توانمند تر خواهیم بود‪.‬‬‫‪5-2-4‬مرحله سه – تست پسورد های رایج‬‫انسان ها اگر چه فکر می کنند منحصر به فرد هستند و اعمالی که انجام می دهند خاص است و متعلق به خود آنهاست اما در واقعیت‬‫مسئله این طور نیست و خیلی از رفتار های ما مشابه هم است و این امر در بحث پسورد گذاری نیز رایج است‪ .‬تشریح علت این‬‫مسئله خارج از حوصله نوشتار فوق است‪ .‬کاربران یک سازمان و یا یک سایت معمولا تلاش می کنند حداقل سیاست های مربوط‬‫به پسورد گذاری را رعایت کنند زیرا سیستم این طور می خواهد و طوری باشد که پسورد مربوطه از یاد آنها نرود‪ .‬آنها‬‫معمولا دو گونه رفتار می کنند‪ .‬در نوع اول یک پسورد جدید و متناسب با سیاست های حداقلی سازمان را برای حساب کاربری‬ ‫خودشان انتخاب می کنند و یا از پسورد هایی که قبلا داشته اند استفاده می کنند‪ .‬فرض کنید سیاست سازمان اینگونه باشد که‬ ‫طول پسورد حداقل هشت کاراکتر باشد‬ ‫‪‬‬‫پسورد از ترکیب حروف کوچک و بزرگ باشد‬ ‫‪‬‬ ‫‪‬‬ ‫اعداد در آن بکار رفته باشد‬ ‫‪‬‬ ‫از کاراکتر های خاص استفاده شده باشد‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪105‬‬ ‫با چنین سیاستی بی شک یکی از گزینه های انتخابی توسط کاربران می تواند مقدار ‪ P@ssw0rD‬باشد که هم تمامی سیاست‬ ‫های پسورد گذاری سازمان در آن رعایت شده است و همچنین فراموش نشدنیست‪ .‬متاسفانه چنین پسورد هایی بارها و بارها استفاده‬ ‫شده اند‪ .‬ما در مرحله سوم بایستی چنین پسوردهایی را تست کنیم‪ .‬سایت های زیادی وجود دارند که لیست رایجترین پسورد هایی‬ ‫که کاربران از آنها استفاده می کنند را به رایگان در اختیار ما قرار می دهد‪ .‬یکی از بهترین منابع آنلاین در این زمینه در وب گاه‬ ‫‪ git‬به آدرس زیر موجود است‬ ‫‪https://github.com/danielmiessler/SecLists/tree/master/Passwords‬‬ ‫در آدرس فوق لیستی از انواع رایجترین پسورد های استفاده شده را مشاهده خواهید کرد‪ .‬یکی دیگر از منابع مفید در این زمینه‬ ‫وب گاه زیر است که اطلاعات مهمی را در اختیار ما قرار می دهد‬ ‫‪http://splashdata.com/‬‬ ‫‪ 6-2-4‬مرحله چهار – ترکیب کلمات با اعداد‬ ‫از آنجایی که در اکثر اوقات به علت اینکه پسورد کاربران منقضی می شود و آنها می بایست پسور جدیدی را انتخاب کنند‪ ،‬آنها‬ ‫معمولا از اضافه کردن اعداد به ابتدا و یا انتهای پسورد قبلی پسورد جدیدی خواهند ساخت‪ .‬بنابراین در این مرحله ما به بررسی این‬ ‫نوع پسورد ها خواهیم پرداخت‪ .‬برنامه هایی چون ‪ Hashcat‬و ‪ john‬به متخصص اجازه ترکیب اعداد با کلمات و تغییر در‬ ‫کوچک و یابزرگی حروف و استفاده از قواعد خاص را می دهند‪ .‬در بخش های بعد به صورت عملی این تست ها را انجام خواهیم‬ ‫داد‪.‬‬ ‫‪7-2-4‬مرحله پنج – حمله ‪Hybrid‬‬ ‫تا اینجا ما توانسته ایم بیش از ‪ 52‬درصد پسورد ها را مورد حمله قرار دهیم‪ .‬اما برخی از پسورد ها نیاز به صرف زمان و منابع بیشتر‬ ‫دارند‪ .‬همان طور که در قبل توضیح داده شد یکی از روش های حمله که ترکیب حروف با اعداد و کاراکتر های خاص است حمله‬ ‫‪ Hybrid‬است در بخش آموزش ابزار‪ ،‬مرتبط ترین ابزار ها با حمله ‪ Hybrid‬که ‪ HashCat‬است توضیح داده خواهد شد‪.‬‬ ‫‪8-2-4‬مرحله شش– حمله ‪Brute-Force‬‬ ‫با فرض اینکه تمامی مراحل بالا با شکست مواجه شدند‪ ،‬در مرحله آخر با بکارگیری منابع سخت افزاری مناسب که در بخش های‬ ‫قبل نمونه های آن توضیح داده شده اند می توان با احتمال موفقیت ‪ 11‬درصد از حمله ‪ Brute Force‬استفاده کرد‪ .‬خود حمله‬ ‫‪ Brute Force‬را میتوان به دو نوع تقسیم بندی کرد‪ Black Test .‬و ‪ .Gray Test‬در حالت اول هیچ گونه اطلاعاتی‬ ‫نسبت به سیاست پسورد گذاری سازمان در اختیار نیست و بایستی تمامی حالات موجود بررسی شوند‪ .‬اما در نوع دوم اطلاعاتی‬ ‫نسبت به سیاست های پسورد گذاری موجود است که به لحاظ کاهش زمان کرک بسیار موثر هستند‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪106‬‬ ‫‪ 3-4‬ایجاد پسورد لیست های کارا‬‫از آنجایی که در حملات تشریح شده داشتن پسورد لیست ها قدرتمند و مرتبط با تارگت نقش اساسی در کرک کردن پسورد دارد‪،‬‬ ‫در این بخش به بیان روش های جامع در ساخت پسورد لیست هایی که انواع مختلفی از مقادیر را در خود دارند خواهیم پرداخت‪.‬‬ ‫‪ 1-3-4‬استفاده از برنامه ‪crunch‬‬‫یکی از ابزار های مفید در سیستم عامل کالی لینوکس که ما را در تهیه انواع مختلفی از پسورد لیست های دلخواه که مورد استفاده‬‫برنامه هایی چون ‪ Hashcat‬و ‪ Cain and abel‬است یاری می رساند برنامه ‪ crunch‬است‪ .‬برای شروع ابتدا دستور‬ ‫شماره ‪ 13‬را ترمینال کالی لینوکس اجراء می کنیم‬‫‪root@kali:~# crunch‬‬ ‫دستور شماره ‪13‬‬‫‪crunch version 3.6‬‬‫‪Crunch can create a wordlist based on criteria you specify. The output from crunch can be sent to the screen, file, or to another‬‬‫‪program.‬‬‫]‪Usage: crunch <min> <max> [options‬‬‫‪where min and max are numbers‬‬‫‪Please refer to the man page for instructions and examples on how to use crunch.‬‬ ‫در آموزش شماره ‪ 14‬روش کار با این ابزار مشخص شده است‬ ‫آموزش ابزار شماره ‪14‬‬‫>‪root@kali:~# crunch <min> max<max> <characterset> -t <pattern> -o <output filename‬‬‫‪min :‬‬ ‫مشخص کردن حداقل طول پسورد ها‬‫‪max:‬‬ ‫مشخص کردن حداکثر طول پسورد ها‬‫‪characterset:‬‬ ‫مشخص کردن لیست کاراکترهایی که بایستی استفاده شوند‬‫‪pattern:‬‬‫مشخص کردن الگوی تولید پسورد ها‪ .‬به عنوان مثال اگر بخواهیم آخر هر پسوردی که توسط برنامه تولید می شود مقدار ‪ 1390‬وجو داشته باشد‪،‬‬‫می توان در بخش الگو مقدار ‪ @@@@@@1390‬را بافرض اینکه برای هر دوی ‪ min‬و ‪ max‬مقدار ‪ 10‬در نظر گرفته شده است را مشخص کرد‪.‬‬‫‪output filename:‬‬ ‫نام فایلی برای ذخیره نتایج‬‫‪ crunch 5 10 123456789 –o NumPass.pas‬مثال یک‬‫‪ crunch 10 10 –t @@@@@@1390 –o DatePass.pss‬مثال دو‬‫برای مشاهده آموزش برنامه می توان از صفحه ‪ man‬با وارد کردن دستور ‪ man crunch‬استفاده کرد‪ .‬یکی از سوئیچ های‬‫مفید در برنامه فوق سوئیچ ‪ –f‬است که اجازه می دهد نوع کاراکترایی که باید در تولید پسورد لیست مورد استفاده قرار گیرید به‬‫صورتی که در دستور شماره ‪ 15‬مشخص شده است تعیین گردد‪ .‬یکی از نکات مهم در ساخت دیکشنری توسط برنامه ‪crunch‬‬ ‫قابلیت انتخاب یک مجموعه از کاراکتر ها از یک لیست با مشخص کردن نام آن مجموعه است‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪107‬‬‫برای مشاهده فایل مربوط به لیست کاراکترهای پیش فرض به همراه نام آنها که توسط برنامه فوق ایجاد شده است می توان به مسیر‬‫‪ usr/share/rainbowcrack/charset.txt‬مراجعه کرد‪ .‬فرض کنید ما می خواهیم از مجموعه کاراکترهای زیر‬ ‫استفاده کنیم‬‫‪abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‬‬‫در فایل نام این مجموعه ‪ mixalpha‬است‪ .‬با استفاده از دستور شماره ‪ 1۶‬از لیست فوق برای تولید دیکشنری استفاده می کنیم‬ ‫دستور شماره ‪16‬‬‫>‪root@kali:~# crunch -f /path/to/charset.lst <charactersetname‬‬‫‪root@kali:~# crunch 8 8 -f /usr/share/rainbowcrack/charset.txt mixalpha -o /root/alphawordlist.lst‬‬ ‫‪2-3-4‬استفاده از برنامه محبوب ‪cewl‬‬‫با استفاده از ابزار فوق می توانیم با توجه به اطلاعاتی که خود تارگت در اختیار ما قرار می دهد یک دیکشنری قدرتمند ایجاد کنیم‪.‬‬‫در ایجاد یک دیکشنری این مهم است که بدانیم افرادی که هدف ما هستند به چه موضوعاتی علاقه مند هستند‪ .‬به عنوان مثال در‬‫سازمانی که مرتبط با مباحث ساختمان سازی است‪ ،‬داشتن لیستی از لغات مرتبط با مضمون ساختمان سازی شانس ما را در کشف‬‫پسورد های کارکنان سازمان فوق افزایش می دهد‪ .‬خیلی از مردم هنگام ساختن پسورد‪ ،‬از اسامی مربوط به نام خودشان و یا‬‫همسرشان و یا فرزندانشان‪ ،‬اسم خیابان ها و یا گل ها و یا واژه هایی که در فرهنگ آن کشور دارای یک نوع احترام خاص هستند‬‫استفاده می کنند‪ .‬برنامه ‪ cewl‬بدین منظور ساخته شده است‪ .‬بدین صورت که با مراجعه به وب سایت تارگت مورد نظر و جستجوی‬‫صفحات تمامی لغات سایت که طبیعتا درون آنها واژه های بسیاری مرتبط به نوع فعالیت تارگت است را به عنوان خروجی به ما باز‬ ‫می گرداند‪ .‬اجازه دهید به صورت مرحله وار نحوه استفاده از این ابزار را شرح دهیم‪.‬‬ ‫مرحله ‪ : 1‬دستور شماره‪ 11‬را در ترمینال وارد می کنیم‬ ‫دستور شماره ‪17‬‬‫‪root@kali:~# cewl –help‬‬ ‫برخی از سوئیچ های مهم برنامه عبارت است از‬‫‪root@kali:~# cewl –help‬‬‫بر‪m‬خ‪-‬ی‪:‬ازطوسولئیحچداقهالیکلمماهتمیبرکناهمبهرناعبماره بتهامسا مت ایز دهد را مشخص می کند و براساس تجربیات مقدار ‪ 7‬مقدار مناسبی می باشد‬‫‪: :-m-d‬عمطوقلاسحکدانق رلا کملمشاتخی کصهمبریناکمنهد‪.‬بهبرنمااممهیفودقهبادی راستمیشسخایصتمرای‪ l‬ک‪w‬ن‪a‬د‪r‬و‪ c‬بکراندساو مسقتداجرربی‪d‬اعتم مققایدارن ‪7‬کارم رقادانرشامنانسمبیی دمهیدباشد‬‫‪ ::--wd‬عممشق اخسکص کنرردانم فشایخلصخرمویج کینبدر‪.‬نابرمنهامه فوق بایستی سایت را ‪ crawl‬کند و مقدار ‪ d‬عمق این کار را نشان می دد‬ ‫مرحله ‪ : 2‬ساخت یک پسورد لیست دلخواه با استفاده از ‪cewl‬‬‫با توجه به لیست تارگت هایمان ما از دستور شماره ‪ 12‬برای ایجاد یک پسورد لیست استفاده می کنیم‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪108‬‬ ‫دستور شماره ‪18‬‬ ‫آدرس تارگت ‪root@kali:~# cewl -w customwordlist.txt -d 5 -m 7‬‬‫این دستور باعث خواهد شده تا برنامه تعدا ‪ 5‬صفحه از صفحات تارگت را با بررسی لغاتی با حداقل طول ‪ 7‬در نظر بگیرد و خروجی را در فایلی با نام‬ ‫‪ customwordlist.txt‬ذخیره کند‬ ‫‪ 3-3-4‬استفاده از برنامه ‪hashcat‬‬‫این برنامه برای شکستن پسورد های هش شده کاربرد دارد و روش استفاده از آنرا را به صورت مرحله به مرحله توضیح خواهیم داد‬ ‫مرحله ‪ : 1‬ابتدا در محیط گرافیکی کالی لینوکس به مسیر زیر رفته و برنامه را اجراء می کنیم(همانند شکل ‪)11‬‬ ‫‪Aplications -> Kali Linux -> Password Attacks -> Offline Attacks -> hashcat‬‬ ‫شکل شماره ‪19‬‬ ‫اگر از کالی لینوکس نسخه شماره دو استفاده می کنید بایستی از مسیر زیر برنامه را اجراء کنید‬ ‫‪Aplications -> -> Password Attacks-> hashcat‬‬‫دستور اصلی برای اجرای برنامه به صورت ‪ hashcat options hashfile mask|wordfiles|directories‬است‪ .‬در بخش‬‫‪ option‬می توان انواع گزینه ها را مشاهد کرد‪ .‬دو سوئیچ مهم در این برنامه که همواره استفاده می شوند سوئیچ های زیر هستند‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪109‬‬ ‫‪ : -m‬مشخص کردن نوع هش‬ ‫‪ : -a‬مشخص کردن نوع حمله‬ ‫مرحله ‪ : 2‬امکانات برنامه‬ ‫بعد از اجرای برنامه در بخش پایین دستور العمل اصلی استفاده از برنامه می توان روشهای بکارگیری قابلیت های برنامه در بهبود و‬ ‫افزایش سرعت شکستن پسورد ها را مشاهده کرد‪ .‬یکی از امکانات برنامه قابلیت استفاده از ‪ rules‬ها بروی فایل پسورد لیست است‪.‬‬ ‫(شکل شماره ‪ .)22‬با استفاده از ‪ rules‬ها می توان پسورد لیست ها را با هم ترکیب کرد و یا به ابتدا و انتهای آنها کاراکتر های‬ ‫خاصی را اضافه نمود‪.‬‬ ‫شکل شماره ‪21‬‬ ‫در ادامه می توان از یک ‪ character sets‬برای تولید پسورد لیست استفاده کرد‪ .‬اگر ما از سیاست پسورد گذاری سازمان با خبر‬ ‫هستیم می توان از یک نوع ‪ character sets‬مرتبط به سیاست سازمان استفاده کرد‪ .‬در ساده ترین حالت به عنوان مثال اگر‬ ‫کارکنان سازمان فقط حق استفاده از اعداد را در ساخت پسورد خود دارند می توان از نوع کاراکترهای عددی استفاده کرد‪( .‬شکل‬ ‫شماره ‪.)21‬‬ ‫شکل شماره ‪21‬‬ ‫در ادامه برخی از قابلیت های برنامه مانند مشخص کردن نوع خروجی و دیباگ برنامه را می توان مشخص کرد (شکل ‪.)22‬‬ ‫در نهایت برنامه لیستی از انواع مختلف هش را به ما نشان می دهد‪ .‬هر برنامه ای می تواند روش منحصر به فرد خود را در پسورد‬ ‫گذاری داشته باشد و بایستی هنگام استفاده از برنامه نوع هشی که به عنوان ورودی به برنامه داده می شود مشخص شود(شکل ‪.)23‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪110‬‬ ‫شکل شماره ‪22‬‬ ‫شکل شماره ‪23‬‬ ‫مرحله ‪ : 3‬فرض کنید قصد داریم تا از یک پسورد لیست موجود در سیستم عامل کالی لینوکس در جهت شکستن پسورد سیستم‬ ‫عامل لینوکس استفاده کنیم‪ .‬ابتدا دستور شماره ‪ 24‬را اجراء می کنیم تا تمامی فایل هایی با اسم ‪ wordlist‬موجود در سیستم‬ ‫عامل را مشاهده کنیم‬

111 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ 24 ‫دستور شماره‬root@kali:~# locate wordlist t/usr/lib/python2.7/dist-packages/nltk/corpus/reader/wordlist.py/usr/lib/python2.7/dist-packages/nltk/corpus/reader/wordlist.pyc/usr/local/lib/python2.7/dist-packages/nltk/corpus/reader/wordlist.py/usr/local/lib/python2.7/dist-packages/nltk/corpus/reader/wordlist.pyc/usr/sbin/remove-default-wordlist/usr/sbin/select-default-wordlist/usr/sbin/update-default-wordlist/usr/share/wordlists/usr/share/applications/kali-wordlists.desktop/usr/share/dict/README.select-wordlist/usr/share/dirb/wordlists/usr/share/dirb/wordlists/big.txt/usr/share/dirb/wordlists/catala.txt/usr/share/dirb/wordlists/common.txt……… .‫ استفاده کنیم‬sqlmap ‫ما قصد داریم از پسورد لیست برنامه‬‫ لینوکس‬local ‫ بیان شد بایستی مقادیر هش پسورد های سیستم عامل‬3 ‫ در این مرحله همانطور که در مرحله شماره‬: 4 ‫مرحله‬ ‫ را وارد می کنیم‬25 ‫ بدین منظور دستور شماره‬.‫را بدست بیاوریم‬ 25 ‫دستور شماره‬ root@kali:~# tail /etc/shadow systemd-resolve:*:16719:0:99999:7::: systemd-bus-proxy:*:16719:0:99999:7::: geoclue:*:16719:0:99999:7::: redis:*:16719:0:99999:7::: rwhod:*:16719:0:99999:7::: dnsmasq:*:16719:0:99999:7::: ali:!:16881:0:99999:7::: admin:!:16881:0:99999:7::: cowrie:*:16919:0:99999:7::: keramat:$6$0.4gl8NC$DHc.40xk9BkLzavVaZPeic/PhOtQJvV0Gj5uL4fHuhtBt.sQ/pCCKFMKPWhVXdqaVc1JCq3Y4GW .a6FZGyxSB.:16934:0:99999:7:::‫ این اطلاعات‬.‫در ادامه بایستی از روشی که سیستم عامل کالی لینوکس برای هش کردن پسورد ها استفاده می کند مطلع شویم‬john ‫ و یا استفاده از برنامه‬R&D ‫ روشهای مختلفی همانند‬.‫ به منظور شکستن پسورد کاربرد دارد‬hashcat ‫زمان تقابل با برنامه‬‫ است که مشخص می کند روش رمزنگاری استفاده از‬etc/login.defs ‫ اما یک روش دیگر مشاهده محتویات فایل‬.‫وجود دارد‬ .‫ است‬SHA512 ‫الگوریتم‬ .‫ محتویات فایل پسورد ها را درون یک فایل دیگر کپی می کنیم‬2۶ ‫ توسط دستور شماره‬: 5 ‫مرحله‬ 26 ‫دستور شماره‬ root@kali:~# cp /etc/shadow /roo/hashes.lst

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪112‬‬ ‫برای کرک کردن فایل ‪ hashes.lst‬نیاز است تا اطلاعات اضافه ای که در آن وجود دارد را پاک کنیم‪ .‬این اطلاعات شامل نام‬ ‫کاربری‪ ،‬مقدار ‪ salt‬و همچنین اطلاعات مربوط به مجوز های کاربر مربوطه است‪ .‬برای این کار فایل را باز کرده و مقادیر مربوطه را‬ ‫به صورت زیر حذف می کنیم تا تنها مقدار هش باقی بماند‬ ‫‪root:$6$PQBlg19C$Kwb5aFH.KZnix1hs4ZzovhlvvwxshGffpdGsNSj6K9Hal8cUzYqQodvhVUcM5H‬‬ ‫‪sivRvsD.ugmgKXjNsgIz7C5.:16721:0:99999:7:::‬‬ ‫تبدل می شود به ‪:‬‬ ‫‪$6$PQBlg19C$Kwb5aFH.KZnix1hs4ZzovhlvvwxshGffpdGsNSj6K9Hal8cUzYqQodvhVUcM5HsivRv‬‬ ‫‪sD.ugmgKXjNsgIz7C5.‬‬ ‫حال از دستور شماره ‪ 21‬برای استفاده از ‪ hashcat‬استفاده می کنیم‬ ‫دستور شماره ‪27‬‬ ‫‪root@kali:~# hashcat -m 1800 -a 0 -o cracked.txt --remove hashes.lst /usr/share/sqlmap/txt/wordlist.txt‬‬ ‫‪ : -m 1800‬مشخص کردن نوع هش که همان ‪ SHA512‬است‬ ‫‪ : -a 0‬مشخص کردن نوع حمله که دیکشنری است‬ ‫‪ : -o cracked.txt‬مشخص کردن خروجی برنامه‬ ‫‪ : --remove‬دستور فایل حاوی هش بعد از کرک شدن آن‬ ‫‪ : hashes.lst‬نام فایل ورودی برنامه‬ ‫‪ : /usr/share/sqlmap/txt/wordlist.txt‬میسر فایل دیکشنری‬ ‫به محض اینکه برنامه بتواند مقدار هش را کرک کند می توان فایل ‪ cracked.txt‬را باز نمود و پسورد را بدست آورد‪Hashcat .‬‬ ‫برای شکستن پسورد ها از ‪ CPU‬استفاده می کند‪ .‬برنامه ‪ oclhashcat‬نوع دیگری از برنامه فوق است که از ‪ GPU‬برای شکستن‬ ‫پسورد ها استفاده می کند و همانطور که در قبل ذکر شد سرعت آن به مراتب از نوع ‪ hashcat‬بیشتر است‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪113‬‬ ‫فصل پنج‬ ‫حمله به سرورهای ‪SSL/TLS‬‬ ‫در این فصل مباحثی بیان خواهند شده که مربوط آسیب پذیری های سرویس ‪ SSL‬است‪ .‬یک حمله عملی و‬ ‫خطرناک را نیز به سرور ‪ SSL‬انجام خواهیم داد‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪114‬‬ ‫‪ 5‬حمله به سرورهای ‪SSL/TLS‬‬ ‫‪ 1-5‬آسیب پذیری های ‪SSL‬‬ ‫در ده ماهی که از سال ‪ 2214‬میلادی گذشته است‪ ،‬چندین آسیب پذیری مهم در پروتکل ‪ SSL/TLS‬با حملات شناخته شده از‬ ‫جمله ‪ BEAST SSL‬شناسایی و معرفی شدهاند‪ .‬پروتکلهای امنیتی لایه حمل و نقل از جمله ‪ SSL‬و ‪ TLS‬وظیفه دارند محرمانگی‬ ‫اطلاعاتی که منتقل میکنند را حفظ نمایند‪ .‬پروتکل ‪ SSL‬تا حد زیادی قدیمی است و در سال جاری آسیب پذیریهای این پروتکل‬ ‫کشف و در حملات سایبری قدرتمندی مورد استفاده قرار گرفته است‪ TLS .‬از نسخههای جانشین و مابعد ‪ SSL‬میباشد و نسبت به‬ ‫‪SSL‬دارای مقاومت بیشتری است اما نسخه جدید ‪ TLS‬هنوز مانند نسخههای قدیمی ‪ SSL‬به صورت گسترده پشتیبانی نمیشوند‪.‬‬ ‫یکی از مشکلاتی که در حملات ‪ SSL/TLS‬وجود دارد این است که قربانی معمول ًا از وجود این حملات آگاه نیست و با اتصال به‬ ‫وبگاههای بانک و خرید برخط‪ ،‬اطلاعات محرمانه حساب کاربری خود را وارد میکند و مهاجم این اطلاعات را به صورت رمز نشده‬ ‫میخواند و میتواند به راحتی از آن ها سوء استفاده کند‪.‬‬ ‫طبق بررسی جدید شرکت‪ Trustworthy Internet Movement‬در طرح‪ ، PulseSSL‬هفتاد و پنج درصد سایتها در مقابل‬ ‫حمله ‪ BEAST SSL‬آسیبپذیر هستند‪ .‬این شرکت پیرو طرحی جدید با نام‪ ، PulseSSL‬کیفیت و ایمنی سایتهای برتر در سراسر‬ ‫اینترنت را بررسی کرده که طی آن ‪ 15‬درصد این سایتها در مقابل حمله ‪ BEAST SSL‬آسیبپذیر شناخته شده و تنها ‪ 12‬درصد‬ ‫از سایتهای بررسی شده‪ ،‬امن برآورد شدند‪ .‬طرح‪ ، PulseSSL‬مولفههای زیادی را در سایتهایی که در آنها ‪ SSL‬پیادهسازی شده‪،‬‬ ‫برای تعیین میزان امنیت آن سایت مورد بررسی قرار میدهد‪.‬‬ ‫این طرح بررسی میکند که هر سایت از کدام پروتکلهای ‪ TSL‬و ‪ SSL‬پشتیبانی میکند و آیا در مقابل حمله ‪ BEAST‬و دیگر‬ ‫حملات آسیبپذیر هست یا خیر‪ .‬اطلاعاتی که به وسیله این طرح جمعآوری شد نشانگر این است که اکثریت قریب به اتفاق از نزدیک‬ ‫به ‪ 222‬هزار سایت بررسی شده در این طرح‪ ،‬نیاز به کمک جدی برای رفع مشکلات مربوط به پیادهسازی ‪ SSL‬داشتند‪ .‬آمار‬ ‫نگرانکننده دیگری که به وسیله این طرح جمعآوری شد‪ ،‬نشاندهنده این است که تعداد ‪ 142‬هزار مورد از سایتهای بررسی شده‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪115‬‬ ‫در مقابل حمله ‪ BEAST‬آسیبپذیر هستند‪ .‬حمله مذکور توسط دو محقق به نامهای ‪ Juliano Rizzo‬و ‪ Thai Duong‬ایجاد شده‬ ‫که سال پیش افشا شد‪ .‬این حمله از ‪ chosen-plaintext‬استفاده میکند که علیه پیادهسازی ‪ AES‬در پروتکل ‪ TLS 1.0‬انجام‬ ‫میشود و برای حملهکننده امکان استفاده از ابزاری خاص برای سرقت و رمزگشایی کوکیهای ‪ HTTPS‬را فراهم میکند‪ .‬سپس‬ ‫حملهکننده میتواند درخواستهای ‪ SSL‬توسط قربانی به سایتهای تجارت الکترونیکی و یا اینترنت بانک را برباید‪ .‬حمله ‪BEAST‬‬ ‫بسیار پیچیده است‪ ،‬اما نگرانی جدی و واقعیت این است که سه چهارم از سایتهایی که در این طرح مورد بررسی قرار گرفتند‪ ،‬هنوز‬ ‫هم در معرض انواع حملات دردسرساز هستند‪ .‬این سایتها میتوانستند تنها با کاهش انتشار ‪ TSL 1.0‬میزان حملات را کاهش‬ ‫دهند و برای این کار لازم بود که تنظیمات سرورهایشان طوری باشد که در طی ارسال درخواستهای ‪ TSL 1.0‬و ‪ SSL 3.0‬تنها از‬ ‫حروف رمزی ‪ RC4‬استفاده کنند‪ .‬نگرانی بزرگ دیگر درباره اطلاعات به دست آمده از گزارش ‪ SSL Pulse‬این است که یک سوم از‬ ‫سایتهایی که از پروتکل ‪ SSL 2.0‬پشتیبانی میکنند ناامن تلقی میشوند‪ .‬متخصصان توصیه میکنند که به دلیل ضعف موجود در‬ ‫‪SSL 2.0‬از این ورژن استفاده نشود‪.‬‬ ‫شرکت ‪ Trustworthy Internet Movement‬در سال اخیر شکل گرفت که توسط ‪ Philippe Courtot‬مدیر عامل شرکت‬ ‫‪Qualys‬حمایت میشود و نیروهای متخصصی در زمینه ‪ SSL‬مانند ‪ Ivan Ristic‬از‪Moxie Marlinspike ، Qualys‬از‬ ‫‪Whisper Systems‬و ‪ Twitter‬و ‪ Adam Langley‬از ‪ Google‬عضو این مجموعه هستند ‪. Ristic‬در یک پست از سایت این‬ ‫مجموعه میگوید دادههای جمعآوری شده توسط این تحقیق قطعی نیست و این نشانه خوبی است از آنچه در سایتهای امن ‪SSL‬‬ ‫اتفاق میافتد‪ .‬وی بیان میکند‪\" :‬نتایج آزمونهای انجام شده در زمینه ‪ SSL‬که برای خلاصه کردن نتایج به دست آمده از کیفیت‬ ‫پیکربندی ‪ SSL‬انجام شده است‪ ،‬نشانگر این است که نزدیک به ‪ 52‬درصد (‪ 11123‬سایت) رتبه ‪ A‬دریافت کردهاند که نتیجه خوبی‬ ‫است‪ .‬این در حالی است که گزارش قبلی حاکی از این بود که ‪ 33‬درصد از سایتها به خوبی پیکربندی شدهاند‪ .‬این بدین معنی است‬ ‫که سایتهای محبوبتر امنتر شدهاند‪ .‬متاسفانه‪ ،‬بسیاری از سایتهایی که رتبه ‪ A‬دریافت کردهاند هنوز از ارتباطات ناامن استفاده‬ ‫میکنند (‪ 2522‬سایت یا ‪ 2,5‬درصد از سایتهای با پیکربندی خوب) و یا تعداد ‪ 12351‬یا ‪ 12,4‬درصد از این سایتها در مقابل‬ ‫حمله ‪ BEAST‬آسیبپذیر هستند‪.‬‬ ‫این آمارنشان میدهد که تنها تعداد ‪ 11224‬سایت (‪ 1,51‬درصد از کل سایتها) در این سطح از تجزیه و تحلیل واقعا امن هستند\"‪.‬‬ ‫آسیبپذیری دیگر ‪ POODLE‬است که به تازگی منتشر شده و از یک ضعف در مبنای تئوری ‪ SSLv3‬استفاده میکند‪ ،‬نه یک‬ ‫مشکل پیادهسازی‪ .‬به همین دلیل تنها راه برطرف کردن آن غیرفعال کردن کامل این پروتکل میباشد‪ .‬اصل مبنای تئوری این‬ ‫آسیبپذیری توسط ‪ Serge Vaudenay‬در سال ‪ 2221‬مطرح شد‪ ،‬اما او فکر میکرد که امکان استفاده عملی از این آسیبپذیری‬ ‫وجود ندارد‪ .‬هم اکنون یک روند عملی برای استفاده از این آسیب پذیری مطرح شده است‪ .‬این روند عملی‪ ،‬اگر چه پیچیده‪ ،‬ولی‬ ‫قطعی است (احتمالی نیست) و فراهم کردن همهی شرایط آن اگر چه نیاز به تلاش بسیاری دارد و نوشتن یک اسکریپت برای آن‬ ‫شاید سخت باشد‪ ،‬ولی کاملا شدنی است‪.‬‬ ‫شرایط لازم برای تحقق آسیب پذیری‪:‬‬ ‫تنها شروط پایه برای استفاده از این آسیب پذیری‪ ،‬این موارد است‪:‬‬ ‫حمله کننده در شبکه کاربر قرار گرفته باشد و بتواند درخواستها را مشاهده کند و تغییر دهد‪ .‬مثلا کسی که به رایانه یا مودم‬ ‫‪ADSL‬کاربر دسترسی دارد‪ ،‬یا دانشگاه یا ‪ ISP‬ای که کاربر با آن به اینترنت متصل است‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪116‬‬ ‫مرورگر کاربر )‪ (client‬از ‪ SSLv3‬پشتیبانی کند که همهی مرورگرهای قدیمی و جدید پشتیبانی میکنند‪.‬‬ ‫سایت مقصد (سرور) از ‪ SSLv3‬پشتیبانی کند که تقریبا همهی سایتها پشتیبانی میکنند‪ .‬نکته این جاست که مرورگر ‪ IE6‬تنها از‬ ‫‪SSLv3‬پشتیبانی میکند‪ ،‬و اگر سایتی این ویژگی را غیر فعال کند‪ ،‬مرورگرهای ‪ IE6‬دیگر امکان اتصال به آن را ندارند‪.‬‬ ‫از نظر تئوری‪ ،‬این آسیب پذیری اجازه میدهد که حمله کننده قسمتی از درخواست را (با اینکه رمز شده است) بخواند و تشخیص‬ ‫دهد‪ .‬این قسمت باید شرایط خاصی داشته باشد ولی برای مثال میتواند ‪ cookie‬کاربر باشد‪ .‬شرایط ثانویه استفاده از این آسیب‬ ‫پذیری موارد زیر است‪ .‬دقت نمایید که همهی این شرایط با فرض شماره ‪ 1‬قابل دستیابی هستند‪.‬‬ ‫حمله کننده میتواند هر کد >‪ <script‬دلخواه را در سمت کاربر اجرا نماید‪ .‬چون در شبکه قرار گرفته است‪ ،‬و مثلا میتواند اسکریپت‬ ‫دلخواه را در پاسخ یک درخواست( ‪ http‬که رمز نگاری نشده است) تزریق کند‪.‬‬ ‫حمله کننده باید بتواند یک درخواست را بدون تغییر‪ ،‬به دفعات زیاد در طرف کاربر اجرا کند‪ .‬درخواستهای کاربر اصولا شامل ‪url‬‬ ‫صفحه و ‪ header‬هاست‪ .‬هدرها هم اصولا ثابت هستند (مثلا ‪ Accept‬و ‪ User-Agent‬و ‪ .)...‬هدر ‪ Cookie‬هم که حمله کننده‬ ‫میخواهد به محتوای آن دستیابی پیدا کند اصولا (حداقل چند دقیقه) ثابت است‪.‬‬ ‫حمله کننده دقیقا باید بداند که هدف (مثلا مقدار هدر )‪ Cookie‬چند کاراکتر است و در کجای درخواست قرار دارد (از کاراکتر‬ ‫چندم تا چندم)‪ .‬حمله کننده با مشاهده درخواستهای رمز نگاری نشده و قبلی کاربر که ‪ http‬هستند‪ ،‬میتواند این اطلاعات را‬ ‫کسب کند‪.‬‬ ‫حمله کننده باید بتواند که با یکسان نگه داشتن طول درخواست‪ ،‬مقدار دلخواه خود را جلو و عقب ببرد (شیفت کند) حمله کننده‬ ‫به راحتی با اضافه کردن یک کاراکتر به ‪ url‬و تغییر ‪ body‬درخواست‪ ،‬میتواند این کار را انجام دهد‪ .‬دقت کنید که لازم نیست‬ ‫حمله کننده پاسخی دریافت کند‪ ،‬بنابراین ‪ CORS‬هم تأثیری ندارد‪.‬‬ ‫ریشه آسیب پذیری‪:‬‬ ‫بیشتر الگوریتمهای رمز نگاری مورد استفاده در ‪ SSL‬روی بلاکهای ‪ 2‬یا ‪ 1۶‬بایتی از داده کار میکنند‪ .‬در اینجا برای راحتی فرض‬ ‫میکنیم که از یک الگوریتم ‪ 1۶‬بایتی استفاده میشود‪ .‬بنابراین مثلا داده باید به تکههای ‪ 1۶‬بایتی تقسیم شود و عملیات رمز نگاری‬ ‫روی این بستههای ‪ 1۶‬بایتی انجام میشود‪ .‬چون ممکن است طول داده مضربی از ‪ 1۶‬نباشد‪ ،‬ابتدا باید با اضافه کردن چند کاراکتر‬ ‫اضافی به انتهای داده (که به آن ‪ padding‬میگویند)‪ ،‬طول آن را به مضربی از ‪ 1۶‬تغییر داد‪ .‬روش مورد استفاده در ‪ SSLv3‬این‬ ‫طور است که آخرین کاراکتر نشان میدهد که چند کاراکتر ‪ padding‬وجود دارد‪ ،‬برای مثال درخواست زیر را ملاحظه کنید‪( .‬در‬ ‫شکل شماره یک هر خط ‪ 1۶‬کاراکتر و بنابراین یک بلاک است)‬ ‫شکل شماره ‪1‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪117‬‬ ‫که در مثال بالا کاراکترهای مشکلی‪ ،‬خود درخواست)‪ ، (plaintext‬و کاراکترهای سبز‪ hash ،‬آن است (که برای ما مهم نیست)‬ ‫مقدار ‪ 123‬که با رنگ زرد مشخص شده‪ ،‬مقداری است که حمله کننده آنرا نمیداند و میخواهد آن را بیابد‪ .‬کاراکترهای قرمز‬ ‫‪padding‬هستند و آخرین کاراکتر که ‪ 23‬است‪ ،‬نشان میدهد که ‪ 3‬کاراکتر قبل آن نیز جزو ‪ padding‬است‪ .‬در ‪ SSLv3‬مقدار‬ ‫‪ 3‬کاراکتر قبلی اصلا مهم نیست (برای همین با ‪ XX‬نشان داده شده است) در صورتیکه در نسخههای بعد‪ ،‬این کاراکترها باید مساوی‬ ‫با همان کاراکتر آخر باشند‪ .‬همین تفاوت است که باعث آسیب پذیر شدن ‪ SSLv3‬شده است‪ .‬دقت کنید که در ‪ SSLv3‬کاراکترهای‬ ‫‪padding‬در ‪ hash‬محاسبه نمیشوند و این نکته هم یکی از مبانی این آسیب پذیری است‪.‬‬ ‫‪ 1-1-5‬نحوه استفاده از آسیب پذیری‬ ‫ابتدا حمله کننده باید طول درخواست را به گونهای تغییر دهد که یک کاراکتر (مثلا آخرین کاراکتر کوکی) در آخر یک بلاک قرار‬ ‫بگیرد (طبق فرضها او طول و جای کوکی را میداند)‪ .‬و ضمنا طول درخواست هم به گونهای باشد که یک بلاک کامل به ‪padding‬‬ ‫اختصاص داده شود‪( .‬شکل شماره ‪)2‬‬ ‫شکل شماره ‪2‬‬ ‫هر بلاک رمزنگاری نشده (یا ‪ )plaintext‬از ‪ P1‬تا ‪ P5‬نام گذاری شده است‪ .‬دقت کنید که حمله کننده با استفاده از جاواسکریپت‬ ‫میتواند ‪ url‬و ‪ body‬درخواست را تغییر دهد اما دسترسیای به محتوای ‪ cookie‬ندارد‪ .‬متن بالا برای برای ارسال به سرور در‬ ‫سمت کاربر (کلاینت) رمز میشود و محتوای رمز شده به سمت سرور ارسال میشود‪ .‬حمله کننده در بین راه محتوای رمز شده را‬ ‫چیزی مانند شکل شماره ‪3‬‬ ‫شکل شماره ‪3‬‬ ‫هر بلاک رمزنگاری شده (یا ‪ )ciphertext‬از ‪ C1‬تا ‪ C5‬نام گذاری شده است‪ .‬البته او میداند که بلاک آخر متناظر ‪ padding‬و‬ ‫بلاک ‪ C2‬هم متناظر با ‪ P2‬است‪ .‬به صورت پیشفرض ‪ SSL‬از روش ‪ CBC‬برای ‪ chain‬کردنِ بلاکها استفاده میکند‪(.‬شکل‬ ‫شماره ‪)4‬‬ ‫شکل شماره ‪4‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪118‬‬ ‫بنابراین حمله کننده میداند که این جملات صادق هستند‪:‬‬ ‫‪Encrypt(C1 ⊕ P2) = C2‬‬ ‫‪Encrypt(C4 ⊕ P5) = C5‬‬ ‫و میداند که ‪ P5[16] = 0x0F‬است‪ ،‬چون ‪ padding‬یک سطر کامل است‪ .‬در این حال حمله کننده (که بین کلاینت و سرور‬ ‫حائل شده است)‪ ،‬بلاک ‪ C5‬را (که متناظر با ‪ padding‬است) دستکاری میکند و آنرا مساوی ‪ C2‬قرار میدهد(شکل شماره ‪)5‬‬ ‫شکل شماره ‪5‬‬ ‫در این صورت خواهیم داشت‪:‬‬‫⊕ ‪C5 = C2 ⇒ Encrypt(C1 ⊕ P2) = Encrypt(C4 ⊕ P5) ⇒ C1 ⊕ P2 = C4 ⊕ P5 ⇒ P2 = C1 ⊕ C4‬‬‫‪P5‬‬‫سپس حمله کننده رشتهی جدید را به سرور ارسال میکند‪ .‬حمله کننده مقدار ‪ C5‬را (که رمز شدهی ‪ padding‬بوده) دستکاری‬‫کرده است و بنابراین مقدار ‪ padding‬را به رشته نامعلومی تغییر داده است‪ .‬اما میداند که سمت سرور فقط آخرین کاراکتر‬‫‪padding‬مهم است نه بقیه آن‪ .‬در بیشتر موارد مقدار کاراکتر آخر مخالف ‪x0F 2‬است و سرور تشخیص میدهد که پیام ارسال‬‫شده خراب شده است و ارتباط را قطع میکند‪ .‬اما از هر ‪ 25۶‬مورد یک مورد امکان دارد که کاراکتر آخر دقیقا برابر ‪x0F 2‬باشد‪ .‬در‬‫این صورت پیام‪ ،‬صحیح تلقی شده و پاسخ به کلاینت برگردانده میشود‪ .‬حمله کننده به راحتی (مثلا با بررسی اندازه پاسخ) میتواند‬‫تشخیص دهد که آیا این دستکاری‪ ،‬پیام را خراب کرده است یا نه‪.‬اگر پیام خراب نشده باشد‪ ،‬حمله کننده یک کاراکتر از کوکی را‬ ‫فهمیده است‪ ،‬چون میداند که‬‫]‪P2[16] = C1[16] ⊕ C4[16] ⊕ P5[16‬‬‫مقدار ‪ P5[16] = 0x07‬است و مقدار ‪ C1‬و ‪ C4‬نیز جزو( ‪ ciphertext‬درخواست رمز شده) است‪ .‬به این ترتیب حمله کننده‬‫حدودا با ‪ 25۶‬تلاش میتواند یک کاراکتر از کوکی کاربر را استخراج کند‪ .‬حال کاربر با اضافه کردن یک کاراکتر به ‪ url‬و حذف یک‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪119‬‬ ‫کاراکتر از ‪ body‬میتواند مقدار کوکی را یک کاراکتر به جلو شیفت کند و با تکرار روند بالا (حدودا ‪ 25۶‬درخواست) کاراکترهای‬ ‫کوکی را یک به یک استخراج نماید(شکل شماره ‪)۶‬‬ ‫شکل شماره ‪6‬‬‫بنابراین یک حمله کننده برای یافتن یک کوکی به طول ‪ 42‬کاراکتر‪ ،‬حدودا باید ‪ 12،222‬درخواست از سمت کاربر ارسال کند‪ .‬این‬ ‫تعداد بسیار کم است و با سرعت ‪ 22‬درخواست در ثانیه‪ ،‬در کمتر از ‪ 12‬دقیقه قابل انجام میباشد‪.‬‬ ‫‪ 2-5‬حمله ‪Heartbleed‬‬‫‪ Heartbleed‬یکی از آسیب پذیری های بسیار جدی و خطرناکی است که در برنامه های لایه کاربرد که از کتابخانه های سیستم‬‫رمزنگاری ‪ openssl‬استفاده می کنند وجود دارد‪ .‬این آسیب پذیری باعث خواهد شد تا مهاجم بتواند اطلاعاتی که محافظت شده‬‫اند را به سرقت ببرد‪ .‬این نوع حمله می تواند تحت شرایط عادی اتفاق بیافتد‪ SSL/TLS .‬فراهم کننده امنیت ارتباطات درون اینترنت‬‫است و توسط برنامه هایی چون ‪ IM ،mail ،web‬و یا ‪ VPN‬می تواند مورد استفاده قرار گیرد‪ Heartbleed .‬به یک مهاجم اجازه‬‫می دهد تا بتواند اطلاعات حافظه یا ‪ memory‬یک سرور آسیب پذیر را به صورت حمله از راه دور بخواند‪ .‬این حمله می تواند باعث‬‫نشست اطلاعاتی همچون پسوردهای هش شده و یا متن ساده‪ ،‬کلیه کلید های امنیتی‪ ،‬نام های کاربری و هر نوع اطلاعات دیگری‬ ‫که در مموری وجود دارد و از نظر مهاجم با اهمیت است را به خطر بیاندازد‪.‬‬‫در محیط آزمایشگاه ما این حمله را انجام دادیم و بدون داشتن هیچ گونه مجوزی برای دسترسی به اطلاعات و یا طی کردن هر نوع‬‫پروسه احراز هویت توانستیم اطلاعات درون حافظه سرورمان که شامل نام های کاربری و پسوردها‪ ،‬گواهینامه های ‪ ،X.509‬پیام ها‬‫و اطلاعات حساس مرتبط با مسائل تجاری در تخصص و کارمان را به سرقت ببریم‪ .‬تا زمانی که از نسخه آسیب پذیر‪open ssl‬‬‫استفاده می شود‪ ،‬بروز این حمله شدنی است و هر زمان که از نسخه های پچ شده آن استفاده گردد می توان انتظار امنیت را داشت‪.‬‬‫‪ CVE- 2014 – 0160‬مشخصه این باگ است‪ CVE .‬که مخفف ‪ Common Vulnerabilitis and Exposures‬است یک‬‫استاندارد برای نام گذاری آسیب پذیری هایی است که امنیت اطلاعات را به مخاطره می اندازند و توسط ‪ MITRE‬استفاده می شوند‪.‬‬‫این باگ ناشی از پیاده سازی یک توسعه از ‪ heartbeat‬در ‪ openSSL‬است‪ .‬زمانی که باگ موجود اکسپلویت می شود باعث آن‬‫خواهد شد تا اطلاعات موجود در مموری سرور به سمت کلاینت ارسال شود‪ .‬بنابراین وجود حمله ‪ Heartbleed‬ناشی از ضعف‬‫طراحی در پروتکل ‪ SSL/TLS‬نیست بلکه ناشی از اشتباهات برنامه نویسی می باشد‪ .‬در لیست شماره ‪ 1‬نسخه های آسیب پذیر‬‫‪ open ssl‬را مشخص کرده ایم و در لیست شماره ‪ 2‬سیستم عامل هایی که نسبت این باگ آسیب پذیری دارند و در لیست ‪1‬‬ ‫سیستم عامل هایی که باگ فوق را پچ کرده اند مشخص شده اند‬ ‫لیست شماره ‪7‬‬‫‪OpenSSL 1.0.1 through 1.0.1f (inclusive) are vulnerable‬‬‫‪OpenSSL 1.0.1g is NOT vulnerable‬‬‫‪OpenSSL 1.0.0 branch is NOT vulnerable‬‬‫‪OpenSSL 0.9.8 branch is NOT vulnerable‬‬

120 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ 8 ‫لیست شماره‬ 9 ‫لیست شماره‬ Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4 Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11 CentOS 6.5, OpenSSL 1.0.1e-15 Fedora 18, OpenSSL 1.0.1e-4 OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) and 5.4 (OpenSSL 1.0.1c 10 May 2012) FreeBSD 10.0 - OpenSSL 1.0.1e 11 Feb 2013 NetBSD 5.0.2 (OpenSSL 1.0.1e) OpenSUSE 12.2 (OpenSSL 1.0.1c) Debian Squeeze (oldstable), OpenSSL 0.9.8o-4squeeze14 SUSE Linux Enterprise Server FreeBSD 8.4 - OpenSSL 0.9.8y 5 Feb 2013 FreeBSD 9.2 - OpenSSL 0.9.8y 5 Feb 2013 FreeBSD 10.0p1 - OpenSSL 1.0.1g (At 8 Apr 18:27:46 2014 UTC) FreeBSD Ports - OpenSSL 1.0.1g (At 7 Apr 21:46:40 2014 UTC) .‫ را توضیح خواهیم داد‬Heartbleed ‫حال در ادامه روش عملی حمله‬ Heartbleed ‫ کالی و‬1-2-5‫ می توان لیستی از سایت های آسیب پذیر نسبت‬https://zmap.io/heartbleed/vulnerable.html ‫با مراجعه به سایت‬‫ آسیب پذیر هستند یا نه می‬Heartbleed ‫ برای اطمینان از اینکه آیا سایت های فوق نسبت به حمله‬.‫به حمله فوق را بدست آورد‬‫ ما یک تارگت‬.‫ بررسی کرد‬https://filippo.io/Heartbleed ‫ آنلاین مانند‬Heartbleed ‫توان سایت را توسط یک جستجوگر‬ )11 ‫ و‬12 ‫ (شکل های‬.‫را برای حمله انتخاب می کنیم‬11 ‫شکل شماره‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪121‬‬‫شکل شماره ‪11‬‬‫ابزار های زیادی در محیط کالی وجودا داردند تا بتوان یک حمله موفق را به سرانجام رساند اما ما همانند دستورات شماره ‪12‬‬ ‫عمل می کنیم‬ ‫دستورات شماره ‪12‬‬‫‪root@kali~# mkdir HeartbleedAttack‬‬‫‪root@kali~# cd HeartbleedAttack/‬‬‫‪root@kali~#wget https://github.com/HackerFantastic/Public/blob/master/exploits/heartbleed.c‬‬‫‪root@kali~# gcc heartbleed.c -o heartbleed -Wl,-Bstatic -lssl -Wl,-Bdynamic -lssl3 -lcrypto‬‬‫‪root@kali~# chmod +x heartbleed‬‬‫حال می توان توسط دستور شماره ‪ 13‬حمله را به تارگت مشخص شده انجام داد‬ ‫دستورات شماره ‪13‬‬‫]‪root@kali~# ./heartbleed -s [IP] -p [port] -f [output file] -v [verbose] -t [type‬‬‫‪root@kali~# ./heartbleed -s dedashka.org -p 636 -f output_ldap -v -t 1‬‬‫بر اساس نوع اطلاعاتی که در حافظه ذخیره شده است ما می توانیم نفوذ عمیق عمیق تری داشته باشیم‪ .‬به عنوان مثال حاصل‬‫اجرای دستور بالا شکل شماره ‪ 14‬است که در آن می توان مقادیری که مربوط به هش است و احتمالا پسورد هش شده یکی از‬ ‫کاربران سایت است را مشاهده کرد‪ .‬برای شکستن این هش می توان از تکنیک های فصل قبل استفاده کرد‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪122‬‬ ‫شکل شماره ‪14‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪123‬‬ ‫فصل پنج‬ ‫شرح فاز عملیاتی این پروژه – ساخت ‪HWS‬‬ ‫در این فصل علت تولید محصول بومی ‪ ،HWS‬روش نصب و کارکرد این محصول بیان می شود‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪124‬‬‫‪ 6‬شرح فاز عملیاتی این پروژه – ساخت ‪HWS‬‬‫در فصل چهار بیان شد که میزان موفقیت در کرک کردن یک صفحه لاگین و یا احراز هویت به یک نرم افزار همان قدری که به‬‫قدرت سخت افزاری سیستم وابسته است به وجود یک دیکشنری خوب نیز مربتط است‪ .‬چند در صد مردم از پسوردی که برای مودم‬‫خانگی خود برای دسترسی به شبکه ‪ wifi‬می گذارند در مکان های دیگری مانند ایمیل ها و یا صفحات وب استفاده می کنند‪ .‬بی‬‫شک با احتمال بالایی می توان گفت که داشتن یک دیکشنری از مقادیری چون ‪ SSID‬های واقعی افراد در سطح کشور و پسورد‬‫مرتبط با آن نقش موثری در بدست آوردن دسترسی های لازم دارند‪HWS .‬برنامه ای است که تمامی کد های آن توسط خودمان‬‫نوشته شده است و به زبان پایتون است‪ .‬این برنامه که دارای یک واسط گرافیکی مناسب است این امکان را به کابر می دهد تا با‬‫انتخاب یک رنج از آدرس های ‪ IP‬و مشخص کردن مقدار ‪ threading‬به تمامی روتر های ‪ ADSL‬با انواع مختلف آن شامل ‪TP-‬‬ ‫‪ Link‬و ‪ D-Link‬نفوذ کرده و در صورت برآورده شدن حداقل شرایط اطالعات زیر را استخراج کند‬ ‫اطلاعات لاگین صفحه وب‬ ‫‪‬‬‫نام کاربری برای اتصال به ‪ISP‬‬ ‫‪‬‬ ‫‪‬‬ ‫پسورد برای اتصال به ‪ISP‬‬ ‫‪‬‬ ‫مقدار ‪ SSID‬مودم‬ ‫‪‬‬ ‫‪‬‬ ‫کلید رمزنگاری مودم‬ ‫ترکیبی از مقادیر بالا‬‫این که چطور این محصول کار می کند در سورس کد های آن بصورت واضح مشخص است اما بایستی نحو نصب و عملکرد آن نشان‬ ‫داده شود‪.‬‬ ‫‪ 1-6‬نصب ‪HWS‬‬‫برای نصب این برنامه بایستی شرایط زیر مهیا باشد‬‫‪ ‬وجود یک سیستم عامل لینوکس با هر نوع توزیع‬ ‫‪ ‬وجود کامپایلر پایتون نسخه ‪2,1‬‬ ‫‪ ‬نصب برنامه ‪pip‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪125‬‬ ‫‪ ‬ارتباط با شبکه اینترنت‬ ‫ابتدا بایستی برنامه را در مسیر ‪ /root‬کپی کنیم‪ .‬سپس همانند شکل شماره ‪ 1‬به پوشه ‪ setup‬رفته و دستورات شماره دو را اجرا‬ ‫می کنیم‬ ‫شکل شماره ‪1‬‬ ‫دستورات شماره ‪2‬‬‫‪root@kali~# chmod +x setup.sh‬‬‫‪root@kali~# ./setup.sh‬‬‫بعد از اجرای دستور بالا برنامه شروع به نصب خواهد شد‪ .‬حال در پوشه اصلی برناه چندی پوشه و فایل است که عبارت است از‬ ‫‪ : Confi‬مربوط است به تنظیمات ذخیره سازی و فعال سازی برنامه‬ ‫‪ : Fonts‬فونت های فارسی برای ایجاد یک اینترفیس بومی‬ ‫‪ : Img‬پوشه تصاویر داینامیکی برنامه‬ ‫‪ : Modules‬ماژول های برنامه برای توسعه قابلیت های آن‬ ‫‪ : Passwords‬لیست پسورد های بدست آمده توسط برنامه‬ ‫‪ : Setup‬پوشه حاوی فایل نصب برنامه‬ ‫‪ : Password.txt‬فایل لازم برای کرک صفحات لاگین‬ ‫‪ : Hwc.c‬سورس کد های برنامه با پایتون نوشته شده اند و برای افزایش سرعت به ‪ c‬تبدیل شده اند‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪126‬‬ ‫بعد از نصب در پوشه اصی فایلی با نام ‪ hws1.0.1‬ایجاد می شود که یک برنامه اجرایی است‪ .‬بعد از اجرای آن در شکل شماره ‪3‬‬ ‫محیط برنامه را مشاهده می کنید‬ ‫شکل شماره ‪3‬‬ ‫بعد از فعال سازی برنامه محیط ‪ hws‬همانند شکل شماره ‪ 4‬خواهد بود‬ ‫شکل شماره ‪4‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪127‬‬ ‫حال میتوان یک رنج ‪ IP‬به برنامه داد تا آنها را اسکن کند وتمامی اطلاعات لازم را بدست بیاورد‪ .‬در شکل های ‪ 5‬تا روند‬ ‫اسکن و شناسایی و بدست آوردن اطلاعات توسط این برنامه نشان داده شده اند‬ ‫شکل شماره ‪ – 5‬مشخص کردن رنج ‪IP‬‬ ‫شکل شماره ‪ – 6‬اجرای برنامه و اسکن آدرسها توسط برنامه‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪128‬‬ ‫شکل شماره ‪ – 7‬بدست آوردن اطلاعات لاگین به ‪ ISP‬برای آدرس ‪89.165.103.37 IP‬‬ ‫شکل شماره ‪ – 8‬بدست آوردن مقدار ‪ SSID‬به همراه پسورد ‪wifi‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪129‬‬ ‫شکل شماره ‪ – 9‬کارایی و سرعت برنامه در بدست آوردن اطلاعات‬ ‫شکل شماره ‪ – 11‬ذخیره سازی نتایج‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪130‬‬ ‫‪ 7‬نتیجه گیری و پیشنهاد برای ادامه کار‬ ‫در این پروژه روشهای مختلفی را که در تست نفوذ پیشرفته بیان می شوند را مطرح کردیم‪ .‬در هر فصل مسیر‬ ‫هایی که بایستی ادامه دار باشند را مشخص کردیم‪ .‬به عنوان مثال در بخش شناسایی و معرفی ‪ ،Nmap‬درک‬ ‫تمامی قابلیت های بی نظیر این برنامه متن باز‪ ،‬توسعه آن و تا حتی بومی سازی آن می تواند خود یک پروژه‬ ‫مناسب باشد‪ .‬هر کدام از سرفصل های این پروژه می توانند در حالت کلی موضوعات تحقیقاتی برای چندین پروژه‬ ‫باشند‪ .‬به عنوان مثال در فصل دوم اطلاعات افراد را می توان در جهت به کارگیری روشهای مهندسی اجتماعی‬ ‫بکار برد و از لیست ایمیل ها جهت کرک کردن پسورد و از هاست ها به منظور اسکن آسیب پذیری بر اساس متد‬ ‫‪ OWASP‬برای شناسایی باگ ها و حفرهای امنیتی بهره مند شد‪ .‬در فصل بهره برداری با یک نمونه از روشهای‬ ‫اکسپلویت آشنا شدیم‪ .‬نمونه این حمله تعدادی از دامنه های بیان شده در فصل دوم را تهدید می کند که برای‬ ‫حفظ محرمانگی از بیان آنها خودداری می کنیم‪ .‬در فصل چهار نیز با انواع مفاهیم و روشهای حمله به سیستم‬ ‫هایی که توسط متد های رمزنگاری و پسورد محافظت می شوند آشنا شدیم‪ .‬با بهره مندی از مفاهیم این فصل و‬ ‫فراهم آوردن امکانات سخت افزاری می توان ‪ 12‬درصد از پسوردهای کاربران چه حقیقی و چه حقوقی را بدست‬ ‫آورد که نتیجه آن افزایش احتمال نفوذ به بستر شبکه های کابلی و بیسیم است‪ .‬در فصل پنج حمله ‪Heartbleed‬‬ ‫مطرح شد‪ .‬این حمله حجم وسیعی از سرورهای داخلی که بروی آنها ‪ ssl‬فعال است را تهدید می کند‪ .‬نمونه های‬ ‫زیادی در درگا های وب اپراتورها و شرکت های فراهم کننده زیر ساخت وجود دارد که مشکل فوق را دارند‪ .‬در‬ ‫فصل آخر نیز مطالب کلیدی مرتبط با فاز عملیاتی این پروژه بیان شد‪ .‬محصول ‪ HWS‬محصولیست که قابلیت‬ ‫توسعه دارد و در آن از تکنیک های هوش مصنوعی به منظور شناسایی دقیق تارگت و استخراج تمامی اطلاعات‬ ‫محرمانه استفاده شده است‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪131‬‬ ‫پیشنهادات ما برای ادامه این کار عبارت است از‬ ‫‪ ‬تست نفوذ تمامی درگاه های وب بدست آمده در فصل دوم بر اساس متد ‪ OWASP‬به علت حجم بالای‬ ‫آسیب پذیری های موجود در این سایت ها‬ ‫‪ ‬بررسی تمامی زیر ساخت های شبکه های ‪3G‬و ‪ 4G‬که از پروتکل ‪ TCP – IP‬استفاده می کنند‬ ‫‪ ‬توسعه محصول ‪ HWS‬ساخته شده در این پروژه که به صورت افزایش ماژولها است و باعث آن خواهد‬ ‫شده تا برنامه بتواند صفحات بیشتری را که روش لاگین کردن خود را دارند را بررسی کند و در صورت‬ ‫موفقیت در لاگین ایجاد کد های محاسباتی برای بدست اطلاعات محلی و غیر محلی‬ ‫‪ ‬ایجاد یک سیستم کرک پسورد قدرتمند ومرتبط با ‪ HWS‬به منظور ارتباط ‪ HWS‬با دیتابیس آن و‬ ‫سرعت در افزایش ساخت دیکشنری‬ ‫‪ ‬ساخت محصولاتی مشابه با برنامه ساخته شده ‪ HWS‬با این هدف که بتوانند به صورت هوشمند از سایت‬ ‫ها و هر نوع منابعی که از لغات فینگلیش استفاده می کنند به منظور ساخت دیکشنری ها بهره برداری‬ ‫کند‬ ‫‪ ‬ساخت یک اسکنر بومی برای تحلیل امنیت ‪ SSL‬مطابق با آنچه در فصل پنج این پروژه بیان شد‬

132 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ ‫ منابع‬8[1] – The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws2nd Edition - by Dafydd Stuttard (Author), Marcus Pinto (Author)[2] – Rtfm: Red Team Field Manual Paperback – February 11, 2014 by Ben Clark[3] –The Browser Hacker's Handbook 1st Edition by Wade Alcorn[4] – Black Hat Python: Python Programming for Hackers and Pentesters 1st Editionby Justin Seitz[5] – The Hacker Playbook 2: Practical Guide To Penetration Testing Paperback – June20, 2015 by Peter Kim[6] – Mastering Kali Linux for Advanced Penetration Testing Paperback – June 24, 2014by Robert W. Beggs[7] – Penetration Testing: A Hands-On Introduction to Hacking 1st Edition by GeorgiaWeidman[8] –Metasploit: The Penetration Tester's Guide 1st Edition by David Kennedy[9] – Violent Python: A Cookbook for Hackers, Forensic Analysts, Penetration Testersand Security Engineers 1st Edition by TJ O'Connor ‫سایت ها‬[1] – https://www.owasp.org/index.php/Main_Page[2] – http://null-byte.wonderhowto.com/[3] – https://www.offensive-security.com/[4] – https://www.exploit-db.com/[5] – https://github.com/

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪133‬‬ ‫‪[6] – https://pentest-tools.com/home‬‬


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook