添加功能
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鍵選擇多項,然後使用右鍵選單的“結束進程”將它們結束掉。
注意其中的“強制終止”是危險的操作 ,對一個執行緒只應操作一次,否則系統可能崩潰。為了儘量通用,裡面注釋掉了大量代碼,因而是不完全的。不過可以應付一些用戶的要求了:終止系統執行緒與在
核心態死循環的執行緒,雖然可能仍然能看到它們的存在,那只是一些殘留。
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通過
進程間通信提供服務)。