首页 > 其他分享 >【建议收藏】渗透测试零基础入门教程,全程干货!

【建议收藏】渗透测试零基础入门教程,全程干货!

时间:2024-12-26 11:57:12浏览次数:6  
标签:Web 漏洞 渗透 可以 入门教程 学习 全程 干货 测试

转眼间,从大三开始学安全,到现在也有五年了,也算是对渗透测试有一定理解,公众号准备出一些入门教程,以实操为主,希望可以帮助到想入门渗透测试的小白。如果觉得有用,可以在文章后面支持一下我,作为我写下去的动力。

1. 什么是渗透测试

渗透测试就是模拟真实黑客的攻击手法对目标网站或主机进行全面的安全评估,与黑客攻击不一样的是,渗透测试的目的是尽可能多地发现安全漏洞,而真实黑客攻击只要发现一处入侵点即可以进入目标系统。

一名优秀的渗透测试工程师也可以认为是一个厉害的黑客,也可以被称呼为白帽子。

一定要注意的是,在进行渗透测试前,需要获得目标客户的授权,如果未获得授权,千万不要对目标系统进行渗透测试,后果请查看《网络安全法》。同时要有良好的职业操守,不能干一些违法的事情。

2. 为什么要学渗透测试

学渗透测试的好处不外乎以下几点:

  • 心理满足感。很酷,就像小时候看黑客的电影一样,自己也成为了他们。

在这里插入图片描述

  • 有一份可观的收入。可以去各大招聘网站上看下这个岗位的薪资。还可以做兼职,在业余时间参加漏洞众测,可以获得比较丰厚的收入。

  • 没那么卷。在软件开发、金融行业卷上天的时代,网络安全行业的竞争可以说相当小,因为这方面的人才实在太少了。
3. 学习渗透测试的前置技能

学习渗透测试其实最重要的是有兴趣,要有一颗好奇的心,一个对知识渴望的心,以及足够的毅力,这样可以支撑我们在这条道路上不断学习。

当然,学渗透测试还是有点门槛的,如果是计算机专业的人,可以轻松上手,在一两个月内入门。如果是其它专业的,或者是电脑小白,那么还是比较有难度的,但是也不用担心,我身边有很多大牛都是零基础入行的,所以兴趣还是最重要的。

下面说一些渗透测试需要的基本前置知识:

  • HTTP协议基础知识。HTTP协议属于计算机网络的知识,因为渗透测试基本是对网站的请求数据进行修改,查找漏洞,所以了解HTTP协议请求的格式是必不可以的。

  • cmd / shell 操作。这里说的 cmd 操作是指会使用 Windows 系统的 cmd 命令行窗口执行一些常见的命令,按 win + R 键,输入 cmd 回车,可以打开cmd 窗口。还有就是要会使用 linux 执行一些常见的 shell 命令。

  • Linux 操作系统使用。由于很多渗透测试工具只能运行在 Linux 操作系统中,所以我们要会使用 Linux 系统,可以通过 VMWare 虚拟机软件安装 Ubuntu linux 虚拟机来练习使用,也可以直接安装 Kali Linux 来练习。

前面说的是一些基本知识,下面是一些可选知识,没有这些知识也可以做渗透测试,只是局限性会比较大。

  • python 编程语言。作为一个脚本小子,会 python 语言可以帮助我们开发一些工具减轻平时的工作量,用 python 来做一些重复性的工作,如自动化信息收集,最重要的是可以写一些漏洞利用工具。

  • Java/PHP 编程语言。渗透测试大部分时间都是对网站进行操作,这些网站大多数是使用 Java 或 PHP 语言开发的,有些是使用一些开源的系统进行二次开发的,我们可以对这些开源的系统进行代码审计,直接从代码中发现漏洞。

4. 如何学习渗透测试

回到文章主题,如何学习渗透测试。

第一步,先确定要学习的方向

在学习渗透测试前,可以先了解一下渗透测试有哪些方向,因为渗透测试的范围还是比较广的,按方向分,可以大致分为 Web 渗透 、 APP 渗透、 内网渗透 、物联网渗透、 工控渗透。 按难度来排序,我认为的难度排序是 Web渗透 < 内网渗透 < APP 渗透 < 物联网渗透=工控渗透。理想情况下当然是所有都会最好,但凡事都需要一步步来,可以先从最简单的 Web 渗透开始学,当Web 渗透掌握了,再扩展到其它方向。

