老实说,学习黑客攻防知识还是挺复杂的。攻防?明明林枫是要进攻,这里怎么涉及到“防”了。虽然攻防不能说是一体的。但了解攻击当然得先知道防御。很多黑客其实本质上也是网络安全专家。可惜了,正邪之分,存乎一心。想要更好的理解进攻,就得先学会防守。而且是重头学一遍,林枫先前掌握的那些防守技巧还不够。也正因此整个过程很复杂。好吧,不是一般意义的复杂,而是非常之复杂。你得懂得跟计算机和网路相关的很多细碎但基础的知识。要熟练掌握操作系统的工作原理及结构;要熟悉tcpip协议和网络协议栈;要理解路由、交换、网络拓扑背后的深层次奥秘;要熟练掌握服务器和客户端的通信机制;要通晓基本的网络安全知识……而在密码学方面,你要掌握对称加密和非对称加密的基本原理和应用。要能理解常见的加密算法(如aes、rsa等)。准备跟比特币打交道你还得熟悉哈希算法及其在数据完整性中的应用。其次要了解数字签名和证书体系的工作机制。还要试着具备破解和绕过加密系统的能力。此外呢,还得掌握python、javascript等常用编程语言。要熟悉bash、powershell等脚本语言,自动化任务。要能编写各种网络扫描、嗅探和注入脚本。要理解漏洞并能编写漏洞利用程序。要熟悉多线程、并发编程,这样才能提高攻击效率。此外漏洞分析和逆向工程能力也要强。毕竟不是所有的漏洞都是现成的。要有能使用调试器和分析工具排查程序漏洞的能力。此外要熟悉常见的缓冲区溢出、sql注入等手段……光是看到这一堆“要如何如何”林枫就觉得很麻烦。相比于数学这些东西绝对算不上难。但有些东西确实不难,但不等于不折磨人。因为繁琐。想象一道分类讨论题,要分一百种情况,每个情况再要细分1000个要点,每个要点还要再分几个分支,每个分支还要……那种感觉怎么说呢无限套娃。当你要在知识的汪洋大海里游泳,得知这个知识海还有好几个“深渊”,每个“深渊”里都充满了看不见底的细节,而这些细节你又必须得全须全尾地了解。当你得知这一切的时候,那时你的心情一定以及肯定将是无比的绝望。而学习这些知识的过程就是一个拆解一个个深渊的过程。这些知识太杂、太细、太碎。越是接触这一行,林枫就越是感觉这个方向的知识浩如烟海。但偏偏每一步都不能够忽略。要走上这条道路,当然要搞懂计算机和网络的基础知识。这里“基础”可不是“简单”的意思,而是指很多平时甚至都让人忽视的内容。这类基础是所有进阶知识的根基。操作系统就是计算机的“大脑”,而网络是它的“手脚”。了解它们,你才能知道每个“细胞”是如何“通话”的。得深入理解操作系统的工作原理,比如进程管理、内存分配、文件系统……这些听上去就不好应付,但这些是基础中的基础。因为每当你想要“突破”一个系统、进入这台设备的大脑中枢,起码得先知道这个“大脑”在运行中做了哪些“自我保护”。知道了它的保护,你才能在它的“守卫”盲区里找到可趁之机。网络知识同样重要,要成为一名优秀的网络安全专家,你得熟悉tcpip协议。这个协议堪称网络世界的“语言”,大部分网络通信都依赖它。想象一下,如果你进入一个国家,发现每个人都在用同一种语言交谈,假如你也会这种语言,那么沟通、获取信息岂不更容易?tcpip协议就是这样的“共同语言”,你熟悉了这套共同语言,就可以在网络世界自由“行走”,掌握别人的通信方式。而除了“语言”,你还需要理解网络的拓扑结构,知道数据是如何在各种网络设备之间传输的。你还得熟悉服务器和客户端的通信机制。因为大部分的网络活动都涉及到服务器衔接。而服务器就像一个“情报中心”,你要有本事“潜入”其中,自然能拿到你想要的。其次,要学很多网络安全与密码学方面的内容。网络安全与密码学可以说是信息世界的“锁与钥匙”。网络安全的本质,就像给信息世界加上一把把“锁”,而网络安全人员的目标,则是“开锁”。为了搞清楚这件事,你得理解加密与解密。比如,对称加密和非对称加密,它们分别是给信息上锁的两种方式。,!对称加密就像家里的门锁,用一把钥匙锁上,用同一把钥匙解锁;而非对称加密就像邮箱,你可以用一个“公钥”加密邮件,只有拥有“私钥”的人才能解密。如果你能掌握这些加密方式,那你就可以轻易加密自己的数据,让别人无法破解。反之,如果你能破解别人的加密系统,打开别人的锁。那么无论是网络聊天记录、邮件,还是数据流传输中藏着的“秘密”,对你来说都将不再有“隐私”。除了加密方式,还需要掌握一些常见的加密算法,比如aes、rsa。aes就像是网络安全的“特种兵”,因为它的加密能力非常强大,被广泛应用于各大网络系统中。而rsa是另一种强大的加密算法,广泛用于“数字签名”——这是一种证明数据来源真实可靠的方法。了解这些加密算法,你就懂得如何构建“安全城墙”。而若懂得破解它们的原理,那就是在学习如何“攻城”。再之后要从事很多编程和自动化方面的内容。会编程是每个网络安全人员黑客的基本功。如果你是一名厨师,编程就像你的“刀”,没有它,你做菜(操作计算机)就会束手束脚。python、javascript这类编程语言都很实用,因为它们不仅语法简单,效率高,而且支持很多强大的库,能让操作“如虎添翼”。比如,可以用python写一个网络扫描工具来快速扫描“弱点”;或者用javascript操作网页元素。另外,掌握一些脚本语言(比如bash、powershell)也很重要。它们的作用在于实现自动化。你可以设定一个脚本,让它在无人操作的情况下自动扫描网络、搜集数据、处理信息,甚至可以做到24小时不间断地执行特定任务。自动化能力意味着你可以“多线程”运作,一边做其他事情,一边让你的“助手”程序在网络世界里进行自动侦查,找到那些潜藏的“猎物”。成熟的技术人员不仅要依靠现成的工具,还要具备自己“造工具”的能力,因为不是所有漏洞都是现成的。漏洞分析的本质,是要能在系统的细枝末节中找到“疏忽”,比如,程序代码的某些角落里有没有意外的缺陷?这些缺陷可以被利用吗?这就涉及到所谓的“逆向工程”了。逆向工程是非常硬核的技术,通常是通过调试器、分析工具对系统的二进制文件进行分析,把程序“还原”回可以理解的代码逻辑。这个过程就像是看一本密码书,通过反复推敲每个字符的含义,试图破解其信息。掌握了这项技能,你就可以把自己想要的工具“定制化”到每一个细节,为每一次活动打造最适合的“武器”。同时,也不难忽视“漏洞利用程序”。很多黑客看似操作花里胡哨,其实本质落脚点还是在于利用“系统漏洞”。学会编写漏洞利用程序,就相当于拥有了“专属武器库”。当你在某个系统上发现了漏洞,你可以写一个程序直接攻击、渗透这个系统。……繁琐肯定是繁琐的。哪怕是对于林枫这种两辈子都在从事互联网相关内容的人来说,这些都很枯燥。因为很多黑客攻防的知识学习的时候都挺枯燥的。毕竟这个过程涉及到一些很底层的一些东西。而各行各业跟底层有关的内容不枯燥的少。不过枯燥归枯燥,想想背后的价值。一门学问很枯燥,但如果有人跟你说硬着头皮学上一晚上,每天给你100万呢。同样的道理,黑客攻防虽然一样枯燥的,但毕竟这背后可是647万枚比特币啊。拖上个那么几年,这么些比特币保守估值也要百亿美元以上。而且这种不见光的钱完全避开各种金融机构的监管。不在人类历史上任何政府的掌握范畴之下。完全可以说是真正意义上的私房钱。这样巨大的利益足够林枫无视很多困难。:()不朽从二零一四开始