ウェブシェルは、ウェブサーバーへのリモートアクセスを容易にするシェルのようなインターフェースであり、サイバー攻撃によく悪用されます。[ 1 ]従来のシェルとは異なり、ウェブブラウザ経由でアクセスされるため、悪意のある活動のための汎用性の高いツールとなっています。[ 2 ] [ 3 ]
ウェブシェルは、サーバーがサポートする任意のプログラミング言語でコーディングできますが、 PHP はウェブアプリケーションで広く使用されているため最も普及しています。Active Server Pages、ASP.NET、Python、Perl、Ruby、Unix シェルスクリプトなどの他の言語も使用されています。 [ 1 ] [ 2 ] [ 3 ]
攻撃者は、ネットワーク監視ツールを使用してWebサーバーアプリケーションの脆弱性を特定し、それを悪用してWebシェルを展開することが多い。[ 2 ]
インストールされると、Webシェルは攻撃者がシェルコマンドを実行したり、権限昇格を実行したり、サーバー上でファイルをアップロード、削除、ダウンロード、または実行することによってファイルを管理したりすることを可能にします。[ 2 ]
ウェブシェルは、その汎用性と回避性の高さから、サイバー攻撃で好んで用いられる。[ 4 ]一般的な用途としては、以下のようなものがある。
ウェブシェルは、ハッカーがデータを抽出したり、システムを破壊したり、より悪質なマルウェアを展開したりすることを可能にします。侵害されたサーバーが他のシステムに侵入するために利用されると、脅威は増大します。ウェブシェルは、政府、金融、防衛などの分野を標的としたサイバー諜報にも利用されます。注目すべき例としては、「China Chopper」ウェブシェルが挙げられます。[ 6 ]
ウェブシェルは、ウェブアプリケーションの脆弱性や脆弱なサーバー構成を悪用して展開されます。これには以下が含まれます。[ 2 ] [ 4 ]
Content-Type攻撃者は、ファイルのアップロード時にヘッダーを偽装することで、脆弱なファイル検証を回避し、シェル展開を可能にする可能性もある。
以下は、シェルコマンドを実行してその出力を表示する基本的なPHPウェブシェルです。
<?= `$_GET[x]` ?>ファイル名が の場合example.php、ファイルを表示するコマンドは/etc/passwd次のようになります。
https://example.com/example.php?x=cat%20%2Fetc%2Fpasswd
これはコマンドを実行しますcat /etc/passwd。このようなリスクは、任意のコマンド実行を防ぐためにPHPシェル関数を無効にすることで軽減できます。
ウェブシェルのインストールを防ぐには、サーバーの脆弱性に対処する必要があります。主な対策は次のとおりです。[ 2 ] [ 3 ]
ウェブシェルは変更可能であるため検出が難しく、多くの場合アンチウイルスソフトウェアを回避します。[ 2 ] [ 9 ]
ウェブシェルの兆候には以下が含まれます。[ 2 ] [ 3 ]
cmd.exeまたはeval)例えば、POSTパラメータを含むPNGファイルや、DMZ サーバーと内部サブネット間の不審なログインは、ウェブシェルの存在を示す可能性があります。[ 2 ] [ 10 ] [ 11 ] [ 12 ]
ウェブシェルには、偽のエラーページなどの偽装ログインフォームが含まれる場合があります。[ 2 ] [ 13 ] [ 14 ] [ 15 ]
攻撃者は、 .htaccessファイル ( Apache HTTP Server上)を変更して、検索エンジンのクエリをマルウェアやスパムページにリダイレクトすることができ、多くの場合、ユーザーエージェントの検出に基づいてコンテンツをカスタマイズします。シェルを特定するには、クローラーのユーザーエージェントを変更する必要がある場合がありますが、その後は簡単に削除できます。[ 2 ]
サーバーログを分析することで、ウェブシェルの位置を特定できます。正規ユーザーは通常、多様なユーザーエージェントとリファラーを持ちますが、攻撃者のアクセスはより均一です。[ 2 ]
{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)