木馬技術

之前講過幾種網絡攻擊技術,攻擊成功之後自然就要實現對目標主機的入侵,這個時候就需要藉助木馬來實現,對於web服務器可以藉助webshell來進行遠程控制,說木馬這個東西吧,主要還是通過誘騙的形式進行安裝的,然後在計算機中隱藏運行,並且木馬是爲了實施特殊功能,木馬和病毒是不一樣的,木馬往往沒有病毒的感染功能,主要功能是實現遠程操控,木馬具有僞裝性,一開始的時候往往僞裝成合法程序並誘惑用戶執行,一般情況下,木馬是具有竊密性的,比如盜QQ號要竊取QQ密碼之類的,有的木馬還會具有破壞性,破壞性針對的是第三方的計算機,比如前面說DDOS分佈式拒絕服務攻擊的時候說過一個代理端(也就是肉雞),這些代理端往往在自身不知情的情況下就對某一個目標主機發起了攻擊,這往往就是木馬的功勞。

木馬技術的演變,第一代主要是在unix系統下的,主要通過命令行來進行遠程計算機的控制,比如我在連接這個網站後臺Linux系統時使用的putty工具。第二代就不一樣了,發展出了非常友好的圖形化用戶界面,而且也支持Windows操作系統了,但是這個時候防火牆出現了,於是木馬進化到了第三代,第三代爲了突破防火牆的攔截下了很大的功夫,比如端口反彈技術,實現從內網到外網的連接,有的還可以穿透硬件防火牆。第四代木馬爲了應付越來越高級的防火牆自然發展了更高的技術,比如通過線程插入技術,插入到系統進程或用戶進程,這樣在實現木馬的時候就可以沒有進程,網絡連接也隱藏在了系統服務中。第五代木馬就更高深了,使用了rootkit技術來隱藏自己,這樣使用一般的系統工具就很難發現他們的存在,現在的灰鴿子木馬就已經發展到這個階段了。

下面來說說木馬的連接方式,首先爲了實現對遠程計算機的控制,木馬一般都使用了C/S架構,分爲客戶端和服務端,攻擊者自己安裝客戶端,然後誘騙用戶安裝服務端

1. 端口反彈技術,一開始的時候,木馬都是由客戶端(攻擊者)連接到服務端(肉雞),但是現在的防火牆技術,尤其是硬件防火牆它是禁止你這樣做的,你從內網連接到外網防火牆會認爲這是一個正常連接,而你從外網連接到內網,防火牆就給你屏蔽掉了,所以從第三代木馬技術之後,木馬的服務端程序都是主動對外網發送連接請求,也就是肉雞主動連接攻擊者,這也就是說反彈式木馬是服務端發送請求,然後客戶端被動連接。如果說根據客戶端的IP是靜態的還是動態的,反彈端口連接還可以分爲兩種形式:

a) 第一種形式就是,攻擊者的IP是一個公網靜態IP並且網絡端口都被設置好了是一個固定的端口,這樣木馬就可以根據之前約定好的IP和端口直接連回客戶端程序

b) 第二種形式就是,木馬服務端主動連接動態IP地址的木馬客戶端,在這種技術中攻擊者未避免自己被發現,往往會通過跳板計算機來控制被入侵的計算機。攻擊者在跳板計算機中安裝木馬客戶端程序,爲了使木馬的服務端可以連接到這個使用動態IP的客戶端,攻擊者往往會利用一個已經被其控制的代理服務器,然後這個代理服務器來保存跳板計算機的IP地址和待連接的端口,木馬的服務端在每一次連接的時候都先連接到這個代理服務器來獲取IP和端口,然後再與客戶端進行連接。

下面再來說說木馬一般是怎麼隱藏自己的

1. 線程插入,首先說明一點在一個進程中可以包含多個線程,並且這些線程一般是相互獨立的,一個發生了錯誤一般不會影響到另一個。線程插入技術就是把木馬程序來插入到一個其他應用程序的地址空間,這個進程對於系統來說是一個正常的程序,這樣就不會有木馬進程的存在,也就相當於隱藏了木馬的進程

2. DLL動態劫持,DLL動態劫持就是讓程序加載非系統目錄下的DLL文件。Windows系統由一個特性就是強制操作系統中的應用程序先從自己所在的目錄中加載模塊,所以應用程序在加載模塊的時候會首先搜索自己目錄下的dll,如果攻擊者構造一個與原dll重名的dll然後覆蓋回去,就有機會讓應用程序去加載這個dll,往往攻擊者會在這個dll中加入一個遠程控制功能,並且使用有高權限的應用程序去加載這個dll,然後利用這個新的dll實現遠程控制

3. Rootkit技術,rootkit是一種內核隱藏技術,使用這種技術可以使惡意程序逃避系統標準管理程序的查找,早期的rootkit技術是通過修改內存中系統文件的鏡像來逃避檢測的,這一類rootkit往往使用HOCK技術或者修改系統服務派發表,現在主流的rootkit技術是通過內核態來實現的,比如直接內核對象操作技術(DKOM),通過動態修改系統中的內核數據結構來逃避安全軟件的檢測,由於這些數據結構可以隨着系統的運行不斷變化,因此非常難以檢測,所以這種方式往往可以逃避大多數安全軟件的查殺,但是由於在內核態實現,所以這種木馬的兼容性較差

 首發於我的個人網站: 點擊打開鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章