网络安全应该从哪里学?。
方法1:先学编程,再学Web渗透和工具使用。适合人群:有一定代码基础的小伙伴。
(1)基本部分
基础部分需要学习以下内容:
(1.1)计算机网络:
重点学习OSI、TCP/IP模型、网络协议、网络设备工作原理等。,并快速阅读其他内容;
推荐书籍《互联网是如何连接的_家用根琴》简明易懂,是初学者的福音;如果觉得不专业,可以学习图灵设计系列HTTP权威指南;
(1.2)Linux系统和命令:
因为市面上70%的Web服务器都是运行在linux系统上的,所以如果想学习渗透Web系统,至少要对Linux系统非常熟悉,学习常用的操作命令。
学习建议:学习适用于90%工作场景的10%左右的常用命令。喜欢办公软件,掌握10%最常用的功能,基本日常使用没有问题。如果不能满足他们,就去找相关资料。常见的linux命令只有50-60个,很多白人把命令全吞了,根本记不住。
黑客Linux基础推荐书籍;;
(1.3)Web框架:
熟悉web框架的内容,只需要了解前端的HTML、JS等脚本语言,重点是后端的php语言。切记不要按照发展思路来学习语言。PHP最低限度能读懂代码,当然会写出最好的,但不是开发,但不是开发。重要的事情说三遍。
数据库:
需要学习SQL语法,利用常用的数据库MySQL学习相应的数据库语法,也是如此。可以理解SQL的一些高级语法。如果没有时间完全学会,也不影响后续的学习。毕竟你不是数据库分析师,不需要学太多。
(2)网络安全
(2.1)网络渗透率
掌握OWASP排名靠前的10多种常见Web漏洞的原理、利用、防御等知识点,然后进行一定射程的练习;有的小白可能会问,去哪里找资料,建议可以直接买比较权威的书,用一些网上免费的视频系统学习,然后用开源的射击场辅助练习;
推荐书籍白帽子谈Web安全(阿里白帽子黑客神道哥作品)
推荐射击场常见的射击场可以在github平台上搜索,推荐以下射击场:DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、皮卡丘等。有的是综合靶场,有的是专门针对某个漏洞的靶场;
(2.2)工具学习
在Web渗透阶段,还是需要掌握一些必要的工具。有很多关于哔哩哔哩的视频,所以选择一些解释清楚的视频。不要一个工具看很多视频。大部分视频都是重复的,浪费时间。
需要掌握的主要工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、medusa、airspoof等。以上工具可以利用上面的开源射击场练习,这就足够了;
练习快结束了。可以去SRC平台渗透真实站点,看看有没有突破。如果涉及到需要绕过WAF,就需要专门针对WAF学习,姿势不多。系统的学习然后总结更多的经验。走上一段楼梯;
(2.2)自动渗透
自动化渗透需要掌握一门语言,需要熟练运用。它可以是你已经熟悉的任何语言。如果没有很好的掌握,我推荐学习python。主要是因为学起来简单,模块多,写一些脚本和工具很方便。
虽然不懂自动化渗透不会影响入职和就业,但是会影响职业发展。学习python,不需要掌握很多不必要的模块,也不需要开发成千上万行代码。只是用Python写一些工具和脚本,从10行代码到1-200行代码。一般相对于开发者来说代码量是极小的。比如域名爬虫代码的一个简化核心代码是60。
几天学会python的语法,最快一天就能学会python的语法,因为所有的语言都是相通的,但是学习一门语言最快的方法就是写代码,除此之外别无他法。接下来可以尝试写一些常用的工具,比如爬虫、端口检测、数据包核心内容提取、内网主动主机扫描等。,并在网上搜索了很多这样的代码;然后写一些POC和EXP脚本,在靶场练习。有些朋友可能又要问了,POC和EXP是什么?自己去百度,养成做的好习惯。
(2.3)代码审计
这里的内容对代码能力要求很高,所以如果代码能力较弱,可以先跳过这部分学习,不影响在渗透路上的学习和发展。
但如果想在Web渗透上更进一步,需要精通一门后台开发语言,推荐php,因为php开发的网站在后台占据的比重最大。当然,你也精通python、asp、java等语言。恭喜你,你已经有了很好的基础。
代码审计顾名思义就是审计别人网站或系统的源代码,通过审计源代码或代码环境来审计系统是否存在漏洞(属于白盒测试的范畴)。
那么具体怎么学习呢?学习的具体内容依次列举如下:
掌握php的一些危险功能和安全配置;
熟悉代码审计的流程和方法;
掌握1-2代码审计工具,如seay
掌握常用的职能审计方法;(推荐审计AuditDemo让你自信。)
通用CMS框架审计(困难);有一本国外的书《代码审计:企业Web代码安全架构》。当然,有空可以浏览一下。建议找一套系统的哔哩哔哩入门课程。在github上找到AuditDemo,下载源代码,在本地虚拟机中构建,然后使用工具和审计方法审计AuditDemo中的10漏洞。难度分布符合正态分布,可以挑战。
至于CMS框架审计,可以去一些CMS官网下载一些历史上有漏洞的版本进行审计。可以用官网的用户手册来学习框架。比如ThinkPHP3.2版就有一些漏洞,可以试着看一下代码。但是切记不要一上来就看代码,因为CMS框架的代码量很大,如果没有先系统的学习框架,基本上是看不懂的;学会框架后,可以写一个简单的POC,按照代码审计的方法,用工具一起审计框架;其实并没有想象中那么难。如果你是开发人员,那么恭喜你,你已经具备了代码审计的先天优势。
可能有人会问“我代码差,可以不学代码审计吗?”其实代码审计并不是学习网络安全的必要条件,最好能掌握。如果掌握不了,不影响你后续的学习和就业,但是你需要选择一个阶段,更加专业的去实践,比如web渗透或者内网渗透,或者自动化渗透;
(3)内部网安全
恭喜你,如果你学到这里,基本可以从事一个与网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;
如果你想有更广泛的就业和更强的技术竞争,你需要重新学习关于内网渗透的知识;
内网的知识稍微难一点,跟目前市面上的学习资料和靶场有关系;内网学习的主要内容主要有:内网信息收集、域渗透、代理和转发技术、应用和系统权限提升、工具学习、免杀技术、APT等;
可以买《内网安全攻防:渗透测试实用指南》,写得很好。国内关于内网的书很少,以图书目录为主线然后用工具和靶场练习。
哪里可以下载到内网靶场?如果你够强,电脑配置高,可以用虚拟机搭建内网环境,一般需要三台以上虚拟机;也可以去国外找一些内网靶场使用,一些需要收费的靶场也是可以的;
(4)渗透和扩张
渗透拓展部分也与具体工作密切相关,要求尽量掌握,主要包括日志分析、安全加固、应急响应、同等安全评估等;其中主要掌握前三部分,这一块信息网上的资料不多,形成的书籍和资料也不多。可以通过行业相关的技术群或者行业共享的资料来学习。学这一步基本上是成功的,学习日志分析、安全加固、应急响应等知识也相对容易。
方法二:先了解Web渗透和工具,再了解适合编程的人群:代码能力弱或者根本没有代码能力,其他基础相对较差的小伙伴。
基础需要打好,然后学习linux系统、计算机网络、一点Web框架、数据库等Web渗透还是需要提前掌握;
php语言、自动渗透、代码审计之类的东西可以放在最后。学完之前的知识,入门之后,学语言会相对容易一些。
优先考虑方法2。对于小白来说,代码基础通常比较薄弱,很多小白会陷入早期的语言学习中。所以推荐方法二的学习更有趣,也容易保持较高的学习动力和热情。具体学习内容我就不说了。请参考方法1。
方法三:选择一些适合的人进行课程学习:需要系统学习,增强实战能力的小伙伴。
根据自己的条件,如果自学能力差,建议选课。网上各大平台都有很多种课程,可以帮助你快速入门,然后根据自己的不足不断完善学习,最终达到你想要的优秀水平。
学习书籍推荐如下:
基础阶段
黑客Linux基础(中文翻译)
Wireshark网络分析(全扫描)
精通正则表达式(中文第三版)
图形HTTP彩色版
【密码学入门】。杨欣。中文第二版
网络是如何连接的_家用根琴
【PHP与MySQL编程(第四版)】W.Jason.Gilmore
网络渗透阶段
网络安全攻防渗透测试实用指南
白帽子谈论网络安全
Web安全深度
自动渗透阶段
Python编程入门很快——自动化繁琐的工作
代码审计阶段
代码审计:企业Web代码安全架构
内部网的渗透阶段
内部网安全攻击和防御:渗透测试实用指南
防止网络钓鱼欺诈的社会工程