郭永帥 王勝和 付順順
摘? 要:為針對(duì)不同場(chǎng)景的網(wǎng)絡(luò)違法犯罪案件,簡(jiǎn)化工作人員滲透效率、學(xué)習(xí)效率,對(duì)不同種類(lèi)的滲透工具進(jìn)行整合,設(shè)計(jì)基于Windows系統(tǒng)采用三層結(jié)構(gòu)模式的滲透應(yīng)用平臺(tái)。以C/S架構(gòu)中的Java Swing輕量級(jí)框架,使用MVC(模型-視圖-控制器)體系結(jié)構(gòu)實(shí)現(xiàn)應(yīng)用平臺(tái),完成對(duì)應(yīng)用平臺(tái)的功能性測(cè)試,滿(mǎn)足不同場(chǎng)景的滲透應(yīng)用,提高網(wǎng)絡(luò)違法犯罪案件的滲透應(yīng)用率,增加辦案人員對(duì)滲透方法的學(xué)習(xí)效率。
關(guān)鍵詞:Windows平臺(tái);滲透應(yīng)用平臺(tái);Java Swing;C/S架構(gòu)
中圖分類(lèi)號(hào):TP316? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)15-0111-03
Design and Implementation of Application Platform for
Penetration Based on Windows Platform
GUO Yongshuai,WANG Shenghe,F(xiàn)U Shunshun
(Anhui Public Security College,Hefei? 230031,China)
Abstract:In order to break different scenarios of cyber crimes,simplify the penetration efficiency and learning efficiency of staff,integrate different kinds of penetration tools,a three layer structure model penetration application platform based on Windows platform is designed. Using Java Swing lightweight framework in C/S architecture,the application platform for penetration is implemented by MVC (Model-View-Controller) architecture,and the functional test of the application platform is completed. This platform meets the application of penetration in different scenarios,improves the penetration rate of cyber crime cases,and increases the learning efficiency of staff.
Keywords:Windows platform;penetration application platform;Java Swing;C/S architecture
0? 引? 言
網(wǎng)絡(luò)違法犯罪案件的滲透方式可謂多種多樣,并且應(yīng)用場(chǎng)景也是各有不同。但是常用的網(wǎng)絡(luò)違法犯罪案件的滲透工具的種類(lèi)繁多,針對(duì)不同場(chǎng)景滲透方式的應(yīng)用,研發(fā)一種適應(yīng)于不同滲透方式應(yīng)用場(chǎng)景的滲透平臺(tái)[1],對(duì)網(wǎng)絡(luò)違法犯罪案件滲透效率的提高十分有必要。與此同時(shí),網(wǎng)絡(luò)違法犯罪案件的滲透工具大多集成在Linux系統(tǒng)環(huán)境之下,如Kali Linux、Backbox Linux操作系統(tǒng),對(duì)于滲透測(cè)試的學(xué)習(xí)還需要學(xué)習(xí)Linux系統(tǒng)的運(yùn)作,這對(duì)滲透方式的推廣與應(yīng)用十分麻煩,所以基于Windows系統(tǒng)的滲透應(yīng)用平臺(tái)的研發(fā)更加重要。
1? 設(shè)計(jì)滲透應(yīng)用平臺(tái)的基本思想
滲透應(yīng)用平臺(tái)的目的是為了提高滲透方式的應(yīng)用率,并提供一個(gè)供滲透應(yīng)用的場(chǎng)景。同時(shí),滲透應(yīng)用平臺(tái)[1]還有助于學(xué)習(xí)人員高效的學(xué)習(xí)網(wǎng)絡(luò)滲透測(cè)試技術(shù),省略滲透學(xué)習(xí)人員對(duì)Linux系統(tǒng)學(xué)習(xí)的時(shí)間,滲透應(yīng)用平臺(tái)將會(huì)集成主流的信息收集工具、滲透工具,同時(shí)包含任務(wù)視圖、錄像功能,方便滲透以及保存訓(xùn)練記錄,為滲透學(xué)習(xí)人員提供一個(gè)更合適的環(huán)境。[2]
2? 滲透應(yīng)用平臺(tái)的結(jié)構(gòu)與功能
滲透應(yīng)用平臺(tái)共分為三層,分別為數(shù)據(jù)層、業(yè)務(wù)層、顯示層。數(shù)據(jù)層對(duì)應(yīng)開(kāi)發(fā)人員調(diào)試模塊以及資源庫(kù);業(yè)務(wù)層包括任務(wù)模塊、信息收集模塊、漏洞掃描及利用模塊;顯示層則是用戶(hù)操作界面,并實(shí)現(xiàn)登錄界面,屏幕錄制功能,如圖1所示。
2.1? 數(shù)據(jù)層
數(shù)據(jù)層中包含的兩個(gè)模塊分別為開(kāi)發(fā)調(diào)試模塊和資源庫(kù)。開(kāi)發(fā)調(diào)試模塊是保證開(kāi)發(fā)的持續(xù)性,以及方便后期添加接口、滲透工具等。資源庫(kù)是指滲透測(cè)試中所調(diào)用的代碼庫(kù)、漏洞庫(kù)、代理服務(wù)器等。
2.2? 業(yè)務(wù)層
業(yè)務(wù)層主要根據(jù)用戶(hù)輸入的指令完成相應(yīng)的操作,并將得到的數(shù)據(jù)返回給顯示層,完成與數(shù)據(jù)層的交互。例如:根據(jù)Burpsuite調(diào)用瀏覽器的響應(yīng),Nmap查詢(xún)網(wǎng)站服務(wù)器顯示結(jié)果等。業(yè)務(wù)層一共包括三大模塊,分別為:任務(wù)模塊、信息收集模塊[3]、漏洞掃描及利用模塊。各部分模塊功能如下:(1)任務(wù)模塊:對(duì)訓(xùn)練任務(wù)建立導(dǎo)航式管理,用戶(hù)可建立任務(wù)、記錄操作、保存記錄等。包含的功能有:任務(wù)建立、添加、刪除、管理等。(2)信息收集模塊:對(duì)應(yīng)滲透測(cè)試中的信息收集步驟,集成瀏覽器、信息收集軟件Nmap,實(shí)現(xiàn)滲透學(xué)習(xí)人員對(duì)非法網(wǎng)站的信息收集。(3)漏洞掃描及利用模塊:對(duì)應(yīng)網(wǎng)絡(luò)掃描、漏洞挖掘及漏洞利用步驟,模塊集成Windows環(huán)境下的網(wǎng)絡(luò)掃描工具、漏洞挖掘利用工具,使?jié)B透人員可在Windows環(huán)境下應(yīng)用各種工具的滲透技術(shù)。
2.3? 顯示層
顯示層提供用戶(hù)操作界面,用戶(hù)操作界面以平臺(tái)圖形化形式出現(xiàn),并將上述數(shù)據(jù)層以及業(yè)務(wù)層接口分類(lèi)提供。
3? 相關(guān)開(kāi)發(fā)技術(shù)
滲透應(yīng)用平臺(tái)主要是集成一些滲透常用的工具,并添加任務(wù)管理模塊,用于滲透技術(shù)學(xué)習(xí)使用?;跐B透速度、安全性、操作性的考慮,選取C/S架構(gòu)中的Java Swing輕量級(jí)框架來(lái)實(shí)現(xiàn)。
3.1? C/S架構(gòu)
C/S架構(gòu)是指Client/Server模式,分為客戶(hù)機(jī)和服務(wù)器兩端,C/S的架構(gòu)的優(yōu)點(diǎn)在于:(1)軟件運(yùn)行速度快,能充分發(fā)揮客戶(hù)端PC機(jī)的處理能力,響應(yīng)速度快。(2)C/S安全性要充分高于B/S模式,這是滲透人員必須要考慮的。(3)穩(wěn)定性,在滲透中,滲透一半程序宕機(jī)這是十分不能容忍的,客戶(hù)端軟件相對(duì)瀏覽器組件穩(wěn)定性要高很多。
3.2? Java Swing框架
Java Swing是一個(gè)用于開(kāi)發(fā)Java應(yīng)用程序用戶(hù)界面的輕量級(jí)開(kāi)發(fā)工具包,是由純Java代碼實(shí)現(xiàn)的。Java Swing以AWT(Abstract Window Toolkit,抽象窗口工具包)為基礎(chǔ)設(shè)計(jì)而成,有獨(dú)特的外觀(guān)風(fēng)格設(shè)計(jì),不依賴(lài)操作系統(tǒng),可以跨平臺(tái)使用,可移植性高,具有開(kāi)發(fā)平臺(tái)的優(yōu)勢(shì)。[4]Java Swing只需要用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來(lái)創(chuàng)建優(yōu)雅的用戶(hù)界面。
Java Swing的容器分為三個(gè):頂層容器、通用容器和專(zhuān)用容器。頂層容器可以獨(dú)立存在,包括JFrame(窗口)、JDialog(對(duì)話(huà)框)、JApplet(Java小程序)、JWindow(程序啟動(dòng)組件)。中間容器不能獨(dú)立存在,必須放在頂層容器內(nèi),且能夠容納其他控件,包括JPanel(普通面板)、JScrollPane(滾動(dòng)面板)、JToolBar(工具欄面板)、JSplitPane(分割式面板)、JTabbedPane(選項(xiàng)卡面板)。同時(shí)還包括一些基本組件。Java Swing具有以下優(yōu)點(diǎn):(1)重量輕。Swing組件是獨(dú)立的原生操作系統(tǒng)的API與Swing API控件呈現(xiàn)大多采用純Java代碼,而不是底層的操作系統(tǒng)調(diào)用。(2)豐富的控件。Swing提供了一套豐富的先進(jìn)的控制系統(tǒng),如JTabbedPane,滑塊,顏色選擇器,表格控件。
(3)高度定制性。Swing控件可以定制視覺(jué)外觀(guān),根據(jù)用戶(hù)的需求來(lái)調(diào)整界面。(4)可插拔的外觀(guān)和感覺(jué)基于Swing GUI應(yīng)用程序外觀(guān)和風(fēng)格基于可用值,可以在運(yùn)行時(shí)改變。
3.3? MVC框架
Swing組件設(shè)計(jì)使用了著名的MVC(模型-視圖-控制器)體系結(jié)構(gòu)。MVC是指Model(模型)、View(視圖)、Controller(控制器)三部分的縮寫(xiě),MVC是指將邏輯化的圖形用戶(hù)界面和代碼相結(jié)合,在對(duì)應(yīng)的控制器組件上編寫(xiě)代碼,使用組件組成完整的用戶(hù)界面視圖,從而形成用戶(hù)與機(jī)器、平臺(tái)與平臺(tái)之間的數(shù)據(jù)相互傳遞。[5]
MVC框架可以強(qiáng)制性地讓?xiě)?yīng)用程序的輸入端、輸出端、數(shù)據(jù)處理端分開(kāi),而使用MVC組件自身的模型、視圖、控制器來(lái)完成相應(yīng)的任務(wù)。視圖就是用戶(hù)接觸到的界面,可以操作輸入輸出的界面等等,MVC的優(yōu)點(diǎn)在于可以并行處理不同組件的界面,讓它們同時(shí)相互配合達(dá)到最優(yōu)化輸出。模型的主要目的一方面是為了讓程序員對(duì)組件的編碼簡(jiǎn)約化,另一方面則是在程序框架中方便搭建、組成。模型之間的數(shù)據(jù)處理會(huì)讓整個(gè)程序變地十分優(yōu)化,并且簡(jiǎn)化開(kāi)發(fā)過(guò)程??刂破骶褪怯脩?hù)對(duì)模型視圖的控制,用戶(hù)發(fā)送指令輸出給模型,模型對(duì)應(yīng)視圖做出相應(yīng)的請(qǐng)求以及變化,完成整個(gè)操作。
4? 滲透應(yīng)用平臺(tái)的實(shí)現(xiàn)
4.1? 顯示層子系統(tǒng)的實(shí)現(xiàn)
顯示層模塊主要是用戶(hù)看到可以操作的界面,界面上有不同的分區(qū)以及模塊,用戶(hù)可以根據(jù)個(gè)人的需求進(jìn)行選擇,顯示層的平面圖如圖2所示。
顯示層菜單欄對(duì)應(yīng)為文件、信息收集、漏洞利用等。工具欄對(duì)應(yīng)滲透測(cè)試相應(yīng)的工具,如Nmap、Burpsuites、Explorer、W3af、Openwas、Nessus等等。任務(wù)列表則是任務(wù)導(dǎo)航欄,顯示訓(xùn)練任務(wù)內(nèi)容列表以及時(shí)間等選項(xiàng)。標(biāo)簽欄則是實(shí)現(xiàn)可以同時(shí)打開(kāi)不同工具,同時(shí)進(jìn)行滲透。任務(wù)窗口是界面主窗口。
平臺(tái)通過(guò)主函數(shù)繼承LoginFrame(登錄框架)進(jìn)入登錄界面,登錄之后,通過(guò)LoginFrame繼承MainFrame(平臺(tái)主框架),進(jìn)入主界面,主界面調(diào)用CreateCaseFrame實(shí)現(xiàn)創(chuàng)建訓(xùn)練任務(wù)創(chuàng)建,同時(shí)調(diào)用TabAction、CaseAction、ListAction在工具欄,任務(wù)列表出實(shí)現(xiàn)點(diǎn)擊使用功能。
顯示層中標(biāo)簽欄的實(shí)現(xiàn)首先建立基本的標(biāo)簽欄BaseTab-View,繼承TablePanelManager標(biāo)簽管理類(lèi),實(shí)現(xiàn)標(biāo)簽的添加刪除等操作。然后通過(guò)WelcomeTab(標(biāo)簽起始頁(yè))、NmapTab(Nmap標(biāo)簽欄)、BrowerTab(瀏覽器標(biāo)簽了)繼承BaseTabView基本標(biāo)簽欄,實(shí)現(xiàn)在滲透過(guò)程中不同工具的同時(shí)調(diào)用。
4.2? 業(yè)務(wù)層子系統(tǒng)的實(shí)現(xiàn)
業(yè)務(wù)層子系統(tǒng)包括了系統(tǒng)的各個(gè)模塊,如任務(wù)模塊、信息收集模塊,漏洞掃描及利用模塊。[6]業(yè)務(wù)層子系統(tǒng)實(shí)現(xiàn)了滲透學(xué)習(xí)人員對(duì)試驗(yàn)任務(wù)的建立,保存與修改,使用Nmap軟件以及瀏覽器對(duì)目標(biāo)的收集,和可以使用Burpsuite對(duì)目標(biāo)網(wǎng)站的滲透。
(1)任務(wù)模塊。任務(wù)模塊通過(guò)添加一個(gè)模塊,在模塊內(nèi)添加任務(wù)名稱(chēng),內(nèi)容文本框,時(shí)間文本框,打開(kāi)、完成按鈕,并完成保存路徑。顯示在任務(wù)列表中,完成對(duì)任務(wù)的查看。(2)信息收集模塊。信息收集模塊實(shí)現(xiàn)瀏覽器的集成,以及Nmap工具的調(diào)用。通過(guò)設(shè)置Nmap按鈕調(diào)用到標(biāo)簽欄,Nmap標(biāo)簽欄則通過(guò)命令行的形式顯現(xiàn),并在標(biāo)簽界面上返回結(jié)果。Nmap標(biāo)簽欄的樣式繼承BaseTablView類(lèi),Nmap標(biāo)簽欄的管理則通過(guò)TabedPanelManager來(lái)實(shí)現(xiàn)。瀏覽器類(lèi)通過(guò)component模塊添加panel面板實(shí)現(xiàn)瀏覽器界面,label和textfiled實(shí)現(xiàn)瀏覽器地址欄。(3)漏洞掃描及利用模塊。漏洞掃描模塊中,實(shí)現(xiàn)Burpsuite軟件的調(diào)用。首先通過(guò)添加一個(gè)Tab標(biāo)簽繼承基本標(biāo)簽類(lèi),在打開(kāi)Burpsuite時(shí),打開(kāi)一個(gè)Tab標(biāo)簽。同時(shí)Tab調(diào)用Tabed PanelManager類(lèi),在標(biāo)簽里顯示面板,以及調(diào)用Open TabBaseAction類(lèi),實(shí)現(xiàn)調(diào)用Burpsuite文件中的.bat文件,打開(kāi)Burpsuite,實(shí)現(xiàn)對(duì)Burpsuite的調(diào)用。(4)屏幕錄制功能。屏幕錄制功能按鈕設(shè)置在主界面Mainframe中,通過(guò)Button按鈕,調(diào)用Java中屏幕錄制類(lèi),來(lái)實(shí)現(xiàn)屏幕錄制,并設(shè)置錄像保存路徑,隨時(shí)調(diào)用查看。
5? 滲透應(yīng)用平臺(tái)測(cè)試
系統(tǒng)測(cè)試是驗(yàn)證產(chǎn)品是否滿(mǎn)足用戶(hù)需求,達(dá)到預(yù)期的目的,這里主要采取功能性驗(yàn)證,來(lái)檢測(cè)滲透應(yīng)用平臺(tái)是否能滿(mǎn)足滲透學(xué)習(xí)人員的需求,以及是否成功地進(jìn)行滲透測(cè)試訓(xùn)練。
5.1? 測(cè)試環(huán)境
硬件運(yùn)行環(huán)境:處理器為Intel(R)Core(TM)i5-63
00HQ、CPU@2.30GHz、內(nèi)存8GB、顯卡NVIDIA GeForce GTX960M、硬盤(pán)1TB。
軟件運(yùn)行環(huán)境:Windows 10家庭中文版64位操作系統(tǒng)、JDK1.8。
Nmap版本:Nmap v7.40版本。
Burpsuite版本:Burpsuite Por v1.5.14。
5.2? 功能驗(yàn)證
(1)顯示層。滲透應(yīng)用平臺(tái)測(cè)試在虛擬網(wǎng)絡(luò)環(huán)境下進(jìn)行,使用用戶(hù)賬號(hào)登錄平臺(tái)之后,通過(guò)輸入賬號(hào)密碼,進(jìn)入系統(tǒng),方便用戶(hù)的個(gè)人設(shè)置。菜單欄分為文件、信息收集、漏洞、選項(xiàng)。菜單欄下方設(shè)有屏幕錄制功能,左側(cè)分為工具欄和任務(wù)列表,右側(cè)為主面板,可添加、刪除標(biāo)簽,與顯示層的預(yù)期相符。(2)業(yè)務(wù)層。業(yè)務(wù)層分為任務(wù)模塊、信息收集模塊、漏洞模塊。在任務(wù)模塊中,滲透人員可以根據(jù)任務(wù)案例模塊進(jìn)行創(chuàng)建新的任務(wù),通過(guò)填寫(xiě)案例名、案例創(chuàng)建人、案例創(chuàng)建時(shí)間、案例簡(jiǎn)介以及存放位置完成對(duì)案例的創(chuàng)建。讓滲透人員每一個(gè)任務(wù)都得以保存和隨時(shí)查看。
在信息收集模塊中,實(shí)現(xiàn)了瀏覽器的集成以及Nmap的調(diào)用。其中瀏覽器通過(guò)在信息收集下拉菜單欄下打開(kāi),打開(kāi)后在主面板后出現(xiàn)瀏覽器標(biāo)簽,輸入百度網(wǎng)址,并查詢(xún)滲透測(cè)試。業(yè)務(wù)層中信息收集模塊Nmap工具打開(kāi)方式與瀏覽器類(lèi)似,其調(diào)用是通過(guò)命令行模式實(shí)現(xiàn)。
Burpsuite通過(guò)在菜單欄中的漏洞菜單打開(kāi),打開(kāi)后,通過(guò)設(shè)置對(duì)滲透應(yīng)用平臺(tái)內(nèi)置瀏覽器的代理,完成對(duì)Burpsuite的配置,之后在打開(kāi)瀏覽器之后,Burpsuite就會(huì)實(shí)現(xiàn)截?cái)喙δ埽瑢?shí)現(xiàn)Burpsuite的調(diào)用。
屏幕錄制功能是在菜單欄的下方,通過(guò)點(diǎn)擊開(kāi)始按鈕,軟件會(huì)自動(dòng)計(jì)時(shí),在完成后,會(huì)出現(xiàn)路徑保存選項(xiàng),同時(shí)錄像支持常用瀏覽器打開(kāi),默認(rèn)為.avi格式。
5.3? 特點(diǎn)分析
經(jīng)過(guò)功能測(cè)試與技術(shù)分析,滲透應(yīng)用平臺(tái)可以成功運(yùn)行以及使用,可以滿(mǎn)足滲透應(yīng)用的需求。經(jīng)測(cè)試,滲透應(yīng)用平臺(tái)主要有以下特點(diǎn):(1)兼容性強(qiáng)。滲透應(yīng)用平臺(tái)采用Java語(yǔ)言開(kāi)發(fā),可以兼容各種操作系統(tǒng)和應(yīng)用系統(tǒng),并且集成了許多滲透軟件均可以在各種操作系統(tǒng)中流暢運(yùn)行。(2)操作性強(qiáng)。滲透應(yīng)用平臺(tái)針對(duì)于滲透應(yīng)用,平臺(tái)各個(gè)模塊均可滿(mǎn)足滲透應(yīng)用的需求,界面簡(jiǎn)潔,操作易上手。(3)穩(wěn)定性強(qiáng)。滲透應(yīng)用平臺(tái)源碼經(jīng)過(guò)嚴(yán)格的檢驗(yàn)和測(cè)試,在滲透過(guò)程中不會(huì)出現(xiàn)系統(tǒng)崩潰的表現(xiàn)。
6? 結(jié)? 論
基于Windows系統(tǒng)的滲透應(yīng)用平臺(tái),以C/S架構(gòu)中的Java Swing輕量級(jí)框架,使用MVC(模型-視圖-控制器)體系結(jié)構(gòu)實(shí)現(xiàn),滿(mǎn)足不同場(chǎng)景的滲透應(yīng)用,提高網(wǎng)絡(luò)違法犯罪案件的滲透應(yīng)用率,增加辦案人員對(duì)滲透方式的學(xué)習(xí)效率,同時(shí)并完成了對(duì)滲透應(yīng)用平臺(tái)的測(cè)試,驗(yàn)證了滲透應(yīng)用平臺(tái)的操作性、可靠性。但是,該系統(tǒng)在滲透方法集成程度方面還有所欠缺,同樣離實(shí)戰(zhàn)要求還有一定的差距,這是筆者今后需要進(jìn)一步研究的問(wèn)題。
參考文獻(xiàn):
[1] 曹斌.滲透測(cè)試演練平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn) [D].北京:北京郵電大學(xué),2012.
[2] 趙文哲.網(wǎng)絡(luò)滲透測(cè)試綜合實(shí)驗(yàn)平臺(tái)技術(shù)研究與實(shí)現(xiàn) [D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2014.
[3] 練斌,劉永鍵.滲透測(cè)試的信息收集工具設(shè)計(jì)與開(kāi)發(fā) [J].安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2017,16(1):30-34.
[4] 趙滿(mǎn)來(lái).可視化Java GUI程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)——基于Swing組件庫(kù)及NetBeans IDE [M].清華大學(xué)出版社,2016.
[5] 唐永瑞,張達(dá)敏.基于A(yíng)jax與MVC模式的信息系統(tǒng)的研究與設(shè)計(jì) [J].電子技術(shù)應(yīng)用,2014,40(2):128-131.
[6] 邢斌,高嶺,孫騫,等.一種自動(dòng)化的滲透測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用研究,2010,27(4):1384-1387.
作者簡(jiǎn)介:郭永帥(1992-),男,漢族,安徽合肥人,助教,碩士研究生,研究方向:網(wǎng)絡(luò)安全;王勝和(1973-),男,漢族,安徽合肥人,教授,研究方向:網(wǎng)絡(luò)犯罪偵查、網(wǎng)絡(luò)安全與技術(shù);付順順(1989-),男,漢族,安徽合肥人,助教,碩士研究生,研究方向:網(wǎng)絡(luò)安全。