অপারেশন ডুয়ালস্ক্রিপ্ট – ক্রিপ্টোকারেন্সি এবং আর্থিক কার্যকলাপকে লক্ষ্য করে একটি বহু-পর্যায়ের পাওয়ারশেল ম্যালওয়্যার অভিযান
ভূমিকা
আমাদের তদন্তকালে, আমরা শিডিউলড টাস্ক পারসিস্টেন্স, ভিবিস্ক্রিপ্ট লঞ্চার এবং পাওয়ারশেল-ভিত্তিক এক্সিকিউশনকে কাজে লাগিয়ে একটি বহু-পর্যায়ের ম্যালওয়্যার সংক্রমণ শনাক্ত করেছি। এই আক্রমণটি দুটি সমান্তরাল শৃঙ্খলের মাধ্যমে পরিচালিত হয়: একটি ওয়েব-ভিত্তিক পাওয়ারশেল লোডার যা রিমোট পেলোড সংগ্রহ করে এবং একটি দ্বিতীয় পাওয়ারশেল লোডার শৃঙ্খল যা রেট্রোর্যাট ইমপ্লান্টটি কার্যকর করে।
উইন্ডোজের বৈধ উপাদানগুলোর অপব্যবহার করে এবং সরাসরি মেমরিতে পেলোড কার্যকর করার মাধ্যমে, আক্রমণকারীরা ডিস্কের ক্ষতি কমিয়ে আনে এবং প্রচলিত শনাক্তকরণ পদ্ধতি এড়িয়ে যায়।
প্রাথমিক ফলাফল
ব্যবহারকারীর প্রবেশযোগ্য ডিরেক্টরি থেকে VBScript ফাইল চালনাকারী সন্দেহজনক শিডিউলড টাস্ক শনাক্ত করার পর তদন্ত শুরু করা হয়। টাস্কগুলো লুকানো পাওয়ারশেল কমান্ড চালু করার জন্য কনফিগার করা ছিল, যা ডেটা সংরক্ষণের জন্য উইন্ডোজের নিজস্ব স্ক্রিপ্টিং কম্পোনেন্টের সম্ভাব্য অপব্যবহারের ইঙ্গিত দেয়।
আরও পরীক্ষায় একাধিক সন্দেহজনক প্রত্নবস্তু পাওয়া গেছে, যার মধ্যে রয়েছে:
- এক্সিকিউশন পলিসি বাইপাস করে VBScript লঞ্চার দ্বারা PowerShell চালু করা
- একটি পাওয়ারশেল স্ক্রিপ্ট (ppamproServiceZuneWAL.ps1) যা একটি বাহ্যিক ডোমেইন থেকে দূরবর্তী কন্টেন্ট ডাউনলোড এবং এক্সিকিউট করে।
- সরাসরি মেমরিতে ক্ষতিকারক পেলোড কার্যকর করার জন্য ব্যবহৃত অতিরিক্ত পাওয়ারশেল স্ক্রিপ্ট।
Wallet.txt হোস্টকারী একটি দূরবর্তী ওয়েব রিসোর্সে বহির্গামী সংযোগগুলো একটি বাহ্যিক সার্ভার থেকে সক্রিয় কমান্ড পুনরুদ্ধারের বিষয়টি নিশ্চিত করেছে, যা দূরবর্তী কমান্ড কার্যকর করার সক্ষমতা নির্দেশ করে।
এই অনুসন্ধানগুলি ওয়েব-বাহিত পেলোড এবং ইন-মেমরি পাওয়ারশেল এক্সিকিউশন কৌশল ব্যবহার করে একটি স্থায়ী বহু-পর্যায়ের অনুপ্রবেশের উপস্থিতি নিশ্চিত করেছে।
সংক্রমণ শৃঙ্খলের সংক্ষিপ্ত বিবরণ
এই সমঝোতায় উইন্ডোজ শিডিউলড টাস্কের মাধ্যমে প্রতিষ্ঠিত স্থায়িত্ব দ্বারা চালিত দুটি সমান্তরাল এক্সিকিউশন চেইন অন্তর্ভুক্ত রয়েছে। উভয় চেইনই ডিস্কে ন্যূনতম ক্ষতিকারক উপাদান স্থাপন করার জন্য ভিবিস্ক্রিপ্ট লঞ্চার এবং পাওয়ারশেল এক্সিকিউশন ব্যবহার করে।
একটি চেইন একটি রিমোট পাওয়ারশেল পেলোড পুনরুদ্ধার ও কার্যকর করে, যা ক্রিপ্টোকারেন্সি ক্লিপবোর্ড হাইজ্যাক করে। দ্বিতীয় চেইনটি একটি ভিবিস্ক্রিপ্ট লঞ্চার (PiceVid.vbs) ব্যবহার করে একটি পাওয়ারশেল-ভিত্তিক পেলোড (PiceVid.ps1) কার্যকর করে, যা সিস্টেম পর্যবেক্ষণ, আর্থিক কার্যকলাপ ট্র্যাকিং এবং রিমোট কমান্ড কার্যকর করার জন্য রেট্রোর্যাট ম্যালওয়্যার স্থাপন করে।

