渗透测试的基本流程 11/25

故事扮演 提交于 2019-12-05 14:52:52

 

0X00   前言

                           按照老师的要求,我也开始了每天坚持写博的第2天。记录一下自己的学习情况和轨迹,毕竟自己手打出来的才是属于自己的。

 

0X01        什么是渗透测试?以及渗透测试的相关标准(PTES)

                         渗透测试是通过模拟黑客的攻击方法来评估计算机网络系统的安全问题。

                         选择的渗透测试类型取决于公司和组织的用途和范围。

                        入门的渗透测试,首先需要了解渗透测试的流程、步骤与方法。尽管渗透目标的环境各不相同,但依然可以用一些标准化的方法体系进行规范和限制。

                         黑盒:没有提供关于他将要测试的应用程序的许多信息,有责任收集有关目标网络,系统或应用程序的信息。                                       

                          白盒:将获得有关网络,系统或应用程序的完整信息以及源代码,操作系统详细信息和其他所需信息。它可以被认为是模拟内部来源的攻击。

                          灰盒:将具有应用程序或系统的部分知识。因此,它可以被认为是外部黑客的攻击,黑客已经非法访问组织的网络基础设施文档。

 

0x02         

       0.前期交互:确定项目范围,周期,采用的技术手段和工具,以及其他约束条件

            (比如不可使用一些钓鱼,DDOS等影响系统的方法)

       1.信息收集:收集目标相关的资产信息,包括域名,IP,邮箱,防御措施等

        2.威胁建模:利用已经收集的信息对目标资产进行分析,获得可能存在的威胁,并规划攻击路径

        漏洞分析:发现目标系统和应用中存在的漏洞(判断是否存在)

        漏洞利用:对已发现的漏洞使用攻击向量进行攻击(比如常见的9种)

        3.后渗透:建立立足点,进行权限维持以及内网渗透,获得指定的渗透目标数据,权限等,清理。

        4.编写报告:输出渗透测试报告

 

 相关流程:

             目标确认:渗透约束条件和最终目标(域名,IP,内部权限,数据,某个企业的应用系统)

             通过 ip、域名、app、数据系统、公司名等等信息,以及需要获取的具体权限大小要求。

 

                  XX IP

XX域名             某APP                    服务系统最高权限
                                                           应用系统管理员权限
                                                              数据库访问权限
                                                              ……
    XX公司XX系统XX数据
                   
(域名,ip,系统名称)                             明确起点,了解我们最后的终点是什么

 

信息收集:

收集目标范围内的各类信息(收集的信息越多,意味着攻击的面越广)

常见:域名,子域名,ip及端口,应用服务系统版本,开源情报,部署服务器的信息,应用信息等
                                                                                           
目标是什么系统?可以去github上搜索(相关人员可能会将代码托管→如有,可代码审计)

例如去查这个IP的服务提供商是什么,阿里云?腾讯云?是自建机房?还是托管在IDC里?对方的IDC有多大?是境内的还是境外的?他的应用上部署的是什么系统?是什么版本的?服务端用的什么框架或者是什么语言?然后我们再延伸到这个ip反向查询域名,域名历史解析IP

 

漏洞发现:

在信息收集的基础上发现目标应用系统的漏洞(通过多种途径发现漏洞,常用的是传统漏洞的发现,根据前面所讲的漏洞类别进行手工或工具检测漏洞)


1.框架组件公开漏洞:比较严重的漏洞,例如之前的Struts2漏洞(apache项目下的一个web框架,普遍用于阿里,京东,政府,企业网站)

根据所使用框架组件版本情况,查找公开漏洞验证Payload,工具,通过手工或工具手段验证公开漏洞


2.传统漏洞:通过手工或工具手段识别传统漏洞,例如之前课程中介绍的9种常见漏洞,比如注入等等


3.口令漏洞:对系统登陆入口采用口令攻击,如弱口令,爆破。


4.代码审计0day:不管其开源还是未开源的情况下,获取目标应用系统源码,进行代码审计。


漏洞利用:对已发现的目标漏洞进行利用,通过漏洞利用获取目标系统权限

是指通过对已发现漏洞进行深度攻击,达到某些效果的一种手段

漏洞利用考验一个人对漏洞理解的深度问题,与漏洞发现有很大不同,如充分了解各个漏洞的利用方式,我们可以应用在不同的场景

建议针对每种漏洞通过搜索漏洞名称+利用方式(如sql注入漏洞利用方式)不断深入学习,学习各类工具原理。如通过学习sqlmap源码学习sql注入利用,学习xss平台利用代码学习xss利用

 

漏洞利用:

                  对已发现的目标漏洞进行利用,通过漏洞利用获取目标系统权限

                  是指通过对已发现漏洞进行深度攻击,达到某些效果的一种手段

                  漏洞利用考验一个人对漏洞理解的深度问题,与漏洞发现有很大不同,如充分了解各个漏洞的利用方式,我们可以应用在不同的场景

                  Ps:建议针对每种漏洞通过搜索漏洞名称+利用方式(如sql注入漏洞利用方式)不断深入学习,学习各类工具原理。如通过学习sqlmap源码学习sql注入利用,学习xss平台利用代码学习xss利用

 

                                                               脱裤                                                                                                    打管理员cookie

                                                  写文件webshell权限
SQL注入                                                                                                                              XSS
                                                        Mysql UDF提权                                                                                         Beef框架攻击管理员客户端

                                                Sqlsever xp_cmdshell提权

                                                      密码解不开可以update

 

例:时间盲注,非常慢,甚至太慢会被发现。这时候就不能脱全部了,只能去脱数据库下的某一个表,某个字段的某个数据。 比如user,phpmyadmin此类。解的开的情况下可以直接访问其数据库
或者获得其数据里管理员的表,解密后登陆后台。在确定能堆叠注入的情况下,我们可以判断他的密码就是MD5,我们就可以通过update的方式去添加一个管理员登陆其后台

 

权限维持、内网渗透:进入目标内容,进行横向扩展,向渗透目标靠近

目标获取、痕迹清理:获取渗透目标权限或数据,回传数据,清理痕迹。

 

本课总结:

信息的收集非常重要,如后续无法进行,建议再次进行详细的信息收集。

漏洞要熟,工具要稳,思路要骚

相关注意事项:不要DDOS,不破坏数据,测试前数据要备份。测试前要与客户进行沟通,明确测试范围。也可以对原始系统生成镜像环境,然后对镜像环境测试。

 

 

                                                                                                                                2019/11/25   18点

 

 

 

 

 

    

 

 

   

                       

 

    

    

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!