各类环境渗透测试简述

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

各类环境渗透测试简述

一、渗透测试概念
 渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方 法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
渗透测试还具有的两个显著特点是:
 渗透测试是一个渐进的并且逐步深入的过程。
 渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。
 渗透测试完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节,能直观的让管理员知道自己网络所面临的问题。所以渗透测试是安全评估的方法之一。
 TIPS:安全评估通常包括工具评估、人工评估、顾问访谈、问卷调查、应用评估、管理评估、网络架构评估、渗透测试等。
 渗透测试与其他评估方法的区别:
 通常评估方法是根据已知信息资产或其他被评估对象,去发现所有相关的安全问题。渗透测试是根据已知可利用的安全漏洞,去发现是否存在相应的信息资产,通常评估方法对评估结果更具有全面性,渗透测试则更注重安全漏洞的严重性。
 渗透测试一方面可以从攻击者的角度,检验业务系统的安全防护措施是否有效,各项安全策略是否得到贯彻落实;另一方面可以将潜在的安全风险以真实事件的方式 凸现出来,从而有助于提高相关人员对安全问题的认识水平。渗透测试结束后,立即进行安全加固,解决测试发现的安全问题,从而有效地防止真实安全事件的发 生。

二、渗透测试分类

根据渗透方法和视角分类,渗透测试可以分为——

A、黑箱测试“zero-knowledge testing”/(黑盒子Black Box)
  渗透者完全处于对系统一无所知的状态。除了被测试目标的已知公开信息外,不提供任何其他信息。一般只从组织的外部进行渗透测试。
 通常,这种类型的测试,最初的信息获取来自DNS、Web、Email及各种公开对外的服务器。

B、白盒测试
 测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其他程序的代码片段,也能与单位其他员工进行面对面的沟通。通常包括从组织外部和从组织内部两种地点进行渗透测试。这类测试的目的是模拟企业内部雇员的越权操作。

C、灰盒子(Gray Box)
 介于以上两者之间
 较为隐秘的进行测试。通常,接受渗透测试的单位网络管理部门会收到通知:在某些时间段进行测试。因此能够检测网络中出现的变化。
 但在隐秘测试中,被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。

根据渗透目标分类,渗透测试又可以分为——

1)主机操作系统渗透
 windows、solaris、aix、linux、sco、sgi

2)数据库系统渗透
 mssql、oracle、mysql、informix、sybase

3)应用系统渗透
 渗透目标提供的各种应用,如asp、cgi、jsp、php等组成的www应用

4)网络设备渗透
 各种防火墙、入侵检测系统、网络设备

三、渗透测试过程

 信息收集、分析→制订渗透方案并实施→前段信息汇总、分析→提升权限、内部渗透→渗透结果总结→输出渗透测试报告→提出安全解决建议

TIPS:

时间选择
 为减轻渗透测试对网络和主机的影响,渗透测试时间尽量安排在业务量不大的时段和晚上

策略选择
 为防止渗透测试造成网络和主机的业务中断,在渗透测试中不使用含有拒绝服务的测试策略
 对于不能接受任何可能风险的主机系统,如银行票据核查系统、电力调度系统等,可选择如下保守策略:
 复制一份目标环境,包括硬件平台、操作系统、数据库管理系统、应用软件等。对目标的副本进行渗透测试

授权渗透测试的监测手段
 在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行监控
 测试方自控:由渗透测试方对本次渗透测试过程中的三方面数据进行完整记录:操作、响应、分析,最终形成完整有效的渗透测试报告提交给用户

 用户监控:用于监控有4种形式
 全程监控:采用类似ethereal的嗅探软件进行全程抓包嗅探
 择要监控:对扫描过程不进行录制,仅仅在安全工程师分析数据后,准备发起渗透前才开启软件进行嗅探
 主机监控:仅监控受测主机的存活状态,避免意外情况发生
 指定攻击源:用户指定由特定攻击源地址进行攻击,该源地址的主机由用户进行进程、网络连接、数据传输等多方监控
制定实施方案
 实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:
 目标系统介绍、重点保护对象及特性。
 是否允许数据破坏?
 是否允许阻断业务正常运行?
 测试之前是否应当知会相关部门接口人?
 接入方式?外网和内网?
 测试是发现问题就算成功,还是尽可能的发现多的问题?
 渗透过程是否需要考虑社会工程?
 在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含实施方案部分和书面委托授权部分:

下面串联讲一讲各知识点——

1)不同网段/vlan之间的渗透
 从某内/外部网段,尝试对另一网段/vlan进行渗透。
 通常可能用到的技术包括:对网络设备的远程攻击;对防火墙的远程攻击或规则探测、规避尝试。
 信息的收集和分析伴随着每一个渗透测试步骤,每一个步骤又有三个组成部分:操作、响应和结果分析。

