“工欲善其事,必先利其器”,今天先介紹清除流氓軟體的工具第一利器IceSword。
如果你對以下不感興趣,只想掌握幾個簡單操作,可以看圖解IceSword基本操作IceSword,也稱為冰刀或者冰刃,有些地址簡稱IS,是USTC的PJF出品的一款系統診斷、清除利器。
清除流氓軟體工具無數,為什麼稱之為第一利器呢,有如下的理由:
1)你是不是經常有檔案刪不掉?如CNNIC或者3721的檔案?
2)是不是經常有登錄檔不讓你修改?如CNNIC的登錄檔是它自動保護起來的
3)是不是經常有程式殺不掉,提示“無法完成”?
4)是不是瀏覽器有N多的外掛?
5)是不是有一些程式執行的時候隱藏了程式和埠?
6)是不是有一些流氓軟體的檔案在資源管理器下看都看不到?
再看看作者給出的理由:(專業性強一點)
1、絕大多數所謂的程式工具都是利用Windows的Toolhlp32或psapi再或ZwQuerySystemInformation系統呼叫(前二者最終也用到此呼叫)來編寫,隨便一個ApiHook就可輕輕鬆鬆幹掉它們,更不用說一些核心級後門了;極少數工具利用核心執行緒排程結構來查詢程式,這種方案需要硬編碼,不僅不同版本系統不同,打個補丁也可能需要升級程式,並且現在有人也提出過防止此種查詢的方法。而IceSword的程式查詢核心態方案是目前獨一無二的,並且充分考慮核心後門可能的隱藏手段,目前可以查出所有隱藏程式。
2、絕大多數工具查詢程式路徑名也是通過Toolhlp32、psapi,前者會呼叫RtlDebug***函式向目標註入遠執行緒,後者會用除錯api讀取目標程式記憶體,本質上都是對PEB的列舉,通過修改PEB就輕易讓這些工具找不到北了。而IceSword的核心態方案原原本本地將全路徑展示,執行時剪下到其他路徑也會隨之顯示。
3、程式dll模組與2的情況也是一樣,利用PEB的其他工具會被輕易欺騙,而IceSword不會弄錯(有極少數系統不支援,此時仍採用列舉PEB)。
4、IceSword的程式殺除強大且方便(當然也會有危險)。可輕易將選中的多個任意程式一併殺除。當然,說任意不確切,除去三個:idle程式、System程式、csrss程式,原因就不詳述了。其餘程式可輕易殺死,當然有些程式(如winlogon)殺掉後系統就崩潰了。
5、對於埠工具,網上的確有很多,不過網上隱藏埠的方法也很多,那些方法對IceSword可是完全行不通的。其實本想帶個防火牆動態查詢,不過不想弄得太臃腫。這裡的埠是指windows的IPv4 Tcpip協議棧所屬的埠,第三方協議棧或IPv6棧不在此列。
目前一些流氓軟體採取的手段無所不用其極:執行緒注入,程式隱藏,檔案隱藏,驅動保護,普通使用者想把檔案給刪了或者找出程式來,是非常困難的。有的是看到了,刪不掉,殺不掉,乾著急,實在不行,還需要從另外的作業系統去刪除檔案。比如採取驅動保護的流氓軟體如CNNIC,雅虎助手之類,.sys驅動載入的時候,它過濾了檔案和登錄檔操作,直接返回一個true,Windows提示檔案刪了,但一看,它還在那裡。象一些檔案刪除工具如unclocker都無效。IceSword是目前所知唯一可以直接刪除這類已經載入的驅動和採取登錄檔保護的工具。象清除CNNIC這類流氓軟體,不需要重啟也可以完成了。
IS採取了很多新穎的、核心級的方法和手段,關於它的技術細節不在本文討論之列,下面主要從使用者角度講一下它的主要功能:
■檢視程式
包括執行程式的檔案地址、各種隱藏的程式以及優先順序。用它也可以輕易殺掉用工作管理員、Procexp等工具殺不掉的程式。還可以檢視程式的執行緒、模組資訊,結束執行緒等。
■檢視埠
類似於cport、ActivePort這類工具,顯示當前本地開啟的端品以及相應的應用程式地址、名字。包括使用了各種手段隱藏埠的工具,在它下面,都一覽無餘。
■核心模組
載入到系統內和空間的PE模組,一般都是驅動程式*.sys,可以看到各種已經載入的驅動。包括一些隱藏的驅動檔案,如IS自身的IsDrv118.sys,這個在資源管理器裡是看不見的。
■啟動組
Windows啟動組裡面的相關方式,這個比較容易理解了。不過可惜的是沒有提示刪除功能,只能檢視
■服務
用於檢視系統中的被隱藏的或未隱藏的服務,隱藏的服務以紅色顯示。提供對服務的操作如啟動,停止,禁用等。
■SPI和BHO
這兩個是目前流氓軟體越來越看中的地方。SPI是服務提供介面,即所有Windows的網路操作都是通過這個介面發出和接收資料包的。很多流氓軟體把這個.dll替換掉,這樣就可以監視所有使用者訪問網路的包,可以針對性投放一些廣告。如果不清楚的情況下,把這個.dll刪掉,會造成網路無法使用,上不了網。LSPFix等工具就是針對這個功能的。BHO就更不用說了,瀏覽器的輔助外掛,使用者啟動瀏覽器的時候,它就可以自動啟動,彈出廣告視窗什麼的。這兩項僅提供檢視的功能。
■SSDT (System Service Descriptor Table)
系統服務描述表,核心級後門有可能修改這個服務表,以截獲你係統的服務函式呼叫,特別是一些老的rootkit,像上面提到的ntrootkit通過這種hook實現登錄檔、檔案的隱藏。被修改的值以紅色顯示,當然有些安全程式也會修改,比如regmon。
■訊息鉤子
若在dll中使用SetWindowsHookEx設定一全域性鉤子,系統會將其載入入使用user32的程式中,因而它也可被利用為無程式木馬的程式注入手段。
■執行緒建立和執行緒終止監視
“監視進執行緒建立”將IceSword執行期間的進執行緒建立呼叫記錄在迴圈緩衝裡,“監視程式終止”記錄一個程式被其它程式Terminate的情況。舉例說明作用:一個木馬或病毒程式執行起來時檢視有沒有防毒程式如norton的程式,有則殺之,若IceSword正在執行,這個操作就被記錄下來,你可以查到是哪個程式做的事,因而可以發現木馬或病毒程式並結束之。再如:一個木馬或病毒採用多執行緒保護技術,你發現一個異常程式後結束了,一會兒它又起來了,你可用IceSword發現是什麼執行緒又建立了這個程式,把它們一併殺除。中途可能會用到“設定”選單項:在設定對話方塊中選中“禁止進執行緒建立”,此時系統不能建立程式或者執行緒,你安穩的殺除可疑進執行緒後,再取消禁止就可以了。
■登錄檔操作,Regedit有什麼不足?
說起Regedit的不足就太多了,比如它的名稱長度限制,建一個全路徑名長大於255位元組的子項看看(程式設計或用其他工具,比如regedt32),此項和位於它後面的子鍵在regedit中顯示不出來;再如有意用程式建立的有特殊字元的子鍵regedit根本打不開。
IceSword中新增登錄檔編輯並不是為了解決上面的問題,因為已經有了很多很好的工具可以代替Regedit。IceSword中的“登錄檔”項是為了查詢被木馬後門隱藏的註冊項而寫的,它不受目前任何登錄檔隱藏手法的矇蔽,真正可靠的讓你看到登錄檔實際內容。
如CNNIC新增的HKLM/SYSTEM/CurrentControlSet/Services/cdnport這個鍵值,就是通過它來載入cndport.sys這個驅動檔案的。通過Regedit你刪除會直接出錯,根本無法刪除。而用IS就可以輕易幹掉。
■檔案操作
IS的檔案操作有點類似於資源管理器,雖然操作起來沒有那麼方便,但是它的獨到功能在於具備反隱藏、反保護的功能。還有對安全的副作用是本來system32/config/SAM等檔案是不能拷貝也不能開啟的,但IceSword是可以直接拷貝的。類似於已經載入的驅動,如CNNIC的cdnport.sys這個檔案,目前只有IS可以直接把它刪除,其它無論什麼方式,都無法破除驅動自身的保護。
即使對大多數有用的unlocker,CopyLock、KillBox都是無效的。利用Windows的系統還沒有完全載入的刪除機制,通過在HKLM/SYSTEM/CurrentControlSet/Control/Session Manager下增加PendingFileRenameOperations,這個是所有刪除頑固檔案工具的最後一招,但它也被驅動保護變得無效了。以前的情況就是需要重啟啟動到另外一個作業系統下刪除。
----那幫做流氓軟體的可真是手段無所不用其及。
IceSword內部功能是十分強大的。可能您也用過很多類似功能的軟體,比如一些程式工具、埠工具,但是現在的系統級後門功能越來越強,一般都可輕而易舉地隱藏程式、埠、登錄檔、檔案資訊,一般的工具根本無法發現這些“幕後黑手”。IceSword使用大量新穎的核心技術,使得這些後門躲無所躲。