ニュースソース: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管理者や他のライバル攻撃者から防御するため、次のような手口を利用します。
- パスワードによる保護
通常、パスワードはスクリプト内でハードコードされ、ユーザ名または電子メール識別子を伴わずに使用されます。 - エラーページとして偽装
Apacheのエラーページ(通常、404 Not Foundまたは403 Forbidden)を偽装したページが、主にC99 WebShellの亜種により使用されています。
ブラウザ側では正当なエラーページとして認識されますが、表示上、バージョン番号、ホスト名、URL、HTMLのタイトルの誤りや省略があります。また、WebShellへのアクセスを提供するパスワード入力欄が隠されています。
通常、色は背景や下線の色と同化され、ポート番号をクリックすると呼び出されるJavaScriptコードが隠されています。 - プレフィックスコードの付加
WebShellスクリプトの先頭に、画像ファイル(通常GIF89a)のヘッダー情報のコードが付加されます。
PHPインタプリタで処理されるとき、これらのコードは無視されたままブラウザに渡されます。しかし、ユーティリティソフトウェアは、悪意のあるPHPスクリプトをGIF画像として誤認識します。 - ファイル名の偽装
WebShellは、正当なファイルと似たファイル名に偽装されます。例:WordPressの設定ファイルwp-config.phpとして偽装されたWebShellが数多く存在します。正当なファイル名をそのまま使用するケース、軽微な変更(例:wp-configs.php)を加えているケースがあります。
そのため、Web管理者はサーバー検査時に、ディレクトリリスティングでファイルを見逃すおそれがあります。
(4)対策
プロバイダ・システム管理者・Web管理者は、WebShellがサーバーにアップロードされ攻撃される脆弱性がないか確認し、安全性を確保する責任があります。Webルートに想定外の変更が加えられていないか注意しましょう。
特にWordPressなどのソフトウェアパッケージでは、悪意のあるWebShellが、正当なファイルと偽装されて紛れ込むことがあり注意が必要です。