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
Risk of Exploitation


اکسپلویت سیستم‌های هدف، ممکن است خطرات قابل توجهی را به همراه داشته باشد. لذا باید با هماهنگی و تعامل با سازمان انجام شود.
اکسپلویت می‌تواند منجر به Crash نمودن یک سرویس و در نتیجه انکار یک سرویس شود. )DoS)
در مورد سیستم‌های حیاتی یک کسب و کار در برخی شرایط، قطع سرویس می‌تواند خسارات قابل توجهی را به همراه داشته باشد.
همچنین ممکن است در برخی شرایط سیستم هدف Crash نکند ولی حالت پایدار خود را از دست بدهد. )Unstable)
عالوه بر این، اکسپلویت نمودن یک سیستم می‌تواند منجر به نقض یکپارچگی سیستم شده و داده‌های مهم در آن از دست برود.
شما پس از دسترسی به یک سیستم می‌توانید اقدام به Sniff بسته‌ها در شبکه نمایید که در این حالت ممکن است به داده‌هایی که اجازه
دسترسی به آن‌ها را ندارید، دسترسی پیدا کنید. )اطالعات مالی و یا دولتی(
نگرانی دیگری که در اکسپلویتینگ وجود دارد، دسترسی به یک سیستم اشتباه )خارج از Scope )می‌باشد.
#Exploitation
@TryHackBox
👍4
Categories of Exploits
امروزه انواع اکسپلویت در یکی از سه دسته زیر قرار می‌گیرد:

Service Side Exploit :

این نوع از اکسپلویت برای سرویس‌های تحت شبکه استفاده می‌شود و در آن تست نفوذگر بسته‌هایی ) Exploit
Code )را ایجاد نموده و به آدرس هدف ارسال می‌کند. اکسپلویتینگ در این روش بدون دخالت کاربر می‌باشد

Client Side Exploit :
این نوع از اکسپلویت بر روی برنامه‌های اجرا شده بر روی سیستم کالینت تمرکز دارند. در این روش نیاز به دخالت کاربر می‌باشد و ارسال لینک به کاربر، دانلود فایل و اجرا توسط وی، نمونه‌ای از فعالیت‌های کاربر است که منجر به ایجاد دسترسی می‌شود.

Local Privilege Escalation Exploit :
:در این نوع از اکسپلویت‌ها، تست نفوذگر، یک دسترسی اولیه به سیستم هدف دارد ولی این
دسترسی به شکل محدود می‌باشد. با استفاده از این نوع از اکسپلویت‌ها، تست نفوذگر قصد دارد تا دسترسی خود را افزایش دهد.
داشتن منابع مورد نیاز برای هر یک از موارد فوق می‌تواند در حین انجام فرآیند تست نفوذ بسیار کاربردی باشد.
آسیب پذیری‌هایی که منجر به اکسپلویت‌های مذکور می‌شوند همواره در حال بروزرسانی هستند و ما باید از آن‌ها اطالع داشته باشیم.
#Exploitation
@TryHackBox
👍6
Service-Side Exploit

معمولا تست نفوذگران و هکرهای اخلاقی ، بیشتر بر روی اکسپلویت‌های مبتنی بر سرویس تمرکز دارند.
این اکسپلویت‌ها مبتنی بر سرویسی هستند که در شبکه Listen شده است و بخش زیادی از آن‌ها بر روی پورت‌های TCP یا UDP هستند.
اگرچه ممکن است برخی از آسیب‌پذیری‌ها (به ندرت) از طریق ICMP ،بسته‌های IP یا بسته‌های دیگر قابل اکسپلویت باشند.
سرویس‌های آسیب‌پذیر از طریق روش‌هایی که در بخش اسکن به آن اشاره گردید شناسایی می‌شوند. که این اطلاعات در اکسپلویت نمودن سیستم مورد استفاده قرار می‌گیرد.
برای اکسپلویت نمودن یک سرویس، تست نفوذگر نیاز به ارسال بسته‌هایی از طریق شبکه دارد که در این جا ممکن است سیستم‌های امنیتی مانند فایروال مانع از رسیدن بسته‌ها به سیستم هدف شوند.
در صورت دسترسی به سیستم هدف، نفوذگر می‌تواند سناریوهای دیگر مانند Pivot نیز انجام دهد.


Client-Side Exploit

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

#Exploitation
@TryHackBox
👍5
اکسپلویت های قابل توجه سمت کلاینت : نرم افزار معمولا آسیب پذیر

