محققای Group-IB، از سال ۲۰۲۲، حملات مرتبط با گروه UNC2891، علیه خودپردازهای (ATM) چندین مؤسسه مالی در اندونزی رو مورد بررسی قرار دادن و اخیرا مهم ترین یافتهها و مشاهدات حاصل از این تحقیقات رو منتشر کردن. این گزارش رو که در 71 صفحه ارائه شده، در قالب 3 پست ارائه کردیم.
- هکرهای ATM: قسمت اول — مرور و تحلیل حملات
- هکرهای ATM: قسمت دوم — TTPها
- هکرهای ATM: قسمت سوم — بدافزارها
این مجموعه پست ها، علاوه بر دید فنی، نحوه ی مواجهه با این رخداد و نحوه ی گزارش نویسی رو هم یاد میده. پست پیش رو، قسمت سوم این مجموعه است که به مرور بدافزارهای مورد استفاده در این حملات پرداخته.
TINYSHELL
TINYSHELL یک بکدور مخصوص سیستم عامل لینوکس است که پیکربندی خودش رو در فایلvar/yp/yp.cache ذخیره میکنه (در نمونههای تحلیلشده). پس از اجرای بدافزار، مراحل زیر انجام میشه:
- خواندن و رمزگشایی پیکربندی از فایل var/yp/yp.cache (جدول زیر)
- برقراری ارتباط با سرور C2 بر اساس اطلاعات موجود در فایل پیکربندی.
- بسته به دادههای دریافتی از C2، این بدافزار قادر به انجام فعالیتهای مختلفی است، از جمله اجرای دستورات، انتقال داده و کنترل سیستم.

جدول زیر هم نشان دهنده ی لیست دستورات TINYSHELL:

SLAPSTICK
SLAPSTICK یک ماژول PAM لینوکس است که توانایی سرقت اطلاعات احراز هویت کاربران و عملکرد بکدور رو داره. در سیستمهای آلوده، SLAPSTICK فایل اصلی pam_unix.so رو جایگزین کرده و اون رو به pam_unix,so تغییر نام داده. هنگامی که یک رویداد احراز هویت رخ میده، SLAPSTICK این اقدامات رو انجام میده:
- خواندن اطلاعات احراز هویت (تاریخ و زمان، برنامه ی احراز هویت، کاربر، پسورد و…) و ذخیره ی رمزشده ی اون درvar/tmp/.font-unix. نمونه ی داده ی رمزگشایی شده در شکل زیر قابل مشاهده است.

- مقایسه ی پسورد وارد شده با یک رشته هاردکد شده (پسورد جادویی). پسورد واردشده با این رشته شروع بشه، کاربر رو بدون خطا احراز هویت میکنه. بعدش بسته به دستوری که بعد از “پسورد جادویی” قرار داره، یکی از دستورات زیر اجرا میشه.

