黑客攻防是一个极具魅力的技术领域,但成为一名黑客毫无疑问也并不容易。你必须拥有对新技术的好奇心和积极的学习态度,具备很深的计算机系统、编程语言和操作系统知识,并乐意不断地去学习和进步。
如果你想成为一名优秀的黑客,下面是10种最重要的基础条件,请认真阅读:
1. 了解黑客的思维方式
我们生活中用到的网站、软件等,都是由程序员编写的代码构成的。
这些代码在设计的过程中,都是基于一种正向的逻辑进行的,为了实现某个目的,完成某个操作的流程或数据传输逻辑。
而黑客的思维是逆向的,他们会去分析目前这个操作流程或数据传输逻辑中,是否存在一些验证不严谨或者隐秘信息被泄露的风险,并加以利用,从而绕过正常的操作逻辑达到未授权访问或操作的能力。
通俗点说,程序员是造房子的,而黑客则是看看房子是不是哪里漏了个风,缺了个口。翻进去为所欲为;有的甚至直接将房子拆了。
2. 学习UNIX/LINUX
笔者为大家挑选了一些适合初学者学习UNIX和Linux操作系统的最佳书籍,这些书不仅能教你学会Linux和UNIX的基础知识,其中包含了大量用于在UNIX环境中进行高级编程的大量代码示例。
《Linux/UNIX系统编程手册》
与许多较老的UNIX书籍不同,这是一本相对较新的Linux书籍,这本书是由Michael Kerrisk编写的,他是Linux手册的维护成员之一,与许多作者一样,他从1987年开始研究UNIX,并从20世纪90年代末开始关注Linux。如果只推荐一本书的话,我会推荐这一本,因为它更全面,它应该是学习UNIX/Linux系统编程的标准书籍。添加微信codingSmart免费领取。
《Linux命令行大全》
《Linux命令行大全》主要介绍Linux命令行的使用,循序渐进,深入浅出,引导读者全面掌握命令行的使用方法。每一个要在Linux中工作的新程序员都应该有一本这本书。
《UNIX环境高级编程(第3版)》
这是学习UNIX最好的书之一,是由Richard W. Stevens编写的经典,UNIX是有史以来最好的软件之一,它已经有30多年的历史了,而且仍然很强大,只要UNIX仍然存在,这本书就会一直经典。
这本书的优点在于,书中有成千上万的代码示例,并给出了清晰的解释,它还包含了数百个插图和图形,展示了不同的UNIX概念是如何工作的。简而言之,这是任何想学习UNIX并更好地理解它的人必读的UNIX书籍之一。
3. 学习一门编程语言
黑客&网络安全工程师的武器也是代码。想要成为黑客或者网络安全工程师,首先要学会一门黑客需要的编程语言。
对于没有代码经验的小白,下面三项,是安全行业的从业者都最好能掌握的语言,锤炼一下自己编程的功底。
Shell脚本
掌握常用的Linux命令,能编写简单的Shell脚本,处理一些简单的事务。
C语言(C++可选)
C语言没有复杂的特性,是现代编程语言的祖师爷,适合编写底层软件,还能帮助你理解内存、算法、操作系统等计算机知识,建议学一下。
Python
C语言帮助你理解底层,Python则助你编写网络、爬虫、数据处理、图像处理等功能性的软件。是程序员,尤其是黑客们非常钟爱的编程语言,不得不学。
4. 学习了解计算机网络知识
这是另一个必不可少的基础条件,学习网络知识,理解网络的构成。懂得不同类型网络之间的差异之处,清晰的了解TCP/IP和UDP协议。这都是在系统中寻找 漏洞的必不可少的技能。理解局域网、广域网,VPN和防火墙的重要性,精通Wireshark和NMAP这样的网络扫描和数据包分析工具等。
重点学习 OSI、TCP/IP 模型,网络协议,网络设备工作原理等内容,其他内容快速通读;
5. 学习使用黑客常用操作系统
注重安全性的操作系统是黑客最好的朋友,因为它可以帮助他们发现计算机系统或计算机网络中的弱点。
Kali Linux
由 Offensive Security 开发并重写 BackTrack,Kali Linux 发行版在我们用于黑客目的的最佳操作系统列表中名列前茅。这个基于 Debian 的操作系统附带了 600 多个预装的笔测试工具,使您的安全工具箱更加丰富。这些通用工具会定期更新,并适用于 ARM 和 VMware 等不同平台。对于司法鉴定工作,此顶级黑客操作系统具有实时启动功能,该功能为漏洞检测提供了理想的环境。
除此之外还有Parrot Security OS、 BackBox、Samurai Web Testing Framework、Pentoo Linux、DEFT Linux、Caine、Network Security Toolkit、BlackArch Linux、Bugtraq、ArchStrike Linux、Fedora Security Spin等多款操作系统
6. 学习密码技术
接着,来了解一些网络安全领域内经常打交道的编解码技术和加解密技术。包括base64编码、对称加密、非对称加密、哈希技术等等。
了解它们基础的概念、做什么用的,解决什么问题,最后再了解下工作原理。
推荐书籍:《加密与解密》
7. 学习使用黑客渗透工具
网络协议攻击、Web服务攻击、浏览器安全、漏洞攻击、逆向破解、工具开发都去接触一下,知道这是做什么的,在这个过程中去发现自己的兴趣,让自己对网络安全各种领域的技术都有一个初步的认识。以下是常见的web渗透使用工具方法。
8. 学习网络安全法
《中华人民共和国网络安全法》,是我们为了保障网络安全,维护网络空间主权和国家安全、社会公共利益、维护公民、法人和其他组织的合法权益,促进经济社会健康发展,制定本法。
我觉得作为一个技术人员了解和学习黑客知识是必要的,因为这样才能在日常工作中应对安全风险,在较高的安全意识上完成编程和运维工作;当然,如果你能成功掌握了一些黑客原理和技术,当你遇到攻击时,也不仅仅是严防死守,而是抓住内鬼,反将一军。
技术本身并不罪恶,滥用技术才会导致罪恶!
9. 编写漏洞利用程序
实际动手,开发路线需要多写代码,阅读优秀开源代码,二进制路线多分析样本,编写EXP等等,渗透测试多拿网站练手(合法方式)等
渗透实战操作
- 掌握渗透的整个阶段并能够独立渗透小型站点。
- 网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);
- 自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;
- 思考渗透主要分为几个阶段,每个阶段需要做那些工作,例如这个:PTES渗透测试执行标准;
- 研究SQL注入的种类、注入原理、手动注入技巧;
- 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架;
- 研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki,可以参考:XSS;
- 研究Windows/Linux提权的方法和具体使用,可以参考:提权;
- 可以参考: 开源渗透测试脆弱系统;
打CTF,多参与一些网络安全比赛,接近实战的环境下锻炼动手能力
10. 多向大佬学习
我们学习网络安全,很多学习路线都有提到多逛论坛,阅读他人的技术分析帖,学习其挖洞思路和技巧。但是往往对于初学者来说,不知道去哪里寻找技术分析帖,以下是个人搜集的一些安全圈大佬的个人微信公众号,可以看看大佬们最近在关注什么顺便学习下。
11. 参与开源安全项目
开源安全项目可以帮助你测试和打磨你的黑客技术。这并不是一件容易的事,一些机构,如Mozilla、Apache等,会提供开源项目。参与这些项目,即使你的贡献很小,也会给你带来很大的价值。
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。!!