চেইন ১ – ওয়েব ব্যাকডোরের উপাদানসমূহ
নির্ধারিত কাজের স্থায়িত্ব
ব্যবহারকারীর লেখনীযোগ্য ডিরেক্টরি থেকে VBScript ফাইল চালানোর জন্য কনফিগার করা উইন্ডোজ শিডিউলড টাস্কের মাধ্যমে স্থায়িত্ব প্রতিষ্ঠা করা হয়েছিল। এই টাস্কগুলো এক্সিকিউশন পলিসি বাইপাস সক্রিয় রেখে হিডেন মোডে পাওয়ারশেল চালু করে।
এটি প্রচলিত স্টার্টআপ রেজিস্ট্রি পদ্ধতি এড়িয়ে ক্ষতিকারক চেইনটির নির্ভরযোগ্য পুনঃ-কার্যকরকরণ নিশ্চিত করে।
VBS লঞ্চার – ppamproServiceZuneWAL.vbs
এই স্ক্রিপ্টটি একটি এক্সিকিউশন মধ্যস্থতাকারী হিসেবে কাজ করে, যা নীরবে পাওয়ারশেল চালু করে। এর মধ্যে মূল পেলোডটি থাকে না, কিন্তু এটি রিমোট লোডার চেইনে প্রবেশের একটি নিয়ন্ত্রিত পথ হিসেবে কাজ করে।
রিমোট লোডার – ppamproServiceZuneWAL.ps1
এই স্ক্রিপ্টটি একটি ওয়েব-ভিত্তিক ব্যাকডোর হিসেবে কাজ করে এবং নিম্নলিখিত কাজগুলো সম্পাদন করে:
- WMI প্রসেস গণনার মাধ্যমে একক-ইনস্ট্যান্স যাচাইকরণ
- রিমোট স্ক্রিপ্ট (Wallet.txt) HTTP দ্বারা পুনরুদ্ধার
- [ScriptBlock]::Create().Invoke() ব্যবহার করে গতিশীল নির্বাহ
রিমোট পেলোডটি সম্পূর্ণরূপে মেমোরিতে এক্সিকিউট করা হয়। যেহেতু কন্টেন্টটি বাহ্যিকভাবে হোস্ট করা থাকে, তাই এটিকে ডাইনামিকভাবে আপডেট করা যায়, যা আক্রমণকারীকে নিরবচ্ছিন্ন নিয়ন্ত্রণ করতে সক্ষম করে।

ppamproServiceZuneWAL.ps1 স্ক্রিপ্টটি একটি পাওয়ারশেল-ভিত্তিক রিমোট লোডার এবং এক্সিকিউশন কন্ট্রোলার হিসেবে কাজ করে । প্রাথমিকভাবে, এটি $MyInvocation অবজেক্ট ব্যবহার করে নিজের স্ক্রিপ্টের নাম সংগ্রহ করে এবং CURRENT-instance নামের একটি ফাংশন চালায়, যা WMI-এর মাধ্যমে চলমান সমস্ত powershell.exe প্রসেস পরীক্ষা করে দেখে যে একই স্ক্রিপ্টের অন্য কোনো ইনস্ট্যান্স আগে থেকেই সক্রিয় আছে কিনা। যদি কোনো ডুপ্লিকেট ইনস্ট্যান্স শনাক্ত হয়, তবে একাধিক সমান্তরাল এক্সিকিউশন রোধ করতে স্ক্রিপ্টটি বন্ধ হয়ে যায়। একক-ইনস্ট্যান্স এক্সিকিউশন নিশ্চিত করার পর, স্ক্রিপ্টটি .NET নেটওয়ার্কিং লাইব্রেরি System.Net.Http লোড করে এবং HttpClient ব্যবহার করে hxxps://anycourse[.]net/wp-content/uploads/2025/04/Wallet[.]txt থেকে রিমোট কন্টেন্ট ডাউনলোড করে । সংগৃহীত Wallet.txt ফাইলটিতে আক্রমণকারীর দ্বারা নিয়ন্ত্রিত পাওয়ারশেল কমান্ড থাকে। এই কন্টেন্ট ডিস্কে সংরক্ষণ না করে, স্ক্রিপ্টটি [ScriptBlock]::Create() ব্যবহার করে ডাউনলোড করা টেক্সটকে ডাইনামিকভাবে এক্সিকিউটেবল পাওয়ারশেল কোডে রূপান্তর করে এবং সরাসরি মেমোরিতে তা এক্সিকিউট করে। এই কৌশলটি কার্যকরভাবে স্ক্রিপ্টটিকে একটি ওয়েব-ভিত্তিক ব্যাকডোরে রূপান্তরিত করে, যা আক্রমণকারীদের সার্ভারে থাকা Wallet.txt ফাইলের বিষয়বস্তু পরিবর্তন করার মাধ্যমেই আক্রান্ত সিস্টেমটিতে দূর থেকে কমান্ড আপডেট ও কার্যকর করার সুযোগ দেয় ।
ওয়েব পেলোড – ওয়ালেট.txt
ডাউনলোড করা ফাইলটিতে একটি বাহ্যিক সার্ভার থেকে পাঠানো পাওয়ারশেল নির্দেশাবলী রয়েছে।

