课前准备(灵魂拷问):
你知道TCP SYN扫描和TCP连接扫描的差异吗?你知道nmap端口扫描返回的三种端口状态是什么吗?你知道静态代码测试和动态代码测试的差异是什么吗?一、构建安全评估与测试方案1、安全测试
安全测试是验证某项掌握方法是否正常运行,这些测试包括自动化扫描、工具赞助的渗透测试、试图毁坏安全的手动测试。测试须要考虑的成分,对正常业务的影响须要掌握最小。
2、安全评估
安全评估是对系统、运用程序的安全性进行全面审查,须要进行风险评估,识别出可能造成危害的安全漏洞,并提出修复建议。安全评估的紧张事情成果,是向管理层提高评估报告。下面是我对内网虚拟机进行的漏洞扫描的结果,利用的是nessus。
3、安全审计
审计是为了向第三方证明一些东西,比如掌握方法的有效性等。末了出来的报告和安全评估报告很像,切实其实便是一摸一样。
内部审计:组织内部审计职员实行,审计结果直接向高层管理者申报请示。外部审计:公司外的审计公司实行,须要没有利益冲突,且须要公信力。第三方审计:一样平常是监管单位,依据法律对被监管单位进行审计。审计标准:一流企业做标准,COBIT信息和干系技能掌握目标便是一个审计通用框架。二、开展漏洞评估1、漏洞描述
通用漏洞表露CVE:供应描述安全漏洞的命名系统通用漏洞评分系统CVSS:供应描述安全漏洞严重性的标准化评分系统通用配置列举CCE:供应系统配置问题的命名系统通用平台列举CPE:供应操作系统、运用程序以及设备的命名系统可扩展配置检讨表描述格式XCCDF:供应描述安全检讨表的措辞开放漏洞评估措辞OVAL:供应描述安全测试过程的措辞2、漏洞扫描
网络创造扫描:扫描一段IP地址,探测存在开放网络端口的系统。网络扫描实际上并不探测系统漏洞,而是供应扫描报告,指出网络上探测到的系统、通过网络暴露出来的端口列表、位于扫描器和被测系统网络之间的做事器防火墙。
TCP SYN扫描:半开放扫描,向目标系统的每个端口发送一个设置SYN标识位的数据包TCP connect扫描:向远程系统的某个端口创建全连接,不用root权限TCP ACK扫描:发送设置ACK标识位的数据包,可以考试测验确定防火墙的规则Xmas扫描:圣诞树扫描,发送设置FIN、PSH、URG标识位的数据包端口扫描最出名的便是Nmap了,类似的主动扫描软件的事理,都是利用Banner Grabbing标记提取技能,识别出系统上运行做事的变量和版本。这种技能考试测验与做事进行连接,读取欢迎屏幕或Banner上供应的详细信息,赞助完成版本指纹识别。
网络漏洞扫描:不止于探测开放端口,会连续探测目标系统或网络,创造是否存在已知漏洞。这些漏扫工具通过测试,来确认某个别系是否受到漏洞数据库中的漏洞的影响。
漏扫工具:
Nessus(商业,家庭版免费)OpenVAS(开源)Web运用漏洞扫描,2年前在知乎讲了节课,深入浅出的讲述了Owasp10中最主要的几点。有兴趣的小伙伴可以听听,这都是渗透测试岗位必须懂的事理和实战履历~
SQL注入(拖库)【Web安全】SQL注入攻击戒备
作者 ailx10
XSS注入(跨站脚本)
【Web安全】XSS攻击戒备
作者 ailx10
XSRF注入(跨站要求假造)
【Web安全】CSRF攻击戒备
作者 ailx10
这是通过Nessus对知乎首页的漏洞探测,显示知乎首页没有任何Web漏洞,是不是要给程序员小哥哥奖赏一个鸡腿呢?除了Nessus,还须要知道的是Web漏扫的工具:
Acunetix(商业Web漏洞扫描器)Nikto(开源Web漏洞扫描器,僵尸网络常常利用它)Wapiti(开源Web漏洞扫描器)Burp Suite(渗透测试必知必会)数据库漏洞扫描:大多数数据库受防火墙的保护,避免外部直接访问,但是Web运用会供应这些数据库的入口,攻击者可能利用Web运用程序来直接攻击后端数据库。
说到SQL注入,那就不得不提SQLMap,这是海内头号白帽子黑客「余玄」推举渗透测试必会的软件,我口试的时候基本上都会问下面这个问题:
「有没有利用SQLMap对POST要求进行SQL注入探测?」
基本上就可以判断有没有SQLMap实战履历了,由于网上基本都是Get要求的例子,Post要求很多口试者就懵了。关于SQLMap的实战用法,我写了一篇专栏文章,可以看看。
ailx10:手把手带你学习SQLMAP
SQLMap实际上超级强大,在终端配置一下ShadowsSocks代理,这样可以直接访问谷歌,实现谷歌自动化网站SQL注入探测,我这里演示了一下,选择了第四个URL,这里很大是运气身分,显示一个TV网站,详细是啥这里就不去探究了。我预测10~20年前的中美黑客大战,便是利用这个方法来进行漏洞探测的。
export ALL_PROXY=socks5://127.0.0.1:1080sqlmap -g inurl:php?id=
接下来一贯默认选择,就像安装软件下一步下一步一样大略,末了一盏茶的功夫,结果出来了,运气还不错,有好几个SQL注入漏洞。
boolean-based blinderror-basedand/or time-based blindunion query3、渗透测试
渗透测试职员常日利用Metasploit对目标系统进行漏洞利用,关于Metasploit的利用,可以参考我的知乎专栏文章,这篇文章先容了WIN7主机的ms17-010漏洞和XP主机的ms08-067漏洞,并进行了渗透攻击演示。
ailx10:metasploit渗透测试入门
白盒渗透测试:向攻击者供应目标系统的详细信息,减少了侦察探测的过程,缩短了攻击韶光,提升创造漏洞的可能性。灰盒渗透测试:部分知识测试,为了平衡白盒渗透测试和黑盒渗透测试的优缺陷,由于本钱或韶光限定,须要一些知识来完成测试。黑盒渗透测试:攻击之前不会向渗透测试职员透露任何信息,仿照外部攻击者,须要确保渗透测试带来的影响,提前得到高等管理员的授权。三、测试软件
1、代码审查与测试
代码审查:代码走读、自动化功能测试静态测试:通过剖析源代码或编译后的运用程序,评估软件的安全性动态测试:检测软件在运行状态下的安全性,测试SQL注入、XSS漏洞等,火焰图测性能模糊测试:分外的动态测试技能,向软件供应许多不同类型的输入来测试其限定,创造未检测到的毛病,下面是我通过zzuf工具,对输入是1010个数字0进行模糊测试天生的新输入,里面大部分还是0,但是会涌现一点暇疵数据,比如1、4、8、p、空格、乱码等2、接口测试
运用编程接口API:统一Web接口,确保API是安全可靠的用户界面UI:为终端用户供应与软件交互的能力,Web页面、图形化用户界面物理接口:测试插拔、断电等非常情形3、测试覆盖率剖析
分支覆盖率:测试每一个if语句是否被实行?条件覆盖率:测试每个逻辑是否被覆盖?函数覆盖率:测试每一个函数是否被调用?循环覆盖率:测试每一个循环是否都运行过?语句覆盖率:测试是不是所有代码都运行过?4、网站监测
被动监测:捕获网络传输过程中的真实流量,进行剖析主动监测:对网站实行假造的事务活动,进行剖析四、履行安全管理流程1、日志审查
安全信息和事宜管理SIEM,自动化日志审核对象,广泛网络系统、运用中存在的syslog日志须要依赖网络韶光协议NTP,确保SIEM发送日志记录的系统和SIEM本身的时钟是同步的2、账户管理
管理具有特权的用户列表以及他们被付与的特权比拟授权列表的用户,创造有没有未授权的用户比拟授权列表的用户权限,创造有没有未授权的运用3、关键绩效和风险指标
遗留漏洞的数量修复漏洞的韶光漏洞/毛病重现被盗用账号的数量实验环境中扫描创造的毛病数量重复审计的结果考试测验访问已知恶意站点的用户