複製鏈接
請複製以下鏈接發送給好友

冰刃

(計算機術語)

鎖定
冰刃IceSword適用於Windows 2000/XP/2003 操作系統,其內部功能是十分強大, 用於查探系統中的幕後黑手—木馬後門,並作出處理。可能您也用過很多類似功能的軟件,比如一些進程工具、端口工具,但是系統級後門功能越來越強, 一般都可輕而易舉地隱藏進程、端口、註冊表、文件信息, 一般的工具根本無法發現這些幕後黑手。IceSword 使用了大量新穎的內核技術, 使得這些後門躲無所躲。
中文名
冰刃
外文名
IceSword
添加功能
Find Modules
更新説明
恢復了插件功能
進    程
請點擊“進程”按鈕
端    口
進程端口關聯
註冊表
與Regedit用法類似

冰刃添加功能

1、進程欄裏的模塊搜索(Find Modules)
2、註冊表欄裏的搜索功能(Find、Find Next)
3、文件欄裏的搜索功能,分別是ADS的枚舉(包括或不包括子目錄)、普通文件查找(Find Files)
上面是要求最多的,確實對查找惡意軟件有幫助
4、BHO欄的刪除、SSDT欄的恢復(Restore)
5、Advanced Scan:第三步的Scan Module提供給一些高級用户使用,一般用户不要隨便restore,特別不要restore第一項顯示為"-----"的條目,因為它們或是操作系統自己修改項、或是IceSword修改項,restore後會使系統崩潰或是IceSword不能正常工作。最早的IceSword也會自行restore一些內核執行體、文件系統的惡意inline hook,不過並未提示用户,覺得像SVV那樣讓高級用户自行分析可能會有幫助。另外裏面的一些項會有重複(IAT hook與Inline modified hook),偷懶不檢查了,重複restore並沒有太大關係。還有掃描時不要做其它事,請耐心等待。
有朋友建議應該對找到的結果多做一些分析,判斷出修改後代碼的意義,這當然不錯,不過要好的結果工作很煩瑣——比如我可以用一條指令跳轉,也可以用十條或更多冗餘指令做同樣的工作——沒有時間完善,所以只有JMP/PUSH+RET的判斷。提議下對高級用户可選的替代方案:記住修改的地址,使用進程欄裏的“內存讀寫”中的“反彙編”功能,就先請用户人工分析一下吧,呵呵。
6、隱藏簽名項(View->Hide Signed Items)。在菜單中選中後對進程、模塊列舉、驅動、服務四欄有作用。要注意選中後刷新那四欄會很慢,要耐心等。運行過程中系統相關函數會主動連接外界以獲取一些信息(比如去crl.microsoft. com獲取證書吊銷列表),一般來説,可以用防火牆禁之,所以選中後發現IS有連接也不必奇怪,M$搞的,呵呵。
7、其他就是內部核心功能的加強了,零零碎碎有挺多,就不細説了。使用時請觀察下View->Init State,有不是“OK”的説明初始化未完成,請report一下。
IceSword是一斬斷黑手的利刃(所以取這土名,有點搞呃,呵呵)。它適用於Windows 2000/XP/2003/Vista操作系統,用於查探系統中的幕後黑手(木馬後門)並作出處理,當然使用它需要用户有一些操作系統的知識。
在對軟件做講解之前,首先説明第一注意事項 :此程序運行時不要激活內核調試器(如softice),否則系統可能即刻崩潰。另外使用前請保存好您的數據,以防萬一未知的Bug帶來損失。
IceSword只為使用32位的x86兼容CPU的系統設計,另外運行IceSword需要管理員權限。
如果您使用過老版本,請一定注意,使用新版本前要重新啓動系統,不要交替使用二者。
IceSword內部功能是十分強大的。可能您也用過很多類似功能的軟件,比如一些進程工具、端口工具,但是系統級後門功能越來越強,一般都可輕而易舉地隱藏進程、端口、註冊表、文件信息,一般的工具根本無法發現這些“幕後黑手”。IceSword使用大量新穎的內核技術,使得這些後門躲無所躲。
如何退出IceSword:直接關閉,若你要防止進程被結束時,需要以命令行形式輸入:IceSword.exe/c,此時需要Ctrl+Alt+D才能關閉(使用三鍵前先按一下任意鍵)。
如果最小化到托盤時托盤圖標又消失了:此時可以使用Ctrl+Alt+S將IceSword主界面喚出。因為偷懶沒有重繪圖標,將就用吧。
您無須為此軟件付費。該軟件是免費的。

