محققای بلک بری یه گزارشی منتشر کردن در خصوص یه بازیگر تهدید بنام NewsPenguin که با حملات فیشینگ ، سازمانهای نظامی پاکستان رو هدف قرار داده.
این گروه با ارسال ایمیلهای فیشینگ مرتبط با نمایشگاه و کنفرانس بینالمللی دریایی پاکستان ، PIMEC-2023، بدافزار خودش توزیع کرده.
این نمایشگاه قراره 10 تا 12 فوریه برگزار بشه و دستآوردهای نیروی دریایی پاکستان رو به نمایش بزاره. بازیگر تهدید با سوء استفاده از این نمایشگاه ، یسری ایمیل با پیوست داکیومنت با VBA مخرب در قالب کتابچه راهنمای غرفه ها ارسال کرده.
قربانی با باز کردن سند ، باعث دانلود پیلود از یه سروری میشه. ( تکنیک template injection) . سرور هم جوری کانفیگ شده که پیلود رو فقط به IPهای پاکستانی میده.
در ادامه قربانی با تایید ماکرو ، باعث میشه که یه فایلی بنام test.dotx در فولدر C:\Windows\Tasks با نام abc.wsf ذخیره بشه. در ادامه هم با CMD این فایل رو در کلید رجیستری زیر با نام WindowsBoost ثبت میکنه.
1 |
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
علاوه بر پرسیست ، اسکریپت همچنین بررسی میکنه که آیا تارگت ، ویندوز 7 یا 10 هستش.
خود فایل test.dotx هم از نوع RTF هستش که بسته به نسخه ویندوز یه پیلود رو دانلود میکنه. اگه ویندوز 10 باشه winint.bat و اگه ویندوز 7 باشه winint.crt .
محتوای winint.bat و.crt یکیه ، فقط winint.crt با base64 انکد شده. همونطور که مشاهده میکنید ، 5 تا فایل با Curl دانلود میکنه که برای یه موردش دو بار این کار انجام میده. (تکراریه)
سرورشون روی Apache/2.4.41 (Ubuntu) هستش:
چهار تا فایلی که دانلود میشه در فولدر C:\Users\Public قرار میگیرن. بعد از تکمیل دانلود ، فایل Taskhostw.exe اجرا میشه. نکته ای که وجود داره اینه که اسم فایلها متفاوت هستش و همشون یکی ان. یعنی “Taskhostw.exe” = winupdates = “smss.exe” = “gup.exe”
gup.exe یه مولفه قانونی برای notepad++ هستش و توسط notepad++ هم امضا شده. این فایل برای بروزرسانی مورد استفاده قرار میگیره ، فقط برای اجرا نیاز به فایل libcurl.dll داره.
همونطور که در فایل winint.bat دیدیم ، winupdate با نام libcurl.dll ذخیره میشه. این فایل ، تغییر یافته فایل libcurl.dll هستش و در واقع یه لودر برای update هستش که در مسیر C:\Users\Public\updates قرار میگیره. محتوای فایل update با XOR رمز شده، که کلید اون هم penguin هستش.
کاری هم که میکنه تزریق یه فایل win32 به پروسس C:\Windows\syswow64\explorer.exe هستش.
فایل رمزگشایی شده و تزریق شده یه فایل win32 بدون نام هستش که در گزارش اسمش updates.exe گذاشتن.
این فایل کارش جاسوسی هستش و قبلا هم مستند نشده (جدیده). نکته ای هم که هست اینه که این فایل تکنیکهای مختلفی برای دوز ردن سندباکس و ماشین های مجازی داره.
NewsPenguin چندین بررسی رو برای اینکه بدونه تو ماشین مجازی یا سندباکس اجرا میشه رو انجام میده. از جمله استفاده از GetTickCount ، بررسی حجم هارد و نیاز به بیش از 10 گیگ رم. بعد از اجرا یه mutex بنام Windows.20H2.85685475 ایجاد میکنه.
این بدافزار وقتی میخواد برای اولین بار به سرور متصل بشه ، یه شناسه 12 کارکتری منحصر به فرد برای سیستم آلوده ایجاد و ثبت میکنه و از این شناسه برای شناسایی سیستم استفاده میکنه.
در ادامه به یه آدرس هاردکد شده متصل میشه تا آدرس C2 رو بدست بیاره. برای اجرای دستورات 300000ms ، یعنی 5 دقیقه فاصله میندازه و دستورات هم با base64 انکد شدن. اغلب سندباکس ها،محدودیت زمانی 5 دقیقه ای دارن و این فاصله برای دور زدن سندباکس هستش.
دستوراتی که این بدافزار پشتیبانی میکنه در جدول زیر اومده :
No: | C2 Command | Command Description | Server Response – success | Server Response – Failure |
1 | sh who | Name of the PC | UserName | GetLastError |
2 | sh dir | A list of all files within the directory, including creation time, last modification time, size, name and information regarding other directories contained within. The server sends instructions to the bot on what information it is looking for, for example, the command “sh dir C:\Users”. | A list of all files in directory | GetLastError |
3 | sh spawn | Runs an additional thread. This thread tries to run this file:
c:\programdata\vpskg.exe. |
gotit | GetLastError |
4 | sh tasklist | A list of all processes | A list of all processes including PIDs | GetLastError |
5 | sh hostname | To get a host name | Sends PC
Name |
GetLastError |
6 | sh cp | To copy any file. The server sends instructions to the bot on what the file name is, and where it will be copied. | gotit | GetLastError |
7 | sh del | To delete a file. The server sends instructions to the bot on what file to delete. | gotit | GetLastError |
8 | sh mkd | The server sends instructions on creation of a new directory including its name. The attributes of the newly created directory are “hidden”. | gotit | GetLastError |
9 | sh mv | The server sends instructions to the bot on which file needs to be moved, and where it will be moved to. | gotit | GetLastError |
10 | sh spdel | To terminate its own bot process. | gotit | GetLastError |
11 | sh type | Gets the contents of the file, reads it, and then sends it to the server.
The server sends instructions to the bot on what file to read in which location on the disk. This information then is sent back to the server. |
Contents of the read file | GetLastError |
12 | sh runpe | The server sends instructions to the bot on which Portable Executable (PE) file to run. This can be any file that server wishes to run including malware. | dop | 0 |
13 | exit | Termination of the bot; killing itself. | ||
14 | sh ufi | Uploads a file to the remote server where file can be maximum of 1GB.
The server sends instructions to the bot on what file/s it needs. This is essentially an information-stealing (infostealing) process. |
—– | GetLastError |
15 | sh dfi | Downloads a file from the remote server. | gotit | GetLastError |
16 | sh pid | Gets the PID of the current process. | Response PID | GetLastError |
یسری مسیر هم بعد کدگشایی base64 اومده که در طول تحلیل NewsPenguin مشاهده نشده:
1 2 |
c:\programdata\63921eef-8415-4368-9201-f0df4af5778f.devm c:\programdata\vpskg.exe |
زیر ساخت ارتباطیشونم جالبته. اینا دو تا دامنه داشتن که یکی windowsupdates[.]shop هستش و در 30-06-2022 ثبت و در 03-07-2022 ،رکورد DNSاش بروز شده. یکی هم updates.win32[.]live هستش و در 14-10-2022 ثبت و 18-10-2022 ، رکورد DNSاش بروز شده. این باعث میشه که ارتباطاتشون از سیاه دامنه ها و IPهای ثبت شده جدید جلوگیری کنه.
این نشون میده که بازیگران تهدید قبلا هدف گذاری کردن و مثله هکرهای تازه کار ، این موارد رو قبل روز حمله ثبت نکردن.
بلک بری گفته که نتونسته این حملات رو به گروه یا دولت خاصی مرتبط کنه اما معتقده که پشت این حمله یه APT با حمایت دولت هستش یا توسط یه دولت به یه تیم هکری برونسپاری شده.
نمونه فایلهای DOC و test.dotx رو برای تحلیل بیشتر میتونید از اینجا دانلود کنید. (بقیه فایلها )