এর ফলে আক্রমণকারী যা করতে পারে:
- আদেশ জারি করুন
- উপাদানগুলি আপডেট বা পুনরায় স্থাপন করুন
- গোয়েন্দা কার্যক্রম পরিচালনা করুন
- ডেটা পাচার করুন
এই প্রক্রিয়াটি কার্যকরভাবে আক্রান্ত সিস্টেমটিকে একটি দূরনিয়ন্ত্রিত পাওয়ারশেল ইমপ্লান্টে রূপান্তরিত করে।
Wallet.txt-এ একটি পাওয়ারশেল ক্লিপবোর্ড-হাইজ্যাকিং স্ক্রিপ্ট রয়েছে , যা ক্রিপ্টোকারেন্সি লেনদেন চুরি করার জন্য ডিজাইন করা হয়েছে। স্ক্রিপ্টটি কপি করা টেক্সটের জন্য সিস্টেম ক্লিপবোর্ড ক্রমাগত পর্যবেক্ষণ করে এবং বিটকয়েন বা অন্যান্য ক্রিপ্টো ফরম্যাটের মতো ক্রিপ্টোকারেন্সি ওয়ালেট অ্যাড্রেস শনাক্ত করতে রেগুলার এক্সপ্রেশন প্যাটার্ন ব্যবহার করে। যখন একটি মিলে যাওয়া অ্যাড্রেস খুঁজে পাওয়া যায়, তখন স্ক্রিপ্টটি কপি করা ওয়ালেট অ্যাড্রেসটিকে তার অভ্যন্তরীণ ডিকশনারিতে সংরক্ষিত আক্রমণকারীর-নিয়ন্ত্রিত একটি অ্যাড্রেস দিয়ে প্রতিস্থাপন করে। ফলে, যদি ভুক্তভোগী ক্রিপ্টোকারেন্সি পাঠানোর জন্য একটি বৈধ ওয়ালেট অ্যাড্রেস কপি করে, তবে ক্লিপবোর্ডটি নীরবে এমনভাবে পরিবর্তন করা হয় যাতে অর্থ আক্রমণকারীর ওয়ালেটে চলে যায়। স্ক্রিপ্টটি নিয়মিত বিরতিতে ক্লিপবোর্ড ক্রমাগত পর্যবেক্ষণ করে, যা আক্রমণকারীকে হ্যাক হওয়া সিস্টেমে গোপনে ক্রিপ্টোকারেন্সি পেমেন্ট আটকানো এবং অন্যত্র পাঠিয়ে দেওয়ার সুযোগ করে দেয়।
আক্রমণকারী-নিয়ন্ত্রিত ক্রিপ্টোকারেন্সি ওয়ালেট ঠিকানা
Wallet.txt পেলোডটি আক্রমণকারীর-নিয়ন্ত্রিত ক্রিপ্টোকারেন্সি ওয়ালেট অ্যাড্রেসের একটি ডিকশনারি সংরক্ষণ করে। যখন ক্লিপবোর্ডে একটি মিলে যাওয়া ওয়ালেট ফরম্যাট শনাক্ত করা হয়, তখন ম্যালওয়্যারটি ভুক্তভোগীর অ্যাড্রেসটিকে সংশ্লিষ্ট আক্রমণকারী-নিয়ন্ত্রিত ওয়ালেট অ্যাড্রেস দিয়ে প্রতিস্থাপন করে।
প্রতিস্থাপন ঠিকানাগুলো একাধিক ক্রিপ্টোকারেন্সি অন্তর্ভুক্ত করে, যার মধ্যে রয়েছে
Bitcoin (BTC), Litecoin (LTC), Ethereum (ETH), Monero (XMR), XRP, NEO, বিটকয়েন ক্যাশ (BCH), Dogecoin (DOGE), Dash, Stellar (XLM), Binance Coin (BNB), Tezos (XTZ), ট্রন (TRX), VeChain (QBVET), কারকয়েন (জিবি) (ADA), Polkadot (DOT), Cosmos (ATOM), Lisk, Kava, Algorand (ALGO), Filecoin (FIL), Nano, NEM, Waves, Zcash (ZEC), Terra, এবং THORchain (RUNE)।
চেইন ২ – পাওয়ারশেল লোডারের উপাদানসমূহ
VBS লঞ্চার – PiceVid.vbs
এই স্ক্রিপ্টটি PiceVid.ps1-এর এক্সিকিউশন চালু করে, যা লোকাল লোডার চেইনের এন্ট্রি পয়েন্ট হিসেবে কাজ করে এবং শিডিউলড টাস্কের মাধ্যমে এক্সিকিউট হয়।
পাওয়ারশেল লোডার – পিসভিড.পিএস১
স্ক্রিপ্টটিতে RetroRAT পেলোড রয়েছে এবং এটি সরাসরি মেমরিতে নির্বাহ করা হয়।

পেলোডকে একটি আলাদা এক্সিকিউটেবল ফাইলে লেখার পরিবর্তে, স্ক্রিপ্টটি এর বিষয়বস্তু পড়ে এবং Invoke-Expression (IEx) ব্যবহার করে তা ডাইনামিকভাবে এক্সিকিউট করে ।
এই পদ্ধতিটি আক্রমণকারীকে ডিস্কে শনাক্তযোগ্য চিহ্ন ন্যূনতম রেখে ম্যালওয়্যারটি কার্যকর করতে সক্ষম করে।
বিশ্লেষণের সময় শনাক্ত হওয়া ইন-মেমরি পেলোডটি RetroRAT- এর অনুরূপ , যা একটি রিমোট অ্যাক্সেস ট্রোজান এবং এটি মার্কিন ব্যাংকিং প্রতিষ্ঠান ও ক্রিপ্টোকারেন্সি প্ল্যাটফর্মের সাথে যুক্ত আর্থিক কার্যকলাপকে লক্ষ্য করে । এই ম্যালওয়্যারটি ব্যবহারকারীর কার্যকলাপ পর্যবেক্ষণ করে, কীস্ট্রোক ক্যাপচার করে এবং সংবেদনশীল তথ্য সংগ্রহের উদ্দেশ্যে বেছে বেছে আর্থিক পরিষেবাগুলোর সাথে হওয়া মিথস্ক্রিয়া ট্র্যাক করে।
পেলোডের বিশ্লেষণ – রেট্রোর্যাট
বিশ্লেষিত পেলোডটি, যা রেট্রোর্যাট (RetroRAT) নামে পরিচিত, হলো একটি আর্থিকভাবে উদ্দেশ্যপ্রণোদিত রিমোট অ্যাক্সেস ট্রোজান (RAT) যা ক্রিপ্টোকারেন্সি এবং ব্যাংকিং-সম্পর্কিত কার্যকলাপকে লক্ষ্য করে। এই ম্যালওয়্যারটি একটি গ্লোবাল কীবোর্ড হুক ইনস্টল করে এবং আর্থিক অ্যাপ্লিকেশন ও সচরাচর ব্যবহৃত ব্যাংকিং বা ক্রিপ্টোকারেন্সি প্ল্যাটফর্মের সাথে সম্পর্কিত কীওয়ার্ডের জন্য সক্রিয় উইন্ডোর শিরোনামগুলো ক্রমাগত পর্যবেক্ষণ করে। এর মডিউলার আর্কিটেকচার, একটি টিসিপি-ভিত্তিক কমান্ড-অ্যান্ড-কন্ট্রোল (C2) কমিউনিকেশন চ্যানেলের সাথে মিলিত হয়ে, আক্রমণকারীকে দূরবর্তী কমান্ড কার্যকর করতে, ফাইল পরিবর্তন করতে, ক্লিপবোর্ডের ডেটা অ্যাক্সেস করতে এবং সরাসরি মেমরিতে ডায়নামিকভাবে অতিরিক্ত অ্যাসেম্বলি লোড করতে সক্ষম করে।
প্রতিরক্ষা এড়ানো এবং বিশ্লেষণ-বিরোধী কৌশল
এই স্যাম্পলটি স্যান্ডবক্স, ভার্চুয়াল মেশিন এবং স্বয়ংক্রিয় ম্যালওয়্যার বিশ্লেষণ সিস্টেমের মতো বিশ্লেষণ পরিবেশে শনাক্তকরণ এড়াতে ও কার্য সম্পাদন সীমিত করতে একাধিক বিশ্লেষণ-বিরোধী এবং প্রতিরক্ষা এড়ানোর কৌশল প্রয়োগ করে।
– স্যান্ডবক্স এড়ানোর পরীক্ষা
নমুনাটিতে সাধারণ স্যান্ডবক্স এবং বিশ্লেষণ পরিবেশ শনাক্তকারীগুলির একটি হার্ড-কোডেড তালিকা রয়েছে, যার মধ্যে "জন ডো", "ভাইরাস", "টেস্ট ইউজার", "স্যান্ডবক্স" ইত্যাদির মতো পরিচিত ইউজারনেমও অন্তর্ভুক্ত।
এক্সিকিউশনের সময়, সম্ভাব্য বিশ্লেষণ পরিবেশ শনাক্ত করার জন্য এই মানগুলিকে সিস্টেম অ্যাট্রিবিউটের সাথে তুলনা করা হয়। যদি কোনো মিল খুঁজে পাওয়া যায়, তবে ম্যালওয়্যারটি তার আচরণ পরিবর্তন করে, যা সম্ভবত একটি এড়ানোর কৌশল।