冰刃更新説明

1.20:(1)恢復了插件功能,並提供一個文件註冊表的小插件,詳見FileReg.chm;(2)對核心部分作了些許改動,界面部分僅文件菜單有一點變化。
1.20(SubVer 111E3):添加對32位版本Vista(NtBuildNumber:6000)的支持。
1.22:(1)增加普通文件、ADS、註冊表、模塊的搜索功能;(2)隱藏簽名項;(3)添加模塊的HOOK掃描;(4)核心功能的加強。

冰刃進程

欲察看當前進程,請點擊“進程”按鈕,在右部列出的進程中,隱藏的進程會以紅色醒目地標記出,以方便查找隱藏自身的系統級後門。1.16中進程欄只納入基本功能,欲使用一些擴展的隱藏進程功能,請使用系統檢查。
右鍵菜單:
1、刷新列表:請再次點擊“進程”按鈕,或點擊右鍵,選擇“刷新列表”。
2、結束進程:點擊左鍵選中一項,或按住Ctrl鍵選擇多項,然後使用右鍵菜單的“結束進程”將它們結束掉。
3、線程信息:在右鍵菜單中選擇“線程信息”。
注意其中的“強制終止”是危險的操作 ,對一個線程只應操作一次,否則系統可能崩潰。為了儘量通用,裏面註釋掉了大量代碼,因而是不完全的。不過可以應付一些用户的要求了:終止系統線程與在核心態死循環的線程,雖然可能仍然能看到它們的存在,那只是一些殘留。
4、模塊信息:在右鍵菜單中選擇“模塊信息”。
“卸除”對於系統DLL是無效的,你可以使用“強制解除”,不過強制解除系統DLL必然會使進程掛掉。強制解除後在使用PEB來查詢模塊的工具中仍可看到被解除的DLL,而實際上DLL已經被卸掉了。這是因為我懶得做善後處理了——修改PEB的內容。
5、內存讀寫:在右鍵菜單中選擇“內存讀寫”。
操作時首先填入讀的起始地址和長度,點擊“讀內存”,如果該進程內的指定地址有效,則讀取並顯示,您可以在編輯框中修改後點擊“寫內存”寫入選中的進程。注意此刻的提示框會建議您選“否”即不破除COW機制,在您不十分明白COW之前,請選擇“否”,否則可能寫入錯誤的地址給系統帶來錯誤以至崩潰。
讀出內容後,可以點擊“反彙編”查看反彙編值,某些木馬修改函數入口來hook函數,可由反彙編值分析判斷。

冰刃端口

此欄的功能是進程端口關聯。它的前四項與netstat -an類似,後兩項是打開該端口的進程。
在“進程ID”一欄中,出現0值是指該端口已關閉,處於“TIME_WAIT”狀態,由於2000上使用技術XP/2003有所不同,所以前者與後二者上的顯示可能些微差別。IceSword破除系統級後門的端口隱藏,只要進程使用windows系統功能打開了端口,就逃不出查找。不過注意因為偷懶,未將隱藏的端口像進程那樣紅色顯示,所以您需要自己對照。

冰刃註冊表

Regedit用法類似,注意它有權限打開與修改任何子鍵,使用時要小心,不要誤修改(比如SAM子鍵)。
子鍵的刪除、子鍵下項的創建都是在左邊子鍵上點擊右鍵,在菜單中選擇即可,而右邊各項上點擊則出現“刪除所選”的菜單,刪除選中的一項或多項。在右邊雙擊一項則出現修改對話框。

冰刃文件

文件操作與資源管理器類似,但只提供文件刪除、複製的功能。其特點還是防止文件隱藏,同時可以修改已打開文件(通過複製功能,將複製的目標文件指定為那個已打開文件即可)。

冰刃菜單

設置:此欄中各項意義與其名稱一致,具體可見FAQ。
轉儲:“GDT/IDT”在當前目錄保存GDT和IDT的內容入GDT.txt、IDT.txt;
“列表”將當前List(僅對前5項,即:進程、端口、內核模塊、啓動組、服務)中的某些列內容保存在用户指定的log文件中。比如,要保存進程路徑名入log文件,先點擊“進程”按鈕,再選擇“列表”菜單,指定文件後確定即可。
托盤切換:將Icesword最小化到托盤或反之。

冰刃其它

