渗透测试入门思路
PART.1 什么是渗透测试
渗透测试(Penetration Testing,简称 PenTest),也被称为道德黑客攻击或白帽黑客攻击,是一种模拟真实网络攻击的安全评估方法。其核心目的是在恶意攻击者(黑帽黑客)发现并利用之前,主动识别、利用和验证计算机系统、网络、应用程序或物理设施中存在的安全漏洞。
一名优秀的渗透测试工程师也可以认为是一个厉害的黑客,也可以被称呼为白帽子。
一定要注意的是,在进行渗透测试前,需要获得目标客户的授权,如果未获得授权,千万不要对目标系统进行渗透测试,后果请查看《网络安全法》。同时要有良好的职业操守,不能干一些违法的事情。
PART.2 为什么要学渗透测试
学渗透测试的好处不外乎以下几点:
心理满足感。很酷,就像小时候看黑客的电影一样,自己也成为他们。有一笔可观的收入。可以去各大招聘网站上看下这个岗位的薪资。还可以做兼职,在业余时间参加漏洞众测,可以获得比较丰厚的收入。没那么卷。在软件开发、金融行业卷上天的时代,网络安全行业的竞争可以说相当小,因为实在太少了。
PART.3 学习渗透测试的前置技能
学习渗透测试其实最重要的是有兴趣,要有一颗好奇的心,一个对知识渴望的心,以及足够的毅力,这样可以支撑我们在这条道路上不断学习。
说实话,渗透测试确实不是零门槛的活儿。如果是计算机相关专业的同学,有基础的话,一般1-2个月就能摸到门道。但要是半路转行或者连基本操作都不太熟的新手,刚开始肯定会觉得有点吃力。不过我得说,身边那些真正干出名堂的前辈,好多都是从零开始的,所以只要真心喜欢这行,肯花时间钻研,小白也能逆袭成高手!
下面说一些渗透测试需要的基本前置知识:
HTTP协议基础入门。作为计算机网络的核心组成部分,HTTP协议至关重要。考虑到渗透测试往往涉及对网站请求数据的拦截与篡改,掌握其请求格式是不可或缺的技能。
cmd / shell 操作。这里说的 cmd 操作是指会使用 Windows 系统的 cmd 命令行窗口执行一些常见的命令,按 win + R 键,输入 cmd 回车,可以打开cmd 窗口。还有就是要会使用 linux 执行一些常见的 shell 命令。
Linux 操作系统应用。 鉴于众多渗透测试工具主要运行在 Linux 环境下,因此掌握该系统的使用是必备技能。学习途径包括:在 VMWare 虚拟机平台上部署 Ubuntu Linux 进行实操练习,或者直接安装 Kali Linux 作为学习环境。
前面说的是一些基本知识,下面是一些可选知识,没有这些知识也可以做渗透测试,只是局限性会比较大。
python 编程语言,堪称渗透测试工程师的数字瑞士军刀。作为专业网络安全从业者,掌握Python编程不仅能构建定制化工具集提升工作效率,更可实现资产测绘、日志分析等重复任务的自动化处理。其真正价值体现在漏洞验证环节——通过编写PoC验证模块,安全人员能够精准复现漏洞攻击路径,为防御方案提供实战依据。
Java/PHP 开发语言。 渗透测试工作的重心往往落在对网站的检测上,而这些网站很多由 Java 或 PHP 开发构建,部分基于开源系统二次开发。安全人员常会针对这些开源平台执行代码审计,直接从源代码层面识别潜在漏洞。Java/PHP 编程语言。渗透测试大部分时间都是对网站进行操作,这些网站大多数是使用 Java 或 PHP 语言开发的,有些是使用一些开源的系统进行二次开发的,我们可以对这些开源的系统进行代码审计,直接从代码中发现漏洞。
PART.4 如何学习渗透测试
第一步,先确定要学习的方向
在学习渗透测试前,可以先了解一下渗透测试有哪些方向,因为渗透测试的范围还是比较广的,按方向分,可以大致分为 Web 渗透 、 APP 渗透、 内网渗透 、物联网渗透、 工控渗透。
按难度来排序,我认为的难度排序是 Web渗透 < 内网渗透 < APP 渗透 < 物联网渗透=工控渗透。理想情况下当然是所有都会最好,但凡事都需要一步步来,可以先从最简单的 Web 渗透开始学,当Web 渗透掌握了,再扩展到其它方向。
为什么这样排序,说下我的理由:Web 渗透主要是要找网站的漏洞,只需要了解一些基础的计算机网络知识,也就是 HTTP 协议的知识,然后会一些工具的使用就可以了,剩下的就是了解一些常见 Web 漏洞的测试方法。
内网渗透
当我们通过 Web 渗透拿到 Web 服务器权限,或者利用钓鱼邮件等手段获取目标内网主机权限后,下一步往往就是对其内部网络展开渗透测试。这要求我们具备更扎实的计算机网络基础,像子网划分、网络拓扑结构、各类网络协议的理解与应用。此外,还需要熟悉 Windows 域环境、权限提升、横向移动、权限维持以及免杀等关键技术。虽然要掌握的内容点比 Web 渗透更多,但整体学习难度并非不可逾越。只要投入足够的时间和精力,这些技术都是可以掌握的。正因为知识点更广更深,其整体难度确实高于 Web 渗透。
APP 渗透
APP渗透测试本质上可视为Web渗透技术的延伸方向,其核心涵盖安卓与iOS两大移动平台的安全检测工作。由于应用程序需与服务端建立数据通信机制,这部分测试流程与Web渗透存在共通性。但区别在于,移动端测试还需重点挖掘客户端自身的安全隐患,该环节要求测试人员具备代码逆向解析能力——这一领域属于网络安全的专项技术范畴。
物联网渗透、 工控渗透
其实都差不多,区别其实就是物联网设备需要联网,工控设备一般是在隔离的网络中,相同点是都需要接触物理设备。不同于上面的各项渗透,只需要有网络就可以开始,如果没有物联网和工控设备,根本无法开始,或者只能做部分的测试,在能否接触到设备这里,就拦住了很多人。这方面的学习需要花钱买硬件,或者公司进行投入采购硬件。在技能方面,除了要会逆向分析外,还需要了解各种硬件知识、电气知识、工业协议、物联网协议,因此难度是最高的。
第二步,了解所学习方向的框架和知识点。
了解所学习方向的框架和知识点比较重要,这样不至于盲目学习不重要的知识点。要入门渗透测试,先从最简单的 Web 渗透开始,入门级的 Web 渗透知识点框架我认为可以分为三部分。
一、信息收集流程
如子域名收集、备案查询、github 敏感信息查找等等,知道的方式越多,收集的信息也越多。
二、渗透测试常用工具使用
对于入门级的渗透测试,会使用 nmap、Burpsuite、Kali Linux 、sqlmap 就基本足够了。
三、Web渗透常见漏洞测试
对于入门级的渗透测试,可以先掌握 OWASP Top 10 的漏洞、如最常见的 SQL 注入漏洞、XSS 漏洞、文件上传漏洞、越权漏洞、弱口令等。
确认了三个大的知识框架后,就需要我们通过搜索引擎来查找这三个方面的知识点,搜索引擎这里我只推荐使用谷歌(怎么用谷歌自行找资料),百度太多广告,搜索出来的东西远远不如谷歌有价值。
第三步,学习渗透测试知识点
大致了解渗透测试的框架和知识点后,接下来就是如何学习这些知识点了。
首先是自学
适用于想不花钱或者花很少钱的情况下入门渗透测试,比较适合在校大学生,或者空闲时间比较多的人。自学需要使用谷歌对各个知识点进行搜索学习。现在国外也有一些渗透测试的指南,可以跟着来学。
如渗透测试执行标准,里面会介绍一些渗透测试的理论知识,侧向理论多一点,不推荐初学者看,这里只是提一下,网址如下:
http://www.pentest-standard.org/index.php/Main_Page
其中也有一些实操指南,但也是文字居多,内容是全英文的,英文不好的可以使用 chrome 浏览器的网页翻译来看。
http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines
还有就是 OWASP Web 安全测试指南 项目,里面有一些漏洞的测试步骤,可以作为入门指南来看
https://owasp.org/www-project-web-security-testing-guide/stable/
想系统学习渗透测试,除了参考国外的权威指南,国内也有不少优秀的书籍值得入手。个人阅读体验中,《Web安全深度剖析》和《黑客攻防技术宝典:Web实战篇》这两本内容扎实,广受好评。
如果阅读让你感到乏味,也可以尝试视频教程。哔哩哔哩上就有丰富的渗透测试学习资源。不过,这类教程我涉猎不多,无法提供具体推荐,需要大家自行结合评论和评分甄别选择。
当然除了自学,也是可以参加培训班,适合那些有一定经济能力的初学者。
第四步,实践操作
结合第三步掌握的理论要点开展实操训练,建议采用"学完即练"模式——每攻克一个知识模块后,立即通过专业漏洞测试靶机进行验证。具体实施可从VulnHub等平台下载CTF竞赛专用靶场镜像,部署时仅需通过VMWare虚拟机环境加载对应文件,即可进入渗透测试实战环节。
下面列出一些靶场
owaspbwa:
全球知名的Web安全开源项目OWASP提供了一套基于VMware平台封装的安全实验环境,该虚拟化靶场内含多个真实存在的安全隐患Web应用实例,内置了多个知名漏洞测试平台,如交互式安全教学平台WebGoat、渗透测试训练场DVWA以及漏洞集成测试套件bWAPP。下载地址如下:
https://sourceforge.net/projects/owaspbwa/
Metasploitable :
https://sourceforge.net/projects/metasploitable/
Pikachu:
Pikachu 是一个中文的漏洞靶场
https://github.com/zhuifengshaonianhanlu/pikachu
Vulhub:
Vulhub 里面集成了大量漏洞的 docker 镜像,可以通过 docker 来启动各种漏洞的环境,地址如下:
https://vulhub.org/
下载好靶场后,还需要学会使用 BurpSuite 代理工具的使用,这个工具是渗透测试必须学会的工具,是个商业软件,价格也不算便宜,网上有破解的版本。可以查看 BurpSuite 的官方文档进行学习使用,地址如下:
https://portswigger.net/burp/documentation/desktop/getting-started
BurpSuite 官方也提供了漏洞测试教程和在线的靶场,还配有视频,可以直接在官网学习渗透测试,地址如下:
https://portswigger.net/web-security/getting-started
如果不会用虚拟机软件,也可以找一些在线的漏洞靶场来实践
Web Security Academy:
https://portswigger.net/
web-security/getting-startedhackthebox:
https://www.hackthebox.com/
web for pentester:https://www.pentesterlab.com/exercises/web_for_pentester/course
当学习了一些常见漏洞的测试方法,burpsuite 工具的使用后,就需要到真实网站进行实战。可以到一些漏洞平台进行实战,如补天平台、漏洞盒子、各大互联网公司的 SRC,在这些平台上进行漏洞挖掘时,一定要看清楚各平台的规则,严格按照规则来进行。这里再提醒一下,不要未授权测试!不要未授权测试!不要未授权测试!重要的事情说三遍,后果请查看《网络安全法》。
最后一定要记住!
网络安全不是「速成黑客」,而是守护数字世界的骑士修行。当你第一次用自己写的脚本检测出漏洞时,那种创造的快乐远胜于电影里的炫技。装上虚拟机,从配置第一个Linux环境开始,脚踏实地从基础命令学起,相信你一定能成为一名合格的红客。
文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担。本文来自博客园,作者:Abu's-blog,转载请注明原文链接:https://www.cnblogs.com/page-pros/p/18369655

浙公网安备 33010602011771号