可能大家对于行业存在食物链这一说法,印象最深的往往是编制行业,所谓的等级主义在那里确实更为明显。但实际上,各行各业都或多或少存在这种层级结构,网络安全领域也不例外,毕竟都是一些所谓的“人情世故”。那么就网络安全技术岗而言,这个领域是否也有"食物链"的存在呢?答案是肯定的。
在网络安全这个领域里,技术岗位确实存在着一种隐形的层级结构。最底层可能是安全运维和普通安服,他们负责日常的安全维护工作。往上是安全分析员和经验丰富的安全工程师,能够处理较为复杂的安全问题。再往上走,就到了安全架构师和高级渗透测试专家的层次,他们能设计整体安全方案或模拟高级攻击。在这个"食物链"的顶端,是那些能发现零日漏洞的顶尖安全研究员,以及能应对国家级网络威胁的专家。不过,这个结构并非一成不变,在这个快速发展的领域里,每个人都有可能通过不断学习和积累经验,在这个"食物链"中向上攀升。
那么渗透测试属于食物链什么级别呢?
渗透测试这个岗位其实挺有意思的。它不能说是处于网络安全行业的最顶端,但也绝对不是底层。
渗透测试从业人员在网络安全的生态系统中扮演着一个相当重要的角色。他们就像是模拟"好黑客"的存在,负责找出系统中的漏洞和弱点。这需要相当丰富的知识储备和实战经验。一般来说,资深的渗透测试专家会处于食物链的中上层。他们比普通的安全工程师要高一些,因为他们不仅要懂防御,还得精通攻击技巧。但他们可能又不如那些顶级的漏洞研究员或安全架构师。
不过,这种排位也不是绝对的。有些特别厉害的渗透测试大牛,他们的技术水平和影响力可能会达到很高的程度,甚至能跟顶级安全研究员平起平坐。
那么什么才是渗透测试呢?
渗透测试其实就是通过一些手段来找到网站APP,网络服务,软件,服务器等网络设备和应用的漏洞,告诉管理员有哪些漏洞,怎么填补,从而防止黑客的入侵。
渗透测试分为 白盒测试 和 黑盒测试。
白盒测试就是在知道目标网站源码和其他一些信息的情况下对其进行渗透,有点类似于代码分析;
黑盒测试就是只告诉我们这个网站的url,其他什么都不告诉,然后让你去渗透,模拟黑客对网站的渗透。
白盒测试侧重于代码内部的验证,确保代码的正确性和质量;黑盒测试侧重于系统功能的验证,确保系统按预期工作并满足用户需求。正常情况下需要综合实用这两种方法,以确保系统的全面性和可靠性。
接下来,明叔给大家分享下黑盒渗透测试的流程和思路。
一般来说,渗透测试的基本流程如下:
-
1.确认目标
-
2.信息收集
-
3.漏洞探测
-
4.漏洞利用getshell
-
5.内网转发
-
6.内网渗透
-
7.痕迹清除
-
8.撰写渗透测试报告
一 、确定目标
这个没什么好说的就是确定你的渗透目标是什么。
二 、信息收集
信息收集是整个渗透测试中最重要的一步,你要把你要攻击的目标全部探测清楚,才能更好的攻击。信息收集的越丰富,内容或情报收集的越多,攻击的成功率就越高。
而信息收集到底要收集哪些信息呢?接下来我就给大家整理了一下,渗透测试中常见的一些需要收集的信息。
1.主机扫描(Nessus)
对目标主机进行扫描,而不仅仅是对网站进行扫描,扫描目标主机开放了哪些端口,扫描端口运行的服务,目标主机上有哪些漏洞,主机扫描的工具也有很多,比如:Nessus。
2.端口扫描(nmap)
需要知道目标服务器开放了哪些端口,常见的如135、137、138、139、445,这几个端口经常爆发漏洞。以下是一些服务端口的漏洞:
-
22–>ssh弱口令
-
873–>rsync 未授权访问漏洞
-
3306–>mysql弱口令
-
6379–>redis未授权访问漏洞
端口扫描工具有nmap和masscan。nmap扫描的准确性较高,但是扫描的比较慢;masscan扫描的比较快,但是准确性较低。
三 、网站敏感目录和文件
扫描网站目录结构,看看是否可以遍历目录或者敏感文件泄漏
-
后台目录:弱口令,万能密码,爆破
-
安装包:获取数据库信息,甚至是网站源码
-
上传目录:截断、上传图片马等
-
mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
-
安装页面:可以二次安装进而绕过
-
Phpinfo:会把你配置的各种信息暴露出来
-
编辑器:fck、ke等
-
is短文件利用:条件比较苛刻 windows、apache等
既然提到了网站敏感目录,那我们就不得不提 robots.txt文件了,robots.txt 文件是专门针对搜索引擎机器人robot 编写的一个纯文本文件。我们可以在这个文件中指定网站中不想被robot访问的目录这样,网站的部分或全部内容就可以不被搜索引擎收录了,或者让搜索引擎只收录指定的内容。因此我们可以利用以利用robots.txt让Google的机器人访问不了我们网站上的重要文件,GoogleHack的威胁也就不存在了。
举个例子,假如编写的robots.txt文件内容如下:
其中“Disallow”参数后面的是禁止robot收录部分的路径,例如我们要让robot禁止收录网站目录下的“data”文件夹,只需要在Disallow参数后面加上 /data/ 即可。如果想增加其他目录只需按此格式继续添加。文件编写完成后将其上传到网站的根目录,就可以让网站远离Google Hack了。
虽然robots文件目的是让搜索蜘蛛不爬取想要保护的页面,但是如果我们知道了robots文件内容的话,我们就可以知道目标网站哪些文件夹不让访问,从侧面说明这些文件夹是很重要的了。
探测目标网站后台目录的工具有:wwwscan御剑、dirbuster、cansina 等。
四 、旁站和C段扫描
旁站指的是同一服务器上的其他网站,很多时候,有些网站可能不是那么容易入侵。那么可以查看该网站所在的服务器上是否还有其他网站。如果有其他网站的话,可以先拿下其他网站的webshell,然后再提权拿到服务器的权限,最后就自然可以拿下该网站了。
对于红蓝对抗和护网,C段扫描比较有意义。对于单独网站的渗透测试,C段扫描意义不大。C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。
五 、网站漏洞扫描
网站漏洞扫描就是直接对网站进行漏洞探测了。网站漏洞扫描也有很多工具。比如AWVS、AppScan、OWASP-ZAP、nessuss等等。但是需要注意的是,使用漏扫工具直接对网站进行扫描,因为一下子流量过大,有些网站可能会崩溃。所以一般最好不要使用漏洞扫描工具对网站进行扫描。并且如果未经授权就用漏扫对网站进行扫描还是违法的。
六 、网站指纹识别
在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。CMS又称整站系统。常见的CMS有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver.AspCMS、帝国、Z-Blog等。
常见的网站指纹识别工具有:whatweb等。
七 、公司敏感信息网上搜集
当确定了公司后,我们可以去互联网上查询与该公司有关的任何信息。比如,公司的邮箱格式,公司的员工姓名,以及与该公司有关的任何信息。并且,我们还可以去Github、码云等代码托管平台上查找与此有关的敏感信息,有些粗心的程序员在将代码上传至代码托管平台后,并没有对代码进行脱敏处理。导致上传的代码中有包含如数据库连接信息、邮箱密码还有可能有泄露的源代码等。
八 、域名信息的收集
当我们确定了要渗透的目标,并知道了其域名后,接下来需要收集一系列与该域名相关的信息,包括域名对应的IP、域名的WHOIS信息、子域名等。
那我们该如何判断域名对应的IP呢?
首先,我们要判断该域名是否存在CDN的情况。为此,我们可以使用在线CDN查询网站进行检测,如站长工具中的“多个地点Ping服务器”和“网站测速”功能。如果查询出的IP数量大于一个,则说明该IP地址可能并不是真实的服务器地址。
从事网络安全行业的朋友应该都明白吧,如果查询结果中显示2个或3个IP,并且这些IP地址位于同一地区但属于不同运营商,那么这些IP地址很有可能属于CDN节点,而非目标服务器的真实IP地址。所以我们需要进一步分析和确认,才能准确定位目标服务器的真实IP。这时候渗透测试就已经完美收工了。
在了解了什么是渗透测试以及其基本流程后,是不是觉得渗透测试非常具有挑战性呢?
其实,尽管渗透测试在网络安全行业的岗位“食物链”中占据重要位置,但它并不一定意味着极高的难度。只要你对网络安全充满兴趣并愿意投入学习,无论你是刚入门的新人还是经验丰富的专业人士,网络安全行业都会为你提供广阔的发展空间和无限的挑战的。自学可供参考:
小白人群想学网安但是不知道从哪入手?一篇文章告诉你如何在4个月内吃透网安课程,掌握网安技术
一、基础阶段
1.了解网安相关基础知识
了解中华人民共和国网络安全法、熟知网络安全的相关概念:包括信息安全、风险管理、网络攻防原理、认证与加密等基本概念,
2. Linux操作系统
Linux操作系统目录结构
Linux命令格式
Linux文件和目录操作命令
Linux用户和用户组操作命令
Linux查看和操作文件内容命令
3. 计算机网络知识
包括TCP/IP协议、网络设备、网络拓扑结构等计算机网络基础知识,
SHELL
Shell脚本掌握常用的Linux命令能编写简单的Shell脚本,处理些简单的事务。
HTML/CSS
在网络安全领域,了解HTML(超文本标记语言)的目的主要是因为HTML是构建网页内容的基础,而网页是网络活动的中心。其作用如下
-
理解网页结构:了解HTML可以帮助安全专家理解网页是如何构建的,这对于分析网页行为和可能存在的安全隐患至关重要。
-
审查代码:安全专家需要检查HTML代码,以识别潜在的安全风险,例如恶意脚本注入、钓鱼攻击等。
-
验证输入和输出:了解HTML有助于实现有效的输入验证和输出编码,这是预防跨站脚本(XSS)等攻击的关键步骤。
-
构建安全的Web界面:Web开发人员必须了解如何使用HTML构建安全的用户界面,以防止例如点击劫持的攻击。
-
错误处理和响应:了解HTML可以帮助识别和解释错误处理中的信息泄露问题,例如详细的错误消息可能会暴露系统信息。
-
安全测试:在进行网站渗透测试或者安全评估时,对HTML的了解是基础,可以帮助模拟攻击者可能采取的手段。
CSS(Cascading Style Sheets,层叠样式表)是为 web 内容添加样式的代码。学习css有助于理解Web技术栈、前端安全、审计和代码审查
JavaScript
JavaScript是一种动态类型、弱类型、基于原型的直译式脚本语言。JS内置支持类型,常用来为网页添加各式各样的动态功能、为用户提供更流畅美观的浏览效果。
作用在于: 检测用户的浏览器信息;处理表单、检验用户输入并提供反馈。我们在某个网页输入密码错误的提醒就是由JS显示的。
使网页具有交互性,响应用户的点击。比如在网页中添加互动组件、滑块等。
根据用户操作,动态地创建页面。
创建修改Cookie(存储浏览器上的临时信息)比如我们访问过的网址,保存的用户名信息等。
PHP入门
php 框架,需要掌握基本知识,包括:核心 php 语法、函数和类、oop概念、数据库交互、restful 架构、数据结构、算法和数据结构复杂度分析,以及软件开发工具(如 git、ide、cli)。
它们可以帮助开发者更快地创建和维护 web 应用程序。
PHP的作用在于Web端网站开发、APP后台开发、微信小程序开发、移动端网站开发
MySQL数据库
作用:将数据持久化到本地、提供结构化查询功能
Python
C语言帮助你理解底层,Python则助你编写网络爬虫、数据处理、图像处理等功能性的软件。是程序员,尤其是黑客们非常钟爱的编程语言不得不学。
C语言(C++可选)C语言适合编写底层软件,还能帮助你理解内存算法、操作系统等计算机知识,建议学一下。
二、渗透阶段
SQL注入的渗透与防御
Xss相关渗透与防御
上传验证渗透与防御
文件包含渗透与防御
CSRF渗透与防御SSRF渗透与防御XXE渗透与防御远程代码执行渗透与反序列化渗透与防御逻辑漏洞
暴力猜解与防御
Redis未授权访问漏洞
AWVS漏洞扫描
Appscan漏洞扫描
Nessus漏洞扫描
MSF-Metasploit Framework
社会工程学
ARP渗透与防御系统权限提升渗透与防御DOS与DDOS渗透与防御内网相关渗透与防御
无线安全相关渗透与防御木马免杀问题与防御vulnhub靶场实战系列Kali高级渗透测试
三、安全管理
渗透报告编写
等级保护2.0
应急响应
代码审计
风险评估安全巡检数据安全
四、提升阶段
密码学
Java
SE入门
C++语吉
CTF夺旗赛
Windows逆向
Android
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 |
优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
同时每个成长路线对应的板块都有配套的视频提供:
学习资料工具包
压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。
面试刷题
视频配套资料&国内外网安书籍、文档
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 |
优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