为什么这样排序,说下我的理由:

Web 渗透主要是要找网站的漏洞,只需要了解一些基础的计算机网络知识,也就是 HTTP 协议的知识,然后会一些工具的使用就可以了,剩下的就是了解一些常见 Web 漏洞的测试方法。

内网渗透是指在我们通过 Web 渗透获取 Web 服务器权限或者使用钓鱼邮件等方式获取了目标内网主机权限后,对目标公司的内部网络进行渗透测试。其中需要掌握更加多的计算机网络知识,比如子网划分、网络拓扑图、各种网络协议。还要了解 Windows 域知识,权限提升技术、横向移动技术、权限维持技术、免杀技术。要学习的内容难度也不算大,所以只要肯花时间,也是可以掌握的。由于知识点比 Web 渗透多,所以难度比 Web 渗透大。

APP 渗透可以理解是 Web 渗透的扩展,主要是对 安卓 APP 和 iOS APP 进行渗透测试,APP 也需要和服务器后台进行数据交互,这部分的测试和 Web 渗透一样。另外还需要对 APP 本身的漏洞进行测试,这需要逆向分析的能力,而逆向分析其实也属于安全的一个大方向,需要我们掌握一些脱壳技术、动态调试技术、反编译工具使用、Java 编程语言、C/C++ 编程语言、汇编语言、 Swift 编程语言、Object-C 编程语言。在编程语言方面,我们不需要像软件开发人员一样精通,但至少需要能看懂代码。由于 APP 渗透需要逆向分析能力,并且学习的计算机底层知识更多,而因此 APP 渗透难度更大。

物联网渗透、 工控渗透其实都差不多,区别其实就是物联网设备需要联网,工控设备一般是在隔离的网络中,相同点是都需要接触物理设备。不同于上面的各项渗透,只需要有网络就可以开始,如果没有物联网和工控设备,根本无法开始,或者只能做部分的测试,在能否接触到设备这里,就拦住了很多人。这方面的学习需要花钱买硬件,或者公司进行投入采购硬件。在技能方面,除了要会逆向分析外,还需要了解各种硬件知识、电气知识、工业协议、物联网协议,因此难度是最高的。

第二步,了解所学习方向的框架和知识点。

了解所学习方向的框架和知识点比较重要,这样不至于盲目学习不重要的知识点。要入门渗透测试,先从最简单的 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实战篇》

觉得看书枯燥的,也可以找一些视频教程,在 bilibili 上面也是有很多渗透测试的教程,但我没怎么看过,所以没法进行推荐,需要自己根据评价来判断。

当然除了自学,也是可以参加培训班,适合那些有一定经济能力的初学者。身边也有不少大牛是通过培训班入门的,由于我也没参加过,所以也没法推荐,可以找些参加过的朋友进行推荐。

第四步,实践操作

根据第三步学到的知识点,进行实践操作,每学一个知识点后就进行实践,实践操作可以找一些专门设计用来进行漏洞测试的虚拟机靶场,下载靶场后使用 VMWare 虚拟机软件打开就可以访问进行测试了。下面列出一些靶场

owaspbwa:

开放Web应用安全项目(OWASP)是一组易受攻击的Web应用程序,它们以VMware格式分布在虚拟机上,比较推荐这个虚拟机靶场,里面集成了大量存在漏洞的网站,比如 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-started

hackthebox:

https://www.hackthebox.com/

web for pentester:

https://www.pentesterlab.com/exercises/web_for_pentester/course

当学习了一些常见漏洞的测试方法,burpsuite 工具的使用后,就需要到真实网站进行实战。可以到一些漏洞平台进行实战,如补天平台、漏洞盒子、各大互联网公司的 SRC,在这些平台上进行漏洞挖掘时,一定要看清楚各平台的规则,严格按照规则来进行。这里再提醒一下,不要未授权测试!不要未授权测试!不要未授权测试!重要的事情说三遍,后果请查看《网络安全法》。

