热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于渗透测试

今天看到某安全公司网站上有关渗透测试的内容,感觉不错,转了过来原文:http:cimersec.w92.mc-test.comindex.phpProfessionview

今天看到某安全公司网站上有关渗透测试的内容,感觉不错,转了过来大笑

原文:http://cimersec.w92.mc-test.com/index.php/Profession/view/id/9



渗透测试,是指为了对客户目标网络的安全性进行实际检查,进行带有攻击性行为的全面的安全压力测试;是评估客户目标主机和网络的安全性时模仿黑客特定攻击行为的过程。

详细地说,是指君立华域安全工程师尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,对客户目标网络的安全性作深入的探测,发现系统最脆弱环节的过程。

测试过程中,会采用各种手段和途径,包括端口扫描,漏洞扫描,密码猜测,密码破解,数据窃听,伪装欺骗等技术方式。最终目的就是为了检验该网络各个环节的安全性。

渗透测试方法

根据测试者掌握信息的多少进行分类

根据不同的测试需求,测试前掌握被测对象的信息多少是不同的。渗透测试在实际进行中具体划分为以下二种不同的方法:黑盒测试和白盒测试。

黑盒测试

黑盒测试又被称为“Zero-knowledge testing”,君立华域渗透测试工程师完全处于对系统一无所知的状态,通常这类测试的最初信息来自于DNS、Web、Email及各种公开对外的服务器。

白盒测试

白盒测试与黑盒测试不同,君立华域渗透测试工程师可以通过正常渠道向被测者要求,取得各种资料,包括网络拓扑、员工资料甚至网站或其他程序的代码片断,也能够与被测组织内的其他员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟客户组织内部雇员的越权操作,和预防万一组织重要信息泄露,网络黑客能利用这些信息对组织构成的危害。

根据测试者的位置进行分类

测试目标不同,采用的技术也会有一定差异。测试者在系统网络的不同位置、不同攻击路径下进行渗透测试,结果反应的问题迥然不同。

内网测试

内网测试指的是君立华域渗透测试工程师由内部网络发起测试,这类测试能够模拟客户组织内部违规操作者的行为。

外网测试

外网测试指的是君立华域渗透测试工程师完全处于外部网络(例如拨号、ADSL或外部光纤),模拟从客户组织外部发起的攻击行为,可能来自于对客户组织内部信息一无所知的攻击者也可能来自于对客户组织内部信息一清二楚的攻击者。

不同网段之间的测试

这种渗透方式是从客户某内/外部网段,尝试对另一网段/Vlan进行渗透。

渗透测试流程

渗透测试的各个阶段图:


预攻击阶段

基本网络信息获取:

1. ping 目标网络得到 IP 地址和 ttl 等信息

2. tcptraceroute 和 traceroute 的结果

3. whois 结果

4. netcraft 获取目标可能存在的域名、Web 及服务器信息

5. curl 获取目标 web 基本信息

6. nmap 对网站进行端口扫描并判断操作系统类型

7. google、yahoo、baidu 等搜索引擎获取目标信息

8. 采用 FWtester、hping3 等工具进行防火墙规则探测

常规漏洞扫描和采用商用软件进行检测:

1. 结合使用游刃与 Nessus 等商用或免费的扫描工具进行漏洞扫描

2. 采用 SolarWind 对网络设备等进行发现

3. 采用 nikto、webinspect 等软件对 web 常见漏洞进行扫描

4. 采用如 AppDetectiv 之类的商用软件对数据库进行扫描分析

对 Web 和数据库应用进行分析:

采用 WebProxy、SPIKEProxy、webscarab、ParosProxy、Absinthe 等

工具进行分析:

1. 用 Ethereal 抓包协助分析

2. 用 webscan、fuzzer 进行 SQL 注入和 XSS 漏洞初步分析

3. 手工检测 SQL 注入和 XSS 漏洞

4. 采用类似 OScanner 的工具对数据库进行分析

应用分析的注意事项:

1. 检查应用系统架构、防止用户绕过系统直接修改数据库

2. 检查身份认证模块,防止非法用户绕过身份认证

3. 检查数据库接口模块,防止用户获取系统权限

4. 检查文件接口模块,防止用户获取系统文件

5. 检查其他安全威胁

攻击阶段

基于通用设备、数据库、操作系统和应用的攻击

可以采用各种公开及私有的缓冲区溢出程序代码,一个比较好的Exploit搜索站点是:http://www.frsirt.com/exploits/。也可以采用诸如metasploitFramework之类的利用程序集合。

基于应用的攻击