內核模塊:即當前系統加載的核心模塊比如驅動程序
啓動組:是兩個RUN子鍵的內容,懶得寫操作了,請自行更改註冊表。
服務:用於查看系統中的被隱藏的或未隱藏的服務,隱藏的服務以紅色顯示,注意在操作時可能有的服務耗時較長,請稍後手動刷新幾次。
SPI、BHO:不多説了。
SSDT:即系統服務派發表,其中被修改項會紅色顯示。
消息鈎子:枚舉系統中所註冊的消息鈎子(通過SetWindowsHookEx等),若鈎子函數在exe模塊中則是實際的地址,若在dll模塊中則是相對於dll基址的偏移,具體請自行判斷吧(一般地址值小於0x400000的就是全局鈎子)。
監視進線程創建:顧名思義,進線程的創建紀錄保存在以循環緩衝裏,要IceSword運行期間才進行紀錄,您可以用它發現木馬後門創建了什麼進程和線程,尤其是遠線程。紅色顯示的即是進程創建(目標進程TID為0時為進程創建,緊接其後的紅色項是它的主線程的創建)和遠線程創建(應該注意),須注意的是,此欄只顯示最新的1024項內容。
監視進程終止:一般只是監視一個進程結束另一個進程,進程結束自身一般不紀錄。
系統檢查:1.22中有更新
其餘請參考FAQ

冰刃相關問題