– ভার্চুয়াল মেশিন সনাক্তকরণ
ম্যালওয়্যারটি ভার্চুয়াল মেশিনের ডিরেক্টরি, ড্রাইভার এবং সংশ্লিষ্ট সার্ভিসগুলোতে কোয়েরি করে সেখানে চলছে কিনা তাও পরীক্ষা করে। যদি কোনো চিহ্ন খুঁজে পায়, তবে এটি নিজে থেকেই বন্ধ হয়ে যায়।


– ধোঁয়াশার ব্যবহার
পেলোডটি মৌলিক কিন্তু কার্যকর অবফাসকেশনের ব্যাপক ব্যবহার করে। মেথড এবং ক্লাসের নামগুলো কঠোরভাবে পরিবর্তন করা হয়, এবং বেশ কিছু আইডেন্টিফায়ারে ইউনিকোড কন্ট্রোল ক্যারেক্টার থাকে, যা ডিকম্পাইলারের ভেতরে সেগুলোকে ত্রুটিপূর্ণ দেখায়। এছাড়াও, বেশিরভাগ অর্থবহ স্ট্রিং এনকোড করে সংরক্ষণ করা হয় এবং রানটাইমে পুনর্গঠন করা হয়। এটি সরাসরি স্ট্যাটিক অ্যানালাইসিসকে বাধা দেয় এবং অ্যানালিস্টকে ডাইনামিকভাবে ভ্যালুগুলো পর্যবেক্ষণ করতে বাধ্য করে। de4dot ব্যবহার করে, আমরা বাইনারিকে আংশিকভাবে ডি-অবফাসকেট করতে সক্ষম হয়েছি, যার ফলে মেথডের নামগুলো পাঠযোগ্য অবস্থায় ফিরে এসেছে।
মিউটেক্স ব্যবহার
এক্সিকিউশনের একেবারে শুরুতে, বাইনারিটি পরীক্ষা করে দেখে যে সিস্টেমে কোনো নির্দিষ্ট মিউটেক্স আগে থেকেই উপস্থিত আছে কিনা। যদি তা খুঁজে পাওয়া যায়, ম্যালওয়্যারটি সাথে সাথে Environment.Exit(0) ব্যবহার করে তার এক্সিকিউশন বন্ধ করে দেয়। সিস্টেমে পুনরায় সংক্রমণ এড়ানোর জন্য ম্যালওয়্যার সাধারণত এই কৌশলটি ব্যবহার করে থাকে।


মাল্টি-থ্রেডেড এক্সিকিউশন
ম্যালওয়্যারটি তার কার্যকারিতার বিভিন্ন অংশ সমান্তরালভাবে সম্পাদন করার জন্য একাধিক ওয়ার্কার থ্রেড তৈরি করে। এই নকশাটি ম্যালওয়্যারটিকে কমান্ড-অ্যান্ড-কন্ট্রোল যোগাযোগ বা ডেটা প্রক্রিয়াকরণের মতো অন্যান্য কার্যক্রমে বাধা না দিয়েই অবিচ্ছিন্ন পর্যবেক্ষণ এবং নেপথ্য কার্যকলাপ বজায় রাখতে সাহায্য করে।
– থ্রেড ১ – কিবোর্ড ইভেন্ট ইন্টারসেপশন লুপ
- নতুন থ্রেড(নতুন থ্রেডস্টার্ট(GClass25.smethod_1)).স্টার্ট();
ইমপ্লান্টটি SetWindowsHookExA() ব্যবহার করে কিবোর্ড ইন্টারসেপশন পরিচালনার জন্য একটি পৃথক এক্সিকিউশন থ্রেড তৈরি করে। এই রুটিনের মধ্যে একটি নিম্ন-স্তরের (WH_KEYBOARD_LL) হুক রেজিস্টার করা হয়, যা ম্যালওয়্যারটিকে নিম্ন-স্তরের কিবোর্ড ইনপুট নিরীক্ষণ করার সুযোগ দেয়।

