软件工程-渗透测试

2025-01-10 版权声明 我要投稿

软件工程-渗透测试(精选7篇)

软件工程-渗透测试 篇1

正所谓没有人一出生就会走路,从不懂到入门到深谙,一步步慢慢来,每个人都是这样;但是在这个过程中,思路无疑是最重要的,没有做不到只有想不到,就跟咱们高中解题时有了思路就迎刃而解一样,手里拿着铲子(技巧知识)但不是道从何挖起岂不是悲哀。

下面会分享一些我自己总结的常规渗透思路。

分享的思路就像一本书的索引一样,并不是每个点都有详细的技巧和各种原理分析,而是咱们如何下手如何一步步深入,在每个点上咱们知道了思路可以在每个点上查阅资料来攻破,继续前进。好比武功的招式套路,在总体套路不变的前提的下招招精进,也可以重组创新。

0×01 野球拳:外围

招式解释

野球拳:最基础但练得好最后也非常厉害

1. 主要由于服务器配置等原因造成的信息泄露

常用google ,bing等搜索工具,轻量级的搜索出一些遗留后门,不想被发现的后台入口,中量级的搜索出一些用户信息泄露,源代码泄露,未授权访问等等,重量级的则可能是mdb文件下载,CMS 未被锁定install页面,网站配置密码filetype:lst password,php远程文件包含漏洞等重要信息。

包括Robots.txt不想让百度知道的,可能没有设置forbidden访问权限,让我们知道了路径可以进入哦。

2. 端口探测——服务 该项也是针对服务器的配置来说的,在服务器配置的时候可能出现一些ftp,3389.1433等常规服务端口,则可以根据弱口令尝试,或者一些服务的基础漏洞(CVE)来使用matesploit进行处理。常用工具NMAP –A IP.3. 爬虫爬网站目录

该项是使用爬虫扫描器,对网站域名进行扫描,网站根目录下的文件,说不定能发现惊喜哦。AWVS,WWWScan。

4. Web框架漏洞

Web整体框架:

①Struts2框架漏洞,直接利用。

②ThinkPHP任意代码执行。后台框架:

其实也可以算绕过验证进入后台分类中;

①Siteservercms,cookie绕过,在sebug上可以找到相关漏洞修补信息。

②worldpress ③ewebeditor , fckeditor编辑器上传页面直接访问,根据编辑器版本,随处可查利用信息。

5. 暴力,撞库进后台

无论是前端的用户登录还是后台的管理进入,暴力破解都不失为一种以时间和字典为消耗的方法,还是有概率进入的,呵呵。

不过相比而言,根据外围探测拿到的信息,也许可以帮助我们很轻松的进入后台。撞库,也许你只拿到了一部分敏感信息,但是网络上现在裤子满天飞的状况下,撞一撞找一找,说不定密码就出来了,这个可比暴力破解快得多。

6. 弱口令

最常见最危险也最掉以轻心

7.中间件配置不当引起的问题

① IIS写漏洞(不常见了)

(常规工具“老兵”)

② 目录可访问

*8.操作系统、中间件文件解析引起的问题,Apache test.php.xx IIS test.asp;.jpg windows.asp.asp□

不是深入的话题,在上传里关注 9.php引起的一系列问题

①../../etc/passwd 直接深入 ② php引起的目录遍历

③ PHP 引起的远程文件包含(google搜索也可以直接利用)

0×02 太极:外围到内部之间的中间层(应用)

招式解释

太极:遇强则强,遇弱则弱,全是应用惹的祸 一.用户未登陆的情况下

1、注入

注入的类型实在太多,利用花样种种,① 页面调用时候的sql注入,一般直接穿山甲,sqlmap跑出来dbs和表,用来进后台用或者泄露用户信息。(DBS是否完整,网站结构库,直接利用)

② 万能密码之类的sql注入,进入前端应用或者后台管理。

③ 本站没有注入不代表就不能深入,试试旁注呢,呵呵。只是流程不一样了。

2、XSS XSS的类型不算多存储型,反射型,但是利用就是只有你想不到,没有你做不到。

和深入无关的就不说了。

① XSS盲打打后台,多半也是想进后台种种方法无果的情况下。概率有限。

② XSS DDoS。

3、信息泄露,订单遍历 用户访问权限问题。

4、密码找回漏洞(密码邮件/短信重置)

Burp可修改字段的情况下,找回其他用户密码,说不定admin的密码就被你找回了。

5、后台

后台也是一种业务,只是一种专政的隐藏的业务哈。

如何进入后台呢?在找到后台地址的前提下。和应用无关的:暴力破解,撞库,信息收集利用,弱口令,未授权访问。

① 万能密码之类的sql注入,post型注入用sqlmap dump dbs.② 利用web前端的sql注入

③ 密码找回运气好的话前端应用的admin密码和后台密码一致。(有什么查询密码88)

④ XSS盲打 cookie(成功率)

⑤ 后台框架 siteservercms等知名后台cms sebug

1、首先获取免费版软件,然后安装使用查看是否有test(admin)账户,能否直接利用,保存cookie提交看能否使用。

2、看版本,Sebug等上面有无直接利用方法

3、代码审计(北京2014绿盟安全夺旗北京分公司利用此方法成功转账)二.在模拟用户注册登陆情况下

1、认证绕过

① 万能密码

② Cookie欺骗

2、越权访问

①平行越权,其他用户信息读取、修改;

② 纵向越权,主要体现在修改密码能否通过特殊字段标记的修改管理员密码。

3、注入

Cookie post get 型,登陆后user相关应用

4、XSS 影响力、类型实在太多

① user提交的东西让后台管理员去审核

1.了解后台的提交审核流程,CSRF,给自己添加用户,(文章管理系统)2.XSS找后台,管理员浏览时Cookie传输到XSS平台 3.XSS蠕虫之类 4.订单遍历

5、上传点

① 一句话木马 ② Webshell上传

在很多情况下,没有注入的,后台进不去,上传点是最好的阵地。

网站十分重视对上传文件的保护,熟悉上传流程,被阻断在哪里,在哪里突破。

6、短信、邮箱DDoS

7、支付漏洞

① 0元任意付

②-1元退款

③ 数量整型/长整型溢出

0×03 内部(管理后台)