STEELCORGI
STEELCORGI یک پکر اختصاصی است که برای رمزگذاری بدافزارهای مورد استفاده ی مهاجمان به کار میره. مهاجم میتونه نحوه ی رمزگذاری پیلود رو مشخص کنه. بنابراین بدون داشتن کلید، رمزگشایی اون غیرممکن است. پس از اجرا، STEELCORGI عملیات آنپک بدافزار رو شروع میکنه. اگه رمزگشایی موفق باشه، جریان اجرا به پیلود آنپک شده، منتقل میشه. روشهای رمزگشایی پشتیبانی شده:
- کلید رمزگشایی داخل فایل نمونه و بعد از پیلود رمز شده قرار گرفته.
- مهاجم پسورد رو در کنسول تایپ میکنه، پسورد با SHA256 ده هزار بار هش میشه، نتیجه کلید رمزگشایی است.
- پسورد از یک فایل مخصوص که مهاجم قبلا روی سیستم قرار داده، خوانده و سپس ۱۰٬۰۰۰ بار هش میشه. نتیجه کلید رمزگشایی است.
- پسورد بصورت آرگومان خط فرمان با نام خاصی ارائه میشه، نام پارامتر هش شده با مقدار داخل بدافزار مقایسه میشه.
- کلید رمزگشایی میتونه داخل یک Environment Variable ذخیره شده باشه که توسط مهاجم تنظیم میشه.
SUN4ME
SUN4ME یک ابزار چندمنظوره لینوکسی است که قابلیتهای بسیار گستردهای داره. بسته به آرگومانهای خط فرمان، میتونه:
- انواع اسکن شبکه: TCP, UDP, ICMP, SCTP, ARP و … . بسته به نوع اسکن انتخاب شده، کاربر میتونه محدوده پورت رو ارائه بده.
- همچنین قادر به اسکن دقیق سرویسها مانند پورتهای باز RDP، پورتهای SSH و غیره هستش.
- Bruteforce و اسکن FTP، SSH، Telnet و سرویسهای دیگه.
- امکان اجرای SOCKS5 Proxy یا TCP Proxy.
- امکان خزیدنِ (crawl) وب سرور بصورت بازگشتی داره.
- اسکن از راه دور سرور برای آسیبپذیری CVE-2017-5683 (آسیبپذیری Struts2).
- اسکن برای آسیب پذیری Open Redirect
- اسکن آسیبپذیری CVE-2014-0160 (آسیبپذیری HeartBleed)
- اسکن برای آسیبپذیریهای deserialization جاوا (CVEهای متعدد).
- اسکن برای آسیبپذیریهای Veritas NetBackup (CVEهای متعدد).
- اسکن برای CVE-2017-10271 (Oracle Web Logic)
- رمزگشایی پسوردهای سیسکو و پسوردها از فایل vncpasswd.
- دامپ حافظه از پروسس مشخص شده.
- پاکسازی لاگها از utmp، wtmp، lastlog، syslog.
WINGHOOK
WINGHOOK یک کتابخانه ی اشتراکی (so.) لینوکسی است که توانایی کیلاگر رو داره. این کتابخانه نمیتونه خودش بصورت مستقل لود کنه، بنابراین مهاجم باید از تکنیک so-library path hijacking. استفاده میکنه. در نمونه های مشاهده شده، WINGHOOK در پروسس SSH لوود شده بود. یعنی مهاجم باینری SSH رو برای لوود WINGHOOK، دستکاری کرده بود. در ادامه تکنیکی که در یکی از میزبانهای آلوده مشاهده کردن رو بررسی کردن:
- مهاجمان فایل باینری SSH رو طوری تغییر دادن که بصورت خودکار کتابخانهای با نام selinux.so.1 رو لود کنه.
- سیستم هنگام لود کردن کتابخانهها، فایلهای کانفیگ رو در مسیرهای موجود در etc/ld.so.conf.d/ بررسی میکنه. در میزبانهای آلوده، یکی از فایلها حاوی مسیرهای زیر بود:
- /lib/x86_64-linux-gnu
- /usr/lib/x86_64-linux-gnu
- مهاجمان فایل مخرب selinux.so.1 رو در usr/lib/x86_64-linux-gnu/ قرار داده تا هر بار که SSH اجرا میشه، این کتابخانه لود بشه.
عملکرد WINGHOOK پس از لود شدن:
- قرار دادن Hook روی توابع استاندارد fgets و read برای رهگیری ورودی کاربر
- هنگامیکه توابع فوق الذکر فراخوانی میشن، ورودی کاربر رو رهگیری کرده و در فایل var/tmp/.zmanDwJ2Og به همراه اطلاعات مربوط به میزبان و کاربر فعلی بصورت رمزگذاری شده ذخیره میکنه.
شکل زیر ارائه کتابخانه مخرب در پروسس SSH رو نشون میده:

در این مورد، یک مهر زمانی دسترسی مشابه در آخرین مرحله نشان میده که یک کتابخانه مخرب تقریبا بلافاصله پس از شروع فرآیند SSH در پروسس SSH لوود شده.
MIGLOGCLEANER و LOGBLEACH:
مهاجم از دو ابزار تخصصی Anti-Forensics استفاده کرده که لاگها رو طوری پاک میکنن که با روشهای فارنزیک قابل بازیابی نباشن. توجه به این نکته ضروری است که این ابزارها باید برای پاکسازی تاریخچهی bash یک کاربر مشخص هم استفاده بشن.
MIGLOGCLEANER: این ابزار به مهاجم امکان میده هر لاگی رو بصورت هدفمند دستکاری یا حذف کنه. دارای مجموعهای از سوییچهای خط فرمان برای پاکسازی یا دستکاری لاگ هاست.

