APP下载

基于Windows平台的渗透应用平台设计与实现

2019-09-10郭永帅王胜和付顺顺

现代信息科技 2019年15期
关键词:S架构

郭永帅 王胜和 付顺顺

摘  要:为针对不同场景的网络违法犯罪案件,简化工作人员渗透效率、学习效率,对不同种类的渗透工具进行整合,设计基于Windows系统采用三层结构模式的渗透应用平台。以C/S架构中的Java Swing轻量级框架,使用MVC(模型-视图-控制器)体系结构实现应用平台,完成对应用平台的功能性测试,满足不同场景的渗透应用,提高网络违法犯罪案件的渗透应用率,增加办案人员对渗透方法的学习效率。

关键词:Windows平台;渗透应用平台;Java Swing;C/S架构

中图分类号:TP316      文献标识码:A 文章编号:2096-4706(2019)15-0111-03

Design and Implementation of Application Platform for

Penetration Based on Windows Platform

GUO Yongshuai,WANG Shenghe,FU 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  引  言

網络违法犯罪案件的渗透方式可谓多种多样,并且应用场景也是各有不同。但是常用的网络违法犯罪案件的渗透工具的种类繁多,针对不同场景渗透方式的应用,研发一种适应于不同渗透方式应用场景的渗透平台[1],对网络违法犯罪案件渗透效率的提高十分有必要。与此同时,网络违法犯罪案件的渗透工具大多集成在Linux系统环境之下,如Kali Linux、Backbox Linux操作系统,对于渗透测试的学习还需要学习Linux系统的运作,这对渗透方式的推广与应用十分麻烦,所以基于Windows系统的渗透应用平台的研发更加重要。

1  设计渗透应用平台的基本思想

渗透应用平台的目的是为了提高渗透方式的应用率,并提供一个供渗透应用的场景。同时,渗透应用平台[1]还有助于学习人员高效的学习网络渗透测试技术,省略渗透学习人员对Linux系统学习的时间,渗透应用平台将会集成主流的信息收集工具、渗透工具,同时包含任务视图、录像功能,方便渗透以及保存训练记录,为渗透学习人员提供一个更合适的环境。[2]

2  渗透应用平台的结构与功能

渗透应用平台共分为三层,分别为数据层、业务层、显示层。数据层对应开发人员调试模块以及资源库;业务层包括任务模块、信息收集模块、漏洞扫描及利用模块;显示层则是用户操作界面,并实现登录界面,屏幕录制功能,如图1所示。

2.1  数据层

数据层中包含的两个模块分别为开发调试模块和资源库。开发调试模块是保证开发的持续性,以及方便后期添加接口、渗透工具等。资源库是指渗透测试中所调用的代码库、漏洞库、代理服务器等。

2.2  业务层

业务层主要根据用户输入的指令完成相应的操作,并将得到的数据返回给显示层,完成与数据层的交互。例如:根据Burpsuite调用浏览器的响应,Nmap查询网站服务器显示结果等。业务层一共包括三大模块,分别为:任务模块、信息收集模块[3]、漏洞扫描及利用模块。各部分模块功能如下:(1)任务模块:对训练任务建立导航式管理,用户可建立任务、记录操作、保存记录等。包含的功能有:任务建立、添加、删除、管理等。(2)信息收集模块:对应渗透测试中的信息收集步骤,集成浏览器、信息收集软件Nmap,实现渗透学习人员对非法网站的信息收集。(3)漏洞扫描及利用模块:对应网络扫描、漏洞挖掘及漏洞利用步骤,模块集成Windows环境下的网络扫描工具、漏洞挖掘利用工具,使渗透人员可在Windows环境下应用各种工具的渗透技术。

2.3  显示层

显示层提供用户操作界面,用户操作界面以平台图形化形式出现,并将上述数据层以及业务层接口分类提供。

3  相关开发技术

渗透应用平台主要是集成一些渗透常用的工具,并添加任务管理模块,用于渗透技术学习使用。基于渗透速度、安全性、操作性的考虑,选取C/S架构中的Java Swing轻量级框架来实现。

3.1  C/S架构

C/S架构是指Client/Server模式,分为客户机和服务器两端,C/S的架构的优点在于:(1)软件运行速度快,能充分发挥客户端PC机的处理能力,响应速度快。(2)C/S安全性要充分高于B/S模式,这是渗透人员必须要考虑的。(3)稳定性,在渗透中,渗透一半程序宕机这是十分不能容忍的,客户端软件相对浏览器组件稳定性要高很多。

3.2  Java Swing框架

Java Swing是一个用于开发Java应用程序用户界面的轻量级开发工具包,是由纯Java代码实现的。Java Swing以AWT(Abstract Window Toolkit,抽象窗口工具包)为基础设计而成,有独特的外观风格设计,不依赖操作系统,可以跨平台使用,可移植性高,具有开发平台的优势。[4]Java Swing只需要用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

