鄭州廣播電視大學(xué) 王民川
特洛伊木馬程序的設(shè)計(jì)方法研究
鄭州廣播電視大學(xué) 王民川
目前在不斷發(fā)生的互聯(lián)網(wǎng)安全事件中,大部分都有木馬的身影。據(jù)中國(guó)國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急處理中心的估計(jì),目前木馬黑色產(chǎn)業(yè)鏈的年產(chǎn)值已超過2.38億元人民幣,造成的損失則超過76億元。
只要了解木馬的工作原理,借助協(xié)議分析工具,就能及時(shí)發(fā)現(xiàn)其蛛絲馬跡,降低木馬帶來的危害。只要熟悉木馬的隱藏方法,就能快速找到并徹底清除木馬,甚至找到入侵者。如果能夠預(yù)先了解木馬攻擊手段,就可以有針對(duì)性地防范木馬的主動(dòng)入侵或攻擊。
在計(jì)算機(jī)領(lǐng)域中特洛伊木馬程序是一種未經(jīng)授權(quán)的程序,它包含在一段正常的程序中,這個(gè)未經(jīng)授權(quán)的程序提供了一些用戶不知道的功能,其目的是不需要管理員的準(zhǔn)許就可獲得系統(tǒng)使用權(quán)。木馬的全稱是“特洛伊木馬”,是一種新型的計(jì)算機(jī)網(wǎng)絡(luò)病毒程序。它利用自身所具有的植入功能,依附其他具有傳播能力的病毒之上, 或者通過入侵后植入等多種途徑,進(jìn)駐目標(biāo)機(jī)器,搜集其中的各種敏感信息,并通過網(wǎng)絡(luò)與外界通信,發(fā)回所搜集到的各種敏感信息,接受植入者指令,完成其他各種操作,如修改指定文件、格式化硬盤等。
典型的木馬工作原理為:當(dāng)服務(wù)器端在目標(biāo)計(jì)算機(jī)上被執(zhí)行后,木馬打開一個(gè)默認(rèn)的端口進(jìn)行監(jiān)聽,當(dāng)客戶機(jī)向服務(wù)端提出連接請(qǐng)求,服務(wù)器上的相應(yīng)程序就會(huì)自動(dòng)運(yùn)行來應(yīng)答客戶機(jī)的請(qǐng)求,服務(wù)器端程序與客戶端建立連接后,由客戶端發(fā)出指令,服務(wù)器在計(jì)算機(jī)中執(zhí)行這些指令,并將數(shù)據(jù)傳送到客戶端,以達(dá)到控制主機(jī)的目的。
木馬程序的工作過程包含了木馬程序的偽裝、隱藏、啟動(dòng)、通信以及攻擊等。特洛伊木馬程序的偽裝技術(shù)主要有以下幾種方法:修改圖標(biāo)、捆綁于正常文件中、顯示出錯(cuò)信息、自我銷毀、更改文件名。木馬的隱蔽性是木馬能否長(zhǎng)期存活的關(guān)鍵,木馬隱藏的主要方式有:在任務(wù)欄里隱藏、隱藏端口、在任務(wù)管理器里隱藏、隱藏通信、隱藏啟動(dòng)方式、隱藏傳播方式、最新隱身技術(shù)。特洛伊木馬程序主要有以下幾種啟動(dòng)方式:隨正常的程序啟動(dòng)而啟動(dòng)、隱藏在配置文件中、潛伏在Win.ini中、在System.ini中藏身、偽裝成普通文件、內(nèi)置到注冊(cè)表中、隱形于啟動(dòng)組中、隱蔽在Winstart.bat中、設(shè)置在超級(jí)鏈接中。
遠(yuǎn)程計(jì)算機(jī)控制指的是基于一定的物理網(wǎng)絡(luò),通過一定的網(wǎng)絡(luò)協(xié)議,對(duì)分布在網(wǎng)絡(luò)上的計(jì)算機(jī)實(shí)現(xiàn)遠(yuǎn)程控制并協(xié)同工作。目前的許多木馬檢測(cè)軟件正是通過掃描本地和遠(yuǎn)程主機(jī)系統(tǒng)中打開的已知木馬端口進(jìn)行木馬檢測(cè)的。為此采用新技術(shù)的木馬對(duì)其通信形式進(jìn)行了隱蔽和變通,使其很難被端口掃描發(fā)現(xiàn)。木馬為隱蔽通信形式所采用手段有:端口復(fù)用、反彈端口和潛伏技術(shù)。
本系統(tǒng)采用基于反彈端口機(jī)制的C/S模型進(jìn)行通信。反彈端口的機(jī)制是進(jìn)行C/S的反向連接,即由服務(wù)器向客戶機(jī)主動(dòng)建立連接。當(dāng)服務(wù)端在目標(biāo)主機(jī)上運(yùn)行后,目標(biāo)的主機(jī)系統(tǒng)會(huì)為其動(dòng)態(tài)分配一個(gè)端口,此時(shí),服務(wù)端即可向客戶端發(fā)起連接,并且連接的端口指向客戶端的80端口,即使用“netstat-an”命令查看本機(jī)的TCP/IP網(wǎng)絡(luò)連接狀態(tài),也將顯示“TCP本機(jī)IP地址:端口 遠(yuǎn)程IP地址:80ESTABLISHED”類似的數(shù)據(jù),防火墻也不會(huì)阻擋這種非法連接,從而確保了木馬控制程序的安全和通信的隱蔽。
本節(jié)將詳細(xì)介紹遠(yuǎn)程控制木馬的主要實(shí)現(xiàn)過程,包括客戶端和服務(wù)端的實(shí)現(xiàn),通信模塊的實(shí)現(xiàn),程序的界面和功能的測(cè)試等。
1.服務(wù)端程序的實(shí)現(xiàn)。本模塊通過修改注冊(cè)表來實(shí)現(xiàn)目標(biāo)監(jiān)控子系統(tǒng)的自啟動(dòng),根據(jù)注冊(cè)表的結(jié)構(gòu)和每個(gè)鍵值的含義,服務(wù)端在注冊(cè)表中加載自啟動(dòng)項(xiàng)及自啟動(dòng)參數(shù)的位置如下:
Internet SettingsAgenter子鍵下加載系統(tǒng)的自啟動(dòng)參數(shù),如在線中轉(zhuǎn)服務(wù)器的IP地址、目標(biāo)管理子系統(tǒng)的IP地址以及程序的配置信息等。
通信模塊的實(shí)現(xiàn)。通信模塊的開發(fā)采用Winsock API,建立基于阻塞模式的流式Sockets套接字,數(shù)據(jù)的接收和發(fā)送除了與通用流式套接字編程模型相同外,還增加了對(duì)數(shù)據(jù)的處理功能。
服務(wù)端管理模塊。管理模塊是服務(wù)端的主模塊,它將各個(gè)功能模塊融合在一起,實(shí)現(xiàn)對(duì)目標(biāo)主機(jī)的監(jiān)控和管理。它主要負(fù)責(zé)接收監(jiān)控系統(tǒng)的命令,對(duì)其命令進(jìn)行識(shí)別解釋,并調(diào)用各個(gè)功能模塊,執(zhí)行管理器命令。
2.客戶端的實(shí)現(xiàn)??蛻舳耸沁\(yùn)行在控制端主機(jī)上,用來遠(yuǎn)程控制被控制端的信息和操作??蛻舳诉\(yùn)行后,修改中間服務(wù)器上的客戶端信息,包括客戶機(jī)IP,開放的端口和登錄密碼。修改成功后,等待遠(yuǎn)程主機(jī)的上線。如果有遠(yuǎn)程主機(jī)上線,則可以完成的操作有文件控制、系統(tǒng)控制和文件傳輸。
操作遠(yuǎn)程主機(jī)的文件,完成所需要的目的,包括文件的新建、刪除、上傳和下載。作為木馬的破壞功能,系統(tǒng)控制中包括了遠(yuǎn)程關(guān)機(jī)、重啟、注銷、鼠標(biāo)屏幕控制等功能。選擇需要控制的主機(jī),然后點(diǎn)擊相應(yīng)的按鈕,即可完成操作。
選擇從遠(yuǎn)程主機(jī)下載文件后,其具體實(shí)現(xiàn)就由文件傳輸模塊來實(shí)現(xiàn)。選擇需要的任務(wù),然后點(diǎn)擊“正常啟動(dòng)”,“暫停任務(wù)”和“刪除任務(wù)”按鈕完成相應(yīng)操作。傳輸進(jìn)度顯示當(dāng)前啟動(dòng)的任務(wù)文件已經(jīng)完成數(shù)據(jù)程度。文件的傳輸采用斷點(diǎn)傳輸模式。
本文,筆者設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于反彈端口連接的遠(yuǎn)程控制木馬,該木馬程序較成功地實(shí)現(xiàn)服務(wù)端的主動(dòng)上線、客戶端對(duì)服務(wù)端的良好控制、服務(wù)端良好的偽裝和隱藏性以及整個(gè)通信過程的秘密性。通過該項(xiàng)目的實(shí)施,可對(duì)木馬技術(shù)、遠(yuǎn)程控制技術(shù)、防火墻技術(shù)、信息系統(tǒng)安全等技術(shù)有了更加深刻的認(rèn)識(shí)。