• Browsers:
-Internet Explorer and Microsoft Edge
- Firefox
-Chrome
- Safari
• Media players:
-iTunes, QuickTime Player, RealPlayer, etc.
• Document-reading applications:
-Adobe Reader and Acrobat
- Microsoft Word, PowerPoint, Excel
• Runtime environments:
-Java, Flash, Silverlight, and more


راه اندازی یک کمپین Exploitation از سمت کلاینت

• برای آزمایش‌های نفوذ بهره‌برداری سمت سرویس گیرنده، برخی از آزمایش‌کننده‌های نفوذ ایمیل به آدرس‌های هدف درون محدوده ارسال می‌کنند و سعی می‌کنند از هر کسی که روی لینک کلیک می‌کند اکسپلویت کنند.
- این خطرناک است زیرا ممکن است شخصی ایمیل شما را فوروارد کند
-شما می توانید اکسپلویت خود را به حمله به آدرس های IP خاص محدود کنید، اما هنوز هم به راحتی می توانید از محدوده خارج شوید.
• ما روش دیگری را توصیه می کنیم: پروژه را به دو قسمت تقسیم کنید
- ابتدا یک ایمیل فیشینگ با لینک یا پیوست ارسال کنید و سپس تعداد کلیک هایی که دریافت می کنید را بشمارید. استثمار نکنید.
- دوم، با استفاده از یک همکار یا دسترسی از راه دور در یک ماشین کلاینت ، روی پیوندها کلیک کنید و سعی کنید از آن بهره برداری کنید.
- فاز 1 به شما statssafely می دهد
- فاز 2 به شما امکان می دهد با توجه به کلیک های فاز 1 تعیین کنید که چه چیزی ممکن است.
#Exploitation
@TryHackBox
👍7
Client-Side Exploits and Guardrails

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

• استفاده از "Guardrails" اجرا را به ماشین های خاصی محدود می کند
• در کاهش احتمال خارج شدن از محدوده مفید است
• می تواند برای دور زدن/تشخیص sandbox کار کند
- اگر در VM هستید، اگر به دامنه متصل نیست، اجرا نکنید
-فقط در صورتی اجرا شود که نرم افزار خاصی نصب شده باشد
- کلید دامنه داخلی، رمزگشایی و اجرا بر اساس نام دامنه
• شبیه به evasions VM/Sandbox، اما مختص به تارگت (مثلاً دامنه)
• مرجع: https://attack.mitre.org/techniques/T1480/
#Exploitation
@TryHackBox
👍4
ساخت سیستم های تست دسترسی به نرم افزار کلاینت

پس از تهیه فهرستی از برنامه های سمت سرویس گیرنده، چگونه می توانیم آزمایش کنیم که آیا آن برنامه ها قابل بهره برداری هستند؟ ما نیاز داریم که آن ماشین های کلاینت به سیستم های آزمایشی ما دسترسی داشته باشند تا بتوانیم یک سری از اکسپلویت ها را ارائه دهیم. روش های مختلفی برای تحقق این کار وجود دارد، از جمله:

[+] RDP یا VPN:

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

[+] مداخله دستی کاربر:

آزمایش‌کننده می‌تواند با پرسنل هدف هماهنگ کند و از آن‌ها بخواهد که از یک لپ‌تاپ یا دستگاه رومیزی موجود برای گشت و گذار در URL‌های مختلف ارائه‌شده از طریق تلفن به آزمایش‌کننده استفاده کنند. از منظر مثبت، این رویکرد امکان هماهنگی دقیق، بحث های رفت و برگشت و تلاش های مجدد را در زمان واقعی فراهم می کند. از منظر منفی، زمان پرسنل هدف احتمالاً شلوغ را مصرف می کند.

[+] ایمیل با لینک:

آزمایش‌کننده می‌تواند ایمیل‌هایی را با لینک هایی ارسال کند که به دستگاه‌های آزمایش‌کننده با اکسپلویت‌هایی که آماده ارائه هستند اشاره می‌کنند. البته پرسنل هدف باید روی این پیوندها کلیک کنند تا به طور خودکار نرم افزار کلاینت مناسب را برای دسترسی به محیط آزمایشگر فراخوانی کنند. ابزار بهره برداری تجاری Core IMPACT شامل قابلیت هایی است که به طور خودکار ایمیل های حاوی لینک ها را تولید و ارسال می کند. از طرف دیگر، می توانید چنین ایمیلی را به صورت دستی ایجاد کنید. در تعیین اینکه این پیام‌های ایمیل را برای چه کسی ارسال می‌کنید، مراقب باشید و مطمئن شوید که چنین پرسنل گیرنده‌ای به صراحت در محدوده پروژه هستند.

[+] اسکریپت برای راه اندازی کلاینت ها:

اکثر نرم افزارهای سمت سرویس گیرنده را می توان با استفاده از یک اسکریپت راه اندازی کرد و به مقصدی معین هدایت کرد. برخی از این برنامه ها به راحتی قابل اسکریپت هستند و به URL ارائه شده برای برنامه در خط فرمان دسترسی دارند. (IE و فایرفاکس را می توان از این طریق فراخوانی کرد.) برخی دیگر نیاز به اسکریپت کردن تعاملات رابط کاربری گرافیکی دارند که کار دشوارتری است. برای اینکه اینترنت اکسپلورر یا فایرفاکس را در خط فرمان یا از داخل یک اسکریپت به
www.testmachine.org بگردید، می توانید اجرا کنید:

C:\> "C:\Program Files\Internet Explorer\iexplore.exe" www.example.com

C:\> "C:\Program Files\Mozilla Firefox\firefox.exe" www.example.com

این اسکریپت‌ها را می‌توان با خروجی‌ای که از موجودی (dir /s) نرم‌افزار کلاینت که قبلاً جمع‌آوری کردیم، به‌خوبی تنظیم کرد.

ممکن است بخواهید اسکریپت خود را طوری بنویسید که هر کلاینت را چندین بار راه اندازی کند، در صورتی که یک بار بهره برداری با شکست مواجه شود، با یک تاخیر زمانی چند دقیقه ای بین هر راه اندازی به شما فرصتی برای واکنش نشان می دهد.
#Exploitation
@TryHackBox
👍2
Use Appropriate,Representative Client Machines

هنگام انجام این آزمایش سمت کلاینت مطمئن شوید که پرسنل تارگت از نمونه representative یک یا چند ماشین مشتری برای دسترسی به محیط آزمایش شما استفاده می کنند. اغلب، هنگام انجام چنین آزمایشاتی، پرسنل هدف می گویند: "بسیار خوب، من تقریباً آماده دسترسی به سیستم های شما هستم، اما اجازه دهید ابتدا patches خود را به روز کنم". این همیشه اتفاق می‌افتد و متأسفانه، آزمون کافی برای خطرات پیش روی سازمان هدف نیست. اطمینان حاصل کنید که یک لپ تاپ استوک که دارای همان پچ کاربران معمولی در محیط تارگت است، استفاده می شود. همچنین ممکن است بخواهید این درک را در قوانین مشارکت یا توافقنامه اسکوپ پروژه گنجانده باشید.


• تصاویر و اکانت های طلایی اغلب تمامی نرم افزارها و دسترسی به نیازهای یک کارمند را ندارند

• در طول چند هفته اول، کارمندان جدید اغلب نیاز به درخواست های متعدد دارند تا دسترسی و نرم افزار مورد نیاز خود را دریافت کنند

• اغلب، آزمایشگر می شنود:
- "من تقریباً برای آزمایش آماده هستم - فقط اجازه دهید پچ های خود را به روز کنم"
- چنین آزمایشی در واقع خطرات واقعی سازمان تارگت را آشکار نمی کند
- مودبانه این را برای پرسنل تارگت توضیح دهید
- و مطمئن شوید که قوانین شرایط یا توافقنامه اسکوپ استفاده از یک ماشین "representative sample" یا یک سیستم از یک کاربر جداگانه را ذکر کرده است.

برای
دریافت بهترین سیستم «representative sample» از رایانه و حساب کارمندی که اخیراً جدا شده است استفاده کنید

#Exploitation
@TryHackBox
Local Privilege Escalation

علاوه بر مواردی که بیان شد، دست سوم از انواع اکسپلویت‌ها، مربوط به بالابردن سطح دسترسی می‌باشد.Exploits
یکی از مشکلات مربوط به اکسپلویت‌های بالابردن سطح دسترسی این است که ابتدا باید یک دسترسی به
سیستم هدف ایجاد شده باشد.
ممکن است این دسترسی با استفاده یک اکسپلویت سمت سرویس یا مبتنی بر کلاینت ایجاد شده باشد.
همچنین ممکن است نفوذگر دسترسی اولیه خود را بوسیله حدس زدن کلمه عبور یک حساب ایجاد نموده باشد. (یا Sniff ترافیک و استخراج کلمه عبور)
نفوذگر بعد از دسترسی به سیستم هدف، اکسپلویت مربوط به بالا بردن سطح دسترسی را بر روی سیستم هدف اجرا می‌کند.
با اجرای موفقیت آمیز اکسپلویت‌های بالا بردن دسترسی، نفوذگر قادر به انجام تمامی‌اقداماتی است که نیاز به سطوح بالای دسترسی دارد.
بسیاری از سازمان‌ها، آسیب‌پذیری‌های مربوط به بالابردن دسترسی را به سرعت مرتفع نمی‌کنند، زیرا
شرکت‌های تولید کننده اغلب شدت Critical را به آن‌ها اختصاص نمی‌دهند.