网络安全学习路线&学习资源

网络安全的知识多而杂,怎么科学合理安排?

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!

初级网工

1、网络安全理论知识(2天)

①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)

①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)

①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)

①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)

①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)

①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

“脚本小子”成长进阶资源领取

7、脚本编程(初级/中级/高级)

在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。

8、超级网工

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。

网络安全工程师企业级学习路线

如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。

一些我自己买的、其他平台白嫖不到的视频教程:

需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!

标签:Web,漏洞,渗透,可以,入门教程,学习,全程,干货,测试
From: https://blog.csdn.net/chengxuyuanyy/article/details/144739709

相关文章

  • 瑞芯微开发板/主板Android系统APK签名文件使用方法,实用干货
    本文介绍瑞芯微开发板/主板Android系统APK签名文件使用方法,触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,各类接口一应俱全,帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。系统签名文件生成APK系统签名文件,具体可参考此文章方法https://www.cnblogs.com/industi......
  • GCC安装入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    1.下载GCC安装包,下载地址如下,选择需要的安装版本:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/2.解压配置进入解压目录执行:./configure可能会遇到下面的问题:configure:error:BuildingGCCrequiresGMP4.2+,MPFR2.4.0+andMPC0.8.0+.Trythe--with-gmp,--w......
  • CSIG青年科学家会议干货分享:视觉内容安全技术的前沿进展与应用
    CSIG青年科学家会议干货分享:视觉内容安全技术的前沿进展与应用1.前言2.视觉内容安全技术的前沿进展与应用2.1日渐增多的视觉安全需求2.2视觉内容安全技术分类2.3通用篡改检测系统及人脸伪造检测系统2.4文档图像篡改检测成果2.5文本图像篡改检测技术的标准制定2.6......
  • 【Python完全零基础入门教程】 Python3.7.7完全安装与卸载 免费教程!
    ......
  • 网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
     前言1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给你做解答。4.遇到实在搞不懂的,可以先放放,以后再来解决。......
  • 《LLM入门教程》大模型教程笔记1:环境配置(安装Anaconda、获取配置并测试OpenAI API key
    项目地址:llm-cookbook教程在线阅读:面向开发者的LLM入门教程文章目录环境配置一、安装Anaconda二、安装本书需要用到的python库三、获取并配置OpenAIAPIkey示例目录结构.envconfig.py运行结果解释`find_dotenv()`的查找机制示例说明配置`find_dotenv()`的参数`loa......
  • RK3588开发板入门教程
    一、EVM-RK3588评估板外观二、常用系统信息查看1、查看系统内核版本信息,使用uname命令:$unamet-a2、查看操作系统信息:$cat/etc/issue3、查看系统内存使用情况:$free-h4、查看系统磁盘使用情况:$df-h5、查看磁盘和分区:#查看所有分区$fdisk-l......
  • 从零开始:ThinkPHP 入门教程,快速上手 Web 开发
    从零开始:ThinkPHP入门教程,快速上手Web开发在当今的Web开发领域,选择合适的框架可以显著提高开发效率和代码质量。ThinkPHP作为一款轻量级的PHP开发框架,因其简洁易用和高效的性能而受到广泛欢迎。本教程将带领你从零开始,快速上手ThinkPHP,掌握基本的Web开发技能。......
  • 【AIGC】ComfyUI 入门教程:SDXL 工作流和 ComfyUI 整合包
    ComfyUI是StableDiffusion的一个基于节点组装绘图流程的图形用户界面(GUI)。通过将不同的节点连接在一起,你可以在ComfyUI中构建图像生成工作流。一个完整的工作流看起来像下面这样:1、SDXL工作流StableDiffusionXL模型是在StableDiffusion1.5、StableDiffusio......
  • 融云IM干货丨如何在pages.json中设置不同平台的导航栏?
    在`pages.json`中,你可以通过条件编译来为不同平台设置不同的导航栏样式。条件编译允许你根据不同的平台编写特定的配置代码。以下是如何在`pages.json`中为不同平台设置导航栏的示例:```json{ "pages":[  {   "path":"pages/index/index",   "sty......