Try Hack Box
5.9K subscribers
685 photos
65 videos
125 files
692 links
1 Nov 2020
1399/08/11
آموزش تست نفوذ و ردتیم

https://linkedin.com/company/tryhackbox-org/

یوتیوب
https://youtube.com/@tryhackbox

کانال ها :
@TryHackBoxOfficial ( نقشه راه )
@TryHackBoxStory ( اخبار و داستانهای هک )
پشتیبانی : @ThbxSupport
Download Telegram
Exploit Rankings

Rapid7
اکسپلویت ها را در متاسپلویت بر اساس احتمال موفقیت رتبه بندی کرده اند. در زیر گزیده ای از ویکی Metasploit GitHub آمده است.

Excellent :
اگر اکسپلویت هرگز سرویس را خراب نمی کند، باید از ExcellentRanking استفاده شود. این مورد برای SQL Injection، اجرای CMD، RFI، LFI، و غیره است. هیچ گونه سوء استفاده معمولی برای تخریب حافظه نباید این رتبه بندی داده شود، مگر اینکه شرایط فوق العاده ای وجود داشته باشد (WMF Escape()).

Great :
اگر اکسپلویت دارای یک تارگت پیش‌فرض باشد و تارگت مناسب را به طور خودکار شناسایی کند یا پس از بررسی نسخه از یک آدرس بازگشتی خاص برنامه استفاده کند، باید از GreatRanking استفاده شود.

Good :
اگر اکسپلویت یک تارگت پیش‌فرض داشته باشد و «مورد مشترک» برای این نوع نرم‌افزار باشد (انگلیسی، ویندوز XP برای یک برنامه دسکتاپ، 2003 برای سرور، و غیره) باید از GoodRanking استفاده شود.
Normal :
اگر اکسپلویت در غیر این صورت قابل اعتماد است، اما به یک نسخه خاص بستگی دارد و نمی تواند به طور قابل اعتماد به طور خودکار شناسایی شود (یا به طور خودکار شناسایی نمی شود)، باید از NormalRanking استفاده شود.
Average :
اگر اکسپلویت به طور کلی غیرقابل اعتماد یا استفاده از آن دشوار است، باید از AverageRanking استفاده شود.
Low :
اگر بهره برداری از اکسپلویت برای پلتفرم های رایج تقریبا غیرممکن باشد (یا کمتر از 50%)، باید از LowRanking استفاده کرد.
Manual :
اگر اکسپلویت بسیار ناپایدار یا دشوار است و اساساً یک DoS است، باید از ManualRanking استفاده شود. این رتبه بندی همچنین زمانی استفاده می شود که ماژول هیچ استفاده ای نداشته باشد مگر اینکه به طور خاص توسط کاربر پیکربندی شده باشد (به عنوان مثال: php_eval).

منبع :
https://github.com/rapid7/metasploit-framework/wiki/Exploit-Ranking/ddd025ad1c34501b923253a0652cb003d7404b03
#Metasploit
@TryHackBox
Metasploit Exploits:Looking at Windows Server Service Exploit


حالا بیایید به یک ماژول اکسپلویت خاص متاسپلویت نگاه کنیم و کد Ruby آن را در یک ویرایشگر متن باز کنیم. ما روی یک ماژول Metasploit تمرکز می کنیم که PsExec را برای اجرای کد از راه دور بر روی یک ماشین ویندوز تارگت با استفاده از SMB پیاده سازی می کند.

برای باز کردن ماژول در gedit از این دستورات استفاده کنید:

$ gedit /opt/metasploit-framework/modules/exploits/windows/smb/psexec.rb


به عنوان یک تستر نفوذ حرفه ای یا هکر اخلاقی، معمولاً ایده خوبی است که قبل از اجرای کورکورانه کد یک اکسپلویت بر روی یک تارگت، آن را بررسی کنید تا بتوانید عملکرد آن را بهتر درک کنید.