হুকটি ইনস্টল হয়ে গেলে, থ্রেডটি অবিলম্বে Application.Run() ব্যবহার করে একটি মেসেজ লুপে প্রবেশ করে। এটি নিশ্চিত করে যে হুকটি প্রসেসটির জীবনকাল জুড়ে সক্রিয় থাকে, যার ফলে ইমপ্লান্টটি অবিচ্ছিন্নভাবে কীস্ট্রোক ক্যাপচার করতে পারে।

হুক কলব্যাকের ভিতরে, ম্যালওয়্যারটি পরীক্ষা করে দেখে যে আটকানো বার্তাটি কোনো কী-প্রেস ইভেন্টের সাথে সঙ্গতিপূর্ণ কিনা। if (int_2 >= 0 && intptr_1 == (IntPtr)256) শর্তটি নিশ্চিত করে যে হুকটি শুধুমাত্র বৈধ কী-প্রেস ইভেন্টগুলোই প্রসেস করবে। 256 মানটি উইন্ডোজের WM_KEYDOWN বার্তার সাথে সঙ্গতিপূর্ণ, যার অর্থ হলো কোডটি কেবল তখনই কার্যকর হবে যখন কোনো কী চাপা হবে।

এই থ্রেডের শেষে, ম্যালওয়্যারটি পূর্বে ইনস্টল করা কীবোর্ড হুকটি অপসারণ করতে UnhookWindowsHookEx() ফাংশনটি কল করে। এটি ম্যালওয়্যারটি বন্ধ না হওয়া পর্যন্ত কীস্ট্রোকের অবিচ্ছিন্ন পর্যবেক্ষণ নিশ্চিত করে।
থ্রেড ২ – মার্কিন ব্যাংকিং এবং ক্রিপ্টোকারেন্সি পরিষেবাগুলির কীওয়ার্ড-ভিত্তিক পর্যবেক্ষণ
- নতুন থ্রেড(নতুন থ্রেডস্টার্ট(GClass11.smethod_0)).স্টার্ট();
কিবোর্ড ইভেন্ট ইন্টারসেপ্টকারী থ্রেড ১-এর পাশাপাশি, ম্যালওয়্যারটি এই অতিরিক্ত থ্রেডটি চালু করে, যা ব্যবহারকারীর আর্থিক কার্যকলাপের সাথে সম্পর্কিত রানটাইম চেকগুলো স্বাধীনভাবে পরিচালনা করার জন্য দায়ী।
প্রথমত, এটি লগ ফাইলগুলির ডিরেক্টরি এবং নাম প্রস্তুত ও প্রারম্ভিকীকরণ করে, যা পরবর্তীতে মনিটরিং ফলাফল সংরক্ষণের জন্য ব্যবহৃত হয়। এখানে দুটি পৃথক ফাইল প্রারম্ভিকীকরণ করা হয়, একটি ক্রিপ্টোকারেন্সি সম্পর্কিত কার্যকলাপের জন্য (“crypto_results.txt”) এবং অন্যটি ব্যাংকিং সম্পর্কিত কার্যকলাপের জন্য (“banks_results.txt”)। এই ফাইলগুলি ব্যবহারকারীর %localappdata% ডিরেক্টরির অধীনে সংরক্ষিত থাকে।

এরপর, ম্যালওয়্যারটি “array” এবং “array2” নামে দুটি স্ট্রিং অ্যারে তৈরি করে। অভ্যন্তরীণ ডিকোডিং রুটিনের মাধ্যমে রানটাইমে এই অ্যারেগুলোর মান গতিশীলভাবে পুনর্গঠন করা হয়। এই কৌশলটি অর্থপূর্ণ কীওয়ার্ডগুলোকে স্ট্যাটিক ইন্সপেকশন থেকে আড়াল করে, কিন্তু একই সাথে ম্যালওয়্যারটিকে এক্সিকিউশনের সময় সেগুলো ব্যবহার করার সুযোগ দেয়।
প্রথম অ্যারেতে (array) কয়েনবেস, ব্লকচেইন, বিটকয়েন এবং অন্যান্য প্ল্যাটফর্ম সহ ৪৭টি (0x2F) ক্রিপ্টোকারেন্সি-সম্পর্কিত কীওয়ার্ড রয়েছে। দ্বিতীয় অ্যারেতে (array2) ব্যাংক অফ আমেরিকা, ওয়েলসফার্গো, চাইম এবং পেপ্যাল সহ আর্থিক প্রতিষ্ঠান এবং পেমেন্ট পরিষেবার সাথে সম্পর্কিত ৫১টি (0x33) কীওয়ার্ড রয়েছে।
অ্যারে২-তে থাকা কীওয়ার্ডগুলো নিবিড়ভাবে পরীক্ষা করলে ম্যালওয়্যারটির লেখকের মার্কিন আর্থিক বাস্তুতন্ত্রের ওপর প্রবল মনোযোগ প্রকাশ পায়, যার মধ্যে প্রধান জাতীয় ব্যাংক, আঞ্চলিক প্রতিষ্ঠান, ডিজিটাল ব্যাংকিং প্ল্যাটফর্ম এবং বহুল ব্যবহৃত অনলাইন পেমেন্ট পরিষেবাগুলো অন্তর্ভুক্ত।


ব্যাংকিং এবং ক্রিপ্টোকারেন্সি কেন্দ্রিক পর্যবেক্ষণ লুপ
কীওয়ার্ড তালিকা এবং ফলাফল ফাইলগুলো প্রস্তুত করার পর, ম্যালওয়্যারটি একটি নিরবচ্ছিন্ন পর্যবেক্ষণ চক্রে প্রবেশ করে, যা আর্থিক পরিষেবাগুলোর সাথে ব্যবহারকারীর কার্যকলাপ ট্র্যাক করার জন্য ডিজাইন করা হয়েছে।