招式解释:迷踪步(无痕无迹,还需更深进入)既然已经进入了管理后台了,很有成就感,那么下一步的目标就是控制这台服务器,控制整个网段。。现在一般的web渗透也都到此为止了。1.上传webshell 假如你在web前端没有地方或者没办法上传webshell,那么在后台上传是一个最好的选择,这也是帮助你从业务层面上控制服务器的最佳方法。

① 后台可修改上传文件类型,欢天喜地,修改下白名单| 黑名单,上传成功,有时候不能被解析很常见,再找原因。

② 后台不能修改上传文件类型,大部分哦~不过一般来说对后台的上传校验比前端要宽松一些。

没事,咱们该怎么绕过就怎么绕过,不能绕过就88…….2.一句话木马 3.管理员的分权

软件工程-渗透测试 篇2

随着因特网的迅速发展, 由病毒、木马等引起的网络攻击事件越来越多, 其中一个重要原因就是计算机网络系统的安全方面存在着可以被利用的薄弱环节。而渗透测试则是发现计算机系统脆弱性的主要手段。渗透测试站在攻击者的角度, 使用黑客攻击手段和漏洞发现技术, 对目标系统的安全进行全面深入的探测, 找出系统最脆弱的环节, 作出评估报告, 使系统管理员能够直观全面地了解系统所面临的安全问题。

目前, 渗透测试在国内外都处于起步阶段, 几乎没有标准化、自动化的技术工具能用来进行测试。在进行目标网络设备信息获取时, 存在耗时久、速度低、信息量小及信息描述不精确等问题, 致使漏洞的评估结果不完善, 并且, 整个渗透测试过程中, 由于测试流程缺乏统一标准, 测试的连贯性, 自动化水平受到了很大的影响。

基于此, 本文提出了一种利用木马进行网络渗透测试的设计思想, 以提高网络渗透测试的自动化水平和效率。

1 总体设计

Trojan horse, 简称木马, 来源于古希腊神话。它通过网页挂马、下载传播、电子邮件传播、漏洞入侵等多种途径, 植入目标机器, 通过网络与外界通信, 将搜集到的各种敏感信息发回给控制端, 进而接受控制端指令, 完成其他操作, 如格式化硬盘、键盘记录、非授权访问系统等。

由于木马具有窃取数据、远程控制、远程文件管理及打开未授权的服务等功能, 并在攻击过程中具有隐蔽性、自启动性、自动恢复性和易植入性, 因此利用木马进行网络渗透测试可以大大提高网络渗透测试的自动化水平和效率。

利用木马进行网络渗透测试, 总体设计主要有两个部分:

(1) 渗透测试客户端

渗透测试客户端是用来实现监听渗透测试服务器端发送来的连接请求, 验证服务器端的身份信息, 如果通过验证, 与服务器端建立连接, 把测试人员的输入信息转换成相应的控制信息并发送给服务器端, 或根据服务器端发送过来的信息反馈回相应的控制信息, 如果没有通过验证, 则渗透测试客户端始终处于监听状态。渗透测试客户端的工作流程如图1所示。

(2) 渗透测试服务器端

渗透测试服务器端是用来实现主动向渗透测试客户端发出连接请求, 如果通过渗透测试客户端的验证, 与客户端建立连接, 建立连接后, 自启动服务器端的各项基本服务功能, 一旦接收到客户端发送过来的控制命令, 就根据客户端的指令进行各项操作, 如进程控制、服务控制、键盘控制、鼠标控制、屏幕监控等。根据客户端的指令完成各项操作后, 将执行结果返回给客户端。渗透测试服务器端的工作流程如图2所示。

2 系统实现所采用的关键技术

2.1 植入技术

本植入技术采用基于Winsock 2 SPI技术的木马植入技术, Winsock 2允许开发者编写服务提供者接口 (SPI) 程序。SPI以动态链接库 (DLL) 的形式存在于应用层, 是负责核心层驱动程序和高层应用程序的连接, 当上层API调用时, 负责提供接口函数。Winsock 2只是一个用来发现和利用底层的传输协议完成通信的接口, 它不是一个协议。

创建植入程序, 并运行木马程序完成预定任务, 首先要做的是将木马DLL植入目标系统。由于植入程序本身是一个控制端程序, 一旦运行, 便会产生独立的进程。因此, 植入程序在一定程度上是会在目标主机中显示的。但是, 木马植入只是一个短暂的实施过程, 当木马DLL被成功植入后, 植入程序的进程就可结束, 从而销声匿迹于目标主机中, 同时系统中已经隐蔽地安装了木马DLL。因此, 将植入程序和木马程序相分离后, 在木马运行过程中传统木马程序需要将木马进程隐藏的问题得到了成功的解决, 同时也便于植入程序统一管理整个木马入侵行为, 对木马DLL的功能扩充更为有利。

木马植入主要分为4个步骤:得到当前程序所在路径;安装分层服务提供者;构造描述协议链的结构;安装协议链。

第一步

由于木马DLL和植入程序要被投放到系统中相同的目录下, 因此, 木马DLL和植入程序的路径信息一致, 即当前植入程序所在路径就是木马DLL的路径。要得到当前程序所在路径需要调用GetCurrentDirectory API函数:

参数nBufferLength是一个输入参数, 用来存放路径信息的缓冲区长度。参数lpBuffer是一个输出参数, 它指定一个预定义字串, 用于装载当前目录。

第二步

利用由Ws2_32.dll分配的唯一标志符可以构造并安装协议链, 而为了得到这一标志符, 需安装分层服务提供者, 安装分层服务提供者需调用WSCInstallProvider API函数:

这是系统提供的一个可以把基础服务提供者、分层服务提供者和协议链安装到系统中的函数。参数lpProviderId是一个输入参数, 它指定一个全球唯一的可以自定义生成的标识符给将要安装的服务提供者。参数lpszProviderDllPath是一个UNI-CODE字符串, 指示了分层服务提供者DLL的路径信息, 它可以包含%SYSTEMROOT%之类的环境变量。参数lpProtocolInfoList是WSAPRTOCOL_INFOW结构的一个数组, 将要安装的服务提供者的WSAPRTOCOL_INFOW结构作为数组元素。参数dwNumberOfEntries表示数组中元素的数目, 当数目大于1时, 表示需一次性安装多个服务提供者到系统中。