基于 web、数据库或特定的 B/S 或 C/S 结构的网络应用程序存在的弱点进攻击,常见的如 SQL 注入攻击、跨站脚本攻击等均属于这一类型。 

口令猜解技术

口令是信息安全里永恒的主题,进行口令猜解可以采用游刃、X-Scan、Brutus、Hydra、溯雪等工具。

后攻击阶段

口令嗅探与键盘记录

通过嗅探、键盘记录、木马等软件获取客户相关口令及键盘信息。

口令破解

利用L0phtCrack、John the Ripper、Cain 等软件破解客户加密后的口令。

攻击路径

内网测试

内网测试指的是君立华域渗透测试工程师由客户内部网络发起测试,这类测试能够模拟客户内部违规操作者的行为。内部主要可能采用的渗透方式:

1. 远程缓冲区溢出;

2. 口令猜测;

3. B/S 或 C/S 应用程序测试(如果涉及 C/S 程序测试,需要提前准备相关客户端软件供测试使用);

外网测试

外网测试指的是君立华域渗透测试工程师完全处于外部网络(例如拨号、ADSL 或外部光纤),模拟对客户内部状态一无所知的外部攻击者的行为。

1. 对网络设备的远程攻击;

2. 口令管理安全性测试;

3. 防火墙规则试探、规避;

4. Web 及其它开放应用服务的安全性测试;

不同网段Vlan 之间的渗透

这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan 进行渗透。这类测试通常可能用到的技术包括:

1.  对网络设备的远程攻击;

2.  对防火墙的远程攻击或规则探测、规避尝试;

信息收集技术

信息收集是每一步渗透攻击的前提,通过信息收集可以有针对性地制定模拟攻击测试计划,提高模拟攻击的成功率,同时可以有效的降低攻击测试对系统正常运行造成的不利影响。信息收集的方法包括 Ping Sweep、DNS Sweep、DNS zone transfer、操作系统指纹判别、应用判别、账号扫描、配置判别等。信息收集常用的工具包括商业网络安全漏洞扫描软件(例如:游刃、极光等),免费安全检测工具(例如:NMAP、NESSUS 等)。操作系统内置的许多功能(例如:TELNET、NSLOOKUP、IE 等)也可以作为信息收集的有效工具。



渗透测试,是指为了对客户目标网络的安全性进行实际检查,进行带有攻击性行为的全面的安全压力测试;是评估客户目标主机和网络的安全性时模仿黑客特定攻击行为的过程。

详细地说,是指君立华域安全工程师尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,对客户目标网络的安全性作深入的探测,发现系统最脆弱环节的过程。

测试过程中,会采用各种手段和途径,包括端口扫描,漏洞扫描,密码猜测,密码破解,数据窃听,伪装欺骗等技术方式。最终目的就是为了检验该网络各个环节的安全性。

渗透测试方法

根据测试者掌握信息的多少进行分类

根据不同的测试需求,测试前掌握被测对象的信息多少是不同的。渗透测试在实际进行中具体划分为以下二种不同的方法:黑盒测试和白盒测试。

黑盒测试

黑盒测试又被称为“Zero-knowledge testing”,君立华域渗透测试工程师完全处于对系统一无所知的状态,通常这类测试的最初信息来自于DNS、Web、Email及各种公开对外的服务器。

白盒测试

白盒测试与黑盒测试不同,君立华域渗透测试工程师可以通过正常渠道向被测者要求,取得各种资料,包括网络拓扑、员工资料甚至网站或其他程序的代码片断,也能够与被测组织内的其他员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟客户组织内部雇员的越权操作,和预防万一组织重要信息泄露,网络黑客能利用这些信息对组织构成的危害。

根据测试者的位置进行分类

测试目标不同,采用的技术也会有一定差异。测试者在系统网络的不同位置、不同攻击路径下进行渗透测试,结果反应的问题迥然不同。

内网测试

内网测试指的是君立华域渗透测试工程师由内部网络发起测试,这类测试能够模拟客户组织内部违规操作者的行为。

外网测试

外网测试指的是君立华域渗透测试工程师完全处于外部网络(例如拨号、ADSL或外部光纤),模拟从客户组织外部发起的攻击行为,可能来自于对客户组织内部信息一无所知的攻击者也可能来自于对客户组织内部信息一清二楚的攻击者。

不同网段之间的测试

这种渗透方式是从客户某内/外部网段,尝试对另一网段/Vlan进行渗透。

渗透测试流程

渗透测试的各个阶段图:

预攻击阶段

基本网络信息获取:

1. ping 目标网络得到 IP 地址和 ttl 等信息

2. tcptraceroute 和 traceroute 的结果

3. whois 结果

