banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

記録する一回の肥満なクライアントプログラムの侵入テスト

image

胖クライアントは、私たちがよく言う C/S アーキテクチャのアプリケーションです。その主な特徴は、クライアント側が一部のアプリケーションロジックを実行し、サーバー側がストレージと計算のサポートを提供し、両者がネットワークを介して通信と対話を行うことです。一方、私たちがよく言う「スリムクライアント」は、B/S アーキテクチャに基づいたブラウザベースのアプリケーションです。

ファットクライアントプログラムを取得した場合、まずファットクライアントがどのようなアーキテクチャであるかを確認することができます。一般的に、拡張子が.exe で終わるものは、C、C#、または.NET でコンパイルされています。

CFF Explorer を使用して、対象プログラムのアーキテクチャを確認できます。以下の図を参照してください。

image.png

これは 32 ビットのプログラムであり、Microsoft Visual Studio .NET を使用してコンパイルされた.NET プログラムです。

このような.NET プログラムの場合、dnspy(GitHub - dnSpy/dnSpy: .NET debugger and assembly editor)を使用して逆コンパイルすることができます。DNspy は有名な.NET デコンパイラであり、.NET でコンパイルされたファイル、実行可能ファイル(exe)、DLL ファイル、NET アセンブリなどを逆コンパイルすることができます。DNspy を使用して exe ファイルを逆コンパイルすると、ソースコードと内部構造を簡単に表示でき、プログラムの動作メカニズムを理解し、分析するのに役立ちます。

image.png

ここから、SQL クエリが表示されます。ここから、SQL クエリはフィルタリングされずに直接連結されていることがわかりますが、ここではシングルクォートが直接追加されているため、クエリごとにシングルクォートが 1 つ多くなり、回避することができません。

image.png

ただし、クライアントプログラムが直接逆コンパイルできる場合、クライアントプログラムが署名されていない場合、再コンパイルして別のプログラムにパッケージ化することができます。その結果、公式クライアントを偽装し、悪意のあるファイルを書き込むことができます。この方法を使用すると、フィッシングなどの攻撃が行われる可能性があります。

ここでは画像を掲載しませんが、変更後は通常のクライアントプログラムと同様に使用できます。

また、wireshark や科などを使用してトラフィックを監視し、アプリケーションが転送中に機密情報を漏洩していないかを確認することもできます。

image.png

上の図からわかるように、このファットクライアントは tds データベースプロトコルを使用しており、ノードの IP アドレス、ポートなどの情報が含まれています。

image.png

また、転送中に SQL クエリが漏洩していることもわかります。

wireshark や科などのツールを使用してトラフィックを分析する以外にも、echo mirage を使用してトラフィックを分析することもできます。自分でダウンロードして使用してください。

次に、この記事の本題に戻りましょう。DLL ハイジャックの脆弱性について書いたのは、白加黑に関する記事(https://xz.aliyun.com/t/12376)を読んだからであり、以前にもこのような DLL の脆弱性に遭遇したことがあることに気付いたため、記録しておきます。

画像の出典

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。