Java Swing的容器分为三个:顶层容器、通用容器和专用容器。顶层容器可以独立存在,包括JFrame(窗口)、JDialog(对话框)、JApplet(Java小程序)、JWindow(程序启动组件)。中间容器不能独立存在,必须放在顶层容器内,且能够容纳其他控件,包括JPanel(普通面板)、JScrollPane(滚动面板)、JToolBar(工具栏面板)、JSplitPane(分割式面板)、JTabbedPane(选项卡面板)。同时还包括一些基本组件。Java Swing具有以下优点:(1)重量轻。Swing组件是独立的原生操作系统的API与Swing API控件呈现大多采用纯Java代码,而不是底层的操作系统调用。(2)丰富的控件。Swing提供了一套丰富的先进的控制系统,如JTabbedPane,滑块,颜色选择器,表格控件。

(3)高度定制性。Swing控件可以定制视觉外观,根据用户的需求来调整界面。(4)可插拔的外观和感觉基于Swing GUI应用程序外观和风格基于可用值,可以在运行时改变。

3.3  MVC框架

Swing组件设计使用了著名的MVC(模型-视图-控制器)体系结构。MVC是指Model(模型)、View(视图)、Controller(控制器)三部分的缩写,MVC是指将逻辑化的图形用户界面和代码相结合,在对应的控制器组件上编写代码,使用组件组成完整的用户界面视图,从而形成用户与机器、平台与平台之间的数据相互传递。[5]

MVC框架可以强制性地让应用程序的输入端、输出端、数据处理端分开,而使用MVC组件自身的模型、视图、控制器来完成相应的任务。视图就是用户接触到的界面,可以操作输入输出的界面等等,MVC的优点在于可以并行处理不同组件的界面,让它们同时相互配合达到最优化输出。模型的主要目的一方面是为了让程序员对组件的编码简约化,另一方面则是在程序框架中方便搭建、组成。模型之间的数据处理会让整个程序变地十分优化,并且简化开发过程。控制器就是用户对模型视图的控制,用户发送指令输出给模型,模型对应视图做出相应的请求以及变化,完成整个操作。

4  渗透应用平台的实现

4.1  显示层子系统的实现

显示层模块主要是用户看到可以操作的界面,界面上有不同的分区以及模块,用户可以根据个人的需求进行选择,显示层的平面图如图2所示。

显示层菜单栏对应为文件、信息收集、漏洞利用等。工具栏对应渗透测试相应的工具,如Nmap、Burpsuites、Explorer、W3af、Openwas、Nessus等等。任务列表则是任务导航栏,显示训练任务内容列表以及时间等选项。标签栏则是实现可以同时打开不同工具,同时进行渗透。任务窗口是界面主窗口。

平台通过主函数继承LoginFrame(登录框架)进入登录界面,登录之后,通过LoginFrame继承MainFrame(平台主框架),进入主界面,主界面调用CreateCaseFrame实现创建训练任务创建,同时调用TabAction、CaseAction、ListAction在工具栏,任务列表出实现点击使用功能。

显示层中标签栏的实现首先建立基本的标签栏BaseTab-View,继承TablePanelManager标签管理类,实现标签的添加删除等操作。然后通过WelcomeTab(标签起始页)、NmapTab(Nmap标签栏)、BrowerTab(浏览器标签了)继承BaseTabView基本标签栏,实现在渗透过程中不同工具的同时调用。

4.2  业务层子系统的实现

业务层子系统包括了系统的各个模块,如任务模块、信息收集模块,漏洞扫描及利用模块。[6]业务层子系统实现了渗透学习人员对试验任务的建立,保存与修改,使用Nmap软件以及浏览器对目标的收集,和可以使用Burpsuite对目标网站的渗透。

(1)任务模块。任务模块通过添加一个模块,在模块内添加任务名称,内容文本框,时间文本框,打开、完成按钮,并完成保存路径。顯示在任务列表中,完成对任务的查看。(2)信息收集模块。信息收集模块实现浏览器的集成,以及Nmap工具的调用。通过设置Nmap按钮调用到标签栏,Nmap标签栏则通过命令行的形式显现,并在标签界面上返回结果。Nmap标签栏的样式继承BaseTablView类,Nmap标签栏的管理则通过TabedPanelManager来实现。浏览器类通过component模块添加panel面板实现浏览器界面,label和textfiled实现浏览器地址栏。(3)漏洞扫描及利用模块。漏洞扫描模块中,实现Burpsuite软件的调用。首先通过添加一个Tab标签继承基本标签类,在打开Burpsuite时,打开一个Tab标签。同时Tab调用Tabed PanelManager类,在标签里显示面板,以及调用Open TabBaseAction类,实现调用Burpsuite文件中的.bat文件,打开Burpsuite,实现对Burpsuite的调用。(4)屏幕录制功能。屏幕录制功能按钮设置在主界面Mainframe中,通过Button按钮,调用Java中屏幕录制类,来实现屏幕录制,并设置录像保存路径,随时调用查看。