পূর্বে তৈরি করা ফলাফল ফাইলগুলোর জন্য দুটি HashSet অবজেক্ট তৈরি করা হয়, যা ম্যালওয়্যারটিকে পুনরাবৃত্তিমূলক লগিং এড়াতে এবং ইতিমধ্যে শনাক্ত করা মিলগুলোর একটি রেকর্ড বজায় রাখতে সাহায্য করে।
একটি অনন্ত লুপের ভেতরে, ম্যালওয়্যারটি বারবার বর্তমানে সক্রিয় উইন্ডোর শিরোনামটি সংগ্রহ করে।

ক্রিপ্টোকারেন্সি প্ল্যাটফর্ম এবং ব্যাংকিং-সম্পর্কিত পরিষেবা সম্বলিত পূর্বনির্ধারিত কীওয়ার্ড তালিকার সাথে তুলনা করার আগে, সংগৃহীত টেক্সটকে .ToLower() ব্যবহার করে স্বাভাবিক করা হয়। যখনই কোনো মিল খুঁজে পাওয়া যায় এবং তা আগে রেকর্ড করা হয়নি, তখন সংশ্লিষ্ট কীওয়ার্ডটি File.AppendAllText() ব্যবহার করে একটি নির্দিষ্ট ফলাফল ফাইলে লেখা হয়। এছাড়াও, ম্যালওয়্যারটি সেই সেশনের সাথে সম্পর্কিত পরবর্তী কীস্ট্রোকগুলো ক্যাপচার এবং রেকর্ড করা শুরু করে, যা এটিকে আর্থিক কার্যকলাপ সম্পর্কিত সম্ভাব্য সংবেদনশীল ব্যবহারকারীর ইনপুট সংগ্রহ করতে সক্ষম করে।

এই লজিকটি কার্যকরভাবে ব্যবহারকারীর ফোরগ্রাউন্ড কার্যকলাপকে নির্দিষ্ট আর্থিক কীওয়ার্ডের সাথে সংযুক্ত করে, যা থেকে বোঝা যায় যে ম্যালওয়্যারটি নির্বিচারে সমস্ত কার্যকলাপ লগ করার পরিবর্তে, বেছে বেছে ব্যাংকিং পরিষেবা, পেমেন্ট প্ল্যাটফর্ম বা ক্রিপ্টোকারেন্সি পরিষেবা-সম্পর্কিত সেশনগুলো পর্যবেক্ষণ করে।
C2 সংযোগ এবং ডেটা বহির্গমন
smethod_5() মেথডটি ম্যালওয়্যারটির প্রধান কমান্ড-অ্যান্ড-কন্ট্রোল (C2) যোগাযোগ রুটিন বাস্তবায়ন করে। এটি পূর্বনির্ধারিত রিমোট সার্ভারগুলোর সাথে ক্রমাগত একটি নেটওয়ার্ক সংযোগ স্থাপনের চেষ্টা করে এবং সক্রিয় যোগাযোগ চ্যানেলের জীবনচক্র পরিচালনা করে। একবার সফলভাবে সংযোগ স্থাপিত হলে, এই রুটিনটি রিমোট সার্ভারের সাথে আরও মিথস্ক্রিয়ার সুযোগ করে দেয়, যা ডেটা আদান-প্রদান এবং রিমোট কন্ট্রোলের ভিত্তি তৈরি করে।

প্রাথমিকভাবে, বাইনারিটি হার্ডকোডেড ডোমেইন (Class15.string_0) এবং সংশ্লিষ্ট পোর্টগুলির (Class15.int_0) একটি তালিকার মধ্য দিয়ে পুনরাবৃত্তি করে।

প্রতিটি ডোমেইন-পোর্ট সমন্বয়ের জন্য একটি TcpClient অবজেক্ট তৈরি করা হয়। একবার একটি TCP সংযোগ স্থাপিত হলে, একটি যাচাইকরণ প্রক্রিয়া (smethod_6) কার্যকর করা হয়, যা একটি হ্যান্ডশেক চেক হিসাবে কাজ করে এবং নিশ্চিত করে যে রিমোট সার্ভারটি একটি প্রত্যাশিত আইডেন্টিফায়ার দিয়ে সাড়া দিচ্ছে।

আমাদের নমুনায় প্রাপ্ত আইডেন্টিফায়ারটি হলো “RETRO-OK-2025” স্ট্রিংটি। যে সংযোগগুলো এই যাচাইকরণে ব্যর্থ হয়, সেগুলো অবিলম্বে বন্ধ করে দেওয়া হয় এবং পরবর্তী সম্ভাব্য সার্ভারটি চেষ্টা করা হয়।
সফল C2 যাচাইকরণের পর ম্যালওয়্যারটি RAT ফিচারটি সক্রিয় করে, যা পর্যায়ক্রমে স্থানীয় ফলাফল ফাইলে সংরক্ষিত ক্যাপচার করা কীস্ট্রোক ডেটা সংগ্রহ করে এবং তা C2 সার্ভারে প্রেরণ করে।