第三步

由WS2_32.DLL为分层服务提供者分配唯一的标识符dwCatalogEntryId, 用以下代码找出dwCatalogEntryId, 并保存在变量LayeredCatalogId中。

找出dwCatalogEntryId后, 构造描述协议链的WSAPRTO-COL_INFOW结构。其中ChainLen值为2, ChainEntries数组中第1个值为分层服务提供者的dwCatalogEntryId, 第2个值为系统服务提供者的dwCatalogEntryId。

第四步

构造完描述协议链的WSAPRTOCOL_INFOW结构后, 通过调用WSCInstallProvider API函数在系统中安装协议链。这样, 目标主机中被成功的植入木马。

2.2 隐藏技术

隐藏技术是决定木马生存能力的关键技术。基于端口复用的隐蔽技术不仅隐蔽性更强, 还可以更轻易地穿透防火墙。由于应用程序和端口相关联, 如果一个合法进程打开了一个不属于它的端口, 那么可以断定该进程感染了木马。为达到隐藏的目的, 木马程序不去打开新的端口, 而是直接利用合法进程已经打开的端口与外界进行通信。

当网络应用程序准备进行通信, 用WSASocket/socket创建套接字时, Ws2_32.dll就会按顺序搜索服务提供者数据库中和WSAStartup/socket提供的3个参数相匹配的服务提供者, 若在服务提供者数据库中搜索到两个相同类型的服务提供者, 系统将调用顺序在前的那个服务提供者。因此, 被植入系统服务提供者数据库的木马服务提供者信息必须排在所有服务提供者的最前面。这时系统中只需留下木马的服务提供者 (DLL) , 销毁安装程序, 加强了木马的隐藏性。

3 系统测试

为了评估设计好的渗透测试系统, 我们通过对某网络机房进行了传统的渗透测试和基于木马技术的渗透测试, 通过二者表现的差异来对该系统进行评估。

测试环境模拟如图3所示。在被测网络外部部署基于木马技术的渗透测试系统, 由两台服务器和若干台PC机组成了被测网络系统, 在两台服务器上分别装有SQL Server 2000服务和Apache服务, 在PC机上则装的是Windows XP和Linux 5操作系统。为所有设备分配218.234.24.2-218.234.24.86的公网IP地址。

传统渗透测试系统和该系统在信息探测、漏洞评估、测试用时等方面的运行表现如表1所示。

通过分析该测试结果, 可见该系统比传统渗透测试系统在对网络系统进行检测时, 可以在更短的时间内检测出更多的系统信息, 说明该系统渗透测试的效率更高, 测试结果更完善。

4 结语

本文通过分析木马理论, 研究木马攻击中的植入和隐蔽等关键技术, 与渗透测试相结合, 提出了利用木马进行网络渗透测试的设计思想, 在此基础上, 设计并实现了渗透测试系统。结果证明, 该系统可以更全面、主动、隐蔽地获取目标系统网络信息, 并具有自启动、自恢复等自动化特点, 还可由测试人员通过渗透测试客户端控制服务器端来实现特定目标网络信息的获取, 不仅提高了渗透测试的效率, 还大大提高了渗透测试的深度和广度。

摘要:目前, 国内网络渗透测试的自动化程度不高, 效率较低, 鉴于此, 结合木马的隐蔽性、自启动性、自动恢复性以及易植入性的特点, 提出一种利用木马进行网络渗透测试的设计思想。对测试系统的总体框架进行研究和设计, 并对实现过程中的关键技术进行探讨与研究。

关键词:木马技术,渗透测试,系统设计

参考文献

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

[2]崔颖, 章丽娟, 吴灏.基于攻击图的渗透测试方案自动生成方法[J].计算机应用, 2010, 30 (8) :2146-2150.

[3]闫天杰, 彭新光, 王玲.DoS渗透测试平台的设计与实现[J].太原理工大学学报, 2007, 38 (4) :290-293.

[4]文豪, 周安民, 孙捷.对基于Winsock 2 SPI技术的木马研究与防范[J].四川大学学报, 2007, 44 (1) :81-85.

[5]汪玉美, 刘萍, 李云, 等.基于Web Services的木马通信模型研究[J].计算机工程与设计, 2010, 31 (19) :4182-4185.

[6]罗改龙, 程胜利.基于端口复用技术的木马研究[J].计算机工程, 2007, 33 (15) :165-169.

[7]田磊, 李振海, 陈琳, 等.基于局域网渗透的木马技术研究与实现[J].计算机应用与软件, 2007, 24 (10) :195-204.

[8]钟足峰.利用木马技术实现高校计算机实验室的监控和教学[J].实验技术与管理, 2010, 27 (8) :101-115.

软件工程-渗透测试 篇3

【关键词】特低渗透油田;水井测试效率;工艺方法和工具

随着我国经济社会的不断快速发展,各行各业对于能源的需求越来越高。因此,各大油气田的开采量也逐渐增多。作为一种不可再生资源,想要满足经济社会日益增长的能源需求,对于油气田来说,就需要逐渐重视一些特低渗透油田的开采工作。因此,本文对特低渗透油田提高水井测试效率的工艺方法和工具进行了研究。

一、特低渗透油田水井测试效率较低的原因

通过对实际的水井测试工作进行分析,能够发现,导致水井测试效率较低的最为主要的原因就是水嘴的堵塞。由于当前很多油田在进行流量测试的时候,使用的注入水都是经过处理后的采出液。这些注入水不仅含油,而且水质较差。虽然短期内不会对水井产生大的影响,但是如果长期使用这些注入水的话,会对井下管柱造成很强的腐蚀与结垢。而管柱的腐蚀与结垢正是造成水井测试效率较低的主要原因。

其次,相关的水井测试仪器遇阻,是导致水井测试效率较低的另一大主要原因。通常情况下,技术人员将水井测试仪器遇阻情况分为两种:即硬遇阻和软遇阻。除此之外,水井测试仪器遇阻现象通常还表现为机器掉卡。在实际的水井测试工作中,无论哪种仪器遇阻,都需要花很长时间、很多人力物力进行修复。