در داخل کد اکسپلویت، شروع به صفحه‌بندی پایین کنید. خواهید دید که کد کاملاً مستند است و در اکثر موارد قابل درک است حتی اگر روبی را نشناسید. می‌توانید توضیحاتی درباره نحوه عملکرد آن در نزدیکی موردی که روی آن توضیح داده شده است، مشاهده کنید. این اکسپلویت از یک نام کاربری و رمز عبور ادمین معتبر (یا هش رمز عبور) برای اجرای پیلود متاسپلویت بر روی ماشین تارگت استفاده می کند.

با ادامه کد اکسپلویت، می‌توانید مراجع مختلفی را مشاهده کنید تا بتوانید درباره آسیب‌پذیری‌هایی که اکسپلویت تارگت قرار می‌دهد، از جمله شماره CVE آن (قابل جستجو در cve.mitre.org) و شماره شناسه Bugtraq آن (در صورت اختصاص دادن) اطلاعات بیشتری کسب کنید. . در ادامه، می توانید نویسنده این اکسپلویت را ببینید («hdm» به HD Moore اشاره دارد). همچنین می توانید انواع مختلف تارگت را مشاهده کنید که نشان دهنده سیستم عامل خاصی است که اکسپلویت در برابر آن عمل می کند. همچنین می توانید وابستگی ها و فراخوانی های مختلف به ماژول های دیگر ساخته شده توسط این اکسپلویت را مشاهده کنید.

#Metasploit
@TryHackBox
Metasploit Payloads:Windows Singles


بیایید زرادخانه پیلود سینگل ویندوز را در نظر بگیریم. به یاد داشته باشید، هر یک از این پیلودها مستقل هستند، شامل تمام قابلیت‌ها برای بارگذاری پیلود در حافظه تارگت، برقراری ارتباط با مهاجم و انجام پیشنهادات مهاجم بر روی سیستم تارگت. این پیلود های سینگل عبارتند از:

• adduser:
همانطور که از نامش پیداست، این payload یک حساب کاربری با نام و رمز عبور به انتخاب مهاجم ایجاد می کند و آن حساب را به localgroup Administrators اضافه می کند. می توانید این اسکریپت روبی را در gedit (gedit adduser.rb) باز کنید و کد آن را بررسی کنید. اگر این کار را انجام دهید، دستوراتی را خواهید دید که روی تارگت اجرا می شود:

"cmd.exe /c net user #{user} #{pass} /ADD" and "net localgroup Administrators #{user} /ADD".

• exec:
این payload فرمانی را که مهاجم انتخاب می کند بر روی ماشین تارگت اجرا می کند.
• download_exec:
این payload یک برنامه را از طریق HTTP به ماشین مورد نظر دانلود می کند و سپس برنامه دانلود شده را اجرا می کند.
• dns_txt_query_exec:
یک دستور را از طریق رکورد DNS TXT دانلود کرده و اجرا می کند.
• shell_bind_tcp:
این payload دسترسی شل cmd.exe را از طریق یک پورت TCP شنود در ماشین قربانی فراهم می کند.
• shell reverse tcp:
این payload یک اتصال شل معکوس به مهاجم ایجاد می کند و دسترسی شل ورودی به ماشین تارگت را از طریق outbound اتصال TCP به مهاجم برمی‌گرداند.

مفید برای زمانی که استیج یا استیجر شما توسط یک ابزار دفاعی علامت گذاری می شود.

#Metasploit
@TryHackBox
👍1
Metasploit Payloads:Windows Stagers


مرحله‌گرها قطعات محموله‌ای هستند که می‌توانند بقیه پیلود را در حافظه تارگت بارگذاری کنند و سپس توانایی‌های ارتباطی مفیدی را بین مهاجم و پیلود بارگذاری‌شده فراهم کنند. Metasploit مراحل مفید زیر را ارائه می دهد:

• bind_tcp:
این مرحله‌گر به یک پورت TCP ارائه‌شده توسط مهاجم در ماشین تارگت گوش می‌دهد و به متاسپلویت اجازه می‌دهد تا برای ارتباط با استیج، به این پورت متصل شود.
• bind_ipv6_tcp:
این مرحله مشابه bind tcp است اما از IPv6 به جای IPv4 برای ارتباطات شبکه استفاده می کند.
• reverse_tcp:
این مرحله‌گر یک اتصال TCP خروجی را از ماشین تارگت به مهاجمی که متاسپلویت را اجرا می‌کند، ایجاد می‌کند. ارتباطات ورودی را از طریق یک اتصال خروجی پیاده سازی می کند.
• reverse_ipv6_tcp:
این مرحله مشابه reverse_tcp است اما از IPv6 استفاده می کند.
• reverse_http:
این مرحله‌گر جلسه‌ای را با استفاده از outbound HTTP از سیستم اکسپلویت شده به مهاجم برمی‌گرداند و از طریق فایروال شبکه و/یا پروکسی وب، شبکه را طی می‌کند.
• reverse_https:
این مرحله‌گر جلسه‌ای را با استفاده از outbound HTTPS با تمام داده‌های رمزگذاری‌شده در stager انجام می‌دهد.
• reverse_tcp_allports:
این مرحله‌گر سعی می‌کند در تمام پورت‌های TCP خروجی (از 1 تا 65535) در تلاش برای بازگشت به مهاجم برای ارسال دستورات به stager باشد.


همانطور که از این لیست می بینیم، متاسپلویت با حملات IPv6 سازگار است. هر اکسپلویت و مرحله ای می تواند از یک stager IPv6 استفاده کند که به مهاجم اجازه می دهد با سیستم اکسپلویت شده از طریق شبکه IPv6 ارتباط برقرار کند.

خلاصه :

• Windows stagerشامل:
- bind_tcp:
در پورت TCP گوش می دهد
- bind_ipv6_tcp:
با استفاده از IPv6 به پورت TCP گوش می دهد
- reverse_tcp:
اتصال به پورت TCP را معکوس می کند
- reverse_ipv6_tcp:
TCP را از IPv6 معکوس می کند
- reverse_http:
جلسه خروجی را روی اتصالات HTTP انجام می دهد
- reverse_https:
جلسه خروجی را روی اتصالات HTTPS انجام می دهد
- reverse_tcp_allports:
سعی می‌کند به connecting back,شود، از تمام پورت‌های TCP استفاده کند (l تا 65535)
• متاسلویت دارای IPv6 با استفاده از مراحل ipv6 است. همه اکسپلویت ها و مراحل می توانند از این گزینه های مرحله برای حملات به شبکه های IPv6 استفاده کنند
خواندن توصیه می شود:
https://buffered.io/nosts/staged-vs stageless-handlers/
#Metasploit
@TryHackBox
Metasploit Payloads:Windows Stages