ম্যালওয়্যারটি File.ReadAllText() ব্যবহার করে রেজাল্ট ফাইল থেকে সংগৃহীত কীস্ট্রোক ডেটা পড়ে। চুরি করা ডেটা ভুক্তভোগীর শনাক্তকরণ তথ্যের সাথে একত্রিত করা হয় এবং অভ্যন্তরীণ প্যাকেট-বিল্ডিং রুটিন (GClass10) ব্যবহার করে একটি স্ট্রাকচার্ড মেসেজে প্যাকেজ করা হয়। এরপর মেসেজটি সক্রিয় TCP কমিউনিকেশন চ্যানেল (GClass12) এর মাধ্যমে C2 সার্ভারে পাঠানো হয়, যেখানে পাঠানোর আগে পেলোডটি এনক্রিপ্ট করা হয়।
এই কৌশলটি ম্যালওয়্যারকে নির্ভরযোগ্যভাবে ব্যবহারকারীর সংবেদনশীল তথ্য সংগ্রহ করে দূরবর্তী C2 পরিকাঠামোতে প্রেরণ করতে সক্ষম করে, যার ফলে আক্রমণকারী আক্রান্ত সিস্টেম থেকে আর্থিক এবং পরিচয়পত্র-সম্পর্কিত তথ্য হাতিয়ে নিতে পারে।
RAT মডিউল
একটি রিমোট অ্যাক্সেস ট্রোজান হিসেবে, এই ম্যালওয়্যারটি বিভিন্ন ধরনের রিমোট কন্ট্রোল ক্ষমতা সমর্থন করে। C2 সার্ভার থেকে প্রাপ্ত কমান্ডগুলো একটি কেন্দ্রীভূত ডিসপ্যাচারের মাধ্যমে প্রক্রিয়াজাত করা হয়, যা একটি সুইচ স্টেটমেন্ট হিসেবে বাস্তবায়িত। এই ডিসপ্যাচারটি GEnum1 এনুমারেশনে সংজ্ঞায়িত কমান্ড আইডেন্টিফায়ারগুলো মূল্যায়ন করে এবং সংশ্লিষ্ট কার্যকারিতা চালু করে।

কমান্ডের মানের ওপর নির্ভর করে রিমোট ডেস্কটপ মনিটরিং, ফাইল সিস্টেম ম্যানিপুলেশন, কমান্ড এক্সিকিউশন এবং সিস্টেম কন্ট্রোলের মতো অপারেশনগুলো সম্পাদন করার জন্য বিভিন্ন মডিউল চালু করা হয়।