نقص‌های PrivEsc به کاربر اجازه می‌دهد از یک حساب دسترسی محدود به دسترسی های بالاتر بپرد، مانند
-root / UID o در لینوکس یا یونیکس
-Administrator یا SYSTEM در ویندوز

+ به نوعی دسترسی به سیستم نیاز دارد
-بسیاری از فروشندگان آسیب پذیری ها را با شدت کمتر ارزیابی می کنند (از آنجا که
نیاز به دسترسی دارد)، بنابراین احتمال وصله شدن آنها کمتر است
-مثال: بهره برداری از سمت کلاینت، بهره برداری از سمت سرویس،
حدس زدن رمز عبور، کشف رمز عبور و غیره
+ می تواند به تستر اجازه دهد فایل های دلخواه را از سیستم بخواند،
نرم افزار را نصب کنید، Sniffer را اجرا کنید و موارد دیگر


#Exploitation
@TryHackBox
👍4
Local Privilege Escalation Attack Categories and Suites

انواع متعددی از حملات افزایش دسترسی محلی وجود دارد، اما معمولاً در دسته‌های زیر قرار می‌گیرند:

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

• حملات کرنل : در قلب اکثر سیستم عامل ها، هسته ممکن است دارای نقص هایی باشد که به مهاجم اجازه می دهد کدی را اجرا کند که تماس ها را به عملکرد کرنل تبدیل می کند، با دقت این تماس ها را با ورودی هایی که هسته را فریب می دهد تا کدهای در حال اجرا به انتخاب مهاجم با دسترسی های بالاتر را اجرا کند.

• بهره برداری محلی از برنامه یا سرویس با دسترسی بالا: یک مهاجم ممکن است از یک فرآیند دسترسی محدود روی یک ماشین استفاده کند تا سعی کند برنامه هایی با دسترسی های بالاتر را اجرا کند یا با یک فرآیند با دسترسی بالاتر که در همان سیستم اجرا می شود تماس بگیرد. در ماشین‌های لینوکس/یونیکس، این حملات بر روی برنامه‌ها یا اسکریپت‌های ریشه SUID متمرکز می‌شوند که همیشه با امتیازات UID 0 بدون توجه به امتیازات حسابی که اسکریپت را فراخوانی می‌کند، اجرا می‌شوند. در اکثر سیستم‌ها، برنامه‌های ریشه SUID با دقت ساخته می‌شوند تا مطمئن شوند که می‌توانند تنها یک عمل داده شده را انجام دهند، مانند تغییر رمز عبور کاربر (که شامل ویرایش فایل /etc/passwd یا /etc/shadow است) تا احتمال حمله به حداقل برسد. . با سوء استفاده از یک برنامه ریشه SUID معیوب، مهاجم ممکن است آن را فریب دهد تا کدهای در حال اجرا را اجرا کند. در ماشین‌های ویندوز، این نوع حمله اغلب با بهره‌برداری از فرآیندهای محلی و دارای دسترسی بالا، مانند csrss.exe (که تعاملات را در حالت کاربر کنترل می‌کند)، winlogon.exe (که کاربران را به یک ماشین وارد می‌کند)، lsass.exe روی می‌دهد. (که بررسی های مجوز را ارائه می دهد) و غیره.

برخی از ابزارها شامل مجموعه ای از سوء استفاده ها برای افزایش دسترسی های محلی هستند. به طور خاص، در ویندوز، برخی از ماژول‌های Post موجود در Metasploit حملات افزایش دسترسی محلی را اجرا می‌کنند. ما در بخش Metasploit Meterpreter کلاس، ماژول‌های دستور و پست سیستم دریافت Meterpreter را با جزئیات بیشتری بررسی خواهیم کرد. برای لینوکس، بسته Enlightenment Exploit شامل تقریباً دوازده اکسپلویت مختلف برای به دست آوردن UID 0 در یک ماشین لینوکس هدف از طریق افزایش دسترسی محلی است. یکی از بهترین ابزارها برای افزایش دسترسی در لینوکس، پیشنهاد اکسپلویت لینوکس است: https://github.com/mzet-/linux-exploit-suggester
#Exploitation
@TryHackBox
👍4
wifi driver linux exploit dev firstone for fun and profit

https://vrgl.ir/5IRUi

#توسعه_اکسپلویت
#exploit #exploitation
@TryHackBox