一、什么是渗透测试
渗透测试就是模拟真实黑客的攻击手法对目标网站或主机进行全面的安全评估,与黑客攻击不一样的是,渗透测试的目的是尽可能多地发现安全漏洞,而真实黑客攻击只要发现一处入侵点即可以进入目标系统。
一名优秀的渗透测试工程师也可以认为是一个厉害的黑客,也可以被称呼为白帽子。
一定要注意的是,在进行渗透测试前,需要获得目标客户的授权,如果未获得授权,千万不要对目标系统进行渗透测试,后果请查看《网络安全法》。同时要有良好的职业操守,不能干一些违法的事情。
渗透测试与入侵的区别
- 渗透测试:以安全为基本原则,通过攻击者以及防御者的角度去分析目标所存在的安全隐患以及脆弱性,以保护系统安全为最终目标。
- 入侵:通过各种方法,甚至破坏性的操作,来获取系统权限以及各种敏感信息。
二、为什么要学渗透测试
学渗透测试的好处不外乎以下几点:
-
心理满足感。很酷,就像小时候看黑客的电影一样,自己也成为了他们。
-
有一份可观的收入。可以去各大招聘网站上看下这个岗位的薪资。还可以做兼职,在业余时间参加漏洞众测,可以获得比较丰厚的收入。
三、渗透测试的8个详细步骤
1. 明确目标
测试目标的范围、ip、域名、内外网、测试账户。
能渗透到什么程度,所需要的时间、能否修改上传、能否提权。
确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞。
2. 信息收集方式
主动扫描,开放搜索等。
开放搜索:利用搜索引擎获得:后台、未授权页面、敏感url、等等。
基础信息:IP、网段、域名、端口。
应用信息:各端口的应用。例如web应用、邮件应用、等等。
系统信息:操作系统版本
版本信息:所有这些探测到的东西的版本。
服务信息:中间件的各类信息,插件信息。
人员信息:域名注册人员信息,web应用中发帖人的id,管理员姓名等。
防护信息:试着看能否探测到防护设备。
3. 漏洞探测
方法:
(1) 漏扫,awvs,IBM appscan等。
(2) 结合漏洞去exploit-db等位置找利用。
(3) 在网上寻找验证poc。
4. 漏洞验证
自动化验证:结合自动化扫描工具提供的结果
手工验证,根据公开资源进行验证
试验验证:自己搭建模拟环境进行验证
登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
业务漏洞验证:如发现业务漏洞,要进行验证
5. 信息分析
为下一步实施渗透做准备。
精准打击:准备好上一步探测到的漏洞的exp,
绕过防御机制:是否有防火墙等设备,如何绕过
定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)
攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等
6. 获取所需
获取内部信息:(网络连接,vpn,路由,拓扑等)
进一步渗透:内网入侵,敏感目标
持续性存在:rookit,后门,添加管理账号,驻扎手法等
清理痕迹:清理相关日志(访问,操作),上传文件等
7. 信息整理
整理渗透过程中用到的代码,poc,exp等
整理渗透过程中收集到的一切信息
整理渗透过程中遇到的各种漏洞,各种脆弱位置信息
8. 形成报告
按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告
要对漏洞成因,验证过程和带来危害进行分析
当然要对所有产生的问题提出合理高效安全的解决办法
渗透测试的8个步骤:等您坐沙发呢!