সম্প্রতি আমরা একটি স্টেগানোগ্রাফিক ক্যাম্পেইনের মাধ্যমে রেমকোস, ডিসিআরএটি, এজেন্টটেসলা, ভিআইপিকিলগার ইত্যাদির মতো একাধিক স্টিলার ম্যালওয়্যার ছড়াতে দেখেছি । এর উৎস অনুসন্ধান করে দেখা গেছে, ক্যাম্পেইনটি বেশ কিছুদিন ধরেই সক্রিয় ছিল, কিন্তু দীর্ঘ সময় ধরে সক্রিয় ছিল না। যে বিষয়টি এই ক্যাম্পেইনটিকে আকর্ষণীয় করে তুলেছে, তা হলো আক্রমণটি যেভাবে সাজানো হয়েছে।
এই ব্লগে, আমরা আমাদের দ্বারা পর্যবেক্ষণ করা প্রচারণার মাধ্যমে Remcos এবং AsyncRAT বিতরণ নিয়ে আলোচনা করব।
সংক্রমণ- শৃঙ্খল:
সংক্রমণ-শৃঙ্খলটি একটি ফিশিং মেইলের মাধ্যমে শুরু হয়, যেটিতে একটি এক্সেল ফাইল থাকে। এই ফাইলটি এক্সেলের একটি দুর্বলতার সুযোগ নিয়ে একটি .hta ফাইল ডাউনলোড করার জন্য একটি http রিকোয়েস্ট পাঠায়। .vbs কোড সম্বলিত .hta ফাইলটি একটি ব্যাচ ফাইল তৈরি করে, যা একটি পেস্ট ইউআরএল-এর সাথে সংযুক্ত হয়ে আরেকটি দুর্বোধ্য .vbs স্ক্রিপ্ট ডাউনলোড করে। .vbs স্ক্রিপ্টটি একটি .jpg ফাইল ডাউনলোড করে, যেটিতে প্যাডেড বেস৬৪ এনকোডেড দ্বিতীয় পর্যায়ের পেলোড (ক্ষতিকর লোডার) ফাইল থাকে। এই ফাইলটি ডিকোড করা হয় এবং স্ক্রিপ্টের মাধ্যমে VAI নামক একটি ফাংশন চালু করা হয়। লোডার ফাইলটি আর্গুমেন্ট হিসেবে একটি ইউআরএল এবং টার্গেট করা প্রসেসের নাম গ্রহণ করে এবং একটি বিপরীত বেস৬৪ এনকোডেড ফাইল ডাউনলোড করে, যা ডিকোড করলে চূড়ান্ত পেলোডটি পাওয়া যায়।

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

এক্সেল ডকুমেন্টে দূষিত ole প্যাকেজ রয়েছে:
ফাইলটি একটি এক্সপ্লাইট যা CVE-2017-0199 এর দুর্বলতাকে কাজে লাগায়। এতে একটি এমবেডেড OLE2 এমবেডেড লিঙ্ক অবজেক্ট রয়েছে যা আমরা ফাইলটি খোলার সময় একটি HTTP অনুরোধ জারি করে।

.HTA স্ক্রিপ্ট
.hta ফাইলটিতে vbs কোড (চিত্র ৪) রয়েছে যা ব্যাচ ফাইল লেখে যা একটি পেস্ট URL এর সাথে সংযোগ করে এবং একটি vbs ফাইল ডাউনলোড করে যা একটি স্ক্রিপ্ট যার মধ্যে প্রচুর পরিমাণে আবর্জনা কোড রয়েছে (চিত্র ৫)।

স্ক্রিপ্টটি VBS স্ক্রিপ্ট২ লেখে:

অপ্রয়োজনীয় কোড অপসারণ এবং সরলীকরণের পর, আমরা একটি বেস-৬৪ এনকোডেড স্ক্রিপ্ট পাই যা পাওয়ারশেল ব্যবহার করে চালানো হবে (চিত্র ৬)।


