网站安全 重要性,徐州网站建设求职简历,WordPress 教育模板,足球推介网2019独角兽企业重金招聘Python工程师标准 各类环境渗透测试简述 一、渗透测试概念 渗透测试 (penetration test)并没有一个标准的定义#xff0c;国外一些安全组织达成共识的通用说法是#xff1a;渗透测试是通过模拟恶意黑客的攻击方法#xff0c;来评估计算… 2019独角兽企业重金招聘Python工程师标准 各类环境渗透测试简述 一、渗透测试概念 渗透测试 (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,明小子 11Web安全测试 Information Gathering也就是一般的信息泄漏包括异常情况下的路径泄漏、文件归档查找等 Business logic testing业务逻辑处理攻击很多情况下用于进行业务绕过或者欺骗等等 Authentication Testing有无验证码、有无次数限制等总之就是看能不能暴力破解或者说容不容易通过认证比较直接的就是“默认口令”或者弱口令了 Session Management Testing会话管理攻击在COOKIE携带认证信息时最有效 Data Validation Testing数据验证最好理解了就是SQL Injection和Cross Site Script等等 12Web测试的工具 目前网上能够找到许多能够用于进行Web测试的工具根据不同的功能分主要有 1.枚举Enumeration DirBuster, http-dir-enum, wget 2.基于代理测试类工具paros, webscarab, Burp Suite 针对WebService测试的部分有一些尚不是很成熟的工具如wsbangwschesswsmapwsdiggerwsfuzzer 这一部分值得一提的是很多渗透测试团队都有着自己的测试工具甚至是0DAY代码最常见的是SQL注入工具现网开发的注入工具如NBSI等 目前都是针对中小企业或者是个人站点/数据库进行的针对大型目标系统使用的一些相对比较偏门的数据库系统如INFORMIXDB2等基本上还不 涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。 针对无线环境的攻击有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