4. netcraft 获取目标可能存在的域名、Web 及服务器信息

5. curl 获取目标 web 基本信息

6. nmap 对网站进行端口扫描并判断操作系统类型

7. google、yahoo、baidu 等搜索引擎获取目标信息

8. 采用 FWtester、hping3 等工具进行防火墙规则探测

常规漏洞扫描和采用商用软件进行检测:

1. 结合使用游刃与 Nessus 等商用或免费的扫描工具进行漏洞扫描

2. 采用 SolarWind 对网络设备等进行发现

3. 采用 nikto、webinspect 等软件对 web 常见漏洞进行扫描

4. 采用如 AppDetectiv 之类的商用软件对数据库进行扫描分析

对 Web 和数据库应用进行分析:

采用 WebProxy、SPIKEProxy、webscarab、ParosProxy、Absinthe 等

工具进行分析:

1. 用 Ethereal 抓包协助分析

2. 用 webscan、fuzzer 进行 SQL 注入和 XSS 漏洞初步分析

3. 手工检测 SQL 注入和 XSS 漏洞

4. 采用类似 OScanner 的工具对数据库进行分析

应用分析的注意事项:

1. 检查应用系统架构、防止用户绕过系统直接修改数据库

2. 检查身份认证模块,防止非法用户绕过身份认证

3. 检查数据库接口模块,防止用户获取系统权限

4. 检查文件接口模块,防止用户获取系统文件

5. 检查其他安全威胁

攻击阶段

基于通用设备、数据库、操作系统和应用的攻击

可以采用各种公开及私有的缓冲区溢出程序代码,一个比较好的Exploit搜索站点是:http://www.frsirt.com/exploits/。也可以采用诸如metasploitFramework之类的利用程序集合。

基于应用的攻击

基于 web、数据库或特定的 B/S 或 C/S 结构的网络应用程序存在的弱点进攻击,常见的如 SQL 注入攻击、跨站脚本攻击等均属于这一类型。 

口令猜解技术

口令是信息安全里永恒的主题,进行口令猜解可以采用游刃、X-Scan、Brutus、Hydra、溯雪等工具。

后攻击阶段

口令嗅探与键盘记录

通过嗅探、键盘记录、木马等软件获取客户相关口令及键盘信息。

口令破解

利用L0phtCrack、John the Ripper、Cain 等软件破解客户加密后的口令。

攻击路径

内网测试

内网测试指的是君立华域渗透测试工程师由客户内部网络发起测试,这类测试能够模拟客户内部违规操作者的行为。内部主要可能采用的渗透方式:

1. 远程缓冲区溢出;

2. 口令猜测;

3. B/S 或 C/S 应用程序测试(如果涉及 C/S 程序测试,需要提前准备相关客户端软件供测试使用);

外网测试

外网测试指的是君立华域渗透测试工程师完全处于外部网络(例如拨号、ADSL 或外部光纤),模拟对客户内部状态一无所知的外部攻击者的行为。

1. 对网络设备的远程攻击;

2. 口令管理安全性测试;

3. 防火墙规则试探、规避;

4. Web 及其它开放应用服务的安全性测试;

不同网段Vlan 之间的渗透

这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan 进行渗透。这类测试通常可能用到的技术包括:

1.  对网络设备的远程攻击;

2.  对防火墙的远程攻击或规则探测、规避尝试;

信息收集技术

信息收集是每一步渗透攻击的前提,通过信息收集可以有针对性地制定模拟攻击测试计划,提高模拟攻击的成功率,同时可以有效的降低攻击测试对系统正常运行造成的不利影响。信息收集的方法包括 Ping Sweep、DNS Sweep、DNS zone transfer、操作系统指纹判别、应用判别、账号扫描、配置判别等。信息收集常用的工具包括商业网络安全漏洞扫描软件(例如:游刃、极光等),免费安全检测工具(例如:NMAP、NESSUS 等)。操作系统内置的许多功能(例如:TELNET、NSLOOKUP、IE 等)也可以作为信息收集的有效工具。



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 本文介绍了Java集合库的使用方法,包括如何方便地重复使用集合以及下溯造型的应用。通过使用集合库,可以方便地取用各种集合,并将其插入到自己的程序中。为了使集合能够重复使用,Java提供了一种通用类型,即Object类型。通过添加指向集合的对象句柄,可以实现对集合的重复使用。然而,由于集合只能容纳Object类型,当向集合中添加对象句柄时,会丢失其身份或标识信息。为了恢复其本来面貌,可以使用下溯造型。本文还介绍了Java 1.2集合库的特点和优势。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
author-avatar
大工
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有