RLOバイトを使用してUnicode文字の読み取り順序を変更する可能性についてのハブに関する記事がすでにあります。 標準のWindowsエクスプローラーを使用すると、ファイル名のなりすましに気付くことは難しいとされています。 実際のファイル拡張子を保護することです。 Explorerに組み込まれているアーカイバの機能に関する記事もあります。
開いているファイルの拡張子を常に追跡する人として、これについて警告するプログラムはありますか? 特に、アーカイバは保護されていますか? そして、攻撃者が保護を回避するためにできること。
テストとして、拡張子がexeの実行可能ファイルを取得し、「About Us txt.exe 」と呼びます。
ファイル名編集モードの文字「p」の後、エクスプローラーのコンテキストメニューで、「Unicode制御文字を挿入」を選択し、RLOを選択します。 その結果、ファイルの表示名が「About success.exe.txt」に変更されます。
次に、アーカイブします。 最も一般的な圧縮方法であるZipを使用しました。 そして、さまざまなアーカイバで開き始めます。
7-Zip 9.20 / 15.06
WinRAR 5.3
組み込みのWindowsエクスプローラー
ご覧のとおり、7-zipはすぐにgaveめ、WinRARは矢印に満足し、エクスプローラーに組み込まれたアーカイバーはRLOをサポートしていません。 さて、最後の2人のアーカイバーを何らかの方法でスプーフィングすることは可能ですか? これを行うには、ZIP形式の仕様を読みながら、HEXエディターでアーカイブファイルを開きます。
zipでファイルを圧縮すると、ファイル名が2回複製されます。
最初のエントリー
二度目
そして、ここには創造性のための大きな分野があります。
最初に、2番目のエントリのRLOバイトの文字を上書きできます。 次に、WinRARは「About success.exe.txt」というファイル名を表示し、テキストドキュメントとして開きます。 ただし、.txt拡張子を.jpgに変更すると、WinRARバージョン4.20までは、この擬似画像がアプリケーションとして起動されます。 WinRAR 5.3b2には、この脆弱性はなくなりました。
Windowsエクスプローラーに埋め込まれたWindowsアーカイバーの2番目のエントリでRLOを使用してファイルを開くと、ファイル名がほとんど読み取り可能になっていることがわかります。ロシア語の文字のみが読み取られません。 名前を読みやすくするには、エンコーディングを置き換えるか、ラテン文字を記述します。 ただし、ユーザーがプログラムをテキストドキュメントとして開く必要はありません。
Explorerアーカイバがファイルの表示を停止するには、ファイル名にNTFSファイルシステムによって予約されている文字の1つを指定するだけで十分です(たとえば、<)。 ただし、これによりWinRARはアーカイブを表示できなくなります。 どうする? ファイル名の先頭にヌルバイトを追加してください!
その後、小さな奇跡が起こります:WinRAR 5.3bは、ファイルを「ローカルディスク」フォルダーとして表示し、アーカイバ内で、WinRARは、名前にRLOシンボルを含むファイルを自動的に解凍します(最初のエントリから名前が解凍されます!)「Temp \ Rar $」ディレクトリに*「エクスプローラーで実行可能ファイルをテキストドキュメントとして慎重に表示します。 アーカイバを閉じた後、一時ディレクトリに解凍された他のファイルと同様に、このファイルを慎重に削除しようとすることに注意してください。
Explorerアーカイバが読み込めるように、同時に作成できます。 次に、nullの代わりに、別の印刷不能文字を登録する必要があります。
まとめ
- 7-Zip 15.06は、最初に出現したファイル名を表示します(RLO文字付き)。 実行可能ファイルはテキストドキュメントとして表示されます。 登録済みのファイルタイプのディスプレイ拡張機能を有効にしている場合でも。 アーカイバウィンドウをダブルクリックすると、実行可能ファイルが起動します。
- 内部のWindowsアーカイバは、この特定のファイルを見ません。 彼は他のファイルを見ます。
- WinRAR 5.3bは、ファイルを「ローカルディスク」フォルダーとして表示します。アーカイバ内に移動すると、WinRARは自動的に代替名(RLOシンボル付き)でファイルを解凍します。解凍の名前は最初のエントリから取得されます。テキストドキュメントとしての実行可能ファイル!
しかし、すべてがそんなに悲しいわけではありません。 たとえば、バージョン9.20までの7-Zipでは、2番目に出現したファイル名が表示されます。 ただし、2番目のエントリのファイル名を変更せず、Zipアーカイブを作成せず、これらの3つのアーカイバのうち7-Zipのみを開いて、Zipアーカイブに配置する場合(馴染みのあるテンプレートは見つかりません-壊れたプログラムのリリース) 、通常、readme.txtファイルを含む多数のアーカイブが置かれていますか?)、攻撃が彼をオンにします。 さらに、バージョン9.20では、nullで始まるファイルの名前が誤って表示され、読み取りや解凍ができなくなります。
また、WinZipアーカイバはレビューで指定されていません。 正直に言うと、未登録バージョンのサイズ、外観、広告は好きではありませんでした。 ただし、実行可能ファイルと不正な名前のファイルについてユーザーに警告するという点で、彼はすべてのチェックに合格しました。
sample.zipファイルは、このようなアーカイブを作成する例です。 内部には、メモ帳を起動するメモ帳アイコンのあるプログラムがあります。 他に何もしません。 エクスプローラーに組み込まれたアーカイバーから隠され、WinRAR 5.3を自動的に解凍し、7-zipバージョン15の.txt拡張子を表示します。
別の例は、すべてのバージョンの7-zip、WinRAR 3.8、Windows Explorer用のサンプル2です。 どこでも拡張子* .txtのファイル: