渗透测试流程

前言

记录一下渗透测试的一般流程,以免自己在渗透测试中遗忘

信息收集

真实ip查询
常用的工具有多个地点ping服务器-网站测速-站长工具
最重要的就是信息收集
使用字典枚举目录
使用爬虫爬取整个网站,或者使用google等搜索引擎获取
查看robots.txt是否泄漏
指纹识别
使应用程序报错,查看报错信息
扫描服务器的数据库端口
用到的框架:很多网站都利用开源的框架来快速开发网站,所以收集网站的框架信息也是非常关键的。

子域名

搜索引擎(google,baidu,bing),DNS区域传送漏洞,子域名挖掘机Layer,subDomainsBrute,phpinfo.me,定制字典暴力破解。
https://phpinfo.me/domain/

旁站C段查询

旁站是和目标网站在同一台服务器上的其它的网站;如果从目标站本身找不到好的入手点,这时候,如果想快速拿下目标的话,一般都会先找个目标站点所在服务器上其他的比较好搞的站下手,然后再想办法跨到真正目标的站点目录中。C段是和目标机器ip处在同一个C段的其它机器;通过目标所在C段的其他任一台机器,想办法跨到我们的目标机器上。常用的工具有webscancc,Nmap,Zenmap。

cms类型

对目标渗透测试过程中,目标CMS是十分重要的信息,有了目标的CMS,就可以利用相关的bug进行测试,进行代码审计。CMS识别方式有网站特有文件,例如/templets/default/style/dedecms.css — dedecms;网站独有文件的md5,例如favicon.ico,但是该文件可以被修改导致不准确;网站命名规则;返回头的关键字;网页关键字;URL特征;Meta特征;Script特征;robots.txt;网站路径特征;网站静态资源;爬取网站目录信息;常用的工具有 云悉,工具1,BugScaner。

敏感目录/文件

用扫描器扫描目录,这时候你需要一本强大的字典,重在平时积累。字典越强扫描处的结果可能越多,这一步主要扫出网站的管理员入口,一些敏感文件(.mdb,.excel,.word,.zip,.rar),查看是否存在源代码泄露。常见有.git文件泄露,.svn文件泄露,.DB_store文件泄露,WEB-INF/web.xml泄露。目录扫描有两种方式,使用目录字典进行暴力才接存在该目录或文件返回200或者403;使用爬虫爬行主页上的所有链接,对每个链接进行再次爬行,收集这个域名下的所有链接,然后总结出需要的信息。常用的工具有:御剑,kali下的dirb,DirBrute。

端口信息

服务和安全是相对应的,每开启一个端口,那么攻击面就大了一点,开启的端口越多,也就意味着服务器面临的威胁越大。开始扫描之前不妨使用telnet先简单探测下某些端口是否开放,避免使用扫描器而被封IP,扫描全端口一般使用Nmap,masscan进行扫描探测,尽可能多的搜集开启的端口好已经对应的服务版本,得到确切的服务版本后可以搜索有没有对应版本的漏洞。常见的端口信息及渗透方法。

服务器与中间件信息

通过Nmap、Zmap等端口和指纹识别功能搜集,也可以使用nc和telnet获取Banner信息进行识别,常用工具有whatweb

漏洞扫描

扫描SQL注射,XSS,文件包含,命令执行等高危漏洞

  1. 自动化扫描工具

    Burpsuit —— 集成代理,爬行目录,漏扫,表单破解,编码解码,绝对的神器!

    Awvs —— 可以和Burp换着用,效果会更好!

    AppScan —— IBM出品,以前很火的一款扫描工具!

  2. 手动测试

    需要耐心 !

    扫描器扫不出逻辑漏洞,一些存储型XSS,和SQL注入漏洞,这些都需要手动测试 。
漏洞扫描

关于漏洞扫描的工具太多了,笔者这里仅仅推荐awvs
但是不要依赖工具,很多漏洞工具都是扫不出的,一定要结合手工测试漏洞

sql注入

sql注入可以说是非常常见了,相信你在挖掘这类漏洞的时候已经轻车熟路了,掌握常用的sql注入手法已经熟练使用sqlmap或者同类工具都非常重要。但是我们需要学会剑走偏锋,多去探索冷门的sql注入方法,这样才不会被过滤了某些字符的时候而束手无策。其次作为白帽子要有自己的原则和底线,即使数据再诱人,也千万不要去拿任何数据!

xss漏洞

前端漏洞也是一个很大的板块,在做渗透测试的时候我们需要抓住一些细微的点,对每一个输出点都尽可能的测试,并且想方设法的去绕过

xxe漏洞

xxe漏洞不知道大家有没有过多的去关注,这类漏洞如果存在的话危害是非常大的,从读取信息到探测内网等等,很值得我们去关注

逻辑漏洞

逻辑漏洞包括任意重置用户密码,修改订单等等,这类漏洞是扫描器所不能扫描出来的,所以需要我们认真分析整个站点的功能,分析其逻辑,多用burpsuite抓包观察数据包是否可篡改,验证码是否可爆破等等

csrf

检测csrf漏洞一般是看每一个操作是否有验证码验证,是否有token或者referer,可以注册多个账户然后利用A用户生成的poc去检测B用户

ssrf

在介绍信息收集的时候说过需要常常打开F12,以便于我们发现这种漏洞

未授权访问

这里所指的未授权包括各种空密码之类的,这种漏洞危害是不言而喻的

弱口令,越权访问

可以通过爆破的方式发现弱口令,而越权访问又包括水平越权和垂直访问,这种漏洞我们可以观察url是否带有用户的明文信息或者直接访问一些敏感页面

各种框架漏洞

比如说structs这个框架的漏洞层出不穷,当明确了目标所使用何种框架之后,我们可以使用poc进行验证

信息泄露

信息泄露即通过各种搜索手段或者查看robots.txt之类的铭感目录得到铭感信息

文件包含

当我们在遇到文件上传并且有白名单校验的时候,利用文件包含可以轻松getshell

命令注入

命令注入的思路与sql注入思路是差不多的,都是对用户的输入过滤不严谨,关于这种漏洞笔者找到了几条相似案例:
搜狐某战点存在隐式命令注入
案例2

最后需要注意的是在进行漏洞发现的时候应该对每一个事件利用burpsuite进行抓包仔细观察数据包的传送情况,不放过任何一个可利用的点。

漏洞验证

参考