2)端口扫描
 通过对目标地址的tcp/udp端口扫描,确定其所开放的服务的数量和类型,这是所有渗透测试的基础。
 通过端口扫描,可以基本确定一个系统的基本信息,结合安全工程师的经验可以确定其可能存在,以及被利用的安全弱点,为进行深层次的渗透提供依据。

3)远程溢出
 这是当前出现的频率最高、威胁最严重,同时又是最容易实现的一种渗透方法,一个具有一般网络知识的入侵者就可以在很短的时间内利用现成的工具实现远程溢出攻击。
 对于防火墙内的系统同样存在这样的风险,只要对跨接防火墙内外的一台主机攻击成功,那么通过这台主机对防火墙内的主机进行攻击就易如反掌。

4)口令猜测
 口令猜测也是一种出现概率很高的风险,几乎不需要任何攻击工具,利用一个简单的暴力攻击程序和一个比较完善的字典,就可以猜测口令。
 对一个系统账号的猜测通常包括两个方面:首先是对用户名的猜测,其次是对密码的猜测。

5)本地溢出
 指在拥有了一个普通用户的账号之后,通过一段特殊的指令代码获得管理员权限的方法。
 前提:首先要获得一个普通用户密码。也就是说由于导致本地溢出的一个关键条件是设置不当的密码策略。多年的实践证明,在经过前期的口令猜测阶段获取的普通账号登录系统之后,对系统实施本地溢出攻击,就能获取不进行主动安全防御的系统的控制管理权限。

6)脚本及应用测试
 专门针对web及数据库服务器进行。据最新技术统计,脚本安全弱点为当前web系统,尤其是存在动态内容的web系统比较严重的 安全弱点之一。
 利用脚本相关弱点轻则可以获取系统其他目录的访问权限,重则将有可能取得系统的控制权限。因此对于含有动态页面的web、数据库等系统,web脚本及应用测试将是必不可少的一个环节。
 在web脚本及应用测试中,可能需要检查的部份包括:
 ◆检查应用系统架构,防止用户绕过系统直接修改数据库;
 ◆检查身份认证模块,用以防止非法用户绕过身份认证;
 ◆检查数据库接口模块,用以防止用户获取系统权限;
 ◆检查文件接口模块,防止用户获取系统文件;
 ◆检查其他安全威胁;

7)无线测试
 中国的无线网络还处于建设时期,但是由于无线网络的部署简易,在一些大城市的普及率已经很高了。北京和上海的商务区至少80%的地方都可以找到接入点。
 通过对无线网络的测试,可以判断企业局域网安全性,已经成为越来越重要的渗透测试环节。
 除了上述的测试手段外,还有一些可能会在渗透测试过程中使用的技术,包括:社交工程学、拒绝服务攻击,以及中间人攻击。

8)信息收集
 网络信息收集:在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系 地址等)。
 目标系统信息收集:通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特别要 注意一些比较偏门的 HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。从获取的地址列表中进行系统判断, 了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。
 端口/服务信息收集:这一部分已经可以开始直接的扫描操作

9)漏洞扫描
 这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:
 针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光
 针对WEB应用层面的工具有:AppScan, Acunetix Web Vulnerability Scanner, WebInspect, Nstalker
 针对数据库的工具有:ShadowDatabaseScanner, NGSSQuirreL
 针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225, Sivus, sipsak等。
 事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。

10)漏洞利用
 有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对 该目标系统的漏洞利用代码,如milw0rm, securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应 用名称 exploit”、“应用名称 vulnerability”等关键字。
 针对系统方面:metasploit
 针对数据库方面:xoxo
 针对Web服务器方面的工具有:xoxo,明小子

11)Web安全测试
 Information Gathering:也就是一般的信息泄漏,包括异常情况下的路径泄漏、文件归档查找等
 Business logic testing:业务逻辑处理攻击,很多情况下用于进行业务绕过或者欺骗等等
Authentication Testing:有无验证码、有无次数限制等,总之就是看能不能暴力破解或者说容不容易通过认证,比较直接的就是“默认口令”或者弱口令了
 Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效
 Data Validation Testing:数据验证最好理解了,就是SQL Injection和Cross Site Script等等

12)Web测试的工具
 目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分主要有:
 1.枚举(Enumeration): DirBuster, http-dir-enum, wget
 2.基于代理测试类工具:paros, webscarab, Burp Suite
 针对WebService测试的部分有一些尚不是很成熟的工具,如:wsbang,wschess,wsmap,wsdigger,wsfuzzer
 这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等) 目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不 涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。
 针对无线环境的攻击有:WifiZoo

