摘? 要:為了幫助系統(tǒng)管理員理解后門程序的基本概念及工作原理,并為其提供相應防護依據(jù)。本研究通過對系統(tǒng)后門程序工作原理的分析,利用Python語言的優(yōu)點,并將其作為攻擊語言,分別編寫了后門服務端和后門客戶端程序代碼,在虛擬機中實施攻擊,為了保證攻擊適用于不同系統(tǒng),文章通過編寫代碼,創(chuàng)建setup.py文件,巧妙的將Python程序轉(zhuǎn)換為Windows可執(zhí)行文件并在Windows系統(tǒng)實施攻擊,最終通過后門服務器端下達相關命令來獲取更多個人信息。
關鍵詞:后門;后門服務器;后門客戶端;Popen類
中圖分類號:TP309.5? ? ?文獻標識碼:A
Abstract: In order to help system administrators understand the basic concepts and working principles of backdoor programs, and to provide the corresponding protection basis, this study first analyzes the working principles of the system backdoor program, using the advantages of Python language as an attack language. Then, the backdoor server and backdoor client program code are written separately to implement the attack in virtual machine. For different systems, the article writes code, creates a setup.py file, ingeniously converts the Python program into an executable Windows file and implements an attack on the Windows system, and finally issues related commands through the backdoor server to obtain private information.
Keywords: backdoor; backdoor server; backdoor client; popen class
1? ?引言(Introduction)
計算機病毒的主要傳播途徑是借助后門以“網(wǎng)絡釣魚”“網(wǎng)頁掛馬”和漏洞為主,系統(tǒng)黑客攻擊利用操作系統(tǒng)運行應用程序時的行為特性[1]。實施系統(tǒng)攻擊的第一步是,將黑客攻擊程序安裝到目標系統(tǒng)內(nèi)部。使用常規(guī)方法安裝黑客攻擊程序并非易事。最常用的方法是通過網(wǎng)頁或種子誘使用戶下載文件。用戶下載并運行包含攻擊代碼的文件后,黑客攻擊程序就會在用戶毫無察覺的情形下安裝到系統(tǒng)。結(jié)合緩沖區(qū)溢出攻擊,將很容易理解向文檔、視頻、音樂、圖像文件植入黑客攻擊代碼發(fā)動攻擊的原理。找出應用程序代碼漏洞,編寫攻擊程序,強制執(zhí)行非法內(nèi)存區(qū)域,這樣就能輕松安裝后門搜索程序。安裝黑客攻擊程序后,它既可以像后門一樣工作,將用戶的操作信息如實傳遞給黑客;也可以搜素注冊表的主要信息,強制改變某個值,導致系統(tǒng)發(fā)生問題;甚至可以用于竊取用戶的金融信息,直接給用戶帶來重大經(jīng)濟損失。
2? 后門基本概念(Basic concept of back door)
后門技術專門用于繞過防火墻等安全設備,控制服務器資源。安裝于目標服務器的后門客戶端會接收并運行來自后門服務器的命令,并將運行結(jié)果發(fā)送給后門服務器,達到信息竊取的目的。防火墻用于攔截用戶從外部訪問服務器。訪問服務器的Telnet、FTP等服務只限允許的用戶使用。防火墻并不會阻斷用戶從內(nèi)部向外部的訪問路徑。由于防火墻技術的發(fā)展,目前雖然很難從外部侵入防火墻,但一旦成功,黑客就能輕松竊取大量敏感信息[2]。
利用后門發(fā)動攻擊時,最困難的是向目標系統(tǒng)安裝后門客戶端。通過網(wǎng)絡直接上傳文件并非易事,所以這種手段大多用于安全性較差的Web環(huán)境。最常用的方法是利用公告欄的文件上傳功能。黑客將含有惡意代碼的文件偽裝成實用工具或視頻上傳到公告欄,用戶可能就會在無意間點擊下載。點擊文件的瞬間,用戶PC就被偷偷地安裝好后門,成為僵尸PC,黑客即可遠程操控[3]。此外,包含激發(fā)好奇心內(nèi)容的電子郵件也經(jīng)常被用于發(fā)動后門攻擊。
一般情況下個人PC中安裝的殺毒軟件通常能夠檢出大部分后門程序,但受到后門強大功能的誘惑,黑客一直在編寫不易被殺毒軟件檢測的新型惡意代碼。本研究通過編寫簡單的Python程序來分析后門程序的工作原理[4],并使用它搜索并獲取PC中保存的用戶個人信息。
3? ?后門程序(Backdoor program)
后門程序由服務器端與客戶端組成。服務器端運行于黑客PC,客戶端運行于服務器PC。首先,在黑客PC運行后門服務器。安裝于服務器PC的后門客戶端運行時,會主動連接后門服務器,建立連接后,后門服務器即可向后門客戶端發(fā)送命令,從而發(fā)動致命攻擊,如竊取用戶個人信息、搜索注冊表信息、修改賬號密碼等,其工作原理如圖1所示。
3.1? ?后門服務器端程序
目前PC中安裝的大部分殺毒軟件都能查殺簡單的后門程序。要想編寫能夠?qū)嶋H運行的后門服務器端程序,需要編寫者擁有超高技代水平,具備高超的技術能力。下面是的基于Python的后門服務器端程序代碼。
后門服務器程序是基于套接字的客戶端/服務器結(jié)構,異常簡單。難的是如何在客戶端創(chuàng)建運行來自服務器端命令的裝置。后門服務器的工作過程如下步驟所示。
(1)置主機:指定套接字連接的另一方地址。將該地址設置為空,表示可以連接所有主機。
(2)設置端口號:指定用于與客戶端進行連接的端口。此處設置為11443號端口,它不是系統(tǒng)預留端口。
(3)置套接字選項:可以設置多種套接字選項,用于控制套接字行為。設置時,可以使用的套接字選項有SOL_SOCKET、IPPROTO_TCP、IPPROTO_IP三種,IPPROTO_TCP用于設置TCP協(xié)議選項,IPPROTO_IP用于設置IP協(xié)議選項,SOL_SOCKET用于設置套接字常用選項。此處設置的SO_REUSERADDR選項表示重用(bind)已經(jīng)使用的地址[5]。
(4)設置連接隊列大小:設置隊列中等待連接服務器的最大請求數(shù)。
(5)輸入命令:打開輸人窗口,接收要發(fā)送給客戶端的命令。
(6)傳送命令:向客戶端發(fā)送命令。
(7)接收結(jié)果:從后門客戶端接收命令執(zhí)行結(jié)果并顯示。
3.2? ?后門客戶器端程序
編寫后門客戶端。Python中subprocess.Popen類的概念極為重要。后門客戶端從服務器接收文本形式命令后,開啟新進程運行命令。此過程中,subprocess.Popen類用于創(chuàng)建進程、傳遞命令,并將運行結(jié)果傳遞給后門客戶端。Popen類通過參數(shù)接收多種值,其中名為PIPE的特殊值,其使用操作系統(tǒng)中的臨時文件為進程間數(shù)據(jù)交換提供通路[6]。Popen通過三個管道(PIPE)接收數(shù)據(jù)輸入,傳送輸出值與錯誤信息,Popen類工作原理如圖2所示。
4? 創(chuàng)建 windows可執(zhí)行文件(Create windows executable)
隨然后門服務器與客戶端已全部編寫完成。但由于并非所有的目標服務器(被攻擊對象)都安裝Python環(huán)境,所以需要將Python程序轉(zhuǎn)換為Windows可執(zhí)行文件,才能正常運行后門客戶端。若想將Python程序轉(zhuǎn)換為Windows可執(zhí)行文件,需要先安裝py2exe模塊。創(chuàng)建可執(zhí)行文件之前,先要創(chuàng)建setup.py文件,其代碼如下所示。
5? 搜索獲取個人信息(Search for personal information)
首先了解信息系統(tǒng)運營人員易犯的錯誤。假設如下情景:為了開發(fā)用戶信息修改程序,程序員A從服務器下載含有客戶信息的文件,將其保存到PC;后門程序通過郵件傳播,程序員A閱讀郵件,因失誤將后門程序安裝到PC。為了進行測試,將如下文件保存到服務器C的CAtest文件夾,backdoorClientexe文件位于C\目錄。在黑客PC中運行backdoorServer.py程序,在服務器PC中運行backdoorClient.exe程序。黑客PC通過后門服務器端下達命令。Windows擁有強大的文件搜索功能,絲毫不遜于UNIX。通過搜索文本文件,查看其中是否包含特定字符,以此查找包含重要信息的文件[9]。
6? ?結(jié)論(Conclusion)
本研究中的后門程序在功能上還有許多缺陷,比如,程序只能用于執(zhí)行命令并顯示執(zhí)行結(jié)果,并不能應用于實際黑客攻擊,且無法用于發(fā)動多種攻擊,但可以幫助理解后門程序的基本概念及工作原理。對于大部分攻擊方式,通過為系統(tǒng)打補丁或使用殺毒軟件都能進行防御,但對于一些新出現(xiàn)的攻擊方式,它們大都無能為力。隨著系統(tǒng)黑客攻擊技術不斷進化,殺毒軟件與操作系統(tǒng)的防御技術也不斷發(fā)展。但是,“矛”總比“盾”領先一步,目前仍然有多種黑客攻擊方法在網(wǎng)絡中盛行。
參考文獻(References)
[1] 劉思琦,辛鵬.2019年7月計算機病毒疫情分析[J].信息網(wǎng)絡安全,2019(09):139.
[2] 俞詩源.新型網(wǎng)站后門隱藏技術[C].2019互聯(lián)網(wǎng)安全與治理論壇論文集,2019:94-97.
[3] 胡正雨,劉文銳.Python的計算機軟件應用技術研究[J].計算機產(chǎn)品與流通,2020(07):39.
[4] 徐欽桂,劉桂雄.應用程序作弊型后門防御模型[J].計算機工程與設計,2010,31(11):2423-2426.
[5] 譚云木.SOHO路由器后門技術研究與檢測防范[D].上海交通大學,2018.
[6] 感染手機操作系統(tǒng)的后門程序Backdoor.AndroidOS.Coudw.a[J].信息安全與通信保密,2015(12):26.
[7] Chen Dong, Jinghui Chen, Wenzhong, et al. A machine-learning-based hardware-Trojan detection approach for chips in the Internet of Things[J]. International Journal of Distributed Sensor Networks, 2019, 15(12): 21-23.
[8] 陶婧.基于Python的函數(shù)式并行編程語言特征提取研究[J].長春師范大學學報,2020,39(04):48-52.
[9] 易方昶.基于網(wǎng)頁后門木馬監(jiān)測系統(tǒng)的研究和設計[D].北京化工大學,2010.
作者簡介:
賀軍忠(1982-),男,碩士,網(wǎng)絡工程師/講師.研究領域:網(wǎng)絡組建,信息安全.