如何学习渗透测试:初学者教程
免责声明:黑客攻击是一项很难学习的技能。仅仅学习几门在线课程并不能让你成为一名优秀的渗透测试员。仅仅安装 Kali Linux 并学习如何使用工具,也无法让你成为一名优秀的渗透测试员。这是一条充满挑战的道路,充满了无尽的挫折,你不可能在一天、一个月甚至一年内学会如何顺利完成它。然而,如果你下定决心,你会发现渗透测试是一个非常有价值的领域,你可能永远都不想离开。
在本教程中,我将专门介绍渗透测试中 Web 应用程序攻击 方面的内容。这是一份道德黑客指南。如果你正在做这种不道德的事情,我真心希望你不要这么做。或者至少请你分一部分利润给我。
前提条件:
- 基本技术背景(Unix 命令、一些软件开发技能)
- 强烈渴望打破现状
0 - 背景知识
一些CS101知识是必须的。在连Unix命令都不熟悉的情况下尝试学习黑客技术,可不是像还没学会走就想跑一样。这就像驾驶一架A380飞机却不知道哪个方向向上一样。
如果你在缺乏必要的先验知识的情况下就贸然开始渗透测试,并在过程中“填补空白”,那么你将会陷入不必要的困境。以下是你需要了解的内容:
如何使用 Linux:Linux/Unix 在编程和渗透测试方面的主要优势在于其终端和丰富的工具。您可以尝试在 Windows 上完成所有操作,但这绝非易事——如果您打算进行渗透测试,最终还是需要了解一些 Linux 知识。相信我:如果您从事安全工作,而您的同事发现您从未使用过 Linux,他们会永远嘲笑您。
这里有三个主要选项:
- 安装一个 Linux 发行版(例如 Ubuntu)。最好的选择是下载一个虚拟机软件,用于安装 Linux 系统(链接见下方)。
- 如果你有 macOS,那就继续用吧。因为 Mac 上的终端和工具和 Linux 几乎一样,所以你可以凑合着用。
-
在 Windows 10 上使用Ubuntu。我认为这对初学者来说是最糟糕的选择,因为它在安装工具时可能非常不可靠,而且让 GUI 工作有时可能是一场噩梦。
-
VirtualBox:免费虚拟机软件
-
Ubuntu:不错的 Linux 入门发行版
如何编程:现在你已经搭建好了环境,我们可以开始最有趣的部分了!学习一些基本的编程技能对于渗透测试至关重要。如果你想学习如何破解它,首先要学习如何编写它。对于 Web 应用程序渗透测试,你需要学习一些全栈技术,例如 HTML、CSS、JavaScript 和 Python。Python 还有一个额外的优势,那就是它是一种非常优秀的脚本语言,可以让你编写自己的渗透测试工具(太棒了!)。
1 - 设置您的环境
如果你是开发者,你可能已经拥有了完美的配置。恭喜!通常情况下,Linux 或 Mac 是最佳选择。我个人在 Windows 10 上使用 Ubuntu(告我),但只是因为我知道我所有喜欢的工具都能在它上面运行。
许多初学者会从 Kali 开始,但我不建议这样做。成为一名自信的渗透测试员,其中一部分是建立自己的工具库。Kali 会提供一堆工具,但你可能无法真正理解和欣赏它们。
但无论你做什么,拥有一个舒适的环境绝对至关重要。现在就花点时间修复你设置中可能存在的任何问题(例如引导加载程序、窗口管理器、图形用户界面等等)。当你打开无数窗口和复杂的工具时,渗透测试会变得一团糟,你最不希望的就是你自己的环境对你不利。
2 - 学习理论
这一点毋庸置疑。即使只是网络应用程序黑客攻击,你也需要掌握大量的知识。我建议将网络黑客知识分为两类:基础知识和实用技巧。基础知识是你应该首先从书籍、视频、在线教程等学习的内容。
不幸的是,鉴于黑客世界瞬息万变,大多数优秀的网站已经具备了抵御“基础知识”攻击的安全性(但你仍然需要了解它们!)。“妙招”才是真正的赚钱利器。你以后可以通过浏览经验丰富的渗透测试人员博客、加入道德黑客社区以及观看鲜为人知的 YouTube 视频来学习这些技巧。如果你是第一个发现“妙招”的人,你就能进入名人堂,甚至可能获得丰厚的回报。
以下是一些关于基础知识的优秀资源:
- 《Web 应用黑客手册》:这本书非常适合入门。它几乎涵盖了你需要的所有基础知识。不过,不要纠结于书里自带的“实验”。
- OWASP 测试指南:OWASP 是 Web 应用程序黑客攻击的关键参与者,这份指南内容丰富,涵盖了你需要了解的很多内容。
- Youtube 上的 LiveOverflow:这个家伙很棒 - 他涵盖了很多基础知识以及大量的 Nifty Tricks。
- Hacksplaining:有关不同漏洞的大量信息。
- SecHub:汇集了各种漏洞利用代码,还附有说明!超酷。
- 学习 HTTP TCP/IP 模型、基本网络和数据包。相信我,你会需要这些的。
一旦你学习并练习了基础知识(下一节将详细介绍如何练习),你就可以继续学习一些“妙招”。以下是一些资源:
- DEF CON 视频很棒。
- 漏洞记录:有很多地方可以找到,Medium 是一个不错的选择。也可以看看r/Netsec。此外,在 Google 中搜索你想了解更多漏洞的信息,并在后面加上“记录”或“POC”,例如“XSS 记录”。你会找到一些非常聪明的人发布的帖子,分享他们发现的新漏洞利用方法。
- 寻找渗透测试社区并加入。令人惊讶的是,黑客攻击是一个非常社交化的领域,只需与其他渗透测试人员交流就能学到很多很酷的技巧。
3 - 使用 CTF 和 Wargames 进行练习
这才是有意思的地方。一旦你掌握了一些理论,就可以开始通过黑客挑战来练习了。这些是一些存在漏洞的 Web 应用程序,它们隐藏着一些“标记”,你可以通过利用这些应用程序来发现它们。
CTF(夺旗赛)比赛是现场活动,有记分牌和团队,而战争游戏的竞争性较弱,更像是练习技能的游乐场。
看看CTFtime上正在举办和即将举办的 CTF 比赛,虽然大多数比赛对新手来说都太难了。OWASP的 WebGoat和OverTheWire是不错的对抗游戏。还可以看看OWASP 的 Juice Shop、Hacker101 CTF、Hack The Box和Google 的 XSS 游戏。
虽然趣味十足且学习效果极佳,但请注意,战争游戏/CTF 所需的技能与实际应用(例如漏洞赏金计划)所需的技能略有不同。有可能你在 CTF 中得分最高,但完全无法胜任漏洞赏金计划(我曾经就遇到过这种情况),反之亦然。
兵棋推演之于漏洞赏金,就如同《文明5》之于管理一个真正的国家。兵棋推演可以教会你一些出色的策略和解谜技巧,但现实生活却截然不同——更多内容请见第五部分。
4 - 精通脚本编写
这会让你的生活变得轻松很多。Python 作为一种脚本语言非常棒,尤其是在黑客攻击方面。许多 CTF 和漏洞赏金任务都需要一些暴力破解操作,例如发送大量数据包和哈希计算,而所有这些都可以通过编写自己的 Python 脚本轻松完成。
了解一下pwntools,一个 Python CTF 框架。它简化了漏洞利用的编写!以下是如何发送数据包的。
我建议你创建一个文件夹来保存你自己的 Python 脚本,以便日后在此基础上进行开发。这能为你节省多少时间,真的难以言表。
5 - 现实世界和漏洞赏金
有一天,你会在第一次中等难度的 CTF 挑战中脱颖而出,无需再谷歌搜索答案。你会感觉棒极了。很可能你已经为此花费了数小时,最终自己找到了答案,这种感觉会让你永远迷上渗透测试。
你现在是一名猎人。凶猛无比。势不可挡。
你甚至可能以为自己现在可以开始赚钱了。但一旦你查看了漏洞赏金网站,你就会意识到自己完全不知道自己在做什么。没有任何线索告诉你漏洞在哪里。攻击面如此之广,你甚至不知道从哪里开始。而且,成千上万的优秀黑客已经把这个网站彻底清除了。
虽然可能有点令人沮丧,但真正的乐趣就从这里开始。你已经离开操场,准备和大孩子们一起玩耍了。一个好的起点是观看我之前链接的这个 DEF CON 视频,然后深入研究寻找好用的工具和更多 Nifty Tricks。
现在是时候开始学习网络侦察了。DEF CON 视频对此进行了详尽的介绍,随着你构建自己的侦察工具库,你将学到更多。
6-了解你的工具
工具并不能成就黑客。但如果没有工具,你很可能走不远。
我建议先下载几个“必备”工具,比如Nmap和Burp Suite。Nmap是一款发现工具,可以查找域名上的主机和开放端口,通常能让你大致了解网络状况。而 Burp Suite 则是你的新朋友。真的,它是网络黑客攻击的头号多功能工具。它的主要用途是捕获和编辑数据包,但它的功能远不止于此。我实在无法在这篇博文中充分展现它——你可以去谷歌搜索一下,看看一些教程视频。
了解了这两个之后,你就可以根据自己的情况,找到(或制作)最适合自己的工具了。以下是我最喜欢的一些工具:
- Sublist3r:我太喜欢这个子域名枚举器了。它速度超快,而且能找到很多东西。
- Aquatone:与 Sublist3r 类似,但功能更强大。速度换来了性能;我通常先运行 Sublist3r,然后在后台运行 Aquatone。
- dirsearch:目录暴力破解器。
- LinkFinder:发现 Javascript 文件中的端点。
- recon-ng:一个完整的网络侦察框架,几乎无所不能。如果你找到合适的环境,它甚至能帮你遛狗、做饭。
- SecLists:本身并非工具,而是一个用于暴力破解的列表集合。它几乎是 Web 渗透测试的必备工具——我差点就把它列为必备工具了。
- Spotify 破解混音带,营造酷炫氛围
7 - 继续黑客攻击
我告诉过你这会很困难,不是吗?
渗透测试充满挑战,令人困惑,总之就是令人沮丧。但如果你真心想做这件事,你总会找到克服所有这些困难的方法。
尝试加入社区,例如Twitter和Bugcrowd上的社区,因为与他人一起的旅程总是更有趣。
请记住:这是一个真正重要的领域。它回报丰厚,而且你将为世界做出真正的贡献。黑帽黑客们也每天都在学习,而道德黑客社区也需要一切可能的帮助。祝你好运,一路顺风!
这篇文章最初发表在explainhownow.com上
文章来源:https://dev.to/ctrlshifti/how-to-learn-penetration-testing-a-beginners-tutorial-505a