13)权限提升
 在前面的一些工作中,你或许已经得到了一些控制权限,但是对于进一步攻击来说却还是不够。例如:你可能很容易的能够获取Oracle数据库的访问权 限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你发现你没有足够的 权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你甚至没有权限执行一些很基本的命令。这时候你自然而然的就会想到权限提升这个途径了。
 目前一些企业对于补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些服务器或者应用进行补丁更新,或者是延时更新。这时候就是渗透测试人员的好机会了。经验之谈:有一般权限的Oracle账号或者AIX账号基本上等于root,因为这就是现实生活

14)密码破解
 有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。很多情况下,往往破坏力最大的攻击起源于最小的弱点,例如弱口令、目 录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个渗透测试工程师来说,这一步骤是有必要而且 绝大部分情况下是必须的。
 目前网络中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T 囧

15)日志清除
 这里不展开讲。
进一步渗透
 攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。 最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐 号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。
 除此之外,你可以直接回到第二步漏洞扫描来进行。

四、生成报告

 生成的报告中应当包含:

 1.薄弱点列表清单(按照严重等级排序)
 2.薄弱点详细描述(利用方法)
 3.解决方法建议
 4.参与人员/测试时间/内网/外网
 5、测试过程中的风险及规避

 渗透测试利用网络安全扫描器、专用安全测试工具和富有经验的安全工程师的人工经验对网络中的核心服务器及重要的网络设备,包括服务器、网络设备、防火墙等进行非破坏性质的模拟黑客攻击,目的是侵入系统并获取机密信息并将入侵的过程和细节产生报告给用户。
 渗透测试和工具扫描可以很好的互相补充。工具扫描具有很好的效率和速度,但是存在一定的误报率和漏报率,并且不能发现高层次、复杂、并且相互关联的安全 问题;渗透测试需要投入的人力资源较大、对测试者的专业技能要求很高(渗透测试报告的价值直接依赖于测试者的专业技能),但是非常准确,可以发现逻辑性更 强、更深层次的弱点。
 当具备渗透测试攻击经验的人们站到系统管理员的角度,要保障一个大网的安全时,我们会发现,需要关注的问题是完全不同的:从攻方的视角看,是“攻其一点, 不及其余”,只要找到一点漏洞,就有可能撕开整条战线;但从守方的视角看,却发现往往“千里之堤,毁于蚁穴”。因此,需要有好的理论指引,从技术到管理都 注重安全,才能使网络固若金汤。


原文链接: http://blog.csdn.net/mypc2010/article/details/7984034

转载于:https://my.oschina.net/changpinghu/blog/92535

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

预售┃一张纸一幅图,竟然提高了10倍的学习和工作效率!?

▲卢sir特别推荐点击上图进入玩酷屋人类大脑的容量远远超出一般人的想象,时到21世纪的今天,我们对大脑的运用远远不够。大脑机能的使用率基于我们的思维模式,而思维导图正是开发大脑中最有效的利器!之前小木给大家推荐了一套基于少…

入门K8s:一键脚本搭建Linux服务器集群

前言好久没有写系列博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用。文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举…

数据库系统原理及mysql应用教程第二版_数据库系统原理及MySQL应用教程(第2版十三五普通高等教育规划教材)...

导语内容提要本书共19章,全面地讲述了数据库技术的基本原理和应用。主要内容包括:数据库概述、信息与数据模型、关系代数与关系数据库理论、数据库设计方法、MySQL的安装与使用、MySQL存储引擎与数据库操作管理、MySQL表定义与完整性约束控制、MySQL数据…

Eclipse 安装配置总结(WST WTP)(转)

为什么80%的码农都做不了架构师?>>> Eclipse 安装配置总结(WST WTP)(转) Eclipse 是最流行的功能强大的java IDE,有丰富的插件,配合插件可以作为j2ee、c、c、.net等开发工具。需要安装插件才能支持Web开发和其他应用的开发&#…

2019最佳年会,新东方6名员工冒着离职的风险,在年会上怒怼老板

全世界只有3.14 % 的人关注了数据与算法之美今天早上,数据汪打开微信朋友圈一看,发现大家都在疯传昨晚北京新东方学校年会节目《释放自我》。新东方员工们把歌曲《沙漠骆驼》的歌词给改编过后,把许多奋战在一线的员工心声都给唱出来了&#x…

mysql列增减_Mysql基本操作——增减改查

