اخطار
تمامی مطالب ذکر شده در این مقاله صرفا جنبه آموزشی داشته و نویسنده هیچگونه مسئولیتی در قبال استفاده نادرست از مطالب را ندارد!
واژه «هکر» در گذشته در معنایی متفاوت با امروز به کار گرفته میشد و به کسی گفته میشد که با دستکاری خلاقانه در وسایل و تجهیزات، عملکرد آنها را بهبود میبخشد. این واژه در دهه ۶۰ میلادی وارد حوزه برنامهنویسی و امنیت شد و به مرور معنایی متفاوت به خود گرفت: در تعریف امروز هکر کسیست که سعی در ایجاد شکاف در عملکرد دفاعی یک برنامه و استفاده از نقاط ضعف سیستمها یا شبکههای کامپیوتری دارد. هکرها قدرت زیادی در کنترل شبکههای کامپیوتری دارند.
تست نفوذ (Penetration test) به فرآیند شبیهسازی یک حمله سایبری بر روی یک سرور یا شبکه کامپیوتری گفته میشود. هدف این کار شناسایی نقاط ضعف (یا به عبارتی آسیبپذیریها) و نقاط قوت سیستم است تا با رفع مشکلات، از حملههای آتی هکرها و بهرهمندی غیرمجاز آنها از سیستم، جلوگیری به عمل آید.
ابزارهای تست نفوذ هم، نرمافزارها و اسکریپتهایی هستند که به هکرها و متخصصان امنیت کمک میکنند تا آسیبپذیریهای مختلف را در سطح اپلیکیشن، نرمافزار، سرور و شبکه پیدا کنند. تنوع خوبی از این ابزارها را میتوان در دنیای وب پیدا کرد به خصوص که بسیاری از آنها هم متنباز (Open Source) هستند.
آزمون تست نفوذ با سیستمعاملهای لینوکسی، همیشه بهترین گزینه برای کارشناسان امنیت و هکرها بوده است. اکثر ابزارهای تست نفوذ برای نسخههای مختلف لینوکس طراحی شدهاند و بعضی از این توزیعها، خودشان ابزارهای امنیتی متعددی را از قبل برای شما فراهم کردهاند.
کالی لینوکس یک توزیع مبتنی بر Debian است که در حوزه امنیت بسیار کاربردی است. ابزارهای بسیار زیادی در مخازن این سیستم عامل وجود دارد که می تواند در مراحل آزمون تست نفوذ مورد استفاده کارشناسان قرار گیرد.
ما نیز در این مقاله برای تست نفوذ از کالی و برای تولید بدافزار مورد نظر خود از ابزار مهندسی اجتماعی موسوم به سِت Social Engineering Toolkit :: SET که بخشی از فریم ورک قدرتمند متاسپلویت Metasploit است استفاده کرده ایم. هدف این مقاله نفوذ به سیستم قربانی با استفاده از یک بدافزار است.
نیازمندی ها:
· کالی لینوکس (به عنوان سیستم عامل هکر)
· ویندوز 7 (به عنوان سیستم عامل قربانی)
· فلش مموری (به عنوان وسیلهی انتقال بدافزار)
· ارتباط تحت شبکه بین هکر و قربانی
شماتیک کلی عملیات
ماشین قربانی با IP: 192.168.1.7/24 و ماشین هکر با IP:192.168.1.85/24 کانفیگ شده است. ابتدا باید هکر از ماشین قربانی یا هدف Ping بگیرد تا از برقراری ارتباط تحت شبکه مطمئن شود.
سپس ابزار SET را اجرا و مراحل را به ترتیب زیر پی میگیریم.
گزینه 1
گزینه 4
گزینه 2
آدرس IP ماشین هکر و شماره پورت دلخواه را وارد میکنیم. ما از پورت 80 که برای HTTP است استفاده کردهایم.
سپس SET شروع به تولید فایل Payload.exe (بدافزار) میکند. این فایل در مسیر زیر قرار میگیرد:
/root/.set/payload.exe
پوشهای با نام set. به صورت پیشفرض در کالی مخفی است. برای مشاهدهی آن باید در مسیر root از کلید های ترکیبی Ctrl + H استفاده کنید تا پوشه های مخفی قابل رویت شود. سپس این فایل payload را در فلش مموری کپی کرده و به ماشین قربانی منتقل میکنیم. قبل از اینکه آن را در ماشین قربانی اجرا کنید باید به SET دستور دهید تا شروع به گوش دادن listening در شبکه کند.
برای این کار y یا yes را مینویسیم
کمی باید صبر کنیم تا متاسپلویت شروع به کار کند.
هر وقت به این مرحله رسیدیم میتوانیم فایل payload را در ماشین قربانی اجرا کنیم.
به محض اجرا شدن payload در ماشین هدف، یک نشست session یا ارتباط بین ماشین هدف و هکر برقرار میشود که در ماشین هکر قابل مشاهده و انتخاب است.
بعد از انتخاب نشست session مورد نظر، هکر به ماشین قربانی دسترسی پیدا کرده و میتواند آن را کنترل کند. در صورت ریستارت شدن ماشین قربانی، این نشست یا ارتباط قطع میشود. لذا برای برقراری مجدد ارتباط باید قربانی دوباره فایل payload را اجرا کند.
در طول یک نشست بین هکر و قربانی، بدافزار ما که همان فایل payload.exe است در سیستم قربانی در حال اجرا و ارسال/دریافت اطلاعات با سیستم هکر است. برای آنکه این نشست خاتمه یابد باید قربانی به صورت دستی و از طریق Task Manager آن را متوقف کند.
ارتباط بین هکر و قربانی از نوع TCP بوده و اطلاعات ارسالی/دریافتی با نرمافزار وایرشارک Wireshark قابل دستگیری و تحلیل است.
میتوان از سیستم قربانی shell گرفت. با shell دایرکتوری های ماشین قربانی قابل دسترسی خواهد بود.