کار stager's این است که یک stage را در حافظه بارگذاری کند و توانایی های ارتباطی را برای آن فراهم کند. مرحله عملکردی است که مهاجم می‌خواهد روی ماشین تارگت اجرا کند و به مهاجم اجازه می‌دهد با آن تعامل داشته باشد و احتمالا ماشین تارگت را کنترل کند. اما متاسلویت چه مراحلی را به تسترهای نفوذ و هکرهای اخلاقی ارائه می دهد؟ ما چندین گزینه برای دستگاه های ویندوز داریم، از جمله:
• dllinject:
این مرحله یک DLL به انتخاب مهاجم را به حافظه ماشین تارگت تزریق می کند. هر چند مهاجم برای استفاده به یک DLL ارزشمند نیاز دارد - شاید کد سفارشی که مهاجم فقط برای این آزمایش یا این تارگت نوشته است.
• upexec:
این مرحله یک فایل اجرایی را در ماشین مورد نظر آپلود می کند و آن را اجرا می کند.
• shell:
این مرحله یک شل استاندارد cmd.exe را پیاده سازی می کند. بنابراین، همانطور که مشاهده کردید که یک saw و couple یک اسلاید به عقب می‌روند، شما یک پیلود singles shell_bind_tcpو همچنین یک مرحله شل دارید که می‌تواند از طریق bind_tcp stager بارگذاری شود. هر دو دارای عملکرد ضروری یکسانی هستند: یک cmd.exe که به یک پورت TCP به انتخاب مهاجم گوش می دهد.
• vncinject:
این مرحله به محاسبات شبکه مجازی (VNC) از راه دور کنترل تارگت را می دهد و به مهاجم اجازه می دهد رابط کاربری گرافیکی تارگت را مشاهده کند و ماوس و صفحه کلید آن را کنترل کند. به طور پیش‌فرض، این مرحله یک Metasploit Courtesy Shell را روی دستگاه مورد نظر باز می‌کند، که به کاربر در کنسول نشان می‌دهد که متاسپلویت برای کنترل VNC بر روی سیستم استفاده شده است.

• meterpreter:
این مرحله شگفت انگیز یک محیط شل تخصصی طراحی شده برای مهاجمان رایانه فراهم می کند و یک پلت فرم ایده آل برای آزمایش کنندگان نفوذ و هکرهای اخلاقی برای کنترل یک ماشین تارگت است. در بخش بعدی قابلیت‌های Meterpreter را به طور کامل بزرگنمایی می‌کنیم.

توجه به این نکته ضروری است که هر دو نسخه 32 بیتی (x86) و 64 بیتی (x64) مراحل Meterpreter، Shell و VNCinject در دسترس هستند.

خلاصه :

• dllinject:
DLL دلخواه را به حافظه تارگت تزریق می کند
• upexec:
یک فایل اجرایی را آپلود و اجرا می کند
• شل: شل cmd.exe ویندوز
• vncinject:
کنترل رابط کاربری گرافیکی از راه دور محاسبات شبکه مجازی

• مترپرتر: محیط شل تخصصی انعطاف پذیر
#Metasploit
@TryHackBox
دوستان یک لابراتور بالابیارید یک ویندوز نصب کنید و یک لینوکس برای کارهای زیر :


هدف ما استفاده از چندین ویژگی متاسپلویت برای حمله و دسترسی شل به یک ماشین ویندوز است. برای رسیدن به این هدف، ما از انواع اجزای فوق العاده مفید متاسپلویت و همچنین یک وب سرور مبتنی بر پایتون به نام http.server استفاده می کنیم.

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

msfvenom:
پنتسترها می‌توانند از این برنامه فریم ورک متاسپلویت برای ایجاد فایل‌های بارگذاری مستقل مخرب استفاده کنند. در این آزمایشگاه، شما یک فایل EXE مخرب ایجاد می‌کنید که دسترسی شل را به یک ماشین ویندوزی که در آن اجرا می‌شود را فراهم می‌کند.

http.server:
این وب سرور مبتنی بر پایتون بخشی از متاسپلویت نیست، اما می تواند با متاسلویت برای ارائه فایل ها به شیوه ای راحت و انعطاف پذیر استفاده شود.
msfconsole:
برنامه Metasploit Framework Console مرکز فرمان متاسپلویت است که به شما امکان می دهد فریم ورک را پیکربندی کنید و با جلسات یا sessions در ماشین های در معرض خطر تعامل داشته باشید.

exploit/multi/handler:
این اکسپلویت عمومی به شما امکان می دهد متاسپلویت را پیکربندی کنید تا منتظر اتصالات ورودی (یعنی "تلفن خانه") از اهداف در معرض خطر باشد. هنگامی که این به اصطلاح multi/handler یک اتصال دریافت می‌کند، یک پیلود متاسپلویت را به عقب می راند تا روی تارگت اجرا شود.