OGBLEACH: میتونه توسط مهاجم برای پاک کردن ورودیهای لاگ از مجموعهای از لاگهای از پیش تعیین شده و همچنین از لاگهای مشخص شده توسط کاربر استفاده بشه. بصورت پیش فرض، این ابزار لاگهای زیر رو پاک میکنه:
- var/run/utmp
- /var/log/wtmp
- /var/log/btmp
- /var/log/lastlog
- /var/log/faillog
- /var/log/syslog
LOGBLEACH دارای سویچهای خط فرمان زیر است که به مهاجم امکان میده گزینههای پاکسازی یا دستکاری رو سفارشی کنه:

CAKETAP:
در طی تحقیق بر روی یک سرور، رفتار مشکوکی شناسایی شد. بعد از تهیه اسنپ شات از حافظه رم، یک ماژول بارگذاری شونده کرنل (LKM) مخفی با نام ipstat شناسایی و استخراج شد. این ماژول قابلیتهای یک روتکیت رو داره که هدفش تغییر مخفیانه درخواستهایی است که توانایی انجام بررسیهای ARQC و تولید ARPC رو دارن.
(Authorization Request Cryptogram) ARQC یک مقدار رمزنگاری شده است که کارت بانکی هنگام انجام تراکنش تولید میکنه.
(Authorization Response Cryptogram) ARPC پاسخی رمزنگاری شده است که بانک صادرکننده کارت پس از دریافت ARQC تولید و به کارت ارسال میکنه.
در زیر الگوریتم تولید ARQC، پیادهسازی شده در پایتون رو مشاهده میکنید:
|
1 2 3 4 5 6 7 8 |
def arqc_generation_algorithm(application_transaction_counter:int, transaction_data: bytes,PAN_sequence_number:bytes) -> bytes: XOR_constant = application_transaction_counter - 1 result = [] for i in range(4): result[i] = XOR_constant ^ (PAN_sequence_number[i] + 4) ^ transaction_data[i + 25] result[i + 4] = XOR_constant ^ transaction_data[i + 25] ^ PAN_sequence_number[i + 4] return bytes(result) |
این هدف و همچنین جلوگیری از شناسایی، از طریق Hook کردن (تغییر رفتار توابع سیستمی) چندین System Call بدست میاد. فهرست توابع و System Callهای Hook شده در جدول زیر ارائه شده. همچنین، پس از نصب، تمامی ردهای مربوط به نصب ماژول ipstat رو از logbuf حذف میکنه.
در سیستمهای لینوکسی، کرنل یک بافر خاص بنام logbuf، برای نگهداری لاگهای کرنل داره که معمولا، در حافظه قرار داره، شامل پیامهای boot، خطاهای سطح پایین و خروجی printk است. به این فضای ذخیره سازی kernel ring buffer هم گفته میشه.

امکان شناسایی CAKETAP:
از آنجایی که این ماژول در حال حاضر یک ماژول مخفی است، نمیشه به ابزارهای استاندارد لینوکس برای شناسایی وجود اون در سرور تکیه کرد. اما همچنان میشه با یکی از روشهای زیر این روتکیت رو شناسایی کرد:
- گرفتن Dump از رم و تحلیل اون با استفاده از فریمورک Volatility و اجرای دستورات linux_check_modules یا linux_check_syscall.
- اجرای دستور زیر در خط فرمان:
|
1 |
mkdir path_to_any_directory/.caahGss187S |
خروجی شامل رشتهای خواهد بود که مقدار فعلی Hook مربوط به SyS_write رو نشان میده.

