專利名稱:一種遠(yuǎn)程控制方法和遠(yuǎn)程控制系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊安全領(lǐng)域,具體涉及一種遠(yuǎn)程控制方法和遠(yuǎn)程控制系統(tǒng)。
背景技術(shù):
早期的遠(yuǎn)程控制系統(tǒng)大多都是c/s模式的,即客戶端,服務(wù)端相互通訊的,比較常見的
有pcAnywhere等。此外木馬程序如冰河,黑洞,灰鴿子等都是這類通訊機(jī)制的軟件。
傳統(tǒng)的通訊方式主要有兩種, 一種是正向連接,即控制端程序主動連接服務(wù)端開放的 指定端口,另一種是反向連接,即控制端首先開放端口監(jiān)聽本地某一端口,等待服務(wù)端連 接。早期的防火墻對于主動連接非常敏感,反向鏈接的穿透性更強(qiáng)。隨著網(wǎng)絡(luò)安全技術(shù)的 不斷完善,目前的防火墻越來越健壯,早期的這類通訊方式很難實現(xiàn)隱蔽通訊的目的,目 前借助于IE, QQ等常見通訊軟件的進(jìn)程,將控制軟件以DLL (Dynamic Link Library,動 態(tài)鏈接庫)的形式遠(yuǎn)程注入到其進(jìn)程空間,起到穿透防火墻的目的。但隨著主動防御技術(shù) 的出現(xiàn)在行為識別和內(nèi)核H00K中,這種依賴遠(yuǎn)程注入,隱蔽通訊的手段越來越難。
目前大多數(shù)的軟件防火墻都是通過自身的驅(qū)動程序依賴操作系統(tǒng)NDIS (中間層驅(qū)動) 對進(jìn)程通訊進(jìn)行管理,使用防火墻規(guī)則來控制進(jìn)程的網(wǎng)絡(luò)通訊,90%的軟件防火墻都是監(jiān) 視,管理進(jìn)程起到防御入侵的效果,這就是使用遠(yuǎn)線程注入到IE瀏覽器能突破防火墻的主 要原因,因為防火墻默認(rèn)IE進(jìn)程是允許訪問網(wǎng)絡(luò)的,而木馬的服務(wù)端是以IE進(jìn)程中的線程 形態(tài)來運作的,故能輕松的穿透防火墻的攔截,但是殺毒軟件開發(fā)商或一些安全軟件開發(fā) 商已經(jīng)發(fā)現(xiàn)這類問題,針對性的對IE, E鄧lorer進(jìn)行了更為嚴(yán)格的規(guī)則限制和管理,大大 的打擊了這類攻擊手段。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種具備主動穿透防火墻或入侵檢測系統(tǒng)的遠(yuǎn)程控制方法,通過 將遠(yuǎn)程控制端的控制端和服務(wù)端分開進(jìn)行針對性的處理,針對防火墻或入侵檢測系統(tǒng)的原 理進(jìn)行技術(shù)處理,輕松穿越其攔截。
本發(fā)明的一種遠(yuǎn)程控制方法,步驟如下
1)服務(wù)端安裝在被控主機(jī)中,掛鉤DNS發(fā)送模塊(DomainName Server,域名服務(wù)器), 發(fā)送DNS請求數(shù)據(jù);2) 服務(wù)端根據(jù)本地是否有開放的通信端口,進(jìn)行如下處理
若有,服務(wù)端直接連接開放的端口,采用抓包模塊獲取控制端的指令信息;否則,服 務(wù)端根據(jù)連接碰撞規(guī)則連接端口 ,采用抓包模塊獲取控制端的指令信息;
3) 服務(wù)端執(zhí)行上述控制端的指令,采用數(shù)據(jù)流協(xié)議配合端口碰撞,實現(xiàn)控制端將指令 信息傳送給遠(yuǎn)程被控計算機(jī),實現(xiàn)遠(yuǎn)程控制。
本發(fā)明的另一個目的是提出一種遠(yuǎn)程控制系統(tǒng),包括服務(wù)端和控制端,所述服務(wù)端有 DNS發(fā)送模塊、抓包模塊和指令處理模塊,所述控制端有DNS接收模塊、發(fā)包模塊和指令 處理模塊;所述DNS發(fā)送模塊用于發(fā)送DNS請求數(shù)據(jù),所述抓包模塊用于獲取控制端的指 令信息;所述DNS接收模塊用來接收整個通訊過程中的數(shù)據(jù);所述發(fā)包模塊用來向服務(wù)端 發(fā)送端口碰撞指令,所述控制端的指令處理模塊接收、處理所述指令信息,并將指令信息 發(fā)送至服務(wù)端;所述服務(wù)端的指令處理模塊解析所述指令信息,獲取控制端指令,并執(zhí)行 指令任務(wù),從而實現(xiàn)遠(yuǎn)程控制。
上述遠(yuǎn)程控制系統(tǒng)的服務(wù)端和控制端還包括加密解密模塊。
本發(fā)明使用一種反向連接的手段,服務(wù)端安裝在被控計算機(jī)時,主動連接控制端,首 先進(jìn)行掛鉤svchost(NETWORK_SERVICE)進(jìn)程,該進(jìn)程是Windows負(fù)責(zé)關(guān)鍵網(wǎng)絡(luò)服務(wù)的核心 通訊服務(wù),包括DNS發(fā)送模塊,DNS發(fā)送模塊使用UDP協(xié)議,無需連接控制,傳輸速度快。 不管防火墻有多強(qiáng)大,規(guī)則設(shè)置的多嚴(yán)密,只要防火墻涉及一般的通訊應(yīng)用, 一定不會禁 止DNS數(shù)據(jù)的交互,因此本發(fā)明對DNS發(fā)送模塊進(jìn)行掛鉤操作,借用系統(tǒng)的DNS發(fā)送模塊發(fā) 送構(gòu)造的DNS請求數(shù)據(jù),發(fā)送DNS請求的SOCKET。服務(wù)端根據(jù)自己的實際需要構(gòu)造DNS請求 數(shù)據(jù),并發(fā)送給控制端,這時控制端就知道服務(wù)器工作正常了。
服務(wù)端接收控制端的指令,采用數(shù)據(jù)流協(xié)議解析配合端口碰撞的手段,實現(xiàn)了控制端 將指令信息傳送給遠(yuǎn)程被控計算機(jī),而被控計算機(jī)無需開放任何端口或創(chuàng)建任何通訊連 接,即可實現(xiàn)遠(yuǎn)程控制,且隱蔽,高效,穩(wěn)定,具備非常強(qiáng)的穿透性。
上述DNS請求數(shù)據(jù)內(nèi)容主要是心跳包、請求包和應(yīng)用數(shù)據(jù)包
心跳包將服務(wù)端工作的正常情況通知控制端,如設(shè)定一段時間內(nèi)檢測控制端是否收 到服務(wù)端的心跳包,如果被控計算機(jī)關(guān)機(jī),或出現(xiàn)問題,那控制端就能清楚的知道連接異 常了。
請求包向控制端發(fā)出詢問,等待控制端的控制指令,以及在連接最初時間內(nèi),將被 控計算機(jī)的網(wǎng)絡(luò)信息發(fā)送給控制端,如本機(jī)目前開放的端口。應(yīng)用數(shù)據(jù)包發(fā)送控制指令對應(yīng)的應(yīng)用數(shù)據(jù),如計算機(jī)屏幕信息數(shù)據(jù)內(nèi)容等。
本發(fā)明主要用于在特定環(huán)境下,比如網(wǎng)絡(luò)審計系統(tǒng),機(jī)房管理系統(tǒng)等,需要通訊軟件 能有較高的穿透防火墻或入侵檢測系統(tǒng),實現(xiàn)隱蔽通訊的目的。 本發(fā)明的優(yōu)點和積極效果如下-
1. 具備非常強(qiáng)的隱蔽通訊能力,可穿透絕大部分軟件和硬件防火墻。
2. 具有在網(wǎng)絡(luò)環(huán)境較不好的情況下,仍能交互通訊的能力。
3. 具有較強(qiáng)的通訊安全性。
圖l本發(fā)明的服務(wù)端和控制端的處理流程圖2本發(fā)明的遠(yuǎn)程控制服務(wù)端和控制端的關(guān)鍵模塊圖。
具體實施例方式
下面結(jié)合附圖,詳細(xì)的說明本發(fā)明的基于DNS穿透技術(shù)的遠(yuǎn)程控制方法和遠(yuǎn)程控制系 統(tǒng),但不構(gòu)成對本發(fā)明的限制。
本發(fā)明主要針對Microsoft Windows系列操作系統(tǒng)進(jìn)行說明,本發(fā)明的方法同樣用于 原理一致的Linux等操作系統(tǒng)。
本發(fā)明服務(wù)端和控制端的處理流程,如圖1所示。 (1)服務(wù)端通過HOOK技術(shù)掛鉤操作系統(tǒng)DNS發(fā)送模塊,并初始化DNS發(fā)送模塊,獲取 本地已經(jīng)開放的通訊端口,目的是為了告訴控制端可以連接哪些端口,從而主動連接控制 端。
有兩種情況 一種是服務(wù)器開放了某些端口,可以直接連接開放的端口并發(fā)送數(shù)據(jù), 由于主要通訊交互,采用抓包模塊通過網(wǎng)卡數(shù)據(jù)包過濾技術(shù)從網(wǎng)卡捕獲到的數(shù)據(jù)信息中提 取指令,所以通過數(shù)據(jù)包解碼能獲取到控制端發(fā)送的連接請求指令;另一種是服務(wù)器什么
端口也沒開放,采用端口碰撞技術(shù),即服務(wù)端和控制端實現(xiàn)預(yù)先規(guī)定好的連接碰撞規(guī)則。
比如關(guān)機(jī)指令,預(yù)先設(shè)定先連接1024端口,再連接1024+100的端口,最后連接 1024+100+998的端口,連接在規(guī)定時間內(nèi)完成,滿足這樣的連接碰撞規(guī)則,服務(wù)端就知道 控制端要求關(guān)機(jī),并執(zhí)行關(guān)機(jī)指令,實現(xiàn)關(guān)機(jī)。
碰撞規(guī)則是用戶在設(shè)計服務(wù)端和控制端時規(guī)定(協(xié)商)好的,用戶可以根據(jù)需要自行設(shè)計碰撞規(guī)則,非常靈活,方便。這種碰撞技術(shù)是主動的,而防火墻等系統(tǒng)只是被動等防 御,所以穿透性極強(qiáng)。
(2)服務(wù)端對整個通訊過程中發(fā)送的數(shù)據(jù)在加密解密模塊使用加密手段,通過DNS 發(fā)送模塊發(fā)送加密的信息。
加密方法由用戶自行設(shè)定,目的是為了保證數(shù)據(jù)的安全性。由于對通訊數(shù)據(jù)加密,而 入侵檢測系統(tǒng)的原理是通過對網(wǎng)絡(luò)流數(shù)據(jù)包的攔截,分析和阻斷,對于加密后的數(shù)據(jù)目前 的技術(shù)無法實現(xiàn)自動解碼,此處的通訊數(shù)據(jù)是DNS數(shù)據(jù),所以可輕易入侵。
(3) 控制端的DNS接收模塊接收服務(wù)端發(fā)送的數(shù)據(jù),并在加密解密模塊進(jìn)行解密;
(4) 控制端的指令處理模塊對接收到的心跳包和應(yīng)用數(shù)據(jù)包,進(jìn)行處理,并按控制 指令規(guī)則連接協(xié)商的端口開始端口碰撞,控制端的發(fā)包模塊將指令發(fā)送至服務(wù)端;
(5) 服務(wù)端的指令處理模塊解析控制端的指令含義,獲取控制端指令,并執(zhí)行指令
任務(wù),
(6) 服務(wù)端的應(yīng)用模塊根據(jù)指令處理模塊傳遞的指令進(jìn)行相應(yīng)的操作,控制端的用 戶接口處理用戶的操作,從而實現(xiàn)遠(yuǎn)程控制。
本發(fā)明的遠(yuǎn)程控制系統(tǒng)如圖2所示,遠(yuǎn)程服務(wù)端包括DNS發(fā)送模塊、抓包模塊、加密 解密模塊、指令處理模塊和應(yīng)用模塊;其中,所述DNS發(fā)送模塊和所述抓包模塊負(fù)責(zé)雙方 的通訊,DNS發(fā)送模塊用來發(fā)送通訊過程中的加密信息,抓包模塊用來獲取控制端的指令 信息;所述加密解密模塊負(fù)責(zé)對整個通訊過程中的數(shù)據(jù)進(jìn)行加密和解密操作;所述指令處 理模塊主要是解析控制端的指令信息,并執(zhí)行指令任務(wù);所述應(yīng)用模塊負(fù)責(zé)根據(jù)指令處理 模塊傳遞上來的指令進(jìn)行相應(yīng)的操作。
遠(yuǎn)程控制端包括DNS接收模塊、發(fā)包模塊、加密解密模塊、指令處理模塊和應(yīng)用模塊; 其中,所述DNS接收模塊和所述發(fā)包模塊負(fù)責(zé)雙方的通訊,DNS接收模塊用來接收加密信 息,發(fā)包模塊用來向服務(wù)端發(fā)送端口碰撞指令;所述加密解密模塊負(fù)責(zé)對整個通訊過程中 的數(shù)據(jù)進(jìn)行加密和解密操作;所述指令處理模塊對于控制端來說,所述指令處理模塊負(fù)責(zé) 接收用戶執(zhí)行的指令,并將指令進(jìn)行封裝;所述應(yīng)用模塊用來初始化通訊模塊,并接收用 戶指令。
其中,掛鉤DNS發(fā)送模塊的關(guān)鍵技術(shù)和碰撞的關(guān)鍵如下
1.掛鉤DNS發(fā)送模塊的關(guān)鍵技術(shù)將服務(wù)端以DLL的形式,通過H00K技術(shù)或創(chuàng)建遠(yuǎn)線 程的方法注入到NETWORLSERVICE中的Svchost. exe進(jìn)程,該進(jìn)程是操作系統(tǒng)的網(wǎng)絡(luò)服務(wù)的關(guān)鍵進(jìn)程,需要處理的DNS發(fā)送模塊就在Svchost.exe中。首先需要提升模塊的控制權(quán)限 先在OpenProcess獲取svchost的進(jìn)程句柄,然后通過OpenProcessToken 、 LookupPrivilegevalue、 AdjustTokenPrivi leges等幾個API (Application Programming Interface應(yīng)用編程接口)獲取句柄令牌并修改令牌,提升訪問權(quán)限,最后調(diào)用 DuplicateHandle系統(tǒng)API,將系統(tǒng)的DNS發(fā)送模塊的通訊SOCKET轉(zhuǎn)化為本發(fā)明中通信的DNS 發(fā)送模塊的Socket。這樣就可以使用系統(tǒng)的DNS發(fā)送模塊進(jìn)行數(shù)據(jù)發(fā)送了,即只要調(diào)用標(biāo) 準(zhǔn)的Socket應(yīng)用函數(shù)就可發(fā)送數(shù)據(jù)。
2.碰撞的關(guān)鍵技術(shù)由于服務(wù)端接收指令使用網(wǎng)卡數(shù)據(jù)包過濾技術(shù),上述網(wǎng)卡數(shù)據(jù) 包過濾技術(shù),指通過驅(qū)動將網(wǎng)卡置為混雜模式狀態(tài), 一旦網(wǎng)卡設(shè)置為這種模式,它就能接 收傳輸在網(wǎng)絡(luò)上的每一個信息包。網(wǎng)卡數(shù)據(jù)包過濾技術(shù),就是在這種混雜模式下對數(shù)據(jù)包 進(jìn)行分析的技術(shù)。
采用UDP連接,所以雙方通訊無需連接成功,只要滿足連接條件即可。TCP連接,最初 需要經(jīng)過3次握手建立TCP傳輸連接,如果服務(wù)端主機(jī)并沒有開放連接的端口,在控制端發(fā) 送SYN, ACK包后,服務(wù)器不會回應(yīng)相應(yīng)的SYN,ACK包。
盡管為說明目的公開了本發(fā)明的具體實施例和附圖,其目的在于幫助理解本發(fā)明的內(nèi) 容并據(jù)以實施,但是本領(lǐng)域的技術(shù)人員可以理解在不脫離本發(fā)明及所附的權(quán)利要求的精 神和范圍內(nèi),各種替換、變化和修改都是可能的。本發(fā)明不應(yīng)局限于本說明書最佳實施例 和附圖所公開的內(nèi)容,本發(fā)明要求保護(hù)的范圍以權(quán)利要求書界定的范圍為準(zhǔn)。
權(quán)利要求
1. 一種遠(yuǎn)程控制方法,步驟如下1)服務(wù)端安裝在被控主機(jī)中,掛鉤DNS模塊,發(fā)送DNS請求數(shù)據(jù);2)服務(wù)端根據(jù)本地是否有開放的通信端口,進(jìn)行如下處理若有,服務(wù)端直接連接開放的端口,采用抓包模塊獲取控制端的指令信息;否則,服務(wù)端根據(jù)連接碰撞規(guī)則連接端口,采用抓包模塊獲取控制端的指令信息;3)服務(wù)端執(zhí)行上述控制端的指令,采用數(shù)據(jù)流協(xié)議配合端口碰撞,實現(xiàn)控制端將指令信息傳送給遠(yuǎn)程被控計算機(jī),實現(xiàn)遠(yuǎn)程控制。
2. 如權(quán)利要求1所述的一種遠(yuǎn)程控制方法,其特征在于,步驟l)中的服務(wù)端以動態(tài)鏈接 庫的形式,通過創(chuàng)建遠(yuǎn)線程的方法安裝在被控主機(jī)的Svchostexe進(jìn)程中。
3. 如權(quán)利要求1所述的一種遠(yuǎn)程控制方法,其特征在于,步驟l)中所述的掛鉤操作方法 如下獲取svchost的進(jìn)程句柄,修改進(jìn)程句柄令牌,提升訪問權(quán)限。
4. 如權(quán)利要求1所述的一種遠(yuǎn)程控制方法,其特征在于,步驟1)中的DNS請求數(shù)據(jù)包 括心跳包、請求包和應(yīng)用數(shù)據(jù)包。
5. 如權(quán)利要求1所述的一種遠(yuǎn)程控制方法,其特征在于,對步驟1)中的DNS請求數(shù)據(jù) 進(jìn)行加密。
6. 如權(quán)利要求1所述的一種遠(yuǎn)程控制方法,其特征在于,步驟2)中所述服務(wù)端獲取指令 使用網(wǎng)卡數(shù)據(jù)包過濾技術(shù),通過數(shù)據(jù)包解碼實現(xiàn)。
7. 如權(quán)利要求1所述的一種遠(yuǎn)程控制方法,其特征在于,步驟3)中所述的數(shù)據(jù)流協(xié)議為 TCP協(xié)議或UDP協(xié)議。
8. —種遠(yuǎn)程控制系統(tǒng),包括服務(wù)端、控制端,所述服務(wù)端和控制端有指令處理模塊,其特 征在于,所述系統(tǒng)還包括DNS發(fā)送模塊、抓包模塊、DNS接收模塊和發(fā)包模塊,所述 DNS發(fā)送模塊用于掛鉤操作,發(fā)送DNS請求數(shù)據(jù);所述抓包模塊用于獲取控制端的指 令信息;所述DNS接收模塊用于接收數(shù)據(jù);所述發(fā)包模塊用來向服務(wù)端發(fā)送端口碰撞 指令;控制端的指令處理模塊接收、處理所述指令信息,并將指令信息發(fā)送至服務(wù)端; 服務(wù)端的指令處理模塊解析所述指令信息,獲取控制端指令,執(zhí)行指令任務(wù),實現(xiàn)遠(yuǎn)程 控制。
9. 如權(quán)利要求8所述的一種遠(yuǎn)程控制系統(tǒng),其特征在于,所述系統(tǒng)的服務(wù)端和控制端還包 括加密解密模塊。
全文摘要
本發(fā)明屬于網(wǎng)絡(luò)通訊安全領(lǐng)域,具體涉及一種遠(yuǎn)程控制方法和遠(yuǎn)程控制系統(tǒng)。本發(fā)明通過在服務(wù)端和控制端增加模塊,將服務(wù)端按照在被控計算機(jī)中,主動連接控制端,針對防火墻或入侵檢測系統(tǒng)的原理進(jìn)行改進(jìn),主動穿透防火墻或入侵檢測系統(tǒng),輕松穿越攔截,實現(xiàn)隱蔽通訊的目的。
文檔編號H04L29/06GK101286995SQ20081011240
公開日2008年10月15日 申請日期2008年5月23日 優(yōu)先權(quán)日2008年5月23日
發(fā)明者翁越龍 申請人:北京銳安科技有限公司