در جلسه گذشته سعی کردیم به صورت کلی گامهای اولیه جهت توسعه ابزار تست نفوذ را شرح دهیم. همچنین به زبانهای برنامهنویسی و اسکریپتنویسی رایج نیز اشاره کردیم و در مورد ابزارهای پرکاربرد در حوزه جمع آوری اطلاعات نیز توضیحاتی را ارائه کردیم.
در گفتوگویی که به صورت تخصصی صورت گرفته بود به یک سری تاپیک و سرفصلهای کلی اشاره کردیم تا خوانندگان آشنایی بیشتری با فضای ابزارهای اسکنر برای سکوهای مختلف پیدا نمایند. در این مطلب نیز به بیان توضیحات بیشتری در مورد آنها خواهیم پرداخت.
گام دوم تست نفوذ Enumeration & Scanning
طبق قرارداد تست نفوذ که مابین تیم تست نفوذ و کارفرما منعقد میشود، دامنه کاری مشخص میگردد. همچنین در گام اول تمامی راههای ورودی به شبکه در دو زمینه وب و تجیزات شبکه لیست میشوند. در این گام است که تیم تست نفوذ شروع به ارزیابی نقاط ورودی میکند.
Port Scanning
همان طور که میدانید در گام اول برای اسکن کلیه نودهای شبکه، از اسکنرهای پورت استفاده میشود تا تیم مربوطه متوجه شود چه پورتی (درگاهی) بر روی نودها باز است. به دلیل آن که پورت هر سرویس میتواند تعویض گردد بنابراین لازم است ابتدا پورت اسکن شود و سپس گام بعدی اجرا شود.
میتوان گفت که در این خصوص 1 تا 65535 پورت قابل استفاده میباشد و پورتهایی که برای سرویسهای معروف رزرو شدهاند، تعدادشان بین 1 تا 1024 میباشد که امکان تغییر در سرویسهای متن باز و یا حتی سرویسهای ویندوزی را دارند. Nmap و Angry IP Scanner از ابزارهای پرکاربرد در این حوزه به شمار میآیند.
نکته: گاهی اوقات پیش میآید به عنوان فردی که در حال انجام تست نفوذ هستید با یک سری از محدودیتها روبرو شوید و در شبکهای که تست نفوذ انجام میدهید امکان استفاده از برخی ابزارها وجود نداشته باشد. در این زمان لازم است شما دانشی ابتدایی در خصوص اسکریپت نویسی داشته باشید.
همان طور که پیشتر هم اشاره کردیم هر سیستم عاملی دارای زبان اسکریپت مخصوص به خود است. در ویندوز Powershell امکان توسعه ابزار اسکن پورت را برای شما فراهم میکند و در Bash Script نیز این امکان را برای شما در لینوکس و خیلی از سیستم عاملهای شبکه و یا حتی سیستم عامل مکینتاش فراهم مینماید.
Service Scanning / Banner Grabbing
زمانی این مرحله صورت میگیرد که پورتها اسکن شوند، زیرا این امکان وجود دارد که برای سرویس SSH، ما از پورت 3306 که مربوط به پورت Mysql هست استفاده کنیم و در این شرایط تنها با Banner Grabbing یا اسکن سرویس قادر به شناسایی سرویس هستیم. همچنین بعضی از بنرهای سرویسها به صورت پیشفرض نسخه سرویس را برای ما نمایش میدهند.
نکته 1) به این مورد باید توجه داشته باشید که اگر در سازمان یا شبکه حساسی کار میکنید حتما در بکارگیری banner جدی باشید. زیرا یکی از پیگیریهای قضایی بکارگیری banner برای شرکت و سازمان خاصی است که فرد در حال اسکن آن میباشد، بنابراین باید بداند امکان پیگیری قضایی بر عملی که انجام میدهد در آینده وجود دارد. جالب است بدانید رِنج آیپیهای دولتی کشورهای آمریکایی و اروپایی همگی دارای بنرهای اخطار برای تست ابزارهای تست نفوذ هستند.
نکته 2) حتما با سرویسی که نصب میکنید نسخه سرویس را تغییر دهید یا پاک کنید. این اطلاعات به شخصی که تست نفوذ میکند کمک کرده و یا باعث میشود زمان بیشتر جهت کشف نسخه را از شخصی که هک میکند، بگیرد.
از ابزارهای پرکاربرد در این خصوص میتوان به Nmap و netcat و .. اشاره کرد.
Vulnerability scanning
هر سرویس شبکهای که نصب میشود دارای یک ورژن خاص میباشد. آسیب پذیریها نیز معمولا روی ورژنهای خاص سرویسهای شبکه یا ورژن خاصی از سیستم عاملها اتفاق میافتد. همچنین این عمل در وب نیز صادق است. اکسپلویتها برای ورژن خاصی توسعه داده میشوند و به اسکنرهای آسیب پذیر این اجازه را میدهند که به عنوان شخصی که تست نفوذ را انجام میدهد، ببیند سرویسهایی که در حال استفاده هستند آیا جزء ورژن آسیبپذیر به شمار میآیند یا خیر؟
نکته یک: گاهی اوقات نیز پیش میآید شما به عنوان شخصی که در حال تست نفوذ هستید، سرویسی را در شبکه پیدا میکنید که دارای نسخه آسیب پذیر هست و اسکنر نیز تشخیص میدهد که آسیب پذیری وجود دارد ولی شما قادر به اکسپلویت نیستید. این اتفاق به دلایل زیادی رخ می دهد.
جلوگیری توسط IPS Firewall یکی از این دلایل است یا حتی این امکان وجود دارد که اسکنر شما فقط از روی ورژن تشخیص داده باشد که آسیب پذیر است، ولی توسعه دهنده یا ادمین شبکه آن را بدون تغییر دادن ورژن پچ کرده باشد.
پس اتکای تنها به اسکنر نیز میتواند یک سری مشکلات را در پی داشته باشد و به اصطلاح True False را به ما دهد و ما را گمراه نماید یا حتی گاهی اوقات میتواند پیچیدهتر از این نیز باشد.
نکته دو: در ادامه نکته قبلی زمانی که شما از ابزارهای اسکن آسیب پذیری استفاده میکنید، خیلی از آسیب پذیریها را نیز پیدا میکنید ولی قابل سوءاستفاده یا بهره برداری نیستند. این مورد ممکن است به جهت honeypot باشد. بنابراین به عنوان تیم تست نفوذ نیاز هست که شما دوباره پس از اسکن آسیب پذیری نتایج را ارزیابی کنید تا مطمئن شوید که اشتباهی صورت نگرفته باشد.
از ابزارهای پرکاربرد در این خصوص میتوان به ابزارهای openvas و metasploit ، nmap و …اشاره کرد.
Service enumeration
enumeration یک فرآیند برای بدست آوردن اطلاعات جانبی از سیستم عامل، نرم افزار و سرویس میباشد. این اطلاعات به هکر و یا تیم تست نفوذ جهت اکسپلویت کمک بسیاری خواهد کرد که در ادامه به چند نمونه اشاره خواهیم کرد.
سرویسهایی مانند smb ssh snmp قابل enumerate هستند و میتواند کانفیگ دستگاه یا حتی یوزری که در سیستم میباشد را استخراج نماید و جهت اجرای حمله دیکشنری بهتر به تیم تست نفوذ کمک شایستهای نماید.
از ابزارهای پرکاربرد در این حوزه می توان بهmetasploit و nessus اشاره کرد.
Firewall Assessment
میدانید که فایروالها به مثابه مرز ورودی و خروجی در شبکهها به شمار میآیند. یکی از کارهایی که تیم تست نفوذ انجام میدهد نیز ارزیابی فایروال است به طوری که مشخص نماید آیا اجازه اسکن سرویسهایی که پشت فایروال قرار دارند وجود دارد یا خیر؟ یا آنکه فایروالها DLP یا امکان عدم افشای اطلاعات را دارند یا خیر؟ که البته لازم است این ارزیابی از بیرون و از داخل صورت گیرد.
از ابزارهای پرکاربرد در این زمینه میتوان به firewalk، hping و nmap ،p0f و Unicornscanner و… اشاره کرد.
Web technology
همان طور که در گذشته نیز اشاره کردیم Web technologyیکی از درگاههای ورودی و خروجی شبکه وب به شمار میآید. امنیت web نیز به چند عامل مهم بستگی دارد که شامل web application security ، server security، WAFو web server میشود که برای این موارد نیز اسکنرهای مختلفی داریم.
اسکنرهای وب مختلفی وجود دارد که میتوان توسط آنها وبها را اسکن کرد. همچنین میتوان از قابلیت تولید گزارش آنها نیز استفاده کرد. خیلی از اسکنرها نیز قابلیتهای مختلف اسکن پورت و حتی دیکشنری اتک را به ما میدهند.
در زیر لیستی از اسکنرهای محبوب وب را آوردهایم که از قیمتهای مختلفی برخوردارند. در این بین burp suite دارای دو نسخه رایگان و پولی میباشد که شما میتوانید آن را از سایت دانلود کنید. علاوه بر اسکن قابلیتهای مختلف دیگری از قبیل fuzzing را نیز در اختیار ما قرار میدهد و به عنوان یک proxy عمل میکند و به این صورت ما اصطلاحا قادر به تستهای دستی بر روی وب خواهیم شد. این مورد نیز به دلیل آن است که بسیاری از اسکنرها signature های مشخصی دارند و توسط فایروالها WAF IDS قابل شناسایی و ban شدن هستند.
در این خصوص ما ابزار burp suite را برای ارزیابی بهتر پیشنهاد میکنیم، زیرا این ابزار علاوه بر تولید گزارش برای شما، پلاگینهای مختلف جهت اسکن وب و شبکه را نیز دارا میباشد. تنوع پلاگینهای مجانی و پولی این ابزار بسیار بالا میباشد همچنین اگر دانش جاوا را نیز داشته باشید قادر به توسعه پلاگین برای خود خواهید بود.
- Acunetix
- Netsparker
- Hp web inspect
- IBM App Scan
- core impact
- burp suite
نکته اول: اگر به عنوان white box در حال ارزیابی سورس کد وب هستید، میتوانید علاوه بر مشاهده سورس و بررسی آسیب پذیریها از ابزار hp code analysis نیز استفاده کنید.
nikto/webshang نیز برای اسکن وب سرور و پلاگینهایی که روی وب سرور نصب شدهاند بسیار پرکاربرد هستند زیرا همان طور که اشاره کردیم یکی از فاکتورهای امنیت وب را وب سرور تشکیل میدهد.
OS scanning (smart phone os, server/client , NOS ,embedded OS)
برای اسکن سیستم عاملها نیز همان طور که پیشتر گفتیم باید پورت و سرویس را اسکن کنیم. به دلیل آنکه اگر سیستم عاملها security base line اولیه را داشته باشند با نصب هر سرویس امکان آسیب پذیر کردن سیستم عامل وجود دارد، بنابراین باید کلیه سرویسهایی که روی سیستم عامل نصب شدهاند، ارزیابی شوند.
از ابزارهای پرکاربرد جهت اسکن سیستم عاملها نیز میتوان به namp metasploit و .. اشاره کرد.
Hardware Tools
جهت اسکن شبکه نیز از یک سری سختافزارها استفاده میشود که در ادامه به چند سختافزار پرکاربرد در این زمینه اشاره خواهیم کرد.
- HackRf SDR: ابزاری است که از آن جهت اسکن و شنود شبکه SDR software define radioاستفاده میشود.
- Alfa network adapter: از این ابزار نیز جهت اسکن شبکه وایرلس ( تست نفوذ وایرلس) استفاده میشود.
- arduino: نیز جهت ساخت سختافزار برای اسکن در شبکه IoTمانند پیدا کردن پینهای UARTمورد استفاده قرار میگیرد.
- ubertooth:نیز قابلیت اسکن شبکه بلوتوث و قابلیت replayدارد.
- zigbee apimote:جهت اسکن شبکه zigbee و قابلیت replay وجود دارد.
- raspberry pi: جهت پیاده سازی اسکن و ارزیابی دیجیتال در دستگاههای IoT استفاده میشود.
- beagle bone: نیز جهت debugging ARMبکار رفته و قابلیت ارزیابی آنالوگ در دستگاههای IoT را دارد.