今天看到某安全公司网站上有关渗透测试的内容,感觉不错,转了过来
原文: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 等)也可以作为信息收集的有效工具。