注意喚起:サイバー犯罪者のコントロールパネル WebShell

ニュースソース:NETCRAFT

以下は、2017年5月18日に公開されたWeb Shells: The Criminal’s Control Panelを要約したものです。


(1)WebShellとサイバー犯罪

近年、高機能のWebShellは、パスワードクラッキング、権限の昇格(privilege elevation)、ネットワーク脆弱性調査、フィッシング、スパム、DDoS攻撃などのサイバー犯罪用ツールキットとしても使われています。
WebShellは一度侵入したマシンに対しバックドアとして機能するため、Web管理者がフィッシング、マルウェアのファイルを削除しても、それ自体が削除されない限り、悪意のある行動を続けることが可能です。

(2)WebShellの機能例

  • 多くのWebShellは、直接コマンドを実行させるか、安全ではないTCP接続によるコマンドによって、1クリックでボットネットを形成することも可能です。

    例:WSO(Web Shell by oRb)は、Network toolsでリモート型シェルコードのオプションとして、connect-back方式とbindshell方式を選択できます。
    オプション選択により、スタンドアローンの処理が実行され、接続を確立するかまたはリモートコマンドからの接続を待機し、サーバーのコントロールを可能とします。

  • DoS攻撃の実行スケジュール設定・スパムメールの一括送信・パスワードクラッキング・Webサイトの情報改竄・任意のホストを匿名でポートスキャンすることが可能なWebShellも存在します。
  • R57 Shellなどの「ShellFinder」ツールは、Webサイトやサーバーを自動スキャンし、潜在的なWebShellのファイルパスを探査します。上書き、削除の機能があれば、他のWebShellの締め出しも可能です。

(3)WebShellの自己防御

多くの攻撃者は、WebShellをWeb管理者や他のライバル攻撃者から防御するため、次のような手口を利用します。

  1. パスワードによる保護
    通常、パスワードはスクリプト内でハードコードされ、ユーザ名または電子メール識別子を伴わずに使用されます。
  2. エラーページとして偽装
    Apacheのエラーページ(通常、404 Not Foundまたは403 Forbidden)を偽装したページが、主にC99 WebShellの亜種により使用されています。
    ブラウザ側では正当なエラーページとして認識されますが、表示上、バージョン番号、ホスト名、URL、HTMLのタイトルの誤りや省略があります。また、WebShellへのアクセスを提供するパスワード入力欄が隠されています。
    通常、色は背景や下線の色と同化され、ポート番号をクリックすると呼び出されるJavaScriptコードが隠されています。
  3. プレフィックスコードの付加
    WebShellスクリプトの先頭に、画像ファイル(通常GIF89a)のヘッダー情報のコードが付加されます。
    PHPインタプリタで処理されるとき、これらのコードは無視されたままブラウザに渡されます。しかし、ユーティリティソフトウェアは、悪意のあるPHPスクリプトをGIF画像として誤認識します。
  4. ファイル名の偽装
    WebShellは、正当なファイルと似たファイル名に偽装されます。

    例:WordPressの設定ファイルwp-config.phpとして偽装されたWebShellが数多く存在します。正当なファイル名をそのまま使用するケース、軽微な変更(例:wp-configs.php)を加えているケースがあります。
    そのため、Web管理者はサーバー検査時に、ディレクトリリスティングでファイルを見逃すおそれがあります。

(4)対策

プロバイダ・システム管理者・Web管理者は、WebShellがサーバーにアップロードされ攻撃される脆弱性がないか確認し、安全性を確保する責任があります。Webルートに想定外の変更が加えられていないか注意しましょう。
特にWordPressなどのソフトウェアパッケージでは、悪意のあるWebShellが、正当なファイルと偽装されて紛れ込むことがあり注意が必要です。