پس از یک exploit موفق Meterpreter Shell به شما این امکان را خواهد داد تا بتوانید تحت remote shell کاملی که به سیستم هدف زده اید، کارهای مختلفی را انجام دهید. Meterpreter Shell برای دستکاری کردن سیستمی که به آن ارتباط ریموت دارید، عالی است بنابراین بسته به نوع هدفی که دارید معمولا Meterpreter Shell نسبت به یک remote terminal shell مستقیم ترجیح داده میشود.
Meterpreter مجموعه ای از دستورات و مولفه ای هایی را در اختیار میگذارد که با اجرایشان میتوانند کمک بزرگی را در تست های امنیتی بما بکنند. برای مثال دستوراتی وجود دارند که هش های پسورد را بدست آورده و داده و تنظیمات مرتبط را از سیستم جمع آوری میکنند. همچنین در کنار این دستورات به ظاهر جدی و خشن! برخی ابزارهای سرگرمی نیز وجود دارند که خود را در مجموعه Meterpreter گنجانده اند.
برای مثال شما میتوانید وبکم کاربر را روشن کنید و بوسیله آن عکس بگیرید، میتوانید میکروفن را روشن کنید و یا حتی از با اسکرین شات گرفتن از دسکتاب کاربر از فعالیت های او آگاه شوید. در این بخش سعی داریم تا مروری بر Meterpreter shell و برخی از قبلیت های آن داشته باشیم.
برای شروع کار از سیستمی شروع خواهیم کرد که قبلا در آن برنامه بکدور را اجرا کرده ایم ( ایجاد یک بکدور در قسمت های بعدی آموزش خواهد داده شد). هنگامی که برنامه بک دور اجرا میشود، با سیستم کالی ارتباط برقرار کرده و session ایجاد میشود. بعد از آن به نحوی که در زیر خواهید دید، به طور خودکار به درون session فعال شده، هدایت میشویم:
وقتی که به session فعال شده وارد شدیم، میتوانیم از محیط فرمان Meterpreter shell استفاده کنیم:
بسیار خوب؛ حال وقت ان است که ببینیم که Meterpreter shell چه کاری میتواند برایمان انجام دهد. بنابراین کار با با دستور help آغاز میکنیم تا ببینیم که چه دستوراتی را در اختیار داریم:
بعد از آن مجموعه دستوراتی را خواهید دید که به بخش های کوچگتری تقسیم شده اند. این دستورات شامل موارد زیر هستند:
در این بخش قصد نداریم تا تمامی مجموعه دستورات گفته شده را توضیح دهیم اما کمی ریزبینانه تر به آن ها مروری خواهیم داشت.
به عنوان یک کاربر مبتدی، به احتمال زیاد بیشتر دستورات background، help، load، migrate، run و exit از این لیست به کار شما میآید!
همچنین با استفاده از قالب دستوری "<# session –i <session " میتوانیم به session مورد نظرمان برگردیم.
وقتی که شما ارتباط meterprete shell دارید، با دو نوع فایل سیستمی سر و کار خواهید داشت؛ فایل های سیستمی محلی(لوکال) و ریموت. دستورات File System بشما این امکان را میدهند تا با هردوی آن ها تعامل و ارتباط داشته باشید.
اساسا شما میتوانید از دستورات استاندارد لینوکس برای جستجو و استفاده از فایل سیستمی استفاده کنید. اما چگونه میتوان بین سیستم محلی و سیستم ریموت برای پیوست کردن فایل ها تفاوت قائل شد؟تمام دستورات در سیستم ریموت استفاده میشوند. برای مثال برای دریافت لیست دایرکتوری سیستم ریموت، فقط کافیست دستور "ls" را تایپ کنید:
اگر بتوانید یک دایرکتوری با نام "test" در سیستم هدف (ریموت)درست کنید، میتوانیم به درون آن برویم و لیست محتویات داخل آن را ببینیم:
وقتی که شما نیاز به استفاده از فایل های سیستمی لوکال (سیستم کالی) دارید، دو دستور وجود دارند که بشما کمک خواهند کرد:
در بخش بعد سعی خواهیم کرد تا ضمن ادامه آموزش کار با Meterpreter shell، ابزارهای بیشتری را نیز در این محیط بشما معرفی کنیم. پس با ما همراه باشید.
خوب دوستان عزیز در قسمت پیش آخرین بحثی را که مورد آموزش قرار دادیم، دسترسی به دایرکتوری سیستم لوکال در Meterpreter shell بود. گفتیم که با کمک دو دستور زیر میتوانیم اینکار را انجام دهیم :
اما قبل از شروع ادامه بحث، پیشنهاد میکنم مجددا مطالعه ای به قسمت اول این آموزش داشته باشید تا بتوانیم با خیالی راحت قسمت دوم را شروع کنیم. پس با ما همراه باشید : برای بررسی دایرکتوری لوکالی را که الان در آن هستیم و تغییر مسیر به دایرکتوری دسکتاپ بر روی سیستم کالی، مراحل زیر را باید انجام دهیم:
قابلیت دانلود به ما این امکان را میدهد تا بتوانیم فایل هایی را از سیستم هدف بر روی سیستم خود دانلود کنیم و بلعکس قابلیت آپلود به ما اجازه میدهد تا به سیستم ریموت یا همان هدف فایل ارسال کنیم.بنابراین اگر قصد آپلود فایل را دارید، فقط کافیست که به دایرکتوری های مورد نظر در سیستم لوکال (کالی) و سیستم ریموت وصل شویم و دستور آپلود را اجرایی کنیم. قالب این دستور بصورت زیر میباشد:
در شکل بالا ما به دسکتاپ کالی و جایی که میخواهیم فایل هایمان را در کالی برای آپلود انتخاب کنیم، وصل شدیم. سپس به پوشه تست در سیستم هدف وصل شدیم و خیلی ساده با استفاده از دستور "Upload" فرمان انتقال فایل را صادر کردیم.
به عکس؛ عمل دانلود نیز در همان مسیری که گفته شد صورت می پذیرد؛ فقط کافیست که در دستور صادره عبارت download را جایگزین Upload کرده و در ادامه نام فایلی را که میخواهیم دانلود شود، بیاوریم. همه چیز برای دانلود فایل از سیستم ریموت یا همان هدف به سیستم کالی یا لوکالمان آماده ست:
خوب حالا میخواهیم در ادامه آموزشمان نگاهی بر Network Command بیاندازیم.
این دستورات بشما این امکان را میدهند تا برخی خصوصیات شبکه ای را ببینید و دستکاری کنید.
در زیر لیستی از دستورات سیستمی آورده شده است. در این آموزش مجال توضیح و پوشش تک تک آن ها را نداریم اما جهت اشنایی آن را مرور میکنیم:
ممکن است شما بخواهید تا تمام آثار و ردپاهای بجا مانده از نفوذ خود را از روی سیستم هدف پاک نمایید. اگر به لاگ های موجود در ویندوز 7 نگاهی بیاندازیم، متوجه خواهیم شد این لاگ ها پر از اتفاقات مختلف است:
برخی از این event ها ممکن است شامل همان کارهایی باشد که از نفوذ ما بجا مانده است. بنابراین میتوانیم بصورت ریموت و از راه دور از پشت سیستم کالی با تایپ عبارت "clearev" آن ها را پاک کنیم:
لاگ های اپلیکیشن، سیستم و امنیتی از بین میروند. اگر مجددا به لاگ های امنیتی نگاهی بیاندازیم، فقط یک رکورد را میتوانیم در آن مشاهده کنیم و آن رکورد "Log Clear" است:
اگر از Meterpreter استفاده میکنید، با این دو فرمان زیاد برخورد خواهید کرد:
بنابراین اگر عبارت "getpid" را تایپ کنید، خواهید دید:
این شماره ID فرآیندی است که شل شما از آن استفاده میکند. اگر عبارت "ps" را تایپ کنیم، میتوانیم تمام فرآیندهای در حال اجرا را ببینیم:
اگر لیست را بسمت پایین مرور کنیم، میتوانیم شماره pid 3824 را مشاهده کنیم:
در این شکل همچنین مشاهده خواهیم کرد که این فرآیند تحت فرآینده "powershell.exe" و کاربری "Fred" در حال اجراست.این اطلاعات زمانی بکار میآیند که بخواهیم از یک فرایند با سطح دسترسی پایین به یک فرایند با سطح دسترسی بالا تغیر حالت دهیم. ما میتوانیم شل فعالمان در این PID را به فرایندی که سطح دسترسی بالاتری دارد، منتقل (Migrate) کنیم. این انتقال که به "Migrating" معروف است، به ما این امکان را میدهد تا شل –مان- را در فرآیند پرکاربردتری دیگری ترکیب و یا مخفی کنیم و این در حالی است که این کار با ماهیت یک کانکشن مخفی صورت میپذیرد. "Explorer.exe" یکی از فرایندهای پرکاربردیست که معمولا به آن تغیر وضعیت میدهند.برای مثال شماره PID فرایندی که میخواهید از آن استفاده کنید را پیدا کنید ( در مثال ما 1736 است) و عبارت "<#Migrate <PID” را تایپ کنید:
در این مورد و دستورات Meterpreter در آینده بیشتر صحبت خواهیم کرد. فعلا قصد داریم تا در بخش بعد از این آموزش به اسکرین شات و استفاده از وبکم از راه دور بپردازیم. سربلند و مانا باشید.
کارشناس امنیت اطلاعات و ارتباطات
احسان امجدی ، مشاور امنیت اطلاعات و ارتباطات و تست نفوذ سنجی ، هکر کلاه سفید ، مدرس دوره های تخصصی امنیت اطلاعات و شبکه ، تخصص در حوزه های سرویس های مایکروسافت ، Routing و Switching ، مجازی سازی ، امنیت اطلاعات و تست نفوذ ، کشف جرائم رایانه ای و سیستم عامل لینوکس ، متخصص در حوزه SOC و ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود