文章目录
第1章 绪 论
1.1渗透测试的介绍
渗透测试是通过实际攻击进行安全测试与评估的方法(Pentratiion Testing,Pentest),是一种通过模拟恶意攻击的技术与方法挫败目标系统安全措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。
1.2web渗透测试
目前的渗透测试主要是针对web的渗透测试,web渗透测试是从web脚本展开的,但是在整个测试过程中可能要测试四个方面:服务器(Apache、 Nginx、 IIS等),中间件(tomcat、jetty、apache hpptd、JBOSS、webloigc等),数据库(MySQL、SQL Server、数蚕数据库、Oracle数据库等),Web App(Web脚本程序)。
1.3渗透测试工程师
1.3.1渗透测试工程师
拥有web测试技能的人通常称为渗透测试工程师。
1.3.2渗透测试工程师的技能
一是程序员的开发思维,要掌握程序员究竟是如何开发当前应用程序,使用到哪些技术,以及他其中的一些逻辑是怎样来进行的。
二是模拟恶意攻击者的思路和方法,通过模拟攻击者的思路和方法,从而达到模拟的效果。
三是掌握足够的渗透测试技术,包含:数据库,asp.php.xss 等各种语言,Http等协议、代码审计、web渗透,脚本渗透、java,c++ 等。
第2章 相关技术与基础知识简介
2.1web渗透测试步骤
1.信息收集;收集目标所拥有的一切信息,包括泄露信息等等。
2.整站映射:针对于web脚本将其所有的技术探测到。
3.漏洞扫描:利用漏洞扫描器进行扫描,也可以自行编写对应的漏洞扫描器来进行对应的探测。
4.漏洞利用:利用扫描到的结果获取权限,还可能需要拓展成果继续提权。
5.测试报告:最后为用户提供一个测试报告,报告给出漏洞信息,验证信息,解决方法。
2.2基本渗透测试工具
1.HTTP代理:是介于浏览器与服务器直接的中间桥梁,可以通过他来截取对应请求以及响应,同时可以查看对应数据包并进行修改。
常用工具:Burpsuite
2.网站爬虫:对测试的web app进行整个网站的爬取测试。
常用工具:ZAP、Burpsuite、Httrack
Python工具:Scrapy
3.web漏洞扫描:针对web技术漏洞扫描。
常用工具:Appscan,AWVS
Python工具:工具W3af
4.目录探测:对web app不链接页面探测。
常用工具:Dirb,wfuzz
5.特定任务:需要自动化探测与利用的步骤很多,某些新技术没有探测工具可以用简单高效的编程来开发安全工具,开发以使用Python开发安全工具为首选。
第3章漏洞检测实时演示
3.1演示环境
本次演示环境为Windows7平台下的PyCharm。
检测目标以MS15-034为例。
综合严重的等级为严重。
如图3-1、图3-2所示:
图3-1 MS15-034执行摘要
图3-2 MS15-034漏洞信息
3.2演示步骤
3.2.1获取任意代码
在https://www.exploit-db.com搜索到对应的漏洞,找到HTTP请求,如图3-3、图3-4所示:
图3-3在exploit-db内搜查MS15-034
"GET / HTTP/1.1\r\nHost: stuff\r\nRange: bytes=0-18446744073709551615\r\n\r\n";
图3-4查找到HTTP请求
3.2.2分析漏洞原因
是因为发送了对应的HTTP请求,导致触发漏洞。
3.2.3 导入request模块
通过导入模块发送HTTP请求,并接收请求,如图3-5所示:
图3-5发送HTTP请求并接收请求
3.2.4搭建测试环境
控制面板->打开或关闭Windows功能->勾画可承载的web核心以及信息服务,如图3-6、图3-7所示:
图3-6搭建测试环境
图3-7 80端口开放,IIS开启成功
3.2.5 判断中间件
如图3-8、图3-9、图3-10、图3-11所示:
图3-8获取IP地址
图3-9替换IP
图3-10获得响应头,发现Server
图3-11输出对应Server并获取值
3.2.6判断IIS值
Windows7,Windows2008 IIS是7.5,Windows2012 IIS是8.0为了扫描探测的准确性,我们需探测中间件的IIS值,用remote_serve 来存储对应的中间件,如图3-12、图3-13所示:
图3-12探测中间件IIS值
图3-13储存中间件
3.2.7判断server类型
如图3-14所示:
图3-14 判断server类型
3.2.8扫描漏洞
如图3-15所示:
图3-15成功发现漏洞MS15-034
3.3源码分析
核心代码,如图3-16所示:
图3-16 核心代码
3.4与其他工具进行效果对比
在linux系统中用kali对ms15-034进行集成,如图3-17所示:
图3-17 kali效果对比
返回Target may be vulnerable证明漏洞确实存在,如图3-18所示:
图3-18 返回Target may be vulnerable
第4章渗透测试的意义
1.渗透测试能够通过识别安全问题来帮助一个单位了解当前的安全状况,促使许多单位开发操作规划来减少攻击或误用的威胁。
2.撰写良好的渗透测试结果可以帮助管理人员建立可靠的商业案例,以便证明所增加的安全性预算或者将安全性问题传达到高级管理层。
3.安全性不是某时刻的解决方案,而是需要严格评估的一个过程。安全性措施需要进行定期检查,才能发现新的威胁。渗透测试和公正的安全性分析可以使许多单位重视他们最需要的内部安全资源。此外,独立的安全审计也正迅速成为获得网络安全保险的一个要求。
4.现在符合规范和法律要求也是执行业务的一个必要条件,渗透测试工具可以帮助许多单位满足这些规范要求。
5.启动一个企业电子化项目的核心目标之一,是实现与战略伙伴、提供商、客户和其他电子化相关人员的紧密协作。要实现这个目标,许多单位有时会允许合作伙伴、提供商、B2B 交易中心、客户和其他相关人员使用可信连接方式来访问他们的网络。一个良好执行的渗透测试和安全性审计可以帮助许多单位发现这个复杂结构中的最脆弱链路,并保证所有连接的实体都拥有标准的安全性基线。
当拥有安全性实践和基础架构,渗透测试会对商业措施之间的反馈实施重要的验证,同时提供了一个以最小风险而成功实现的安全性框架。