这篇文章为何而写以及写给谁看
首先说说为什么写,一个是因为我觉得自己学了这么久,但是对于渗透测试一直是模棱两可,需要总结出一个东西来让自己清楚自己对这个东西到底了解到了什么地步,有哪些需要去补足的;另一个就是我想把这种思维分享出来,有像我这样的小白再学的时候能够少绕一点弯路。
然后是这篇文章适合给谁来看,我大概总结了适合的两种人,第一种就是纯小白,需要快速的了解渗透测试,以应付面试;第二种就是想看看学习的思路,我会在文章中结合一些具体例子进行说明。
当你接触到一个新东西时,你的一个整体思路是什么?(我希望你们在读的时候是同时在进行思考的,技术上的或是思路上的)
我的思路是,我需要知道这个东西是什么(包括它的概念,以及它的工作原理),接下来就是它的使用场景(最好是亲自动手操作一遍)
渗透测试
什么是渗透测试呢?我这里就不用官方的那些话来说了,我理解的渗透测试就是我们(测试人员)去测试我们的目标--目标是什么呢?我们之后再说,先理解成一个系统,通过什么样的方式呢?通过模拟黑客攻击的方式。
一句话说完:测试人员通过模拟黑客攻击的方法对目标进行一个安全性的测试,并将入侵的过程和细节产生报告提供给用户,由此确定用户系统存在的安全威胁,并能提醒安全管理员完善安全策略,降低安全风险。
渗透测试的方式
渗透测试是分为黑盒测试、白盒测试以及灰盒测试。
黑盒测试:对目标的详细信息完全不了解,难度是最高的
白盒测试:对目标的信息完全了解且拥有完全的权限,直观的表现就是能够看到源代码
灰盒测试:对目标的信息有一定的了解
渗透测试的分类
1.根据渗透测试目标分类:
(1)主机操作系统测试:对Windows,Solaris,AIX,Linux,SCO,SGI等操作系统本身进行渗透测试。
(2)数据库系统渗透:对MS-SQL,Oracle,MySQL,informix,Sybase,DB2,access等数据库应用系统进行渗透测试。
(3)应用系统测试:对渗透目标提供的各种应用,如ASP,CGI,JSP,PHP等组成的WWW应用进行渗透测试。
(4)网络设备渗透:各种防火墙,入侵检测系统,路由器,交换机等网络设备进行渗透测试。
2.根据渗透测试的位置分类:
(1)内网渗透:在内网渗透内网,通常为从内网的一台边缘机去拿到核心的服务器等资产
模拟客户内部违规操作者的行为,在内网对目标进行渗透测试
(2)外网渗透:在外网渗透内网
模拟对内部状态一无所知的攻击者的行为(包括对网络设备的远程攻击,口令管理安全测试,防火墙规则试探和规避,web及其他开放应用服务的安全测试等),从外网对目标进行渗透测试。
3.针对Web服务体系架构的渗透测试
(1)服务器渗透测试:对服务器自身的安全性(如操作系统、数据库是否存在弱口令等)进行检测。
(2)中间件渗透测试:对Apache. lI、Tomcat. Nginx等Web中间件的漏洞(如配置缺陷、文件解析、反序列化漏洞等)进行检测。
(3)Web应用渗透测试:对CMS、Blog等Web应用程序的漏洞(如SQL注入、XSS、CSRF、文件上传与解析、文件包含、命令执行等)进行检测。
(4)业务逻辑渗透测试:对业务逻辑安全性(如验证逻辑问题、会话管理问题、权限控制问题等)进行检测。
渗透测试流程
这部分我想结合一个项目进行叙述(目前还没有,所以就先写一些理论的东西,之后再去修改)
我们通用的测试流程大概都是
确定目标-信息收集-漏洞扫描-漏洞利用-提权-清理痕迹-编写渗透测试报告
具体的每个阶段该怎么做,比如说信息收集,怎么收集,该收集哪些,仍然需要一个实例才能体现,现在我就先把每个阶段能够用到的方法写一下
一、确定目标
这个阶段其实非常重要,但因为很简单,所以就不会有什么人去说
我将其分为两个东西,目标和目的。
目标像是上文提到的,主机,数据库、应用系统还是网络设备,都是目标中所包含,具体是什么,需要你结合你拿到的项目,甲方给你的要求,比如说测试目标就是一个域名,那你就要结合需求分析,需不需要你对域名所在的服务器主机操作系统也进行测试。
目的也就是需求,我们目的就是达成项目的需求。
在确定好这两点就能够选定你的测试方式,是黑白灰的哪种,以及是主机还是web渗透,是内网渗透还是外网渗透,不同的方式以及不同的种类,我们都要有一个不同的思路。
二、信息收集
都知道这个是渗透测试中最重要的部分,信息收集做的怎么样决定了你的渗透过程会不会顺利和最后所能测试出来的真实性和可信性。
具体是要收集什么呢?通过什么来收集呢?
有过一定了解的都会知道信息收集分为主动收集和被动收集,主动收集就是容易被目标发现,通过一些扫描工具
被动收集,通过一些在线网站进行收集,不容易被发现,但是效率比较低
渗透测试之信息收集(超完整版)_DayGas的博客-CSDN博客_渗透测试信息收集
通常来讲,我们需要收集到的信息包括但不限于真实IP、操作系统、后端语言、中间件、端口开放状态、是否为相关CMS搭建的、网站有没有WAF(WAF检测工具)WAF检测工具--WAFW00F_她总是阴雨天的博客-CSDN博客_wafw00f、网站的目录情况、后台登录界面
三、漏洞探测
通常情况下,是通过扫描工具进行扫描;当然有些漏洞是在信息收集时就可以发现的,比如你收集到某个网站是用dedecms搭建的,那你就可以去查该版本的cms是否存在历史漏洞以及该cms的默认后台登录地址-查到之后看是否可以进行爆破
四、漏洞利用
这里就没什么好说的,需要我们对各种漏洞的原理及利用方式有足够的了解,最基本的top10是一定要掌握的
五、提权
如果我们拿到的是普通用户权限,那很多操作是做不了的,就需要我们进行提权操作,拿到管理员权限
(1条消息) 提权方式及原理简介(面试)_网安溦寀的博客-CSDN博客_提权
六、清除痕迹
一般渗透测试是一次性测试,攻击完成之后要执行清理工作,删除系统日志、程序日志等,擦除进人系统的痕迹。
七、输出渗透测试报告
这一步就是我们的最终产出,无论是什么类型什么方式的渗透测试,都需要报告。