এই RAT কার্যকারিতা আক্রমণকারীদেরকে আর্থিক তথ্য চুরির পাশাপাশি আক্রান্ত সিস্টেমটিকে ইন্টারেক্টিভভাবে পর্যবেক্ষণ ও নিয়ন্ত্রণ করার সুযোগ দেয়।
RAT কমান্ডের সক্ষমতা
| সামর্থ্য | কর্ম |
| রিমোট ডেস্কটপ / স্ক্রিন মনিটরিং | স্ক্রিন ক্যাপচার শুরু/বন্ধ করুন এবং রিমোট ডেস্কটপ স্ট্রিমিং কনফিগার করুন |
| ফাইল ম্যানেজার অপারেশন | ডিরেক্টরি ব্রাউজ করুন, ফাইল আপলোড/ডাউনলোড করুন, ফাইল সিস্টেম পরিচালনা করুন |
| প্রক্রিয়া / সিস্টেম পর্যবেক্ষণ | প্রক্রিয়াগুলো তালিকাভুক্ত করুন, সিস্টেমের তথ্য সংগ্রহ করুন, কাজগুলো পরিচালনা করুন |
| কমান্ড এক্সিকিউশন | হ্যাক হওয়া সিস্টেমে কমান্ড বা প্রোগ্রাম চালান। |
| সিস্টেম নিয়ন্ত্রণ | সিস্টেম বন্ধ/রিবুট করুন অথবা ম্যালওয়্যার ক্লায়েন্টটি বন্ধ করুন। |
| মেমরি / উন্নত অপারেশন | স্মৃতি বা প্রক্রিয়া পরিচালনা সংক্রান্ত কাজ সম্পাদন করুন |
লক্ষ্যযুক্ত আর্থিক কীওয়ার্ড
| CryptoCurrency | |||
| কয়েনবেস | metamask | বিটফ্লায়ার | পোলোনিক্স |
| blockchain | ট্রাস্টওয়ালেট | বিট | প্রবিট |
| ফ্রিওয়ালেট | bitpay | গেট | হিটবিটিসি |
| মানিব্যাগ | পক্সফুল | coincheck | মার্কাটক্স |
| Bitcoin | স্থানীয় বিটকয়েন | ডেরিবিট | হটবিট |
| বিটিসি | ক্রিপ্টো | বিটসো | ডিজিফাইনেক্স |
| binance | bitfinex | বিটমার্ট | বিটব্যাংক |
| ক্রাকেনকে | বিটস্ট্যাম্প | এক্সমো | লুনো |
| etoro | ঠিক আছে | বিটপাণ্ডা | মিথুনরাশি |
| coingecko | বাইবাইট | তরল | বিটবিএনএস |
| coinmarketcap | kucoin | মুদ্রা | কোইন্টিগার |
| tradingview | huobi | bittrex | |
| আর্থিক প্রতিষ্ঠান / পেমেন্ট প্ল্যাটফর্ম | |||
| ব্যাংক অফ আমেরিকা | ফিফথ থার্ড ব্যাংক | প্রথম প্রজাতন্ত্র | তুষার ব্যাংক |
| ওয়েলসফার্গো | হান্টিংটন | জিয়ন্সব্যাঙ্ক | অনবি |
| মৃগয়া | সিঙ্ক্রোনারি | কমার্সব্যাংক | প্রথম নাগরিক |
| সিটিব্যাঙ্ক | চাবি ব্যাংক | পশ্চিমের ব্যাংক | সেঞ্চুরিলিঙ্কব্যাঙ্ক |
| ইউএসব্যাঙ্ক | আমেরিকান এক্সপ্রেস | ওয়ানফাইন্যান্স | সিনোভাস |
| ক্যাপিটালওয়ান | আবিষ্কার করা | গো২ব্যাঙ্ক | প্রথম দিগন্ত |
| পিএনসি | এনবিকেসি | সবুজ-বিন্দু | ইবে |
| টিডিব্যাঙ্ক | Sofi | সহজ | পেপাল |
| সত্যবাদী | ঐকতান | শ্বাসাঘাত | payeer |
| মিত্র | ভ্যারোব্যাঙ্ক | এনবিকেসি ব্যাংক | মর্দানী স্ত্রীলোক |
| বিবিটি | অ্যাক্সোসব্যাঙ্ক | পতাকা তারকা | চেকআউট |
| সূর্য ট্রাস্ট | নাগরিক ব্যাংক | বিএমও | প্রদান |
| অঞ্চল | এমএন্ডটিব্যাঙ্ক | এভারব্যাঙ্ক | |
উপসংহার
অপারেশন ডুয়ালস্ক্রিপ্ট হলো একটি বহু-পর্যায়ের ম্যালওয়্যার ক্যাম্পেইন যা ডিস্কের ক্ষতি কমিয়ে স্থায়িত্ব বজায় রাখার জন্য শিডিউলড টাস্ক, ভিবিস্ক্রিপ্ট এবং পাওয়ারশেলের মতো বৈধ উইন্ডোজ উপাদানগুলোকে অপব্যবহার করে। এই আক্রমণটি দুটি সমান্তরাল শৃঙ্খলের মাধ্যমে পরিচালিত হয়: একটি ওয়েব-ভিত্তিক পাওয়ারশেল লোডার যা একটি ক্রিপ্টোকারেন্সি ক্লিপবোর্ড হাইজ্যাকার স্থাপন করে এবং একটি দ্বিতীয় পাওয়ারশেল লোডার শৃঙ্খল যা সরাসরি মেমরিতে রেট্রোর্যাট ইমপ্লান্টটি কার্যকর করে।
ওয়ালেট ম্যানিপুলেশনের মাধ্যমে আর্থিক চুরির সাথে রিমোট অ্যাক্সেস ক্ষমতাকে একত্রিত করে, আক্রমণকারীরা নির্দিষ্ট ক্রিপ্টোকারেন্সি চুরি এবং সিস্টেমের উপর নিরবচ্ছিন্ন নজরদারি—উভয়ই অর্জন করে। এই অভিযানটি প্রচলিত শনাক্তকরণ পদ্ধতি এড়ানোর জন্য বিশ্বস্ত সিস্টেম ইউটিলিটি এবং ইন-মেমরি এক্সিকিউশন কৌশলের ক্রমবর্ধমান অপব্যবহারকে তুলে ধরে।
সমঝোতার সূচক
ফাইল-ভিত্তিক
| হস্তনির্মিত বস্তু | MD5 হ্যাশ | সনাক্তকরণ |
| রেট্রোর্যাট | 7546ada1e3144371724db209ba4c5f37 | Trojan.RetroRAT.S3882604 |
| PiceVid.ps1 | 173b27e7541427929da72ebf37c6db8e | স্ক্রিপ্ট.রেট্রোর্যাট.৫০৫১৭.জিসি |
| PiceVid.vbs | 243af69d85550232da45f5a30703a4a3 | স্ক্রিপ্ট.রেট্রোর্যাট.৫০৫১৭.জিসি |
| ppamproServiceZuneWAL.ps1 | 43cac07a501e7a717023e0fa8f6111e0 | স্ক্রিপ্ট.ট্রোজান.৪৯৯০০.জিসি |
| ppamproServiceZuneWAL.vbs | 163c38bd7ff7dd27e88eaef1a7a4819f | পিএস.ট্রোজান.৫০৩৭৪ |
| Wallet.txt | 1dc82fd02a0db3e338128b6f587d7122 | স্ক্রিপ্ট.রেট্রোর্যাট.৫০৫১৭.জিসি |
নেটওয়ার্ক-ভিত্তিক
| ইউআরএল / ডোমেইন | বিভাগ |
| info[.]1coolns[.]com | Malware সম্পর্কে |
| floatsdk[.]1coolns[.]com | Malware সম্পর্কে |
| thewpiratebay[.]st | Malware সম্পর্কে |
মাইটার ম্যাপিং
| যুদ্ধকৌশল | প্রযুক্তি | টেকনিক আইডি |
| অধ্যবসায় | নির্ধারিত কাজ/চাকরি | T1053.005 |
| ফাঁসি | কমান্ড এবং স্ক্রিপ্টিং ইন্টারপ্রেটার: পাওয়ারশেল | T1059.001 |
| ফাঁসি | কমান্ড এবং স্ক্রিপ্টিং ইন্টারপ্রেটার: ভিবিস্ক্রিপ্ট | T1059.005 |
| প্রতিরক্ষা ফাঁকি | অস্পষ্ট/সংকুচিত ফাইল এবং তথ্য | T1027 |
| প্রতিরক্ষা ফাঁকি | প্রতিরক্ষা ব্যবস্থা দুর্বল করা: টুল নিষ্ক্রিয় বা পরিবর্তন করা (এক্সিকিউশন পলিসি বাইপাস) | T1562.001 |
| আবিষ্কার | প্রক্রিয়া আবিষ্কার | T1057 |
| সংগ্রহ | ইনপুট ক্যাপচার: কীলগিং | T1056.001 |
| সংগ্রহ | ক্লিপবোর্ড ডেটা | T1115 |
| সংগ্রহ | স্ক্রিন ক্যাপচার | T1113 |
| শংসাপত্র অ্যাক্সেস | ইনপুট ক্যাপচার | T1056 |
| কমান্ড এবং কন্ট্রোল | অ্যাপ্লিকেশন লেয়ার প্রোটোকল (ওয়েব প্রোটোকল) | T1071 |
| বহিষ্কার | C2 চ্যানেল ওভার এক্সফিল্ট্রেশন | T1041 |
লেখক:
নীরাজ মাকাসারে
প্রশীল মুন
রায়পতি লক্ষ্মী প্রসন্ন সাই