payload/shell/reverse_tcp:
این پیلود یک اتصال از ماشین تارگت به متاسپلویت برقرار می کند و به شما امکان دسترسی شل به تارگت را می دهد - یعنی شل معکوس. از مرحله shell و stager reverse_tcp ساخته شده است.

#Metasploit
@TryHackBox
👍2
مرحله 1: ساخت فایل مخرب

msfvenom
را با گزینه -help اجرا کنید تا بتوانید خلاصه مختصری از نحو آن را دریافت کنید. برای استفاده از ابزار، باید پیلود مورد نظر خود را با فلگ -p مشخص کنید، لیستی از متغیرها برای آن payload (شامل شماره پورت به وصل شوید)، و فرمت پیلودی که می خواهید (از جمله EXE، که با -f exe مشخص می کنید):

به نتایج msfvenom -help نگاه کنید.
#Metasploit
@TryHackBox
👍5🔥2👎1
اندازه of file.exe را بررسی کنید. باید بسیار نزدیک به 73802 بایت باشد (اگرچه ممکن است یک یا دو بایت بزرگتر باشد):
Is -1 /tmp/file.exe

اگر /tmp/file.exe 73802 بایت نیست (احتمالاً به اضافه یک یا دو بایت)، آن را حذف کنید (با rm /tmp/file.exe)، سینتکس خود را از نظر msfvenom دوباره بررسی کنید، و دوباره ایجاد کنید.
#Metasploit
@TryHackBox
👍1
مرحله 2: فایل را از لینوکس Serve کنید

یک وب سرور لینوکس را پیکربندی کنید تا محتویات دایرکتوری /tmp شما (شامل fiie.exe) را ارائه دهد.

حالا cdرا وارد دایرکتوری کنید که می خواهید محتوای آن از طریق HTTP ارائه شود. سپس مفسر پایتون را اجرا کنید تا ماژولی به نام http,server , listening on TCP 8000 port 8000 (پیش‌فرض) فراخوانی شود:

$ cd /tmp/
/tmp$ python -m http.server

با اجرای http.server در یک پنجره، اکنون به مرحله 3 می رویم و msfconsole Metasploit را فراخوانی و پیکربندی می کنیم.
#Metasploit
@TryHackBox
👍1
مرحله 3: msfconsole را پیکربندی کنید

یک پنجره ترمینال دیگر را باز کنید! در این پنجره ترمینال دوم (جدا از شما
دستور http.server)، برنامه msfconsole را فراخوانی کنید.

msfconsole

در اعلان msf، دستورات را به صورت تعاملی به متاسپلویت صادر کنید. به آن بگویید تمام ماژول های اکسپلویت را که در دسترس است نشان دهد.
#Metasploit
@TryHackBox
وقتی file.exe را ساختیم، به msfvenom گفتیم که یک فایل EXE مخرب با استفاده از همین پیلود (windows/shell/reveise_tcp) بسازد. جالب است بدانید که اگر فایل مخربی مانند file.exe را با پیلودی متفاوت از پیلودی که با استفاده از multi/handler در msfconsole ارسال می کنیم پیکربندی کنیم، پیلود ارسال شده توسط multi/handler اولویت دارد! فایل مخرب ایجاد شده توسط متاسپلویت (مانند file.exe) یک پیلود متفاوت از مولتی/هندلر دریافت می‌کند که با آن پیلود متفاوت ساخته شده است و اجرا می‌کند، و هر یک از قابلیت‌های payload خودش را نادیده می‌گیرد. با این حال، برای این آزمایشگاه، از همان payload در multi/handler استفاده خواهیم کرد که در file.exe با msfvenom استفاده کردیم. بیشتر پنتسترها از یک پیلود استفاده می کنند، بنابراین این همان کاری است که ما در اینجا انجام خواهیم داد.

پس از انتخاب یک پیلود، به تمام گزینه‌هایی که می‌توانید با اجرای گزینه‌های show options کنید، نگاه کنید.
#metasploit
@TryHackBox