1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

Webshellの基本を徹底解説

2022-02-07 05:42:28

I. Webshellとは?

その名の通り、quot;web" はサーバが明らかにウェブサービスのためにオープンである必要があることを意味し、quot;shell" はサーバへのあるレベルのアクセスを得ることを意味します。webshell はしばしば、侵入者がウェブポートを通してウェブサーバにあるレベルのアクセスを得る方法として言及されます。Webシェルは、ほとんどが動的スクリプトの形式であるため、Webサイト用のバックドアツールとも呼ばれます。

ウェブシェルとは、asp、php、jsp、cgiなどのウェブファイル形式のコード実行環境のことで、ウェブバックドアとも呼ばれる。Webサイトをハッキングした後、ハッカーは通常、Webサイトのディレクトリにある通常のWebファイルにaspやphpのバックドアファイルを混ぜ、ブラウザを使ってaspやphpのバックドアにアクセスし、Webサーバーを制御するコマンド実行環境を手に入れることができるのです。

シェルとは、サーバーを操作してアクセスすることができる人間とコンピュータの対話ページで、シェルファイルの特殊な点として、サーバーからデータを受け取って実行し結果を返すことができる、つまり対象のサーバーにシェルファイルをアップロードすれば、サーバーを操作することができるのである。

II. ウェブシェルの分類

ウェブシェルはスクリプトによって、PHPスクリプトトロイの木馬、ASPスクリプトトロイの木馬、さらに.NETベースのスクリプトトロイの木馬とJSPスクリプトトロイの木馬に分類することができます。時代と技術の変化に応じて、pythonで書かれた外国のスクリプトトロイの木馬もありますが、中国でよく使われるのは、大馬、小馬、一線木馬の3種類だけで、具体的なシナリオと特徴は次の通りです。

III. ウェブシェルの役割

一方では、ウェブマスターがウェブサイトの管理、サーバー管理などのためにウェブシェルを使用することがよくあります。FSOの権限に応じて、オンラインでのウェブスクリプトの編集、ファイルのアップロードとダウンロード、データベースの閲覧、任意のプログラムコマンドの実行などの役割を果たします。

一方、侵入者がWebサーバーを制御できるようにするために使用されます。これらのウェブスクリプトは、しばしばWEBスクリプトトロイの木馬と呼ばれ、より一般的なaspやphpのトロイの木馬のほか、.NETベースのスクリプトトロイの木馬やJSPスクリプトトロイの木馬も存在します。

IV. Webshellのステルス性

WebShellのバックドアは、一般的に通常のファイルに隠され、ファイルの時間を変更するには、密かに到達する、また、サーバーの脆弱性の使用は、&quotなどを非表示にすることです; ... " ディレクトリが達することができる、FTPからのWebマスターは&quot含むフォルダで発見; ..." " とフォルダを削除する許可、およびいくつかの隠しウェブシェル、通常のファイルでは、パラメータと隠されることができますがバックドアをスクリプト実行するには、実行します。

webshellはサーバーのファイアウォールを通過することができ、制御するサーバーやリモートで80番ポートを通過するため、ファイアウォールにブロックされることはない。また、webshellの使用は一般的にシステムログに記録を残さず、サイトのウェブログに一部のデータ送信記録のみを残し、経験の浅い管理者が侵入の痕跡を確認することは困難です。

V. Webshellの侵入を防ぐには?

動的Webスクリプトのセキュリティを根本的に解決するために、インジェクション、アンチバンカー、アンチクーキースプーフィング、クロスサイトアタック(xss)などを防ぐために、サーバーのFSOパーミッションを必ず設定してください。最小限のパーミッションは最大限のセキュリティに相当します。

<ブロッククオート 書き込み可能なディレクトリには実行権限を与えない、実行権限を持つディレクトリには書き込み権限を与えないというのが最も効果的な方法です。

具体的な防止方法(aspを例にして)。

1. ウェブページのアップロードやメンテナンスは ftp 経由で行い、asp アップローダーはなるべくインストールしないことをお勧めします。

2. asp アップローダーへの呼び出しを認証し、信頼できる人だけがアップローダーを使用できるようにすることを確認してください。

3. aspプログラム管理者のユーザー名とパスワードは、単純すぎず、ある程度複雑であるべきで、また定期的に変更する必要があります。

4は、通常のサイトには、データベース名とストレージパスを変更するには、ダウンロードした後、プログラムをダウンロードするには、データベース名は、いくつかの複雑さを持っている必要があります。

5、プログラムが最新バージョンであることを維持しようとする。

6. ウェブページにバックエンド管理プログラムのランディングページへのリンクを追加しないでください。

7. プログラムの未知の脆弱性を防止するために、メンテナンス後にバックエンド管理プログラムのランディングページを削除し、次のメンテナンスを通じてアップロードするだけです。

8. データベースなどの重要なファイルは、時々必ずバックアップをとってください。

9、日頃からメンテナンスが必要で、スペース内に出所不明のaspファイルがないか注意する。

10、データの爆発を防ぐため、サイト内検索機能をOFFにし、外部検索ツールを使用するようにする。

11. ファイルのアップロードにはホワイトリストを使用し、ホワイトリストにないアップロードはすべて禁止し、アップロードディレクトリの権限は最小権限の原則に従います。

12. 改ざん防止システムツールを使用するか、ソフトウェアでWebサイトのディレクトリファイルの操作ログを監視し、異常を発見したらすぐに対処する。

Webshellの基礎知識は以上となります。Webshellの基礎知識については、Scripting Houseの過去記事を検索するか、以下の関連記事を引き続き閲覧してください。