問:進程端口工具很多,為什麼要使用IceSword?
答: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棧不在此列。
問:windows自帶的服務工具強大且方便,IceSowrd有什麼更好的特點呢?
答:因為比較懶,界面使用上的確沒它來的好,不過IceSword的服務功能主要是查看木馬服務的,使用還是很方便的。舉個例子,順便談一類木馬的查找:svchost是一些共享進程服務的宿主,有些木馬就以dll存在,依靠svchost運作,如何找出它們呢?首先看進程一欄,發現svchost過多,記住它們的pid,到服務一欄,就可找到pid對應的服務項,配合註冊表查看它的dll文件路徑(由服務項的第一欄所列名稱到註冊表的services子鍵下找對應名稱的子鍵),根據它是不是慣常的服務項很容易發現異常項,剩下的工作就是停止任務或結束進程、刪除文件、恢復註冊表之類的了,當然過程中需要你對服務有一般的知識。
問:那麼什麼樣的木馬後門才會隱藏進程註冊表文件的?用IceSword又如何查找呢?
答:比如很流行且開源(容易出變種)的hxdef就是這麼一個後門。用IceSword可以方便清除,你直接就可在進程欄看到紅色顯示的hxdef100進程,同時也可以在服務欄中看到紅色顯示的服務項,順便一説,在註冊表和文件欄裏你都可發現它們,若木馬正在反向連接,你在端口欄也可看到。殺除它麼,首先由進程欄得後門程序全路徑,結束進程,將後門目錄刪除,刪除註冊表中的服務對應項...這裏只是簡單説説,請你自行學習如何有效利用IceSword吧。
問:“內核模塊”是什麼?
答:加載到系統內和空間的PE模塊,主要是驅動程序*.sys,一般核心態後們作為核心驅動存在,比如説某種rootkit加載_root_.sys,前面提到的hxdef也加載了hxdefdrv.sys,你可以在此欄中看到。
問:“SPI”與“BHO”又是什麼?
答:SPI欄列舉出系統中的網絡服務提供者,因為它有可能被用來做無進程木馬,注意“DLL路徑”,正常系統只有兩個不同DLL(當然協議比較多)。BHO是IE的插件,全名Browser Help Objects,木馬以這種形式存在的話,用户打開網頁即會激活木馬。
問:“SSDT”有何用?
答:內核級後門有可能修改這個服務表,以截獲你係統的服務函數調用,特別是一些老的rootkit,像上面提到的ntrootkit通過這種hook實現註冊表、文件的隱藏。被修改的值以紅色顯示,當然有些安全程序也會修改,比如regmon,所以不要見到紅色就慌張。
問:“消息鈎子”與木馬有什麼關係?
答:若在dll中使用SetWindowsHookEx設置一全局鈎子,系統會將其加載入使用user32的進程中,因而它也可被利用為無進程木馬的進程注入手段。
問:最後兩個監視項有什麼用處?
答:“監視進線程創建”將IceSword運行期間的進線程創建調用記錄在循環緩衝裏,“監視進程終止”記錄一個進程被其它進程Terminate的情況。舉例説明作用:一個木馬或病毒進程運行起來時查看有沒有殺毒程序如norton的進程,有則殺之,若IceSword正在運行,這個操作就被記錄下來,你可以查到是哪個進程做的事,因而可以發現木馬或病毒進程並結束之。再如:一個木馬或病毒採用多線程保護技術,你發現一個異常進程後結束了,一會兒它又起來了,你可用IceSword發現是什麼線程又創建了這個進程,把它們一併殺除。中途可能會用到“設置”菜單項:在設置對話框中選中“禁止進線程創建”,此時系統不能創建進程或者線程,你安穩的殺除可疑進線程後,再取消禁止就可以了。
問:IceSword的註冊表項有什麼特點?相對來説,RegEdit有什麼不足嗎?
答:説起Regedit的不足就太多了,比如它的名稱長度限制,建一個全路徑名長大於255字節的子項看看(編程或用其他工具,比如regedt32),此項和位於它後面的子鍵在regedit中顯示不出來;再如有意用程序建立的有特殊字符的子鍵regedit根本打不開。
當然IceSword中添加註冊表編輯並不是為了解決上面的問題,因為已經有了很多很好的工具可以代替Regedit。IceSword中的“註冊表”項是為了查找被木馬後門隱藏的註冊項而寫的,它不受任何註冊表隱藏手法的矇蔽,真正可靠的讓你看到註冊表實際內容。
問:那麼文件項又有什麼特點呢?
答:同樣,具備反隱藏、反保護的功能。當然就有一些副作用,文件保護工具(移走文件和文件加密類除外)在它面前就無效,如果你的機器與人共用,那麼不希望別人看到的文件就採用加密處理吧,以前的文件保護(防讀或隱藏)是沒有用的。還有對安全的副作用是本來system32\config\SAM等文件是不能拷貝也不能打開的,但IceSword是可以直接拷貝的。不過只有管理員能運行IceSword。最後説一個小技巧:用複製來改寫文件。對一個被非共享打開的文件、或一個正運行的程序文件(比如木馬),你想改掉它的內容(比如想向木馬程序文件寫入垃圾數據使它重啓後無法運行),那麼請選中一個文件(內含你想修改的內容),選“複製”菜單,將目標文件欄中添上你欲修改掉的文件(木馬)路徑名,確定後前者的內容就寫入後者(木馬)從頭開始的位置。
最後提醒一句:每次開機IceSword只第一次運行確認管理員權限,所以管理員運行程序後,如果要交付機器給低權限用户使用,應該先重啓機器,否則可能為低權限用户利用。
問:GDT/IDT的轉儲文件裏有什麼內容?
答:GDT.log內保存有系統全局描述符表的內容,IDT.log則包含中斷描述符表的內容。如果有後門程序修改它,建立了調用門或中斷門,很容易被發現。
問:轉儲列表是什麼意思?
答:即將顯示在當前列表視中的部分內容存入指定文件,比如轉儲系統內所有進程,放入網上請人幫忙診斷。不過意義不大,IceSword編寫前已假定使用者有一定安全知識,可能不需要這類功能。
問:文件菜單中“重啓並監視”有何用處,如何使用?
答:因為IceSword設計為儘量不在系統上留下什麼安裝痕跡,不過這就不方便監視開機就自啓的程序。比如,一個程序運行後向explorer等進程遠線程注入,再結束自身,這樣查進程就不大方便了,因為僅有線程存在。這時,就可以使用“重啓並監視”監視系統啓動時的所有進線程創建,可輕易發現遠線程注入。
問:“創建進程規則”和“創建線程規則”是什麼意思?
答:它們用來設定創建進線程時的規則。其中要注意的是:總規則是指允許還是禁止滿足該條規則所有條款的進線程創建事件;一條規則中的條款間的關係是與關係,即同時滿足才算匹配這條規則;“規則號”是從零開始的,假設當前有n條規則,添加規則時輸入零規則號即代表在隊頭插入,輸入n規則號則在隊尾插入;如果前面一條規則已經匹配,那麼所有後面的規則就忽略掉了,系統直接允許或禁止這次創建操作。
問:插件有何用處?
答:可以方便地擴充功能而不升級程序,以後可能開放一些接口給用户自己定製。1.06正式版暫時取消了,因為用户反饋並不是很有用。
問:協件有何用處?
答:插件的取代品。時間有限,沒有怎麼測試,若覺得不安全,可以在“設置”菜單禁用之。具體見頭文件和示例程序。IsHelp是個小玩具型的協件,提供輔助功能。需要注意的是,協件的運行需要IceSword的支持(IceSword通過進程間通信提供服務)。