1、基础知识
1.1、HTTP
一个客户端请求应答的标准
基于TCP层次的应用层协议,默认端口80
1.2、HTTPS
以安全为目标的HTTP通道,简单来说是HTTP的安全版,既HTTP下加入SSL层,HTTPS的安全基础是SSL,默认端口是443
1.3、SSL(Secure Sockets Layer 安全套接字协议)
SSL是为网络通信提供安全及数据完整性的一种安全协议,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。
1.4、URL(统一资源定位符)
浏览器通过超文本传输协议,将Web服务器 站点上的网页代码提取出来,并翻译成网页
服务方式或协议+主机地址和端口号+资源的具体地址+查询字符串+参数=参数值
1.5、Web工作过程
当单击某一个链接时,HTTP开始工作,首先建立连接,客户机发送请求到服务器,服务器接收请求后响应,
1.6、浏览器的工作过程
1.7、语言基础
HTML:用来做网页的表现层,字体链接图片
Javascript:用在客户端的脚本语言,可以在HTML网页中使用,增加东来功能
后端语言:用来处理逻辑层的,提供网页的功能和完成的动作,如数据查询,计算利息,生成图表
SQL:是一种数据库查询和程序设计语言,用于存储数据以及查询,更新和管理关系型数据库系统,也是数据库脚本文件扩展名
1.8、HTTP方法
options:获取服务器支持的HTTP方法列表
get:请求正文
head:请求头部
post:提交数据
put:上传文件
delete:删除文件
move:移动文件
copy:复制文件
trace:跟踪调试
1.9、HTTP响应状态码
由三位数字组成,HTTP响应状态码是告知用户是否请求成功或者需要采取其他动作
200请求成功,301重定向,302重定向,401认证失败,403无权访问,404文件不存在,500服务器错误
1.10、术语
肉鸡:是中了我们的木马,或者留了后门,可以被我们远程操控的机器,现在许多人把有WEBSHELL权限的机器也叫肉鸡。
木马:特洛伊木马,有盗号专用的木马,也有远程控制专用的木马,如:魔兽木马生成器、冰河、灰鸽子等。
挂马:就是在别人的网站文件里放入网页木马或者将代码嵌入到正常的网页文件中,以使浏览者中马。
端口:是计算机与外界通讯交流的出口,不同的端口开放了不同的服务。
后门:这个就是入侵后为方便我们下次进入肉鸡方便点所留下的东西,亲切的称为后门,Rookit等。
CRACK:接触过软件破解的人一定了解这个词, CRACKER就是软件破解者的意思,许多共享软件就是我们的CRACKER来完成破解的,就是现在俗称的XX软件破解版。
POC:Proof of Concept,中文意思是“观点证明”。这个短语会在漏洞报告中使用,漏洞报告中的POC则是一段说明或者一个攻击的样例,使得读者能够确认这个漏洞是真实存在的。
EXP:Exploit,中文意思是“漏洞利用”。意思是一段对漏洞如何利用的详细说明或者一个演示的漏洞攻击代码,可以使得读者完全了解漏洞的机理以及利用的方法。
VUL:Vulnerability的缩写,泛指漏洞。
CVE:CVE的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露,例如CVE-2015-0057、CVE-1999-0001等等。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。如果在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题。可以在https://cve.mitre.org/网站根据漏洞的CVE编号搜索该漏洞的介绍,也可以在中文社区http://www.scap.org.cn/上搜索关于漏洞的介绍。
0DAY:在计算机领域中,零日漏洞或零时差漏洞(英语:Zero-dayexploit)通常是指还没有补丁的安全漏洞,而零日攻击或零时差攻击(英语:Zero-dayattack)则是指利用这种漏洞进行的攻击。提供该漏洞细节或者利用程序的人通常是该漏洞的发现者。
2、渗透测试定义和流程
英文:Penetration Testing
定位:完全站在攻击者的角度对目标系统进行安全性测试过程
解释:一种安全测试的手段
2.1、渗透测试类型
黑盒测试:测试人员是在对目标系统一无所知的状态下进行测试工作,除了知道目标的基本范围之外,所有的信息都依赖测试人员自行发掘。黑盒测试主要是模拟来自互联网的攻击者,让用户了解自己系统对外来攻击者的真实安全情况。
白盒测试:测试人员在测试前可从目标系统中获得足够的初始信息,例如网络地址段、使用的网络协议、拓扑图、应用列表等等。测试人员可以利用掌握的资料进行内部探查,甚至与企业的员工进行交互。这类测试的目的是模拟组织内部网络管理人员的越权操作,和预防组织重要信息泄露。
灰盒测试:对测试目标有一定的了解。这类测试的目的是模拟组织内部普通员工或对系统有一定了解的非法接入用户,可以综合考察组织信息安全工作的运转情况,检验信息安全工作人员在安全事件响应和处理方面的实际能力。
2.2、渗透测试的目的
了解系统的安全保护程度和有效性
不同的安全保护程度和安全保护的有效性决定渗透测试的结果
了解攻击者可能利用的途径
攻击者的经验决定可能利用的途径,但成熟的攻击者的选择在很大程度上是相似的,所以要求攻击者必须是成熟的、专业的,这样才能了解信息系统最脆弱的环节
了解当前系统所面临最重要的问题
渗透测试发现的问题并不全面,这也是风险评估存在的意义
2.3、渗透测试的场景
内网测试:内网测试指的是渗透测试人员由内部网络发起测试,这类测试能够模拟企业内部违规操作者的行为。最主要的“优势”是绕过了防火墙的保护。内部主要可能采用的渗透方式:远程缓冲区溢出,口令猜测,以及B/S或C/S应用程序测试(如果涉及C/S程序测试,需要提前准备相关客户端软件供测试使用)
外网测试:外网测试指的是渗透测试人员完全处于外部网络,模拟对内部状态一无所知的外部攻击者的行为。包括对网络设备的远程攻击,口令管理安全性测试,防火墙规则试探、规避,Web及其它开放应用服务的安全性测试。
2.4、渗透测试的流程
2.4.1、制定渗透测试方案
- 在渗透测试之前应该制订完善的方案,方案中应包括:渗透测试目标、渗透测试范围、测试时间与人员、渗透测试计划、渗透测试方法、所采用的工具、风险及规避措施、测试过程管理等。
- 渗透测试方案中所采用的扫描及攻击软件工具应具有可控性,保证工具本身的安全性。
- 制定渗透测试过程中,当目标系统处于非正常工作状态时的恢复方案。
- 渗透测试方案中应制定保密措施,应明确指定渗透测试的参加人员,并且在渗透测试过程中对数据严格保密,测试结束后数据和资料应交还被测方,并签定保密协议。
- 应让被测方知晓渗透测试所有细节和风险,所有过程都在被测方的控制下进行,并在测试过程中实时与被测方沟通。
- 所有测试项目均应获得被测方的书面同意。
2.4.2、收集分析目标系统信息
网络信息收集:从网络上搜索一些相关信息,包括Google Hacking, Whois查询,DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)
目标系统信息收集:通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。从获取的地址列表中通过扫描了解其组织架构及操作系统使用情况。
端口/服务信息收集:通过扫描获取目标的端口开放信息和对应的开放服务信息
应用信息收集:通过上边的信息搜集和端口/服务信息尽可能多找到目标所属的应用系
统。
2.4.3、实施攻击
攻击阶段 | 后攻击阶段 |
---|---|
漏洞发现 | 搜集密码 |
漏洞利用 | 进一步渗透 |
权限提升 | 痕迹清除 |
2.4.4、输出测试报告
测试结束后,通过分析渗透测试得到的数据,通过识别威胁、脆弱性和已有控制措施,对被测网络存在的风险进行综合评估。并向被测方提交详细的渗透测试报告,重点是给出系统风险和明确的结论,使受测机构能够快速掌握问题的根源,同时要向受测机构指出合理的解决方案。
2.5、渗透测试流程图
3、应用安全社区和OWAP TOP 10
3.1、两个重要的WEB应用安全组织
WASC(Web Application Security Consortium)
是一个由安全专家、行业顾问和诸多组织的代表组成的国际团体。WASC组织的关键项目之一是“Web 安全威胁分类”,也就是将 Web 应用所受到的威胁、攻击进行说明并归纳成具有共同特征的分类。该项目的目的是针对 Web 应用的安全隐患,制定和推广行业标准术语。
OWAPS(Open Web Application Security Project)
该组织致力于发现和解决不安全 Web应用的根本原因。它们最重要的项目之一是“Web 应用的十大安全隐患”,总结了目前 Web 应用最常受到的十种攻击手段,并且按照攻击发生的概率进行了排序。这个项目的目的是统一业界最关键的 Web 应用安全隐患,并且加强企业对 Web 应用安全的意识。
3.2、常见的安全社区
- CNNVD:中国国家漏洞库(www.cnnvd.org.cn)
- CNVD:中国国家信息安全漏洞共享平台(www.cnvd.org.cn)
- SCAP中文社区:http://www.scap.org.cn/
- CVE:通用漏洞与披露
- exploit-db:https://www.exploit-db.com/
- 安全字典:www.secdic.com
- T00LS: https://www.t00ls.net
- FreeBuf互联网安全新媒体平台:www.freebuf.com
- 安全客: www.anquanke.com
- 嘶吼 RoarTalk:www.4hou.com
- 安全牛: www.aqniu.com
- 安全脉搏: www.secpulse.com
- MottoIN: www.mottoin.com
4、信息搜集
信息收集是指通过各种方式及工具获取所需要的信息。
信息收集是信息得以利用的第一步,也是关键的一步。
信息收集工作的好坏,直接关系到最终结果。
4.1、域名信息搜集
域名注册邮箱:可以通过社工方式寻找到邮箱的密码,控制邮箱后即可获得域名解析权,可以造成域名劫持攻击
子域名搜集:搜集更多的子域名可以扩大攻击面,从最弱的环节进行攻击
搜集域名信息所采用的手段主要有whois查询,子域名搜集和爆破,DNS域传送漏洞利用等
4.2、Whois查询
就是查询一个用来查询域名是否已经被注册,以及注册的域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)
通过域名Whois服务器查询,可以查询域名归属者的联系方式,以及注册和到期时间,可以使用站长工具来查询域名注册信息
网址:http://whois.chinaz.com
Linux命令:whois test.com
windows命令:nslookup test.com
4.3、子域名搜集
可以通过搜索引擎的site语法搜集子域名信息
语法格式:site:test.com
另外可以使用subdomainbrute工具,下载:https://github.com/lijiejie/subDomainsBrute
4.4、Google Hack
Google等搜索引擎中收录了大量存在弱点的网站,通过特定的搜索语法,可以准确的找到这些网站,这种特定的搜索语法就是GoogleHack。
根据GoogleHack得到的结果,可以作为下一步渗透思路的参考。
intext | intext:验证码 | 把网页正文中某个关键字做为搜索条件 |
---|---|---|
intitle | intitle:后台登陆 | 把网页标题中某个关键字做为搜索条件 |
inurl | inurl:admin.php | 搜索URL中包含指定关键字的网站 |
site | site:secdic.com | 返回指定域名所有被收录的URL |
这些语法可以自由组合,比如搜索国内所有大学被搜索引擎收录的后台管理页面,可使用
的语法有:
site:edu.cn inurl:admin.php
site:edu.cn intitle:后台登录
site:edu.cn intext:后台登录
4.5、敏感目录和文件扫描
目录扫描,就是通过挂载字典的方式,拼接URL并逐个访问,根据服务器返回的响应判断文件或目录是否存在。一般情况下,当服务器返回状态码为200时代表文件存在,返回403时代表目录存在。根据扫描得到的敏感文件和目录可以作为下一步渗透思路的参考。
比如扫描到了在线编辑器,那么可通过编辑器相关漏洞进行渗透;比如扫描到了管理后台,那么可以根据后台标记的CMS版本信息判断是否存在可利用漏洞,等等。
常用的工具有:wscan、wwwscan、御剑等。