মনে রাখবেন, এখানে যখন VAI পদ্ধতিটি চালু করা হচ্ছে, তখন প্রথম আর্গুমেন্টে url পাস করা হচ্ছে যা $deject ভেরিয়েবলে সংরক্ষিত আছে এবং পঞ্চম আর্গুমেন্টটিও গুরুত্বপূর্ণ যা আমরা আমাদের দ্বিতীয় পেলোড যা ইনজেক্টর dll তা নিয়ে আলোচনা করার সময় পরে আলোচনা করব।
একইভাবে আমরা AsyncRAT-এর বিতরণও দেখেছি, যার প্রাথমিক প্রক্রিয়াটি বেশিরভাগ ক্ষেত্রেই একই রকম হয়, কিন্তু আমরা এর উৎস খুঁজে বের করতে পারিনি। AsyncRAT-এর ক্ষেত্রে, vbs স্ক্রিপ্টটি prnmngr.vbs-এর ছদ্মবেশ ধারণ করে ব্যবহারকারীকে এটি একটি আসল স্ক্রিপ্ট বলে ভাবতে প্ররোচিত করে, যা ডিফল্ট প্রিন্টার সেট ও প্রদর্শন করার পাশাপাশি প্রিন্টার বা প্রিন্টার সংযোগ যোগ, অপসারণ এবং তালিকাভুক্ত করে। কিন্তু সন্দেহ এড়ানোর জন্য এর মাঝে সামান্য পরিমাণ ক্ষতিকারক কোড ঢুকিয়ে দেওয়া হয়।