第三,测试堵头刺水也是导致测试效率较低的一大因素。在实施水井测试的工作过程中,经常出现防喷盒刺水漏水现象。刺水漏水部位主要集中在防喷盒钢丝外侧的间隙以及下部丝扣处。防喷盒的刺水漏水,不仅导致水井测试效率的降低,而且会影响整个水井测试的环境。

除以上因素以外,水井测试工作自身的安全、环保、标准化问题,也会在一定程度上影响到水井测试的效率。例如,在实施注水井测试工作的时候,由于防喷管平台距离地面较高,而且技术人员取下仪器时,需要站在防喷管平台上。由于防喷管平台面积较小,因而自然使得整个测试工作的难度有所增加。

二、提高水井测试效率的措施

(一)水嘴堵塞的解决方法

针对水井测试水嘴堵塞的问题,最为常见的解决方法就是利用一个工具——管柱刮削器。管柱刮削器能够有效提升洗井的质量,通过研究发现,采用管柱刮削器,通常情况下能够提高3%的水井测试效率。

管柱刮削器的结构较为复杂,简单来说,可以分为五大部分:刮削爪、凸轮、过滤筛管以及强磁底座。

常见的管柱刮削器由4对刮削爪组成,四对刮削爪均呈45°角。刮削爪的表面通常呈刷子状,材质为细钢丝。在具体的使用过程中,首先,在管柱刮削器上部安装1根钨质的加重杆。然后将来水闸门关闭,将管柱刮削器缓慢地下到水井之中,一直深入到最下一级的配水器。第三、将管柱刮削器上提。当管柱刮削器经过配水器的时候,打开刮削爪。这样来回的在两级配水器之间刮削3~5次,直到将水井管柱的腐蚀及积垢刮削干净为止。根据管柱刮削的施工特点,通常油田水井的刮削工作都是在上午进行的。水井完成刮削之后,要第一时间进行洗井。

通过对实际刮削情况的调查发现:利用管柱刮削器对水井进行刮削,能够有效消除由于注水质量不过关导致的水井腐蚀及积垢问题。经过刮削之后,水井管柱内壁的锈蚀物、积垢等杂质得到了有效清除。从而为实际的水井测试工作提供了方便。

(二)仪器遇阻的解决方法

针对仪器遇阻这一问题,常用的解决方法是,采用系列专用通井工具。专用通井工具的种类有很多,比较常见的有两类,即刮削式通井工具和打捞式通井工具。

系列专用通井工具的工作原理简单来说,就是将形状不同的通井器以及其他各类通井工具进行配套使用。由于上文已经集中介绍了管柱刮削器的施工过程,由于篇幅原因,在此不再赘述。

打捞式通井工具的作用在于防止水井测试仪器掉卡。由于在实际的水井测试工作中,一旦发生仪器掉卡事故,不仅影响工作效率,而且处理起来费时、费力。因此,针对仪器的掉卡问题,研制了具有针对性的打捞式工具。

目前使用最多的打捞式工具,就是半自动测调水量双用快速捞送器。这种打捞工具最大的优势就在于操作便捷,而且效果显著。经过测试,利用半自动测调水量双用快速捞送器,能够有效解决测试仪器的掉卡事故,从而能够达到平均提高2%水井测试效率的效果。半自动测调水量双用快速捞送器不仅能够有效避免测试仪器在投送时可能产生的堵塞器脱落现象,而且减少了测试仪器掉卡及钢丝断裂现象的发生。从而既节约了作业费用,又减少了打捞时间。

(三)堵头刺水、漏水的解决方法

针对堵头刺水、漏水的问题,常见的解决方法是采用多功能测试防喷盒。通过调查发现,采用多功能测试防喷盒,能够有效消除堵头刺水、漏水现象,从而使整个水井的测试效率提高了1%左右。

多功能测试防喷盒由四大部分组成,分别为:防喷盒主体、泄压装置、油杯以及“O”型密封圈。多功能防喷盒的设计原理是在普通防喷盒的基础之上,加入了一道盘根,位于压帽上部。除此之外,还在盘根的下部安装了一个用于卸压的装置,卸压装置外接塑料软管。这样就能够将堵头刺出、漏出的水流经过卸压装置以及塑料软管引到容器中,不仅防止了由于堵头刺水造成的工作环境泥泞,而且节约了水资源,做到了水资源的二次利用。

(四)安全问题的解决方法

针对水井测试现场的安全问题,技术人员设计了一个折叠式的测试仪器支架。该支架由五大部分组成,主要有:支架主体、定位卡箍、限位链、托盘以及拉手。

使用支架的时候,首先打开两个支架,形成一定的角度。然后拉直定位链,这时托盘恰好能够将支架的底边固定住,这样,整个支架就能够稳定地站立在地面上。

在实施水井测试工作时,将支架安装在距离采油树3m左右的位置。然后,将各种测试所需要的工具和仪器放置在支架上面,如流量计、投捞器、加重杆、管钳子、手钳子﹑螺丝刀﹑扳手和水嘴等,完成测试工作后,将支架进行折叠,放置在测试车辆中。这样不仅能够节约测试车内的空间,而且做到了保证测试现场安全、有序。从而达到了方便携带、操作简单、占地面积小、避免因人为因素造成测试仪器损坏的效果。

结束语

总而言之,依靠技术创新和技术整合实现高低压的整体测试效率提高20%是可能的,而且是可行的。对采油厂研制的技术革新成果進行创新性优化、整合,能挖掘高低压测试整体效率的潜能,为油田节能降耗提供了必要的技术支撑。随着新工艺、新技术不断渗入油田生产各个环节,应对原有操作标准和技术规范进行实时更新,以便使创新技术逐步转化为规范技术,从而在生产中发挥更大的作用。

参考文献

[1]邓钢等.桥式偏心分层测试及注水新技术[J].油气井测试,2011(03).

[2]徐国民,刘亚三,米忠庆等.特高含水期精细分层注水需要解决的问题[J].石油科技论坛,2010(04).

作者简介

软件工程-渗透测试 篇4

Information Systems Penetration Testing Principle And

Model Analysis

姜志坤