1 创建数据库:两种方法:create database my_db;createdatabase if not exists my_db;2 删除数据库:两种方法:drop databasemy_db;drop database if exists my_db;3 创建表:createtable table_name (column_name column…

使用mysql-proxy 快速实现mysql 集群 读写分离

为什么80%的码农都做不了架构师?>>> 使用mysql-proxy 快速实现mysql 集群 读写分离 目前较为常见的mysql读写分离分为两种: 1、 基于程序代码内部实现:在代码中对select操作分发到从库;其它操作由主库执行&#xff1…

50万年薪程序员,被百万网民怒喷后,却迎来大撕逼

全世界只有3.14 % 的人关注了数据与算法之美前几天,我们年轻气盛的小卢写了一篇关于“程序员锁库跑路,最终致创业公司倒闭”的文章,语言有些偏激,数据汪在此替小卢给大伙道个歉,至于为何不让他本人来呢?因为…

.NET轻量级配置中心AgileConfig

描述基于NetCore开发的轻量级配置中心,部署简单、配置简单,使用简单,可以根据个人或者公司需求采用。部署简答,最少只需要一个数据节点,支持docker部署支持多节点分布式部署来保证高可用配置支持按照应用隔离&#xff…

人生苦短,我用Python!

在大数据时代,信息更新非常快速,计算机语言也犹如雨后春笋般被我们所熟知。C语言、C、Java等可谓是各领风骚、独占鳌头,而Python则是一门近几年崛起很快也很火的编程语言。虽说编程语言难分好坏,各有千秋。但Python到底有什么魔力…

预售┃没有标题,配得上这款“俄罗斯方块”

▲数据汪特别推荐点击上图进入玩酷屋在之前的文章时,马斯提到数学存在一种现象叫“梯次掉队”,原因在于孩子的数学思维地基没有打牢。(传送门)提到初中孩子需要空间想象能力时,很多父母疑惑为何需要?关于这…

读Getting Started With Windows PowerShell笔记

使用中Powershell的操作跟Linux中的终端操作很多地方是一致的,当然,还是有着Windows自己的特色,比如,不分大小写。之前命令行中的命令大部分在这里也可以用,而且用法一样。选中后点右键,即复制到剪切板。不…

NET问答: String 和 string 到底有什么区别?

咨询区 Peter O.:开门见山,参考如下例子:string s "Hello world!"; String s "Hello world!";请问这两者有什么区别,在实际使用上要注意一些什么?回答区 Derek Park:string 是 C# 中…

LVS负载均衡-NET、DR模式配置

模型一:NAT模型的配置 实验环境: 采用VMware虚拟机,版本6.0.5 操作系统:Red Hat Enterprise Linux 5 (2.6.18) 虚拟机1:充当Director:网卡1(桥接):192.168.0.33(对外),网…

编程语言的“别样”编年史

全世界只有3.14 % 的人关注了数据与算法之美代码是一门语言,这门语言搭建了人与计算机沟通的桥梁。通过编写代码,人类可以“命令”计算机开发网页、开发软件、搭建游戏... ... 这门语言并不是上帝的发明,它是前辈们发挥聪明才智创造出来的&am…

也可以改为while(input[0])或while(cininput[0])

2019独角兽企业重金招聘Python工程师标准>>> <<c primer plus>> // static.cpp -- using a static local variable #include <iostream> // constants const int ArSize 10; // function prototype void strcount(const char * str); int main()…

.NET Core HttpClient请求异常分析

【导读】最近项目上每天间断性捕获到HttpClient请求异常&#xff0c;感觉有点奇怪&#xff0c;于是乎观察了两三天&#xff0c;通过日志以及对接方沟通确认等等&#xff0c;查看对应版本源码&#xff0c;尝试添加部分配置发布后&#xff0c;观察十几小时暂无异常情况出现&#…

python 小甲鱼 代码_Python小代码

先自我介绍一下&#xff0c;本人是正在自学Python的小白&#xff0c;没事分享一下自己写的小代码&#xff0c;欢迎在评论区补充。游戏管理系统&#xff1a;代码如下&#xff1a;def healthe(m):if m"Y"or y:print("欢迎&#xff0c;请进入游戏&#xff01;"…

原来这些行业的“潜规则”是这样的...

全世界只有3.14 % 的人关注了数据与算法之美在日常生活中&#xff0c;我们往往受限于专业和工作&#xff0c;对自己所处行业之外的事物了解不多。今天&#xff0c;数据汪带大家扒一扒各个行业中不为人知的“潜规则”&#xff0c;看看你们知道几个&#xff1f;看完上面20个“潜规…

“工业互联网平台“将成为工业制造企业的标配

目 录1. 概述2. 背景3. 评述1. 概述“‘工业互联网平台’将成为工业制造企业的标配”的命题既是基于工业生产企业现实情况的判断&#xff0c;又是对工业企业未来发展的需求判断。前途是光明的&#xff0c;但是道路是曲折的。前途的光明是基于工业企业现实…