金山主頁鎖定分析
一現象
最近打開瀏覽器,發現地址欄是鎖定的默認主頁,但是顯示的網頁內容確是毒霸網址大全
通過分析,發現金山是通過inline hook, 攔截用戶啓動快捷方式,當發現啓動的是瀏覽器時,將啓動金山的Kslaunch.exe由Kslaunch.exe啓動瀏覽器,並進行主頁劫持。
二分析
(1) inline hook
重點分析了一下金山攔截用戶啓動瀏覽器並由KsLaunch.exe劫持的過程,其關鍵部分如下:
首先在 shlwapi![SHInvokeCommandOnContextMenuEx+0xXX]+0xXX掛了一個鉤子,
這個鉤子藏得挺深的,這是一個未公開的函數,函數的作用不好說,只是知道用戶啓動快捷方式的時候總會先執行到這裏。
(2) 瀏覽器劫持分析
接管啓動的所有快捷方式後調用ks3rdhmpg32!OpenLnk函數解析快捷方式。當發現啓動的是瀏覽器時將使用KsLaunch.exe替換掉原有的WebBrowser來實現瀏覽器的劫持。我以QQ瀏覽器爲例來分析。
啓動瀏覽器快捷方式後,會被修改成啓動KsLaunch.exe
l 首先根據啓動的快捷方式,獲取exe的所在路徑
l 通過exe的名稱比較瀏覽器列表,並取出瀏覽器對應的網址URL
(部分瀏覽器列表)
l 拼裝URL參數
l 獲取kslaunch.exe路徑(原始路徑:c:\program files\kingsoft\kingsoft antivirus\kslaunch.exe毒霸安裝目錄,拷貝到一個臨時的目錄,並返回臨時目錄:C:\Users\Andy\AppData\Roaming\Kingsoft\kslaunch\kslaunch.exe)
l 將URL使用Base64加密,在進行Md5加密後拼裝字符串
"C:\Users\Andy\AppData\Roaming\Kingsoft\kslaunch\kslaunch.exe" /app:"C:\Program Files\Tencent\QQBrowser\QQBrowser.exe" /url:"https://www.duba.com/index.html?f=qlswdhq&ft=gjlock&--type=0&hid=100_50_&pru=1" /encode:"aAB0AHQAcABzADoALwAvAHcAdwB3AC4AZAB1AGIAYQAuAGMAbwBtAC8AaQBuAGQAZQB4AC4AaAB0AG0AbAA_AGYAPQBxAGwAcwB3AGQAaABxACYAZgB0AD0AZwBqAGwAbwBjAGsAJgAtAC0AdAB5AHAAZQA9ADAAJgBoAGkAZAA9ADEAMAAwAF8ANQAwAF8AJgBwAHIAdQA9ADEAAAA=" /hash:"4d6537b0b8808374a263a415a615d737"
l 然後KsLaunch.exe啓動目標瀏覽器 並劫持URL
Command Line: "C:\Program Files\Tencent\QQBrowser\QQBrowser.exe" https://www.duba.com/index.html?f=qlswdhq&ft=gjlock&--type=0&hid=100_50_&pru=1
三結論
通過在啓動所有快捷方式的過程中並匹配瀏覽器後替換爲KsLaunch.exe來劫持主頁,可以避免與主頁保護軟件的正面對抗,達到劫持效果,思路令人佩服。如果用在正規的主頁保護技術上那就更好了。