摘 要:信息化是当今世界发展的大趋势,是推动经济社会变革的重要力量。大力推进信息化,是覆盖我国现代化建设全局的战略举措,是贯彻落实科学发展观,全面建设小康社会、构建社会主义和谐社会和建设创新型国家的迫切需要和必然选择。如何以信息化提升综合国力,如何在信息化快速发展的同时确保国家信息安全,这已经成为各国政府关心的热点问题。信息安全已经从国家政治、经济、军事、文化等领域普及到社会团体、企业,直到普通百姓,信息安全已经成为维护国家安全和社会稳定的一个重要因素。随着国家信息安全测评工作的推进和深化,对信息系统安全测试的要求也逐步提高,渗透测试作为信息系统安全测试的一项高级别和高难度的测试项目,在信息安全测评中逐渐受到高度重视并得到推广应用。本文通过对目前渗透测试的过程和原理做了详细的分析, 并提出了测试方法和测试模型。

关键字:信息安全 渗透测试 测试项目 测试模型

1.渗透测试概述

作为网络安全防范的一种新技术,对于网络安全组织具有实际应用价值。但要找到一家合适的具有授权资质的公司实施渗透测试并不容易。

近来防御黑客与病毒的攻击已经成为一种非常困难的工作。保护自己的信息系统不受恶意攻击者的破坏,维护系统安全已经成了企业里非常重要的工作。以金融业为例,某银行部署了多台防火墙,购买入侵检测系统、网络安全审计系统等,也定期进行漏洞扫描,应该很安全,但黑客入侵、储户数据遭窃、网站遭受攻击等安全事件仍层出不穷,也许被黑客入侵的机率只有0.001%,但发生后就是100%。

(一)渗透测试(Penetration Testing)网络定义

定义一:渗透测试是一个在评估目标主机和网络的安全性时模仿黑客特定攻击行为的过程。详细地说,是指安全工程师尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,对目标的安全性作深入的探测,发现系统最脆弱环节的过程。

全的认知程度,使所有成员意识到自己的岗位在整个组织的安全中不可或缺的地位,有助于整体安全意识的提升。

(六)渗透测试的作用

渗透测试的作用一方面在于,解释所用测试设备在测试过程中所得到的结果。即使您对信息系统进行漏洞扫描。但也并不能全面地了解漏洞扫描得到的结果,更别提另外进行测试,并证实漏洞扫描系统所得报告的准确性了。

(七)怎么进行渗透测试

除了找到合适工具以及具备资质的组织进行渗透测试外,还应该准确确定测试范围。攻击者会借助社会工程学、偷窃、贿赂或者破门而入等手法,获得有关信息。真正的攻击者是不会仅仅满足于攻击某个企业网络的。通过该网络再攻击其它公司往往是黑客的惯用伎俩。攻击者甚至会通过这种方法进入企业的ISP。

为了从渗透测试上获得最大价值,应该向测试组织提供尽可能详细的信息。同时签署保密协议,这样,您就可以更放心地共享策略、程序及有关网络的其它关键信息。

还要确定被测信息系统,哪些系统需要测试。虽然你不想漏掉可能会受到攻击的某个系统,但可能仍想分阶段把渗透测试外包出去,以便每个阶段专注于网络的不同部分;同样您也可以作为一个大的信息系统来测试,对各个子系统进行关联分析,从而有效地降低系统被攻破的风险。

2.渗透测试原理 2.1 渗透测试原理

渗透测试就是利用网络安全扫描器、专用安全测试工具和富有经验的安全工程师的人工经验对网络中的核心服务器及重要的网络设备,包括服务器、网络设备、防火墙等进行非破坏性质的模拟黑客攻击,侵入系统并获取机密信息并将入侵的过程和细节产生报告给用户。

2.2 渗透测试过程

在一个实际的渗透测试过程中,渗透测试项目的实施一般分为三个阶段:前期准备阶段、渗透测试阶段、后期总结阶段。

(一)前期准备阶段 1)委托书确认

签署授权委托书,并同意测试工程师实施渗透测试。

3.渗透测试分类及方法 3.1测试分类

(一)按信息获取方式分类

从渗透的前期资料准备和信息获得来看,渗透测试/攻击可分为以下3类。1)黑盒(Black Box)渗透

黑盒(Black Box)渗透测试通常是从目标网络的外部进行渗透模拟的,这意味着,除了被测试目标的已知公开信息外,不提供任何其他信息。渗透者完全处于对目标网络系统一无所知的状态,只能通过Web、E-mail等网络对外公开提供的各种服务器,进行扫描探测,从而获得公开的信息,以决定渗透的方案与步骤。

通常来说,黑盒渗透测试用于模拟来自网络外部的攻击行为。2)白盒(White Box)渗透

白盒(White Box)渗透测试与黑盒渗透测试相反,渗透测试者可以通过正常渠道,向请求测试的机构获得目标网络系统的各种资料,包括网络拓扑结构、用户账号、操作系统、服务器类型、网络设备、代码片断等信息。

渗透者可从目标网络系统外部或内部两个地点,进行渗透模拟测试,但是通常而言,这类测试是模拟网络内部人员的越权操作。

3)灰盒(Gray Box)渗透

灰盒(Gray Box)渗透测试介于以上两者之间。

(二)按目标对象分类

从渗透模拟攻击的对象来看,渗透测试又可分为以下几种。1)主机操作系统渗透

对目标网络中的Windows、Linux、UNIX等不同操作系统主机进行渗透测试。本书重点讲述的是对Windows主机操作系统的渗透。

2)数据库系统渗透

对MS-SQL、Oracle、MySQL等数据库系统进行渗透测试,这通常是对网站的入侵渗透过程而言的。

3)网站程序渗透

渗透的目标网络系统都对外提供了Web网页、E-mail邮箱等网络程序应用服务,这是渗透者打开内部渗透通道的重要途径。

1)相关边缘信息收集

在这一步骤中,攻击者会通过网络搜索、实地了解等各种方法,充分地利用网络搜索和社会工程学,采集攻击目标的相关信息。

获取的信息内容和方式包括目标网络系统中的一些边缘信息,如目标网络系统公司的结构、各部门职能、重要机构分支,以及内部员工账号组成、身份识别方式、邮件联系地址、QQ或MSN号码、各种社交网络账号与信息、管理员的网络习惯等。

2)网络信息收集

在这一步骤中,要收集目标网络的各种网络信息,所使用的手段包括Google Hacking、WHOIS查询、DNS域名查询和网络扫描器等。

最终的目的是要描绘出目标网络拓朴结构、公司网络所在区域,子公司IP地址分布,VPN接入地址、各种重要服务器的分布、网络连接设备等信息。

3)端口/服务信息收集

在这一步骤中,利用各种通用的端口服务扫描工具,扫描目标网络中对外提供服务的服务器,查询服务器上开放的各种服务,例如,Web、FTP、MySQL、SNMP等服务。

4)漏洞扫描

在上面的步骤中,获得目标网络各服务器开放的服务之后,即可对这些服务进行重点扫描,扫出其所存在的漏洞。

例如:针对操作系统漏洞扫描的工具有X-Scan、ISS、Nessus、SSS、Retina等;针对Web网页服务的扫描工具有SQL扫描器、文件PHP包含扫描器、上传漏洞扫描工具,以及各种专业全面的扫描系统,如AppScan、Acunetix Web Vulnerability Scanner等(见图3-1);针对数据库的扫描工具有Shadow Database Scanner、NGSSQuirreL,以及SQL空口令扫描器等。

另外,许多入侵者或渗透测试员也有自己的专用扫描器,其使用更加个性化。

(三)纵向提升权限

通过上面的步骤,攻击者可能已成功入侵目标网络系统对外的服务器,或者内部某台主机,此时需要完全获得主机的最高控制权。

虽然此时攻击者已获得了主机的一些控制权限,但是对于进一步的渗透攻击来说还是不够。例如,攻击者入侵了某台Web服务器,上传了Webshell控制网站服务器,然而却没有足够的权限安装各种木马后门,或者运行一些系统命令,此时攻击者就需要提升自己的权限。

纵向权限提升按入侵方式来分,主要可分为以下两类。1)Webshell提权

Webshell提权是渗透入侵中经常遇到的一种情况,攻击者常常会通过Web网站脚本途径入侵网站服务器,并上传Webshell。通过Webshell对主机进行操作时获得的控制权限往往是继承了Web账号权限的,完全不足以对目标主机进行系统级的控制操作。因此攻击者常常会采用各种手段,提升Webshell的操作权限。

2)账号提权

账在权限提升过程中,攻击者通过扫描或密码破解等方式,可能会获取目标主机的系统登录账号,或数据库访问账号等。不过这些账号通常是权限不足,在进行进一步的渗透测试时,可能会没有足够的权限打开一些密码存储文件,无权安装嗅探工具,甚至没有权限执行一些很基本的命令,这时必须进行提权,以获取更高级别的账号控制权。

在进行纵向提权操作步骤中,所采用的提权手段是相似的,都是利用目标主机系统上的系统或软件漏洞进行提权。具体的提权手段包括系统或软件的本地溢出攻击、密码破解、服务替换等,这在Webshell提权中体现得尤为明显。

需要说明的是,如果攻击者采用远程溢出,或者通过木马诈骗运行等方式入侵控制主机,获得的将是最高的系统权限,此时无须进行纵向提权的步骤。

(四)开辟连接通道,突破内网环境限制

在对内网进行渗透入侵之前,攻击者还需要突破各种网络环境限制,例如,内部网络作为Vlan划分隔离,或者在网关设置了防火墙无法进行连接等。

其中最重要的一点就是,如何利用已控制的主机,连接攻击其他内部主机。由于目标网络内的主机是无法直接进行连接的,因此攻击者往往会使用代理反弹连接到外部主机,会将已入侵的主机作为跳板,利用远程终端进行连接入侵控制。

在此过程中,涉及的攻击手段更加多样,如防火墙杀毒软件的突破、代理的建立、账号后门的隐藏破解、3389远程终端的开启和连接等。

图4-1 渗透测试模型

4.2 模型分析

渗透测试模型从信息收集到结果报告的生成过程是全自动的,无人干预,在此过程中,信息收集的结果筛选和各模块之间的参数传递是一个实现上的难题;另外,漏洞及漏洞利用程序的及时更新也是渗透测试软件的一个关键技术。

(一)信息收集的结果筛选和各模块之间的参数传递

参考文献

软件工程-渗透测试 篇5

因为很多客户端web是内嵌的,内部通信,所以很多对安全的考虑就很少,漏洞亦较多。在此,我想跟大家分享一下客户端的web测试思路,让大家找到更多的高质量漏洞。

首先打开一个客户端界面,如腾讯的群介绍界面。

方法一:测试F5键。大家都知道F5是刷新键,按f5测试界面是否全部或部分刷新,如果刷新,很大的可能就是嵌入的web。

方法二:测试右键。网页自己特有的右键,如果出现,则可判定是web。

方法三:测试拖曳,

可以点一个图片或一段文字到某个位置,如桌面,浏览器址栏等,如果能拖曳成功,很大可能是web。拖曳操作在测试触屏客户端时最有效。如ATM机、机票终端等。如中国银行XTM

方法四:测试Ctrl+A。如果能全选,那就再Ctrl+C。之后打开一个富文本编辑器,如在线编辑器,如kindeditor.net/demo.php,然后Ctrl+V,再在源码模式查看即可。

方法五:打开burpsuit,直接测试。这个是最准确。得到了地址,就是常规web了,同时可以发现很多内部接口。

因该说上面的五种方法是自己一次次在实践中总结到的,现在看来很简单,但当你发现一种新方法时,总会有一批漏网之鱼向你游来,收获之喜只有自己知道。

软件工程-渗透测试 篇6

制定总体的测试计划,详细阐明本次测试目的、对象、方法、范围、过程、环境要求、接受标准以及测试时间等内容。

3、测试设计

在设计测试方案时,首先分解测试内容,对于一个复杂系统,通常可以分解成几个互相独立的子系统,正确地划分这些子系统及其逻辑组成部分和相互间的关系,可以降低测试的复杂性,减少重复和遗漏,也便于设计和开发测试用例,重要的是描述对系统分解后每个功能点逐一的校验描述,包括何种方法测试、何种数据测试、期望测试结果等。然后以功能点分析文档作为依据进行测试用例的设计,设计测试用例是关系到测试效果以至软件质量的关键性一步,也是一项非常细致的工作,根据对具体的北侧系统的分析和测试要求,逐步细化测试的范围和内容,设计具体的测试过程和数据,同时将结果写成可以按步执行的测试文档。每个测试用例必须包括以下几个部分:

(1) 标题和编号

(2) 测试的目标和目的

(3) 输入和使用的数据和操作过程

(4) 期望的输出结果

(5) 其他特殊的环境要求、次序要求、时间要求等

4、准备测试数据

在软件测试中,为了提高测试工作的效益和质量,只要条件许可,应尽可能采用计算机自动或半自动测试的方法,利用软件工具本身的优势来提高工作效率。

5、测试执行

当所有必需的测试准备工作都已完成,则可以按照预定的测试计划和测试方案逐项进行测试。

为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试和验收测试。代码会审是对程序进行静态分析的过程。单元测试集中在检查软件设计的最小单位-模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。集成测试:集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。在测试过程中发现的任何与预期目标不符的现象和问题都必须详细记录下来,填写测试记录。为了能准确的找出问题产生的原因,及时的解决问题,保证测试工作的顺利进行,一般来说所发现的问题必须是能够重视的。

6、回归测试

在测试中发现的任何问题和错误都必须有一个明确的解决方法。一般来说,经过修改的软件可能仍然包含着错误,甚至引入了新的错误,因此,对于修改以后的程序和文档,按照修改的方法和影响的范围,必须重新进行有关的测试。

7、测试分析报告

测试结束后要及时地进行总结,对测试结果进行分析,写“测试分析报”。

硬件条件:

PC机1台

搭建软件环境:

Android模拟器;

客户端源代码;

自动化测试软件;

4、课题研究实施方案(课题研究各阶段任务在时间和顺序上的安排)

1) 11月28日至月14日(第7学期第8周至第14周):提交开题报告;查阅资料,学习测试方法。

2) 2月13日至203月19日(第8学期第1周至第6周):查阅软件相关文档,了解所要测试的软件的各功能模块,搭建测试环境搭,编写测试用例。

3) 2012年3月19日至2012年3月23日(第8学期第6周):中期检查,初步整理测试数据,分析测试结果。

4) 2012年3月23日至2012年3月30日(第8学期第7周):提交论文初稿。和实验验收报告初稿。

5) 2012年3月30日至2012年4月6日(第8学期第8周):反馈论文修改意见。

6) 2012年4月6日至2012年4月13日(第8学期第9周):对论文进行二次修改意见。

7) 2012年4月13日至2012年4月20日(第8学期第10周):论文定稿及提交

5、主要参考文献(证明选题有理有据的相关资料源,文献不少于5篇(含外文文献),文献书写格式参见《计算机系毕业设计(论文)撰写格式与标准》

[1] 佟伟光 《软件测试》 人民邮电出版社 5月

[2] 美)William E.Perry著 高猛 等译《软件测试的有效方法》清华大学出版社201 月

[3] 古乐,史九林等编著 《软件测试案例与实践教程》清华大学出版社 2 月

[4] Gerald D.Everett, Raymond Mcleod, Jr.著 郭耀等译《软件测试 :跨越整个软件开发生命周期》 清华大学出版社 年9月

软件工程-渗透测试 篇7

随着现代计算机网络技术的高速发展发展,计算机功能的多样化与信息处理的复杂程度也开始显著提高。计算机网络的出现,已经将过去时间与空间相对独立和分散的信息集成起来,构成庞大的数据信息资源系统,为人们提供更加简洁的信息处理与使用方式,极大的推动了信息化时代的发展进程。然而,随之而来的是这些数据信息的系统安全问题,公众化的网络平台也为非法入侵者提供了可乘之机。在黑客平民化盛行的今天,渗透测试技术已经普通化,GUI(图形化界面)的出现也是导致黑客平民化的“幕后推手”,现在很多初学渗透的新手也可以通过互联网上发布的各种各样已被发掘的漏洞配合平民化的渗透测试工具GUI界面来进行黑客活动,更有甚者,受到金钱利益的驱使来进行“黑产”活动。因此,计算机网络安全问题已经成为当今最为热门的焦点之一。

1 基本概念

现代的网站建设的越来越大众化,简单化,WEB环境的多样化,导致越来越多的CMS(内容管理系统)也开始大量涌现,对CMS的二次开发逐渐变成了中小型企业的首选,CMS(Content Management System)的意思是内容管理系统,它的优点在于具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本。而且,CMS的功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档案。再节省时间的同时也节省了金钱,但是随之而来的是越来越多的安全问题,苑房弘老师曾分析导致这些问题的根本原因就在于计算机分层思想,打个比方来说,就好比我们所有人都在计算机分层的时候被分到了某一个层面,我们都在一个大的系统中担当着一个小的角色,网络方向的人学习交换机,路由器;程序开发方向的人学习各种语言;大数据方向的学习数据库,大数据挖掘...每个人都忙在自己工作的层面上,久而久之,我们都按着自己的角度来看一个系统,都只是局限于自己理解的那个系统,从而导致我们很多人看都是片面的,这就好比是盲人摸象,由于分层思想导致我们看到的都以为自己认识的那个方面,都是片面的,都没有从整体角度客观的看待一个系统,固守着自己的方面把全面的测试变成了只追求功能的实现。虽然这种模式在功能实现来说没有问题,可以实现正常运作,但是从安全的角度确实致命的,对于安全来说,乃至于对于一个渗透测试人员来说,从来没有过片面的或者单一的安全,任何一点点漏洞都有可能导致整个系统的沦陷和崩溃。

渗透测试,术语解释是为了证明网络防御按照预期计划正常运行而提供的一种机制。其实就是指在黑客攻击者攻击前发现和防止漏洞的出现。现在网络安全中主要分成两方面,一种是攻击型的安全,还有一种防护型的安全。渗透测试就是攻击型的安全,渗透测试就是尝试挫败系统的安全防御机制,发现系统中的安全弱点,从攻击者的角度出发,测量系统安全防护的有效性,证明安全问题的存在。渗透测试并非是破坏,也要受到道德和法律的约束。

现在国内的内容管理系统(CMS)多种多样,比如ASP系的主要有功能主机,动易CMS,风讯CMS,乔克CMS,大事纪等等,PHP系的主要有PHPArtile,PHPCMS,DedeC MS,ECMS帝国网站管理系统等等,.Net系列的主要有动网新闻,Jsp系的主要有NetartC MS,方正翔宇等等,在每个CMS在使用手册上都介绍系统的完善性,功能的强大性,比如介绍模板体系的多样化,操作的简单平民化,可移植性强大,还有功能模块的丰富性,生成静态发布,信息采集等等,宣传自己的同时也挑起了渗透测试者们极大的兴趣,吸引了大量的渗透测试人员对系统进行漏洞挖掘,上报到乌云,填充了CMS安全方向的空白,目前国内排的上号的互联网公司大部分都有了自己的漏洞收集报告平台(应急响应中心),也有着各种CMS的漏洞利用案例,例如:某公司网站存在目录遍历漏洞,并且可以执行一些代码自动添加或者重置管理员账号,密码;某公司存在敏感信息暴露后台,加上后台弱口令涉及用户隐私泄露;某网站前台页面伪静态,突破伪静态,注入得到管理员账号密码..经过时间的磨合与考验,也渐渐出现了CMS渗透工具的集合包,在其中包括wordpress Joomla,Joomla等著名的CMS安全检测工具,这些工具都具有一定的风险性,仅供安全研究与教学,但是仍有很多黑客利用这些检测工具来进行他们黑客活动,使得本来方便简洁的CMS(内容管理系统)变得越来越危险,使得很多打算使用CMS的公司望而却步。

内容管理系统渗透测试是一个循序渐进的并且逐步深入的过程。通过模拟黑客的攻击方法,分析建站程序员的思路,在不同的位置(内网/外网)利用各种手段,工具对某个网站进行测试,在渗透测试的过程中包括系统的任何弱点,应用程序或漏洞的主动分析,由此确定存在的安全威胁,并能及时提醒安全管理员完善安全策略,降低网站安全风险。

2 内容管理系统渗透测试的阶段

内容管理系统渗透测试主要可以分为收集信息,整理信息,漏洞分析,渗透测试,整理总结等五个阶段:

收集信息阶段:信息收集对于渗透来说是非常重要的一步,收集的信息越详细对以后渗透测试的影响越大,毫不夸张的说,信息的收集决定着渗透的成功与否。确定目标之后,就可以进入收集阶段,渗透测试人员可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。渗透测试者可以使用的情报搜集方法包括公开来源信息查询、Google、百度、社工、网络扫描、踩点探测、枚举、监听、burp抓包分析等等。而对目标系统的信息收集能力是渗透测试者一项非常重要的技能,收集信息是否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。

对于一个从事了多年渗透测试工作的渗透测试工程师而言,有的时候第一眼就可以看出网站的搭建环境,甚至可以通过后台登陆界面判断出CMS的种类,从而进行系统的渗透。

整理信息阶段:在收集到充分的信息之后,渗透测试团队的成员们应该停止继续收集,大家就会聚到一起对已经获取到的信息来进行整理,通过收集信息阶段中发现内容管理系统的特征值判定CMS种类和版本,进而大量查找漏洞平台(wooyun,补天等..)所发布的已知漏洞的原理和案例,如果有可能的话也可以下载一份CMS源码来进行代码审计。整理信息在渗透测试过程中是至关重要,但这也是很容易被忽视的一个关键阶段。通过渗透测试团队缜密地情报收集与整理漏洞资料的整合规划,可以从大量的信息中找出头绪,从而计划出最有可行性的攻击测试方案。

漏洞分析阶段:在整理出最符合此内容管理系统的信息攻击之后,接下来需要考虑该如何取得目标内容管理系统的shell(控制权),即漏洞分析阶段。在此阶段,渗透测试人员需要全面整理分析前面两个阶段获取并汇总的信息,特别是漏洞扫描器结果、系统版本、内容管理系统版本信息等等,现在互联网上已经有很多CMS(内容管理系统)的源代码可供下载,也有很多已经公开的漏洞和利用测试方法,渗透测试人员可以通过整理信息阶段整理的资料,找出符合当前CMS可以进行渗透测试攻击的攻击点,如果条件允许的话,最好可以通过本地服务器搭建来进行测试。在此阶段,高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,从而打开攻击通道上的关键路径。

渗透测试阶段:渗透测试阶段是渗透测试过程中最具有成就感的阶段。在此阶段中,渗透测试团队需要借助他们所发现的目标内容管理系统的安全漏洞入侵系统,从而获得访问控制权(webshell)。渗透测试可以利用网络渠道获取的渗透代码,但在实际的应用测试中,渗透测试人员还需要有针对性地,全面地分析目标系统的特点,来进行独一无二地渗透测试,并以此来挫败目标系统和网络中采取的安全防御机制,才能称为是一次成功的渗透测试。在渗透测试中包含两类测试方法,一种是黑盒测试,另一种是白盒测试。在黑盒测试中,渗透测试人员对目标系统处于完全一无所知的状态。这种测试是模拟黑客入侵,测试人员要通过各种扫描软件对测试网络系统进行全面扫描,探测要测试网络和系统的基本信息,并利用收集的信息来进行渗透测试。而白盒测试恰恰相反,在白盒测试中,测试者可以通过正常渠道向申请渗透测试的公司取得各种所需的资料,包括网络拓扑结构、内部员工资料,甚至网站或其它程序的源代码片断等等,也能够与公司的其它员工进行面对面的沟通。这类测试主要目的是真实模拟公司内部雇员的越权操作行为。前面的阶段可以说都是在按部就班地完成非常普遍的目标,在不同的渗透测试场景中,这些攻击目标与途径可能是变化多端的,而规划是否准确并且可行,也取决于团队自身的创新意识、知识范畴、实际经验和技术能力。

整理总结阶段:渗透测试过程最终向客户交付,取得客户的认可并获得薪酬的就是一份渗透测试报告。这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键信息、探测和发掘出的内容管理系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,与此同时,更要站在企业作为防御者的角度上,帮助企业确定存在的安全威胁问题,及时提醒安全管理员完善安全策略或者修改源代码,降低CMS(内容管理系统)被再次攻击的概率,从而降低网站安全风险。

3 结语

上一篇:印象最深的一次挫折作文下一篇:长郡中学高二期中考试