.Net アセンブリを使ったランサムウェア手法の解明:5 つの主なテクニック
ランサムウェア攻撃は、検出を回避してシステム上のデータを暗号化することで成功します。その後の分析では ランサムウェア攻撃、攻撃でさまざまな種類のファイルを組み合わせてさまざまな手法が使用された方法についてよく耳にします。
それで、それは実際にはどういう意味ですか?このシリーズでは、を使用してすべてを分解します .Net これらのランサムウェアの機能がどのように可能になるかを示すソフトウェアフレームワーク。
前回のマルウェアペイロードとビーコンに関する3部構成のシリーズでは、次の点に焦点を当てました。 メタスプロイト ペネトレーションテストフレームワーク。既製のものを使用しました メータープリター さまざまな攻撃者のテクニックを示すマルウェアペイロード。は 最初の記事 悪意のある通信がどのように始まるか、攻撃者のインフラストラクチャ、攻撃のフォレンジック分析を調べました。は 2 番目の記事 ペイロードのカテゴリとタイプ、およびいくつかのメモリ内操作手法を調べました。は 最終部 そのシリーズのうち、回避と緩和のテクニックに焦点を当てました。
このシリーズでは、以下を活用して独自のペイロードファイル (アセンブリとも呼ばれます) を作成します。 .Net ソフトウェアフレームワークですが、ランサムウェアに重点を置いています。まず、ランサムウェアとマルウェアの機能を個々の技術例に分解し、それぞれがどのように機能するかを理解することから始めます。これらの個々の手法のいくつかは、最終的には1つの悪意のあるランサムウェアペイロードにまとめられ、しばしば壊滅的な影響を及ぼします。
テクニック1:ダウンローダー、ドロッパー、ローダー
まず、ランサムウェアやマルウェアが感染したネットワークからどのように接続するかを調べます。これは、リモートシステムに接続し、追加のペイロードをダウンロードし、侵害されたシステムにドロップして実行する (つまり、メモリにロードする) 機能です。
以下は、の例です .Net コマンドライン (コンソール) アプリケーション:
- 別のリモート実行アプリケーションをダウンロードすることにより、ダウンローダーとして機能します (putty.exe) インターネットから
- ダウンロードしたアプリケーションをにドロップします 非正規社員 コンピューターのディスク上のフォルダー
- アプリケーションの名前をに変更します putty_new.exe
- ダウンロードしたアプリケーションをコンピュータ上で自動的に実行し、メモリにロードします
ペイロードステージングを使用する場合、つまり複数の悪意のあるファイルが異なる処理を行う場合、Stager(最初は小さなペイロード)が両方になる可能性があります。 ダウンローダー また、大まかに言うと、 点滴器 ステージ用(メインの大きいペイロード)。ステージのローダーである可能性もあります。どのような手法が採用されるかは、脅威アクターによる検知リスクの評価(運用上のセキュリティ上の考慮事項)によって異なります。
A ダウンローダー Web サーバーや FTP サーバーなどのリモートソースからペイロードをプルダウンする役割を担います。通常はインターネット経由で行われます。そのため、ダウンローダーがリモートソースにアクセスするには、何らかのネットワーク接続を試みる必要があります。
A 点滴器一方、主に被害者システムにペイロードを配信したりドロップしたりします。したがって、ダウンローダーはドロッパーでもありますが、ドロッパーにはポータブル実行ファイル (PE) または DLL として悪意のあるペイロードが既に埋め込まれている可能性があるため、ドロッパーが必ずしもダウンローダーであるとは限りません。これらのファイルタイプについては後ほど説明します。ドロッパーは攻撃によく使用されます。よく使われる例としては、SolarwindsやKaseyaのサプライチェーン攻撃があります。いずれも、悪意のあるペイロードのドロッパーとして使用される、侵害されたサプライヤーエージェントソフトウェアの使用に関係していました。後者は以下によって使用されています。 悪のランサムウェア グループ。
A ローダー は、特にメモリのみのペイロードの場合、別の悪意のあるペイロードを実行するように被害者システムを設定する責任があります。ここでいうセットアップとは、多くの場合、DLL を別のプロセスのメモリ空間に挿入し、適切なメモリ権限を設定することで、必要なメモリスペースの割り当てを確保することを意味します。その後、ローダーはペイロードを起動するか、必要なスレッドを実行します。
テクニック 2: EXE ファイルの DLL ファイルのロード
ランサムウェアのペイロードは、EXE ファイルまたは DLL ファイルの形式になります。次に、Windows 実行ファイル (EXE ファイルとも呼ばれる) が、ダイナミックリンクライブラリ (DLL) ファイルと呼ばれるファイルを読み込んで、含まれているコードを活用する方法を見ていきます。
EXE と DLL には、次の 2 つのタイプがあります。 .Net コンピュータプログラミングコードの命令と関連情報 (メタデータ) を含むアセンブリ。これらの命令とメタデータは、EXE または DLL という 1 つのファイルにまとめられます。 .Net 組み立て。この 2 種類のファイルにより、Windows システムでコンピュータープログラミングコードを実行 (EXE) したり、ライブラリファイル (DLL) として保存したりして、他のファイルから「借用」して読み取ることができます。DLL の場合、このプロセスは、複数の人が同じ本を異なる時間に図書館から借りてその内容を読む方法によく似ています。このシリーズの第 2 部では、これら 2 つのアセンブリについて、以下に関連してさらに詳しく説明します。 .Net. ソフトウェアフレームワーク。
とりあえず、これら2種類の使い方を示す非常に簡単な例を次に示します .Net アセンブリ — 独自のコードを実行し、DLL ファイルから外部コードを読み込んだり、読み込んだりする実行ファイル (EXE)。その後、実行ファイルは読み込まれた DLL コードに入力を渡します。最後に、DLL は EXE から受け取った入力を使用して、アプリケーションを実行するユーザーにメッセージを表示します。以下は動作中のコードです。
このシンプルなアプリケーションでは、EXE と DLL の関係も示されています。 .Net アセンブリ。このような関係は、Windows オペレーティングシステム自体を含め、多くのアプリケーションやオペレーティングシステム (共有ライブラリ) で正当に使用されています。Windows では、さまざまなアプリケーションで共有できるように、独自のコードの多くが DLL としてパッケージ化されています。
下の画像は、前の例の EXE と DLL の両方のプログラミングコードを示しています。このコードは、でサポートされている言語の 1 つである C# プログラミング言語を使用して記述されています。 .Net。この図では、DLL コードのリファレンスが強調表示されています。
DLL は、1 つのコードを 1 回記述するだけで、共有ライブラリまたは動的ライブラリとしてさまざまな実行ファイルで何度も使用できる効果的な手段です。そのため、多くのマルウェアやランサムウェアファミリーでも頻繁に使用されています。DLL サイドローディングや DLL ハイジャックなどの手法は、これらの関係を利用する一般的な悪質な手法です。 .Net アセンブリ。
テクニック 3: 偵察とリビングオフ・ザ・ランド・バイナリーの立ち上げ
引き続き、ターゲットシステムに関する有用な情報を収集する機能 (Discovery) と、同時にそのシステム上で他のバイナリや実行ファイルを起動する機能 (Spawning) という重要な手法を組み合わせています。この図では、最初のカスタム実行ファイルがターゲットの Windows システム上でネイティブの実行ファイルまたはバイナリを起動し、Living off the Land (LotL) 攻撃を示しています。
この例は、最初の C# アプリケーションを実行した後、ターゲットシステムに関する有用な情報を収集しているところを示しています。出力では緑色のテキストで示されています。収集されたドライブ情報に注目してください。ランサムウェアは、この情報を利用してこれらのドライブ上のファイルを標的にし、暗号化の前に盗み出して、通常は多額の身代金を要求する可能性があります。
アプリケーションは引き続き、外部のシステム実行ファイル (Windows コマンドプロンプト) を起動します。cmd.exe) 実行可能。その後、カスタムアプリケーションはいくつかの Windows コマンドを Windows に渡します。 cmd.exe プロセス (赤色のテキストで表示)、この場合は Windows システムのバージョン情報を表示します。この記事をわかりやすくするために、カスタム C# アプリケーションには、実行したアクションの出力と、起動されたプロセスに関する情報が表示されます。他の外部アプリケーションを起動できるこの機能は、被害者プロセスを開始して最終的に悪意のあるコードを挿入する場合にも役立ちます。
技法 4: データエンコーディング
もう 1 つの便利な手法はデータエンコーディングです。これは、アルゴリズムを使用してデータを別の形式で表すプロセスです。たとえば、一部のウェブリクエストでは、HTTP 認証や API 呼び出しでの基本認証など、データをやり取りするために base64 というエンコーディングタイプが合法的に使用されています。ただし、同じ base64 エンコーディング例を使用すれば、悪意のあるプログラムやペイロードが使用する特定のテキストやコマンドを隠すのにも役立ちます。コールバック URL やファイルなど、コードの一部を難読化するために使用できます。このような手法は、スタンドアロンの C# プログラムでは以下のとおりです。
この特定のアプリの例では、コードは何らかのテキスト(この場合は「URL」)を取ります。https://listener.malware.bad」、それをコンピュータバイトの配列に変換し、そのバイトに対して base64 エンコーディングアルゴリズムを実行して、「の英数字の ASCII テキストに変換します。ahr0chm6ly9saxn0zw5LCI5TYWx3YXJLLMJHZA==」は上のアプリケーションディスプレイのエンコーダセクションの下に表示されます。このプロセスをプログラム的に逆にして、デコーダーセクションに示されているように元のテキストに戻すことができます。そうすることで、その URL は目に見えないように隠され、それが悪意のある URL であるかどうかをすぐには判断できなくなります。
テクニック 5: 暗号化
最後に、暗号化について見ていきます。ランサムウェアは、侵害されたシステム上のファイルを暗号化することと同義語になっています。これもまた、保存されているデータを保護するための正当な機能であり、ランサムウェアでは他のほとんどの手法と同様に悪質な目的で使用されるようになりました。
こんばんは、C# VELXPACEB。応戦、成長、新種種ササイ、新種ササク、元の到来など知りたい。
、新月は、 Data1.txt、 じつは、 Data1-Encrypted.txtそして、いただきたく。
サクラン、サクラン、AZYNA、AZINAまた、あげまくのBINKWINKINKANAM/KINPARKREA、8CORMWINKHITAIB.
5月22日(日)
新作、作業 .Net ニースプリカカと技法、クリークリークリーカハーハーハーハーハーハーハーハーフ、サッカブカブカ。
さらに イライオトラストカーストメンダーダーダーニザムムブブサーサックスのジナボナーナーです。