5  渗透应用平台测试

系统测试是验证产品是否满足用户需求,达到预期的目的,这里主要采取功能性验证,来检测渗透应用平台是否能满足渗透学习人员的需求,以及是否成功地进行渗透测试训练。

5.1  测试环境

硬件运行环境:处理器为Intel(R)Core(TM)i5-63

00HQ、CPU@2.30GHz、内存8GB、显卡NVIDIA GeForce GTX960M、硬盘1TB。

软件运行环境:Windows 10家庭中文版64位操作系统、JDK1.8。

Nmap版本:Nmap v7.40版本。

Burpsuite版本:Burpsuite Por v1.5.14。

5.2  功能验证

(1)显示层。渗透应用平台测试在虚拟网络环境下进行,使用用户账号登录平台之后,通过输入账号密码,进入系统,方便用户的个人设置。菜单栏分为文件、信息收集、漏洞、选项。菜单栏下方设有屏幕录制功能,左侧分为工具栏和任务列表,右侧为主面板,可添加、删除标签,与显示层的预期相符。(2)业务层。业务层分为任务模块、信息收集模块、漏洞模块。在任务模块中,渗透人员可以根据任务案例模块进行创建新的任务,通过填写案例名、案例创建人、案例创建时间、案例简介以及存放位置完成对案例的创建。让渗透人员每一个任务都得以保存和随时查看。

在信息收集模块中,实现了浏览器的集成以及Nmap的调用。其中浏览器通过在信息收集下拉菜单栏下打开,打开后在主面板后出现浏览器标签,输入百度网址,并查询渗透测试。业务层中信息收集模块Nmap工具打开方式与浏览器类似,其调用是通过命令行模式实现。

Burpsuite通过在菜单栏中的漏洞菜单打开,打开后,通过设置对渗透应用平台内置浏览器的代理,完成对Burpsuite的配置,之后在打开浏览器之后,Burpsuite就会实现截断功能,实现Burpsuite的调用。

屏幕录制功能是在菜单栏的下方,通过点击开始按钮,软件会自动计时,在完成后,会出现路径保存选项,同时录像支持常用浏览器打开,默认为.avi格式。

5.3  特点分析

经过功能测试与技术分析,渗透应用平台可以成功运行以及使用,可以满足渗透应用的需求。经测试,渗透应用平台主要有以下特点:(1)兼容性强。渗透应用平台采用Java语言开发,可以兼容各种操作系统和应用系统,并且集成了许多渗透软件均可以在各种操作系统中流畅运行。(2)操作性强。渗透应用平台针对于渗透应用,平台各个模块均可满足渗透应用的需求,界面简洁,操作易上手。(3)稳定性强。渗透应用平台源码经过严格的检验和测试,在渗透过程中不会出现系统崩溃的表现。

6  结  论

基于Windows系统的渗透应用平台,以C/S架构中的Java Swing轻量级框架,使用MVC(模型-视图-控制器)体系结构实现,满足不同场景的渗透应用,提高网络违法犯罪案件的渗透应用率,增加办案人员对渗透方式的学习效率,同时并完成了对渗透应用平台的测试,验证了渗透应用平台的操作性、可靠性。但是,该系统在渗透方法集成程度方面还有所欠缺,同样离实战要求还有一定的差距,这是笔者今后需要进一步研究的问题。

参考文献:

[1] 曹斌.渗透测试演练平台的设计与实现 [D].北京:北京邮电大学,2012.

[2] 赵文哲.网络渗透测试综合实验平台技术研究与实现 [D].长沙:国防科学技术大学,2014.

[3] 练斌,刘永键.渗透测试的信息收集工具设计与开发 [J].安徽电子信息职业技术学院学报,2017,16(1):30-34.

[4] 赵满来.可视化Java GUI程序设计实验指导——基于Swing组件库及NetBeans IDE [M].清华大学出版社,2016.

[5] 唐永瑞,张达敏.基于Ajax与MVC模式的信息系统的研究与设计 [J].电子技术应用,2014,40(2):128-131.

[6] 邢斌,高岭,孙骞,等.一种自动化的渗透测试系统的设计与实现 [J].计算机应用研究,2010,27(4):1384-1387.

作者简介:郭永帅(1992-),男,汉族,安徽合肥人,助教,硕士研究生,研究方向:网络安全;王胜和(1973-),男,汉族,安徽合肥人,教授,研究方向:网络犯罪侦查、网络安全与技术;付顺顺(1989-),男,汉族,安徽合肥人,助教,碩士研究生,研究方向:网络安全。

猜你喜欢

S架构
B/S架构下的学生信息管理系统的设计
学生会管理系统的设计与实现
基于ASP技术下的大学生跳蚤书街平台的设计与实施
基于B/S架构的高校实验管理平台的设计与实现