要成为一名渗透测试员,想从基础学习需要先掌握下面这3块(文末有相关自学资源推荐):
1、学习硬件和网络
渗透测试主要涉及网络和部分涉及硬件。
2、操作系统和系统架构
操作系统和系统架构在渗透测试中起着关键作用。系统操作涉及x86(32位)和x64(64位)架构,必须了解Windows,Linux,BSD,Mac,Solaris,Unix等各种操作系统,着可以帮助你在渗透测试方法中进行端口扫描时跟踪系统。
3. 编码、Web 开发、服务器端和客户端脚本
使用这 4 样东西编写安全程序或漏洞利用程序对目标进行渗透测试。
讲完渗透测试需要掌握的3块内容,要做渗透测试应该还是不知道如何下手。接下来简单科普下什么是渗透测试。再介绍下渗透测试的类型,方法及工具。这样也好在自己搭建的虚拟环境下实践理论。
所以本文的行文结构如下:
1. 什么是渗透测试?
2. 渗透测试有哪些类型?
3. 渗透测试有哪些方法?
4. 渗透测试工具分享
5. 分享渗透测试工具使用案例
6. 如何入门渗透测试
一、什么是渗透测试
渗透测试:指的是试图利用系统、网络、人力资源或实物资产中的弱点或漏洞,以对安全控制的有效性进行压力测试。
渗透测试不同类型包括:网络服务、应用程序、客户端、无线、社会工程和物理。可以在外网或内网,执行渗透测试,以模拟不同的攻击向量。
二、渗透测试有哪些类型?
根据每个测试的目标,渗透测试人员时候事先了解或不了解他们试图破坏的环境和系统,可分为:
-
黑盒渗透测试
-
白盒渗透测试
-
灰盒渗透测试
1、黑盒渗透测试
在黑盒渗透测试(也称为外网渗透测试)期间,渗透测试人员几乎没有获得有关企业 IT 基础设施的信息。该测试的主要目的是通过模仿实际威胁参与者的行为来模拟对内网网络的攻击。这种类型的渗透测试,试图发现和利用系统的漏洞来窃取或破坏组织的信息。
这种测试方法的主要好处是:渗透测试人员扮演不知情的攻击者角色,模拟真实世界的网络攻击。因此,测试将显示实施的安全措施,是否足以保护组织系统,并将结果用来评估其防御任何外网攻击的能力。
部署一系列已知有效的漏洞,是渗透测试人员在黑盒测试期间闯入系统的最简单方法之一。例如:Kerberoasting,这种测试方法也称为“试错法”,但是,此过程涉及高度的技术技能。
2、白盒渗透测试
白盒渗透测试(也称为透明盒测试、玻璃盒测试或内网渗透测试):是指渗透测试人员对源代码和环境有充分的了解,并拥有访问权限。
白盒渗透测试的目标是对企业系统进行更深入的安全审计(可访问黑盒测试无法访问的区域),需要企业为渗透测试人员提供尽可能多的细节,使测试更加彻底。例如:代码的质量和应用程序设计。
当然白盒测试确实有其缺点。例如:需要更长的时间来决定关注哪些领域,需要更复杂且昂贵的工具,例如:代码分析器和调试器。
⚠注意:只要满足测试目标,到底是执行黑盒或白盒渗透测试并不重要。
3、灰盒渗透测试
在灰盒渗透测试期间,渗透测试人员对内网网络或 Web 应用程序具有部分知识或访问权限。
渗透测试人员可能从主机上的用户权限开始,并被告知将他们的权限提升到域管理员。或者,他们可能会被要求访问软件代码和系统架构图。
灰盒渗透测试的一个主要优点是报告提供了对网络安全性的更集中和更有效的评估。例如:执行灰盒渗透测试的渗透测试人员无需花费时间在“试错”方法上,而是能够查看网络图以确定风险最大的区域。
4、小结
外网渗透测试(也即上文提到的黑盒渗透测试)的研究,是尝试利用外网用户,在没有适当访问权限的情况下执行的漏洞。
内网渗透测试(也即上文提到的白盒渗透测试)类似于漏洞评估,但是,它通过尝试利用漏洞并确定实际暴露的信息来进一步扫描。
三、测试方法共有多少种方法?
按照类型的不同,渗透测试方法可以分为一下6类:
1、网络服务
2、Web应用程序
3、客户端
4、无线网
5、社会工程学
6、物理渗透测试
每种方法的渗透测试都需要特定的知识、方法和工具来执行,并且应该与特定的业务目标保持一致。
1、网络服务渗透测试
网络服务渗透测试是最常见的渗透测试类型之一。该种渗透测试,是在组织的网络基础设施(服务器、防火墙、交换机、路由器、打印机、工作站等)中识别出最暴露的漏洞和安全弱点,然后再被利用。
执行网络渗透测试的目的是以保护的企业免受常见的基于网络的攻击,包括:
• 防火墙错误配置和绕过防火墙
• IPS/IDS规避攻击
• 路由器攻击
• DNS 级别攻击
区域转移攻击
基于交换或路由的攻击
• SSH 攻击
• 代理服务器攻击• 不必要的开放端口攻击
• 数据库攻击
• 中间人 (MITM) 攻击
• 基于 FTP/SMTP 的攻击
鉴于网络为企业提供关键任务服务,以上攻击建议至少每年执行一次内网和外网网络渗透测试。这将为的企业提供足够的覆盖范围以抵御这些攻击媒介。
2、Web 应用渗透测试
Web 应用程序渗透测试,用于发现基于 Web 的应用程序中的漏洞或安全弱点。它使用不同的渗透技术和攻击,旨在闯入 Web 应用程序本身。
Web 应用程序渗透测试的典型范围包括基于 Web 的应用程序、浏览器及其组件,例如:ActiveX、插件、Silverlight、Scriptlet 和 Applet。
由于来自 Web 应用程序的威胁日益增加,Web 应用程序渗透测试技术随着时间的推移而不断发展。自 COVID-19 爆发以来,这种威胁已大大扩大,导致网络犯罪增加了 600%。
3、客户端渗透测试
客户端渗透测试用于发现客户端应用程序中的漏洞或安全弱点。
这些可以是程序或应用程序,例如:Putty、电子邮件客户端、Web 浏览器(即 Chrome、Firefox、Safari 等)、Macromedia Flash 等。Adobe Photoshop 和 Microsoft Office Suite 等程序也需要接受测试。
执行客户端测试以识别特定的网络攻击,包括:
跨站脚本攻击
点击劫持攻击
跨域资源共享 (CORS)
表单劫持
HTML 注入
打开重定向
恶意软件感染
4、无线渗透测试
无线渗透测试涉及识别和检查连接到企业 wifi 的所有设备之间的连接。这些设备包括笔记本电脑、平板电脑、智能手机和任何其他物联网 (IoT) 设备。
无线渗透测试通常在现场进行,因为渗透测试仪需要在无线信号范围内才能访问它。或者,可以在现场部署NUC和WiFi Pineapple以远程执行测试。
在执行无线渗透测试之前,应该考虑以下事项:
1) 是否所有接入点都已被识别,有多少使用较差的加密方法?
2) 流入和流出网络的数据是否加密,如果加密,如何加密?
3) 是否有监控系统来识别未经授权的用户?
4) IT 团队是否有可能错误配置或复制无线网络?
5) 目前有哪些保护无线网络的措施?
6) 所有无线接入点都使用 WPA 协议吗?
5、社会工程渗透测试
社会工程渗透测试是指,恶意行为者试图说服或诱骗用户向他们提供敏感信息,例如:用户名和密码。比如:大家的密码基本都会含有自己的生日~用户名使用的是自己的QQ号,163邮箱是某一时期使用的手机号。
渗透测试人员使用的常见社会工程攻击类型包括:
1)网络钓鱼攻击
2)钓鱼
3)Smishing
4)尾随
5)冒名顶替者(即同事、外网供应商或承包商)
6)名称删除
7)预先发短信
8)垃圾箱潜水
9)窃听
10)礼物
根据最近的统计,98% 的网络攻击都依赖于社会工程。这是因为内网用户是网络安全的最大威胁之一,并且由于诈骗的利润丰厚。社会工程测试和意识计划已被证明是缓解攻击的最有效方法之一。
例如:流行的电子邮件网络钓鱼平台 KnowBe4 模拟了电子邮件网络钓鱼攻击。当用户单击链接时,他们会被带到一个页面,该页面会通知他们这是一次网络钓鱼测试。
然后提供补救培训,以帮助教育和告知用户最新的网络攻击以及如何避免它们。
6、物理渗透测试
物理渗透测试模拟现实世界的威胁,渗透测试人员试图突破物理障碍以访问企业的基础设施、建筑物、系统或员工。
物理渗透测试的主要好处是暴露物理控制(锁、屏障、摄像头或传感器)中的弱点和漏洞,以便快速解决缺陷。通过识别这些弱点,可以采取适当的缓解措施来加强物理安全态势。
四、渗透测试工具分享
1、外网测试
外网测试分为三个阶段:
阶段1:第一阶段代表特定活动元素(服务器、Internet/DMZ 中的路由器)的 TCP/UDP 端口的全范围扫描(枚举)。
可以执行特殊的反 IDS 扫描,从而降低最终被 IDS 检测到的机会(适合验证 IDS 的正确功能)。在枚举 TCP SYN(半开)、TPC(全连接)、TPC 的情况下,碎片与 UDP 扫描以相反的顺序使用。
阶段2:发现的服务和版本 OS/IOS 在第二阶段被识别。一组专门的测试程序揭示了潜在的漏洞。同时检测到不合标准的加密协议 (VPN) 和 IPv6 的使用。在检测到 VPN 服务(IKE 主机)的情况下,会分析实施的版本和类型,从而识别潜在的漏洞。
阶段3:第三阶段包括针对服务器的特定攻击,使用免费提供的软件包(漏洞利用脚本)攻击检测到的漏洞,验证发现的漏洞的真正威胁。
以上三阶段,所涉及到的工具有下面这些:
Nessus
Metasploit
Burp Suite Pro
Dirbuster/Dirb/GoBuster
Nikto
Sqlmap
Recon-ng
Nmap
Hydra
GHDB
theHarvester
2、内网测试
阶段1:扫描(枚举)给定活动网络设备(服务器、路由器)的 TCP/UDP 端口 (1 – 65535) 的完整范围。可以执行特殊的反 IDS 扫描,其目的是避开可能的 IDS 设备(适用于评估正确的 IDS 功能)。
阶段2:识别找到的服务以及 OS/IOS 版本,并使用专门的测试程序揭示潜在的漏洞。任何非标准的加密 (VPN) 协议和 IPv6 的使用也被识别。目标是映射本地网络、可访问的服务器、服务、工作站和设备,端口扫描本地网络(可访问的 SMTP、DNS、SNMP、SQL、HTTP 和其他服务),获取有关测试环境的信息(IP 地址、主机名、网络拓扑等)。
阶段3:代表对网络基础设施安全(VLAN、HSRP、路由协议、STP等)的攻击。
阶段4:使用免费提供的程序(利用脚本)对已发现的漏洞进行特定攻击,并验证已发现漏洞的实际影响。利用发现的漏洞和配置不足的企图,以闯入更多的系统和设备,提升权限和资源访问权限。
内网渗透测试中常用的工具有:
Wireshark
Burp Suite Pro
Dirbuster/Dirb/GoBuster
Nikto
Sqlmap
Nessus
Responder|
Metasploit Framework|
Nmap
Hydra
Bettercap/Ettercap
Bush Cat/John the Ripper|
Custom Scripts
五、分享渗透测试工具使用案例
1、W3af 扫描器
W3af或 Web 应用程序框架是主要用于发现漏洞的安全扫描器。可以在几乎 Web 应用程序渗透测试中使用 W3af 来快速探测目标网站及其托管服务器。
首先,键入“cd w3af.d”打开 W3af 控制台。进入正确的目录后,输入“./w3af_console”打开 w3af.
接下来,输入“target”,“set target xxxx”并回车。输入“back”跳转一个目录,配置将被保存。
最后,输入“set plugins”以选择所需的扫描选项。在这种情况下,通过键入“audit all”选择全部并键入“back”以返回一个目录。写“开始”并运行扫描。
扫描完成后,W3af 将报告扫描发现的漏洞。在下面的案例中,W3af 发现目标系统在 Apache 服务器版本 2.2.8 和 PHP 5.2.4 上运行。
这两个版本都容易受到 W3af 报告的 CSS 或 Cross Side Scripting 攻击。
总之,W3af 具有更多与利用相关的功能,但过于庞大,无法在本文中展示。尽管如此,这是快速收集有关目标系统的信息的一种快速简便的方法。
2、Burp Suite
Burp Suite是一个开源的 Web 应用程序渗透测试工具,有两种选择。开源版本可供任何人免费使用,但该工具缺少各种功能。
Burp Suite 的商业版本提供了更多的自动化和功能,并已授权给许多渗透测试公司。
Burp Suite 中的各种功能使其成为一个全方位的 Web 应用程序安全测试工具,可以在整个渗透测试过程中使用。使用 Burp Suite 收集 http 流量很容易,并且在利用领域的可能性很大。
为了演示 Burp Suite 最有用的方面,下面是一个使用 Burp Suite 捕获 http 流量的简单范围,而不是使用 Sqlmap 执行 SQL 注入攻击。
首先,导航到 Kali Linux 桌面的左侧打开 Burp Suite,然后在“Web 应用程序分析”选项卡的类别中找到 Burp Suite。加载后,确保的“拦截”选项卡已选中“拦截已开启”。
接下来,设置 Burp Suite 作为 Firefox 浏览器中的网络代理。打开“首选项”按钮,进入“高级设置”→“连接设置”→选择“手动代理配置”并填写IP地址和端口号:127.0.0.1和8080。
现在一切都设置好了,通过 Firefox 浏览器导航到的目标网站,并在应用程序 URL 的易受攻击部分插入一个 1。
在这种情况下,易受攻击的 PHP 版本允许我们在“title”部分之后注入“1”,并确认 SQL 注入是可能的。
使用捕获的流量,不再需要 Burp Suite,并且可以关闭“拦截开启”。将捕获的流量保存到文件并退出 Burp Suite。
为了执行实际的 SQL 注入,我们将打开 SQLMap 并执行攻击。但首先,了解一下 SQLMap 的背景知识会让意识到这个工具有多么有用。
3、SQLMap
SQLMap是开源形式的最好的自动化工具之一。它简化了执行 SQL 注入攻击的过程,并提供对受损数据库服务器的访问。
主要功能之一包括数据库指纹识别、漏洞扫描和可能的利用。
为了继续之前在 Burp Suite 中捕获的 http 流量,演示使用 SQLMap 执行成功的 SQL 注入攻击的过程。
输入“sqlmap -r nameOfTheSavedFile.txt -p 标题。这将有效地运行 SQLMap,并使用提供的包含捕获流量的文件,尝试在易受攻击的 Web 应用程序的 URL 的“标题”部分之后注入代码。
扫描完成后,SQLMap 会报告应用程序和数据库版本以及所有注入尝试的详细信息。
最后,我们将尝试启动 SQL shell 并获得对后端数据库的访问权限。输入“sqlmap -r nameOfTheSavedFile.txt -p title –sql-shell”并回车。
如果对数据库进行了正确的访问,允许执行读取、写入或删除等操作,则此方法可能非常有效。
另一种执行 SQL 注入攻击的方法是针对目标 IP 运行 SQLMap 并尝试访问数据库。出于演示目的,我们选择了容易受到攻击的可用 BWAPP Web 应用程序。
接下来,执行以下命令,该命令将尝试在提供的 Web 应用程序目标 URL 的“title=1”部分之后注入 SQL 代码。
SQLMap 将运行并要求确认检测到的数据库版本。
键入“是”并继续扫描。
接下来,通过在指定目标后添加“—dbs”,继续查找环境中可用的数据库。
SQLMap 检测到可用数据库后,尝试列出其中一个数据库的表,方法是添加“--tables -D”并指定表名。
由于我们的漏洞利用成功,我们将继续获取尽可能多的信息。“bwapp”数据库中的“users”表可能会显示更多敏感信息。
通过键入目标 url 转储“用户”表,指定操作、数据库和表名,然后按 Enter。
SQLMap 将自动检测“用户”表包含密码哈希,并询问是否希望存储它们以备以后可能的字典暴力密码攻击。
将哈希值保存到文件并选择默认字典选项并运行蛮力扫描。
完成后,SQLMap 将呈现破解报告的结果。
无需使用 SQLMap 中的默认密码破解功能即可达到相同的效果。Hydra 和 John Ripper 是一些最流行的密码破解工具,可以帮助进行额外的密码破解工作。
如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)
👉网安(嘿客)全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
👉网安(嘿客红蓝对抗)所有方向的学习路线👈
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
学习资料工具包
压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。
面试题资料
独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
👉嘿客必备开发工具👈
工欲善其事必先利其器。学习嘿客常用的开发软件都在这里了,给大家节省了很多时间。