نتیجهگیری
برای مدتی طولانی، چنین به نظر میرسید که تهدیدات متمرکز بر دستگاههای خودپرداز (ATM) دیگه متعلق به گذشته هستن. گروههایی مانند Silence، MoneyTaker و Cobalt در اواخر دهه ی ۲۰۱۰ با حملات تهاجمی به مؤسسات مالی، تیتر خبرها بودن. اما در نهایت، چه به دلیل مقابله، چه بازدارندگی، و چه تغییر مسیر عملیاتی، از صحنه محو شدن.
در سالهای اخیر، چشمانداز تهدیدات مالی به نظر میرسید که به ثبات رسیده و تمرکز حملات بیشتر به سمت باج افزار و سوء استفاده از سیستمهای مرکزی بانکی تغییر کرده بود. اما UNC2891 بیسروصدا به فعالیت خودش ادامه داد. اکنون، در سال ۲۰۲۴، شاهد بازگشت نگران کنندهای هستیم، نه بازگشت گروههای قدیمی، بلکه بازگشت تاکتیکهای اونا که اکنون بازآفرینی شده و با محیط تهدیدات مدرن سازگار شدن.
افول ظاهری جرایم سایبری مرتبط با ATM در سالهای اخیر باعث شده که بسیاری از مدافعان امنیت، این سطح از حمله رو در بودجهها، ارزیابی ها و مدلهای تهدید در اولویت پایینتری قرار بدن. این میتونه یک اشتباه بسیار خطرناک باشه. UNC2891 ثابت میکنه که تهدیدات مرتبط با ATM از بین نرفته، بلکه تکامل یافته. بازگشت اونا، که اکنون با بردارهای دسترسی فیزیکی و ابزارهای عمیقا جاسازی شده ترکیب شده، نشان دهنده ی آغاز فصل جدیدی در نفوذهای مالی است.
توصیهها:
حذف تهدید و مهار فوری:
- پاکسازی کامل همه شواهد مخرب و اسکن مجدد: تضمین میکنه هیچ اثری از نفوذ باقی نمونده و از آلودگی مجدد جلوگیری میشه.
- مسدودسازی زیرساختهای شناخته شدهی C2 در تمام نقاط شبکه، که روی ترافیکش کنترل دارید: کانال کنترل از راه دور مهاجم رو قطع کرده و دسترسی فعالش رو بی اثر میکنه.
- برگردوندن نسخهی سالم pam_unix.so یا پکیج PAM امضا شده توسط سازنده: کتابخانههای احراز هویت آلوده رو جایگزین کرده و بکدورها رو حذف میکنه.
هاردنینگ میزبان:
- مجاز کردن نصب نرمافزار فقط از مخازن امضا شده و مورد اعتماد؛ حذف بسته های بدون امضا: از بدافزارهای زنجیره تأمین جلوگیری کرده و فایلهای اجرایی ناشناخته رو حذف میکنه.
- قفل کردن لوود ماژولهای کرنل: مانع تزریق ایمپلنتهای سطح کرنل توسط مهاجم روی میزبانهای حیاتی میشه.
- فعالسازی SELinux/AppArmor، حذف بیتهای غیرضروری set-uid، غیرفعالسازی ورود SSH با کاربر root: اصل حداقل دسترسی رو اعمال میکنه و جلوی سوء استفاده مهاجم رو میگیره.
- استفاده از MFA مبتنی بر توکن سختافزاری برای تمام نشستها با سطح دسترسی بالا؛ حذف احراز هویت با پسورد: یک عامل مقاوم در برابر فیشینگ اضافه میکنه و حملات Credential Stuffing رو خنثی میکنه.
- استفاده از احراز هویت کلید SSH: احراز هویت مبتنی بر کلید جلوی مرحلهی تبادل پسورد رو میگیره و جمع آوری اعتبارنامه های PAM رو بی اثر میکنه.
- محدود کردن پورتهای ورودی با فایروالهای میزبان: سطح حمله رو کاهش داده و حرکت جانبی مهاجم رو محدود میکنه.
کنترلهای شبکه و تقسیم بندی:
- اعمال تقسیم بندی دقیق بین ATM، سوئیچ کارت، سرورهای core، Dev/Test و DMZ: نفوذها رو در یک بخش محدود نگه میداره و از دادههای حیاتی محافظت میکنه.
- مجاز کردن SSH فقط از طریق Vault با دسترسی بالا؛ مسدودسازی SSH بین سرورها: مدیریت اعتبارنامهها رو متمرکز میکنه و جلوی حرکت مهاجم بین سرورها (island-hopping) رو میگیره.
- استفاده از 802.1X NAC و امنیت پورت روی سوئیچهای شعب: دستگاههای مخرب مانند Raspberry Piهای اسنفیر رو شناسایی و مسدود میکنه.
- Whitelist کردن و محدودسازی نرخ DNS خروجی؛ مسدود کردن تونلینگ و ارائهدهندگان Dynamic-DNS: کانالهای مخفی و استخراج داده رو مختل میکنه.
- پیاده سازی امضاهای IDPS/NDR برای تشخیص ابزارهای TINYSHELL، SUN4ME، iodine، CAKETAP: دید لحظهای نسبت به ابزارهای مهاجم در شبکه ایجاد میکنه.
مانیتورینگ، ثبت رویداد و شناسایی:
- ارسال لاگها به یک مخزن SIEM با نگهداری بیشتر یا برابر با 400 روز: شواهد فارنزیک رو حفظ کرده و شناسایی نفوذهای طولانی مدت رو ممکن میکنه. همچنین ارسال لاگها به مدیریت لاگ غیر قابل تغییر با نگهداری ۷ ساله (۲ سال آنلاین + ۵ سال آفلاین).
- ارزیابی اجرای کد در حافظهی اشتراکی و نوشتن در کتابخانههای PAM: نقاطی رو هدف قرار میده که بدافزارهای Fileless معمولا در اون مخفی میشن.
- فعالسازی File Integrity Monitoring برای فایلهای حیاتی و مسیرهای PAM: تغییرات غیرمجاز در فایلهای پرخطر رو شناسایی میکنه.
- انتشار و نگهداری قوانین YARA/Sigma برای خانوادههای بدافزار مهاجم.
- هشدار روی ابزارهای انتقالِ فایلِ خروجی از سرورهای تولید: معمولا نشانهای از عملیات سرقت داده است.
- فعالسازی لاگ گیری دقیق دسترسی، برای تمام وباپلیکیشنها: بازسازی سریع حوادث و شناسایی رفتارهای غیرعادی رو ممکن میکنه.
حاکمیت و تضمین مستمر:
- بروزرسانی همه میزبانهای لینوکس و نرمافزارهای جانبی در بازه مورد قبول شرکت سازنده؛ خودکارسازی بررسی CVE در بازه ۷ روزه: زمانِ در معرض خطر بودن نسبت به آسیبپذیریهای قابل اکسپلویت رو کاهش میده.
- انجام تست نفوذ داخلی و خارجی: اطمینان مستقل ایجاد کرده و نقاط کور امنیتی رو پیش از مهاجمان آشکار میکنه.
- انجام ارزیابی سالانه Compromise Assessment تخصصی برای APTهای طولانیمدت: تأیید میکنه که محیط از وجود مهاجمان مخفی پاک است.
- بکارگیری سرویس کشف تهدید 24×7 (MTH/XDR): شناسایی مداوم مبتنی بر فرضیه رو فراهم میکنه که فراتر از کنترلهای امضامحور است.
- برگزاری تمرینهای Table-top (شبیه سازی روی میز مثلا اگه این اتفاق افتاد چه میکنیم؟) و Purple-team (تیم قرمز + تیم آبی) و پیگیری Dwell-Time KPIs (اندازهگیری مقدار زمان حضور مهاجم قبل از شناسایی شدن.): آمادگی پاسخ به حادثه رو آزمایش کرده و بهبود قابل اندازهگیری ایجاد میکنه.
IoCهای گزارش:
شبکه:
| IOC | بدافزار مربوطه |
| wsmtp1d.webredirect[.]org | Tinyshell |
| mailer5nkdid.ddns[.]net | Tinyshell |
| 69.172.229[.]249 | Tinyshell |
| 185.243.114[.]26 | Tinyshell |
| rvhthaa1abc19lp.dyndns[.]org | Tinyshell |
| dvsedcabc9lpd[.]webredirect[.]org | Tinyshell |
| 180.250.112[.]188 | Tinyshell |
| dvamh2h1abhlky[.]ddns[.]net | Tinyshell |
| rvsoaisabwluddn.ddns[.]net | Tinyshell |
فایل:
| IoC | بدافزار مربوطه |
| ec7465ef5f87680e938b02dfe33ab82b1a744614 | SLAPSTICK |
| a2d7ce164cd137b064bdf75ac8a3eb3ffb4b91a8 | SUN4ME |
| b940d731a75e77b2204d7ab14d62fb646b852382 | TINYSHELL |
| 6faf9ece21b8e5b990c038972ab9b3b4ed65ea6c | TINYSHELL |
| 5412bd5e38f105a690dc738e2cb7eefb57a8955f | TINYSHELL |
| 018bfe5b9f34108424dd63365a14ab005e249fdd | TINYSHELL |
| 0c59e8197ae767f8a755eaabe0a8f1d37c994d28 | SLAPSTICK |
| 0a082d60bcf9095c47b71c7bde3b20acabf5ddd2 | SLAPSTICK |
| caf5bb8a37365fe75f215ef06c5bd5416ad7a851 | SLAPSTICK |
| 5d340d983f852bb7c0c8b89740bb030f28b617cf | SLAPSTICK |
| 72beb2ca829899552401e19c615755139955091a | SLAPSTICK |
| a85b407e8ea23b9ca39db93ede52fe42bf0bd9ed | WINGHOOK |
رولهای Yara:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
rule unc2891__tinyshell_client { meta: company = "Group-IB" family = "unc2891.tinyshell" description = "Detects unc2891 tinyshell client" strings: $s1 = {54 45 52 4D 00 76 74 31 30 30 00 70 65 6C 5F 73 65 6E 64 5F 6D 73 67 00} // TERM.vt100.pel_send_msg $s2 = {25 38 73 00 25 33 37 73 00 25 73 36 00 25 64 36 00} //%8s.%37s.%s6.%d6 condition: all of ($s*) } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
rule unc2891__caketap { meta: company = "Group-IB" family = "unc2891.caketap" description = "Detects unc2891 caketap" strings: $s1 = ".caahGss187" ascii wide nocase $s2 = "%u.%u.%u.%u" ascii wide nocase $s3 = "%c %d\x0a\x00" ascii wide nocase $s4 = "%s:%d\x0a\x00" ascii wide nocase $s5 = "/sys\x00" ascii wide nocase $s6 = "ipstat\x00" ascii wide nocase condition: 5 of them } |
|
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
rule unc2891__caketap_sys_mkdir_hook { meta: company = "Group-IB" family = "unc2891.caketap" description = "Detects unc2891 caketap" strings: $chunk1 = { 3C 52 0F 84 ?? ?? ?? ?? 3C 53 49 C7 C4 FE FF FF FF 75 ?? 48 8B 15 ?? ?? ?? ?? 4C 8B 2D ?? ?? ?? ?? 31 C0 BE 42 00 00 00 48 C7 C7 18 F0 5D A0 E8 ?? ?? ?? ?? 4C 89 EA BE 52 00 00 00 48 C7 C7 18 F0 5D A0 31 C0 E8 ?? ?? ?? ?? E9 ?? ?? ?? ?? } $chunk_2 = { BA 00 10 00 00 48 89 E5 41 56 41 55 41 89 F5 BE D0 80 00 00 41 54 49 89 FC 48 8B 3D ?? ?? ?? ?? 53 E8 ?? ?? ?? ?? BA 00 10 00 00 4C 89 E6 48 89 C7 48 89 C3 E8 ?? ?? ?? ?? F0 48 FF 05 ?? ?? ?? ?? 48 85 DB 74 ?? } condition: 1 of them } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
rule logbleach { meta: company = "Group-IB" family = "logbleach" description = "Detects logbleach" strings: $s1 = "%-16s system-down %-20s %-10s %-20s %-32s" ascii wide nocase $s2 = "%-16s system-boot %-20s %-10s %-20s %-32s" ascii wide nocase $s3 = "%-16s %-12s %-20s %-10s %-20s %-32s" ascii wide nocase $s4 = "%-16s %-12s %-20s %-10s %-32s" ascii wide nocase condition: all of them } |
|
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 |
rule unc2891__slapstick_config { meta: company = "Group-IB" family = "unc2891.slapstick" description = "Detects unc2891 slapstick config" strings: $enc_conf = { 70 61 6D 00 [135] D0 93 96 9D C9 CB D0 [128] D0 93 96 9D C9 CB D0 [537] E4 A4 CF C4 CC C9 92 DF DF DF DF DF D1 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D1 E4 A4 CF 92 F5 E4 A4 CE C4 CC C9 92 DF DF DF DF DF D1 DF BE BC BC BA AC AC DF B8 AD BE B1 AB BA BB DF D9 DF A8 BA B3 BC B0 B2 BA DF D1 E4 A4 CF 92 F5 E4 A4 CF C4 CC C9 92 DF DF DF DF DF D1 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D2 D1 E4 A4 CF 92 FF 6D 61 70 00 00 00 00 } condition: $enc_conf } |