元々、Webshell は、Web サーバー管理者がサーバーをリモート管理するためのスクリプトと呼ばれることがよくありました。その後、いくつかの Webshell 管理ツールの誕生により、Web 権限を取得するプロセスが大幅に簡素化されたため、徐々に Web 侵入ツール スクリプトと呼ばれるようになりました。
Webshell は脆弱性とは異なりますが、アプリケーションの脆弱性またはサーバーの脆弱性 (ファイル アップロードの脆弱性、ファイル インクルードの脆弱性など) を利用して、スクリプト ファイルをサーバーにアップロードしてその後の悪用を行います。これは、その後の侵入の悪用に属します。テストと ATT&CK の TA0002 Execution (実行) ステージ。
図 1 TA0002
参考元:https://mitre- Attack.github.io/ Attack-navigator/(ATT&CK Navigator)
攻撃者は、検出・保護装置やソフトウェアなどをバイパスするために、Webシェルの記述方法を変更して、スクリプトが検出されないようにしながら、機能を確保することがよくありますが、その中でもPHPスクリプトの存在が顕著です。 PHP スクリプト言語の関数は、PHP での記述方法の絶えず変化する混乱と変形につながります。
ワンセンテンス トロイの木馬も Webshell スクリプトに属します。ワンセンテンス トロイの木馬に興味がある人は、前号の「ワンセンテンス トロイの木馬の複数の変換」を参照して、自分で学習して理解することができます。この記事では、詳細には立ち入らないでください。
以前 Web シェルを分析したとき、あらゆる種類の検出ソフトウェアを完全にバイパスできるタイプの Web シェルがあることがわかりました。このタイプのスクリプトは、次のようになります。コード レベルではそれが好きです。これには意味がなく、一般的な Webshell 機能はありませんが、レイヤーを掘り下げた後、このタイプの難読化されたスクリプトのアイデアを見つけるのは難しくありません。私はつい最近、興味深い難読化されたスクリプトを受け取りました。スクリプトの分析プロセスを友達と共有し、それが出発点として役立つことを願っています。
このスクリプトを初めて見たとき、その内容に明らかな eval 関数が含まれていることに気づき、直感的にコードのこの部分を読みました。が抽出されましたが、内容を証明するには十分ではありませんでした。その内容はすべて、WebShell の痕跡もなく、一見何の手がかりもない文字化けコードだったからです。
よく見ると、eval の他に、gzinflate、base64_decode、str_rot13 という 3 つの関数が呼び出されていることがわかります。この 3 つの関数から始めて、分析の突破口を見つけることができるかもしれません。
#図 2 スクリプトの内容str_rot13()
ROT13 エンコードでは、各文字がアルファベットの 13 文字前に移動します。数字とアルファベット以外の文字は変更されません (シーザー暗号)。base64_decode()
文字列の内容を Base64 でエンコードします。Gzinflate
ZLIB_ENCODING_RAW エンコード方式がデフォルトでデータに使用され、deflate データ圧縮アルゴリズムが使用されます。実際には、最初に圧縮に LZ7 が使用され、その場合、圧縮にはハフマン符号化が使用されます。#図 4 分析結果
2.#図 5 複数の解析
3.
写真6 マレーシア本来の姿
以上が難読化変形のウェブシェル解析とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。