নিচে কোডের অংশটি দেওয়া হল, যা হার্ড কোডেড URL [hxxps://watchonlinehotvideos[.]top/omfg[.]jpg] থেকে JPG ছবিটি ডাউনলোড করেছে, যা আগের ক্ষেত্রে যেমন ব্যাখ্যা করা হয়েছে তেমনই।


আগের স্ক্রিপ্টের জন্য যেমন আমরা একটি নোট নিয়েছিলাম, এখানে প্রথম আর্গুমেন্টটি পাস করা হয়েছে আমাদের $restoredtext ভেরিয়েবলের বিপরীত URL এবং এটি অন্যান্য আর্গুমেন্টে একটি অপ্রয়োজনীয় মান/র্যান্ডম স্ট্রিং পাস করার মতো দেখাচ্ছে এবং আবার আমরা পঞ্চম আর্গুমেন্টটি মনে রাখব।
উভয় ক্ষেত্রেই নমুনাটি স্টেগানোগ্রাফি ব্যবহার করছে, ডাউনলোড করা jpg ফাইলটি (চিত্র ১১) নিজেকে একটি নিরীহ ছবি হিসেবে লুকিয়ে রাখে যাতে base11 এনকোডেড ম্যালওয়্যার রয়েছে। চিত্র ৭-এ আপনি দেখতে পাচ্ছেন, এটি মার্কার < পরীক্ষা করে < > এবং < > সম্পূর্ণ ক্ষতিকারক ফাইলটি পেতে এবং তারপর সেটি ডিকোড করা হয়।

দুটি ফাইলই VB.NET dll ফাইল যার অভ্যন্তরীণ ফাইলের নাম "Microsoft.Win32.TaskScheduler.dll", সম্ভবত ব্যবহারকারীদের এটিকে মাইক্রোসফ্ট dll ভেবে প্রতারণা করার জন্য।

দুটি DLLই অস্পষ্ট কিন্তু ভিন্ন স্তরের। Remcos ক্যাম্পেইন থেকে আমরা যেটি পেয়েছি তাতে কিছু সাধারণ .NET ফাংশন নামও অস্পষ্ট ছিল, অন্য ক্ষেত্রে এর কিছু অংশ সোজা ছিল। কিন্তু DLL-এর কোড একই ছিল, একই কাজ করছিল।
DLL কোডটি অস্পষ্ট কিন্তু আমরা দেখতে পাচ্ছি যে এতে আর্গুমেন্টগুলি পাস করা হচ্ছে। থ্রেট অ্যাক্টর 15 টি আর্গুমেন্ট দিয়ে VAI পদ্ধতি ব্যবহার করেছে। পাস করা আর্গুমেন্টের উপর ভিত্তি করে পদ্ধতিটিতে প্রসেস হোলোয়িং দ্বারা অন্য একটি ম্যালওয়্যার এক্সিকিউটেবল লোড করা, স্থায়িত্ব তৈরি করা ইত্যাদি ক্ষমতা থাকবে।

স্ক্রিপ্টে (চিত্র ৭ / চিত্র ১০) পদ্ধতিটি ব্যবহার করার সময় পাস করা প্রথম আর্গুমেন্টটি হল আমাদের ভেরিয়েবলে সংরক্ষিত URL $deject/$restoredtext এখানে QBXtX হিসাবে পাস করা হয়েছে।
মানটি হল null/gibberish মান এবং অন্য মানটি, যা পাস করা হয় তা 1 এ ডিকোড করে, এটি Delegate11.smethod_0 এ পাস করা হয় এবং এটি বুলিয়ান মান ফেরত দেয়। সুতরাং, চূড়ান্ত মান 0 হবে এবং শর্তটি ব্যর্থ হবে। অতএব, স্থায়ী থাকার জন্য কোনও কার্যকলাপ থাকবে না।

"text5" এ সংরক্ষিত QBXtX আর্গুমেন্টে পাস করা বিপরীত URLটি বিপরীত করা হয় এবং ওয়েব ক্লায়েন্টের সাহায্যে এটি "text6" স্ট্রিংয়ে ডেটা ডাউনলোড করে যা বিপরীত ফর্ম্যাটে বেস64 এনকোডেড ডেটা (চিত্র 14)। এটি আমাদের চূড়ান্ত পেলোড যা "caspol.exe" / "msbuild.exe" (পঞ্চম আর্গুমেন্ট) এর "C:\Windows\SysWOW64" (Class219.smethod(10577) থেকে ডিকোড করা) পথের সাথে "Tools.Ande" ফাংশনে একটি আর্গুমেন্ট হিসাবে পাস করা হয়। এই ফাংশনটি পঞ্চম আর্গুমেন্ট (চিত্র 15) হিসাবে সরবরাহ করা লক্ষ্যযুক্ত প্রক্রিয়ার সাথে প্রক্রিয়াটি ফাঁকা করে।

উপরে দেখানো হয়েছে, CreateProcess API ব্যবহার করে সাসপেন্ডেড অবস্থায় একটি নতুন প্রক্রিয়া তৈরি করা হয়। নতুন তৈরি প্রক্রিয়াটি NtUnmapViewOfSection ব্যবহার করে আনম্যাপ করা হয় এবং VirtualAllocEx ব্যবহার করে মেমরি বরাদ্দ করা হয়, যেখানে ক্ষতিকারক কোডটি ইনজেক্ট করা হয়। SetThreadContext ব্যবহারের মাধ্যমে এটি ইনজেক্টেড কোডে এন্ট্রি পয়েন্ট যোগ করে এবং অবশেষে, ResumeThread দিয়ে প্রক্রিয়াটি পুনরায় শুরু করা হয়।
আমাদের ক্ষেত্রে, আমরা যে চূড়ান্ত পেলোডটি পেয়েছি তা হল একটি Remcos এবং AsyncRAT নমুনা (চিত্র 16)।

চূড়ান্ত পেলোড: রেমকোস
২০১৬ সালে প্রতিষ্ঠার পর থেকেই Remcos ম্যালওয়্যার জগতে সর্বদাই রয়েছে। ১.০ সংস্করণ থেকে শুরু করে সাম্প্রতিক সংস্করণ পর্যন্ত, Remcos-কে এখনও প্রাসঙ্গিক করে তোলে এর কমান্ড এবং নিয়ন্ত্রণের মূল ক্ষমতা পরিচালনা করা। একটি ক্লোজ-সোর্স টুল হিসেবে শুরু করে যা রিমোট কন্ট্রোল এবং নজরদারি সফ্টওয়্যার হিসাবে বাজারজাত করা হয়েছিল, Remcos অনেক দূর এগিয়েছে।
Remcos-এর বেশিরভাগ ক্ষেত্রেই একটি সেটিং ব্লক থাকে যার মধ্যে কনফিগারেশনের একটি ব্যাচ থাকে যা এনক্রিপ্ট করা হয় এবং "SETTINGS" নামক রিসোর্স বিভাগে সংরক্ষণ করা হয়। এটি শুরুতেই ডিক্রিপ্ট করা হয় এবং সেটিং ব্লক দিয়ে Remcos-কে আরম্ভ করে।


C&C যোগাযোগের জন্য Remcos C2 এর সাথে সংযোগ স্থাপন করে এবং আক্রমণকারীর পাঠানো কমান্ডের জন্য অপেক্ষা করে। কনফিগারেশন ডেটা থেকে প্রাপ্ত মূল বিবরণ নিম্নরূপ:
C2: interestedthingsforkissinggirlwithloves[.]duckdns[.]org
ফাইলের নাম: Remcos.exe
বটনেট নাম: zyno007
মিউটেক্স তৈরি: Rmc-IB3RDF
তাছাড়া, কিছু ক্ষেত্রে Remcos-কেও AgentTesla-এর মতো ম্যালওয়্যার ব্যবহার করতে দেখা যায়।
চূড়ান্ত পেলোড: অ্যাসিঙ্করাট
AsyncRAT হলো C# ভাষায় লেখা একটি রিমোট অ্যাক্সেস ট্রোজান (RAT), যা সাধারণ RAT এবং তথ্য চুরির বৈশিষ্ট্য প্রদান করে। এর মধ্যে রয়েছে কীস্ট্রোক লগ করা, অতিরিক্ত পেলোড কার্যকর করা/ইনজেকশন, কমান্ড-অ্যান্ড-কন্ট্রোল ইত্যাদি।
ব্যাকডোরের এমবেডেড কনফিগারেশনের উপর ভিত্তি করে ক্ষমতা রয়েছে। নিচের চিত্রে (চিত্র ১৯) দেখতে পাচ্ছেন, এক্সিকিউশনটি একটি De_lay ফাংশন দিয়ে শুরু হয় যা ঘুমের সময়কাল নির্ধারণ করে, বেশিরভাগ ক্ষেত্রে স্যান্ডবক্স এড়াতে করা হয়।

এখানে InitializeSettings() ফাংশনটি সমস্ত হার্ডকোডেড কনফিগারেশন অ্যাক্সেস করে যা AES এনক্রিপ্ট করা।

সার্ভার সার্টিফিকেট এবং সার্ভার স্বাক্ষর ব্যবহার করে কনফিগারেশনগুলি বৈধ কিনা তা যাচাই করার জন্য verifyhash() ফাংশন (চিত্র 20) ব্যবহার করা হচ্ছে। কনফিগারেশন ডেটা থেকে প্রাপ্ত মূল বিবরণ নিম্নরূপ:
বন্দর: ৭৮৭৮
হোস্ট: ১৪৮[.]১১৩[.]২১৪[.]১৭৬
সংস্করণ: 1.0.7
এমটিএক্স: asasasas2242dqwe
পেস্টবিন: শূন্য
গ্রুপ:ডায়ামা
"WebClient.DownloadString" API (চিত্র 21) দ্বারা Pastebin মান ব্যবহার করা হয় যা Pastebin বা অন্যান্য ডোমেন থেকে অতিরিক্ত সংস্থান এবং অন্যান্য পেলোড ডাউনলোড করতে পারে। আমাদের ক্ষেত্রে, এটি null, তাই এটি কনফিগারেশন থেকে হোস্ট এবং পোর্ট নির্বাচন করে এবং C2 এর সাথে ইন্টারঅ্যাক্ট করার জন্য সকেট সংযোগ ব্যবহার করে।

আইওসিএস:
| রেমকোস আইওসি'র |
| 9d66405aebff0080cc5d28a1684d501fa7e183dc8b6340475fc06845509cb466 |
| 42813b301da721c34ca1aca29ce2e4c7d71ae580b519a3332a4ba71870b6a58e |
| f67c6341bfe37f5b05c00a0dda738f472fdabd6ea94ca8dc761f57f11ce12036 |
| aed291c023c3514fb97b4e08e291e03f52de91a2a8d311491b4ab8299db0aa0f |
| faed55ed0102b1b2e3d853e8633abecbb9cec6a5f41c630097d8eaeefafba060 |
| C2: interestedthingsforkissinggirlwithloves[.]duckdns[.]org |
| C2: ফ্রিবার্ডচুম্বনঅনআমারলিপসউইথনাইটসুইথনাইটনইসফিলিংস[.]ডাকডিএনএস[.]অর্গ |
| AsyncRAT |
| b8fc29c02005c84131f34de083c2e81cdf615ff405877f9e73400bf35513c053 |
| 2d4ab87f9ea104075d372f4c211b1fb89adec60208d370b8fb2d748e1a73186c |
| b2e8f720740bbd46f6ae3f450f265ace1044fe232141fbd84f269eafeb290812 |
| a582e7e5b3ac37895e7cf484aaa8ea477deb90d99b47b2d9bfc018c604573889 |
| C2: 148[.]113[.]214[.]176 |
সনাক্তকরণ:
পিছনের দরজা। রেমকোস
পিছনের দরজা.MsilFC.S13564499
ট্রোজান.লোডারসিআইআর
মাইটার অ্যাটাক টিটিপি:
| যুদ্ধকৌশল | টেকনিক আইডি | নাম |
| প্রাথমিক অ্যাক্সেস (TA0001) | T1566 | ফিশিং |
| এক্সিকিউশন (TA0002) |
T1204 |
ইউজার এক্সিকিউশন |
| অধ্যবসায় (TA0003) | T1547.001 | রেজিস্ট্রি রান কী/স্টার্টআপ ফোল্ডার |
| প্রতিরক্ষা ফাঁকি (TA0005) | T1055 | প্রসেস ইনজেকশন |
| T1027 | অস্পষ্ট ফাইল বা তথ্য | |
| T1036.004 | ছদ্মবেশী কাজ বা পরিষেবা | |
| আবিষ্কার (TA0007) | T1614 | সিস্টেম অবস্থান আবিষ্কার |
| বহিষ্কার (TA0010) | T1041 | কমান্ড-এন্ড-কন্ট্রোল চ্যানেলের মাধ্যমে বহিঃপ্রবাহ |
| কমান্ড এবং কন্ট্রোল (TA0011) | T1001.0012 | steganography |
উপসংহার:
এই ব্লগে, আমরা সাম্প্রতিক স্টেগানোগ্রাফিক প্রচারণার সম্পূর্ণ আক্রমণ-শৃঙ্খল নিয়ে আলোচনা করেছি, যেখানে একটি নিরীহ দেখতে JPG ফাইলে দূষিত ক্ষমতাসম্পন্ন একটি ইনজেক্টর DLL থাকার তথ্য পাওয়া গেছে। আমরা আরও অনুসন্ধান করেছি যে কীভাবে প্রতিটি দূষিত পেলোড সাবধানতার সাথে ডাউনলোড করা হয়েছিল এবং অত্যন্ত পদ্ধতিগতভাবে কার্যকর করা হয়েছিল। আক্রমণটি অত্যাধুনিক ছদ্মবেশী কৌশলের উপর নির্ভর করেছিল যা প্রায়শই অভিজ্ঞ ব্যবহারকারীদেরও প্রতারণা করতে পারে। সাধারণভাবে, ঘটনাগুলির শৃঙ্খলটি একটি ফিশিং ইমেল দিয়ে শুরু হয়েছিল যেখানে একটি শোষণ ছিল যা একাধিক পর্যায়ের মধ্য দিয়ে শেষ পর্যন্ত RemcosRAT/AsyncRAT ব্যবহার করে (অন্যান্য RAT বা ব্যাকডোর একইভাবে বিতরণ করার সম্ভাবনা সহ)। এই ক্ষেত্রে, কমান্ড-এন্ড-কন্ট্রোল সার্ভার অতিরিক্ত পেলোড ব্যবহার করার ক্ষমতা রাখে, যা ভুক্তভোগীর সিস্টেমকে আরও ঝুঁকিপূর্ণ করে তোলে।
এই প্রচারণা আমাদের নিরাপত্তা এবং তথ্যের অখণ্ডতা উভয়ই সুরক্ষিত রাখার জন্য সতর্ক থাকা এবং শক্তিশালী সাইবার নিরাপত্তা অনুশীলন গ্রহণের গুরুত্বপূর্ণ গুরুত্ব তুলে ধরে।
লেখক:
কীর্তি ক্ষত্রিয়
সহ-লেখক:
মনোজ কুমার নীলামেগাম



