如何对网站进行漏洞扫描及渗透测试?
渗透测试的话分为几个层面进行测试的,如下:
渗透测试的七个步骤_渗透测试七个步骤合集
渗透测试的七个步骤_渗透测试七个步骤合集
渗透测试的七个步骤_渗透测试七个步骤合集
一、内网扫描:扫描代码漏洞等。
二、外网扫描:扫描目前市场已知漏洞等。
三、工程学扫描:排除人为的安全隐患因素。
(以上回答由网堤安全--渗透测试--提供)
1.信息收集:
1)、获取域名的whois信息,获取注册者邮箱姓名电话等。
2)、查询旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。
3)、查看作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞。
4)、查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心出血,mysql,ftp,ssh弱口令等。
5)、扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针。
6)、google hack 进一步探测网站的信息,后台,敏感文件。
2.漏洞扫描:
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,等。
3.漏洞利用:
利用以上的方式拿到webshell,或者其他权限。
4.权限提升:
提权,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉, linu牛漏洞,linux内核版本漏洞提权,linux下的mysql 提权以及oracle低权限提权。
5.日志清理:
结束渗透测试工作需要做的事情,抹除自己的痕迹。
需要规避的风险:
1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。
2. 测试验证时间放在业务量最小的时间进行。
3. 测试执行前确保相关数据进行备份
4. 所有测试在执行前和维护人员进行沟通确认。
渗透测试七个步骤如下:
步骤一:明确目标
1、确定范围:规划测试目标的范围,以至于不会出现越界的情况。
2、确定规则:明确说明渗透测试的程度、时间等。
3、确定需求:渗透测试的方向是web应用的漏洞?业务逻辑漏洞?人员权限管理漏洞?还是其他,以免出现越界测试。
步骤二:信息收集
1、基础信息:IP、网段、域名、端口
2、系统信息:作系统版本
3、应用信息:各端口的应用,例如web应用、邮件应用等等
4、版本信息:所有探测到的东西的版本
5、人员信息:域名注册人员信息,web应用中网站发帖人的id、姓名等
6、防护信息:试着看能否探测到防护的设备,像有没有CDN、waf等
步骤三:漏洞探索
利用上一步中列出的各种系统、应用等等,使用响应的漏洞
方法:
1、漏扫、awvs、IBM appscan等
2、结合漏洞去exploit-db等位置找利用
3、在网上寻找验证poc
步骤四:漏洞验证
将上述中发现有可能可以成功利用的全部漏洞都验证一遍,结合实际情况搭建模拟环境进行实验,成功后再引用于目标。
自动化验证:结合自动化扫描工具提供的结果
手工验证:根据公开的资源进行手工验证
试验验证:自己搭建模拟环境进行验证
登录猜解:可以尝试一下登录口的账号密码的发现
业务逻辑漏洞:如发现业务逻辑漏洞,进行验证
步骤五:信息分析
为下一步实施渗透做准备
1、精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
2、绕过防御机制:是否有防火墙等设备,如何绕过
3、定制攻击路径:工具路径,根据薄弱入口,高内网权限位置,最终目标
4、绕过检测机制:是否有检测机制,流量,杀毒软件 ,恶意代码检测等(免杀)
5、攻击代码:经过试验得来的代码,包括不限于XSS代码,SQL注入语句等
步骤六:获取所需
1、实施攻击,根据前几步的结果,进行攻击
2、获取内部信息:基础设施(网络连接,,路由,拓扑等)
3、进一步渗透:内网入侵,敏感目标
4、持续性存在:一般我们对客户做渗透不需要,但真实的环境中,我们会做rookit、后门,添加管理账号。驻扎手法。
5、清理痕迹:清理相关日志(访问,作),上传文件等
步骤七:信息整理、形成报告
1、整理渗透工具:整理渗透过程中用到的代码,poc、exp等
2、整理收集信息:整理渗透过程中收集到的一切信息
3、整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱的位置信息(为了形成报告,形成测试结果使用)
4、按需整理:按照之前步跟客户确定好的范围和需求来整理资料,并将资料形成报告
5、补充介绍:要对漏洞成因、验证过程和带来的危害进行分析
6、修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
渗透测试步骤
明确目标
· 确定范围:测试目标的范围,ip,域名,内外网。
· 确定规则:能渗透到什么程度,时间?能否修改上传?能否提权等。
· 确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞等等。
信息收集
方式:主动扫描,开放搜索等。
开放搜索:利用搜索引擎获得,后台,未授权页面,敏感等。
漏洞探索
利用上一步中列出的各种系统,应用等使用相应的漏洞。
方法:
1.漏扫,awvs,IBM appscan等。
2.结合漏洞去exploit-db等位置找利用。
3.在网上寻找验证poc。
内容:
系统漏洞:系统没有及时打补丁
Websr漏洞:Websr配置问题
Web应用漏洞:Web应用开发问题
其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
通信安全:明文传输,token在cookie中传送等。
漏洞验证
将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍,结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。
自动化验证:结合自动化扫描工具提供的结果
手工验证,根据公开资源进行验证
试验验证:自己搭建模拟环境进行验证
登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
业务漏洞验证:如发现业务漏洞,要进行验证
公开资源的利用
信息分析
为下一步实施渗透做准备:
精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
绕过防御机制:是否有防火墙等设备,如何绕过
定制攻击路径:工具路径,根据薄弱入口,高内网权限位置,最终目标
绕过检测机制:是否有检测机制,流量,杀毒软件,恶意代码检测等
攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等
获取所需
实施攻击:根据前几步的结果,进行攻击
获取内部信息:基础设施
进一步渗透:内网入侵,敏感目标
持续性存在:一般我们对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等
清理痕迹:清理相关日志,上传文件等
信息整理
整理渗透工具:整理渗透过程中用到的代码,poc,exp等
整理收集信息:整理渗透过程中收集到的一切信息
整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息
形成报告
按需整理:按照之前步跟客户确定好的范围,需求来整理资料,并将资料形成报告
补充介绍:要对漏洞成因,验证过程和带来危害进行分析
修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
你可以用MicroFocus的Fortify来做渗透测试呀,这样就知道有没有补丁没有打上或者网络防御是否完善。
传统渗透测试服务的流程是什么
传统渗透测试服务的流程主要分为以下几步
1,明确目标
主要是确定需要渗透资产范围;确定需求,比如测试是针对业务逻辑漏洞,还是针对人员管理权限漏洞等;然后确定客户要求渗透测试的范围,确定渗透测试规则,比如能渗透到什么程度,是确定漏洞为止还是要进行更进一步的测试。
2,信息收集
信息收集阶段主要收集关于项目软件的各种信息,例如;系统信息,应用信息,版本信息,服务信息,人员信息以及相关防护信息。还要掌握足够多的信息,才能更好地进行漏洞检测。
信息收集大多是工具加手工进行收集信息,收集的方式分为两种:主动收集、被动收集。
3,扫描漏洞
综合收到的信息,借助扫描工具对目标程序进行扫描,查找存在的安全漏洞。主要是探测系统漏洞,web漏洞,web应用漏洞以及其他端口服务漏洞,如net,ssh,vnc,远程桌面连接服务(3389)等。
4,漏洞验证
在这个阶段,测试人员会得到很多关于程序的安全漏洞,但有些漏洞会误报,需要测试人员结合实际情况,搭建模拟测试环境对这些安全漏洞进行验证。被确认的安全漏洞才能被利用执行攻击。
方法主要有自动化验证,手工验证,业务漏洞验证,公开资源的验证等。
5,分析信息
经过验证的安全漏洞就可以被利用起来向目标程序发起攻击,但是不同的安全漏洞,攻击机制不同,针对不同的安全漏洞需要进一步分析,制定一个详细的攻击,这样才能保证测试顺利执行。
6,渗透攻击
渗透攻击实际是对目标程序进行的真正攻击,为了达到测试的目的,像是获取用户账号密码、截取目标程序传输数据等。渗透测试是一次性测试,在攻击完成后能够执行清理工作。
7,整理信息
主要是对整个渗透过程进行信息分析与整理,分析脆弱环节,技术防护情况以及管理方面的情况进行一个现状分析以及提出相关建议。
8,编写测试报告
根据渗透测试具体情况编写渗透测试报告,渗透测试报告必须简洁明了,说清楚渗透清单(范围),攻击路径,渗透成果,以及详细的漏洞详情(相关描述、漏洞危害等)及可行的修复建议,对整改渗透情况进行简单的总结和分析