想要成为最厉害的白帽子,唯有持之以恒的学习和千百次实战的锤炼。实战只能靠你自己,但学习的路径,《实战化白帽人才能力图谱》已经帮你铺好了。
“你们觉得最厉害的黑客应该是什么样子?”笔者一本正经地问道。
正在鼓捣电脑的路人甲:“是什么样不知道,但不是什么样我知道,比如我(笑出鹅叫)!”
一旁指手画脚的路人乙:“看过电影吧,给你个画面自己脑补——键盘噼里啪啦,屏幕滚滚而下,响指突然一打,系统全部拿下。”
话音未落,两位小哥又低下了头,钻进了属于他们的二人世界里,电脑屏幕左上角的补天平台logo若隐若现。笔者哦了一声,大致脑补了一下,大概他说的是下面这个样子?
突然,路人乙对路人甲兴奋地喊道:“我们上次在补天提交的RCE(远程代码执行漏洞),奖金已经到账了。”
兴趣使然
3月28日,补天平台如期举行了自己的十周年生日会。
四面八方的白帽黑客纷至沓来,他们中的大多数有着略显稚嫩的脸庞,却充满了年轻人独有的自信心,仿佛在告诉所有人,未来的赛博世界是属于自己的。
讲台上,补天平台负责人正眉飞色舞地讲着补天平台的辉煌过往:
“补天平台始终把漏洞的快速响应放在首位,以打造一个健康、繁荣的白帽子社区为中国的网络安全做贡献为己任,成立十年来,共有超过十万名白帽黑客齐聚于此,提交了一百多万个漏洞。”
“那你知道最厉害的黑客应该是什么样子的吗?”笔者迫不及待地再次问出了这个问题。
“啊,我前年刚入行,这个话题离我还有点遥远。”一名补天ID叫做BugMaker的白帽子回答道,“不过你可以参考一下补天发布的‘实战化白帽人才能力图谱’(简称图谱),那里面总结了不同阶段的白帽黑客所应掌握的实战化技能。”
“你说的是这张图么?”我拿起手机给他看。
“对,就是这张。你看,从最初级的Web漏洞利用到高阶的内网渗透和底层的漏洞挖掘,都在上面了。” BugMaker点了点头。
笔者数了数,总共14大类、85项具体技能。如果是最厉害的黑客的话,不敢说全都会,至少也掌握了绝大部分吧。
“我看这张图把技能分成了三个阶段,你大致在一个什么样的位置?这上面列的这么多技术,你都会去学习吗?”笔者接连发问。
“我撑死也就算是初级阶段呢,跟着学长和补天上的大神们在学习各类漏洞的利用方法。至于再往后学习,主要还是看兴趣吧。其实像我们大部分人入行都是因为兴趣,一次机缘巧合就对这玩意来了兴趣。”
听到这句话,笔者本着“社牛”的姿态四下问了一圈,得到的答案算是大同小异吧,有学长带着上道的,有社团一起打网络安全比赛的,还有自己账号被盗突发奇想的……
总之一句话,兴趣一直在路上。
后来BugMaker告诉笔者说,大二的时候他写的代码出了一个小Bug,不管自己怎么调试都无法运行,后来还是请教了很多人,才发现哪里出现了Bug,后来就慢慢的对漏洞感兴趣了。
BugMaker的ID也是来源于那里,意在靠自己的经历鞭策自己,撸代码的人都会制造一个又一个Bug,但自己从当上白帽子的第一天起,目标就是将这些Bug和漏洞揪出来,确保不会受到坏人的侵扰。
从“脚本小子”开始
相比BugMaker,与之年龄相仿的Tracy(补天ID)明显拥有更长的白帽子职业生涯。
他成为白帽子的年龄非常早,大概也就十四五岁,当时还在上初中。一个燥热的周六,他惊奇的发现自己游戏账号被盗了。作为一名资深游戏玩家当然知道这意味着什么,这让本就只有假期才能玩一两个小时游戏的Tracy心凉了半截。
果不其然,他辛辛苦苦积攒的游戏装备,被盗号者“能毁尽毁”。那两年,他对盗号的恨得牙痒痒。
所以Tracy立志要成为白帽子。在他心里,干盗号这行当的肯定都是黑客,而网上说,白帽子是好黑客,极富正义感,是对抗坏黑客的生力军。
在做完这个决定之后的第一个周末,Tracy像往常一样,被父母允许玩两个小时的电脑。出乎意料的是,他直接删除了他最爱玩的游戏,反手就在搜索引擎栏里输入了“白帽子”三个字。
面对网上五花八门的教程、科普文章,Tracy一时间呆住了,不知道该从哪里开始。
直到一篇叫做《避免成为“脚本小子”》的帖子,出现在他的眼前。大概意思就是绝大多数白帽子都是从使用脚本工具入门的,但有些初学者学会使用一些自动化的漏洞扫描、利用工具之后就沾沾自喜,失去了继续学习的动力,成为只会用脚本的“小子”。
不过,Tracy倒是没有在意很多人对脚本小子的不屑,他只有一个想法:打游戏有人开脚本就会变得很厉害,当白帽子岂不是也差不多?
“你听说过SQLMap吗?”Tracy反问我到。
“当然听过,你看这里就有。”笔者指了指手机里图谱上的基础能力方格。
白帽子同学都知道,SQLMap是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用应用程序中SQL注入漏洞。
Tracy说,他学会使用的第一款安全工具就是SQLMap,它的意义丝毫不亚于他玩的第一款电脑游戏,亦或者是篮球爱好者上脚的第一双高档篮球鞋,钓鱼爱好者手上的第一根鱼竿……
借助这款工具,Tracy很快就学到了白帽子生涯的第一项技能——SQL注入。
SQL注入是指在原先正常的SQL语句上添加额外的非法SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
“在入门阶段,当‘脚本小子’真的很酷,它让我也成为了当时同学们心中还遥不可及的‘黑客’。”Tracy说,他用了酷这个词。SQLMap可以让他批量测试SQL注入漏洞,每次成功利用都让他有一种不可名状的满足感。
在他那些还只会打游戏的同学们眼中,他就是很酷。
有意思的是,在笔者沟通过的若干个白帽子当中,大部分学会使用的第一款工具都是SQLMap。
类似SQLMap的脚本工具还有很多,比如某些偏执狂最钟爱的BurpSuite,能够自动化抓取数据包,便于批量收集目标情报信息;再比如同样以SQL注入见长的啊D注入工具、名小子等……
挖洞有一定的门槛,对新手并不友好,所以利用老旧漏洞练习是每一位白帽子的必修课。自动化脚本工具可以让漏洞利用的门槛降到很低,而且能够帮助用户快速掌握各类漏洞的原理和利用方法,几乎是所有白帽子入门必备。
很多人觉得脚本小子是一个贬义词,但Tracy并不这样觉得,他崇拜的一位大神就常以脚本小子自居。而且,使用脚本并不是新手的专属,强大便捷的工具谁会不爱呢?
逃离舒适区
和很多人不同的是,科班出身的Enjoy(补天ID)并非是从当脚本小子开始的。作为网络安全专业的学生,他在大一、大二两年期间就打下了优秀的编程基础,C/C++、Java、Python、Go等主流编程语言都有广泛涉猎。
“大二的时候,我发现我们社团有个学长时不时就会在补天或者各大SRC提交漏洞,后来就带着我一起搞Web安全了。”Enjoy说,因为代码写得多,一上手就和另一位伙伴一起学着搞搞代码审计。
比很多人都幸运的是,Enjoy很快就拿到了开门红:在学长的帮助下,他通过审计源代码,发现了某一线软件厂商旗下某款办公软件的前台RCE,甚至这个漏洞还是一个高危0day(即从来没人发现过的漏洞)。
在提交给相关软件厂商后,Enjoy拿到了人生的第一桶金,这对于当时还是学生的他,简直是一笔巨款。
相比之下,Kamelo(补天ID)要更加励志一些。作为编程和黑客的重度爱好者,大学期间除了和同学一起打篮球、看球赛,他有事没事都泡在学校的计算机实验室。
他尤其喜欢研究各种黑客小工具,并叹服于前辈大神怎么能开发出这么多功能强大、使用便捷的小玩意。
“该说不说,当脚本小子真的很爽。”Kamelo说到,想象一下一杯茶,一包烟,一个脚本跑一天的躺平生活,几乎不用动什么脑筋,他也是从这里一步步开启白帽子生涯的。
但Kamelo并不止于此,他最喜欢周杰伦《听妈妈的话》这首歌里面的一句歌词:将来大家看的都是我画的漫画,大家唱的都是我写的歌。
所以他有自己的小目标:有一些自己首发的有0day漏洞,网上能流传着自己写的安全工具和攻防渗透科普文章。
从基础能力向进阶能力过渡,并不是一条坦途。Kamelo几乎每天都会花费大量的时间,研究编程技巧以及各类漏洞的成因,这样才能知道什么样的代码会产生漏洞,这些漏洞到底该怎么利用。
甚至,他会针对自己写的漏洞进行复现,同时尝试编写漏洞利用的代码(EXP)。
尽管直到现在,Kamelo离自己当初定下的小目标还有一定的距离,但在补天攻防社区,他写的渗透技巧攻略文章有着很高的关注度,很多都有大几千上万的阅读量,同时也收获了一批忠实的粉丝和白帽朋友。
“在参加补天校园行活动的时候,我很喜欢有一位嘉宾分享的这样一句话。”Kamelo说,白帽子从入门到精通,编程能力是一道最明显的分界线。
在他看来,掌握一种或多种主流编程语言可以帮助白帽子更轻松地阅读和理解源代码,确实有助于提升漏洞挖掘能力,通过深入理解目标应用程序的代码和底层架构,白帽子可以更容易地发现潜在的漏洞,并尝试利用它们进行攻击。
在图谱的中间层进阶能力方格,尽管编程能力只是作为其中的一项被单独列出,但无论是编写POC(漏洞验证过程)还是Web漏洞挖掘,编程能力都是核心。
主流队伍的大洞,几乎都是通过代码审计进行挖掘的。
向更底层前进
那么,什么是大洞?
危害大?影响面广?其实好像也没有一个明确标准的定义,姑且把漏洞触发后危害大、漏洞影响用户多的漏洞叫做大洞吧。
那么什么样的漏洞会同时满足这俩条件呢?肯定有人立马想到了2017年爆发的永恒之蓝。
说起永恒之蓝,这个漏洞有一个明显的标志,它位于微软Windows操作系统之上。相对于各类软件应用,操作系统要位于计算机更底层的位置,因此通常情况下,系统层的漏洞破坏性要更强,更容易成为一个大洞。
这么说是有原因的。
如果把整个IT系统比作是一个水桶,那么在上层的Web应用上捅一个洞,只有最上面的那部分水会流出来;但如果在下面的操作系统上捅一个洞,那么可能整桶水都得流出来。
所以,这种来自底层的漏洞,更容易成为国家之间网空对抗的网络军火。
只不过,系统层漏洞不是谁都能挖的。顺着图谱往下看,在高阶能力方格,系统层漏洞挖掘赫然立于其中。如果你能干这个,至少也得是一个高阶白帽子了。
换句话来说,如果想成为一名高阶白帽子,在摆脱脚本小子的舒适区之后,还得继续往更底层前进。
以安全老炮自居的TheSky(补天ID)很有话说,一头浓密的黑发让人很难将他与十几年白帽子的身份联系起来。
总结十几年的挖洞经验,他认为与Web应用的漏洞挖掘相比,系统层的漏洞挖掘难度主要体现在以下几个方面:
复杂性:系统层漏洞的挖掘需要对操作系统、网络协议、系统内核等底层技术有深入的了解,而这些技术本身就非常复杂。此外,系统层漏洞往往牵涉到多个组件和模块之间的交互,因此调试和定位问题的难度也更大。
缺乏可利用性信息:系统层漏洞通常没有公开的渗透测试平台或漏洞利用工具可供使用,因此白帽子需要自己编写相应的利用脚本和工具。这一点让所有的脚本小子都望而却步。
需要更多专业技能:系统层漏洞挖掘需要掌握较为专业的知识,例如二进制分析、汇编语言、内存管理等。这些技能对于许多白帽子来说可能是新颖而陌生的。
不确定性更强:由于系统层漏洞往往会导致更严重的后果,如拒绝服务、代码执行等,因此系统层的攻击面也更加保护严密。在挖掘系统层漏洞时,白帽子需要更加小心谨慎,以免引起安全问题。
正因为难度更大、破坏力更强,所以挖到一个操作系统的漏洞,拿到的漏洞奖金往往更高,备受白帽子群体的追捧。在黑客圈早已扬名立万的主,谁手里还没拿过几个操作系统的0day了。
“那你是高阶白帽子吗?”笔者忍不住问TheSky。
“咳咳,那你说呢?”TheSky抛来了一个自信的眼神。
面向实战
在修炼好一定内功之后,CTF(夺旗赛)往往是白帽子们进入的第一个实训场,它是目前世界范围内最为流行的网络安全竞赛。
大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,拿到相关赛题的分数,这个过程被形象的成为“夺旗”,有点拔得头筹的味道。
BugMaker、Enjoy、Kamelo他们都曾多次参加过各类CTF比赛,也拿过不低的名次,都认为CTF对提升技术和经验大有裨益。
但话又说话来,CTF毕竟只是比赛,主办方会预先布置虚拟的网络环境,选手们面对的也只是一成不变的赛题。
白帽子本身就是要与黑产战斗的,更需要在真实的环境中反复锤炼。
就此而言,CTF比不了与近些年开始普及的大型实网攻防演习,也就是在真实的网络环境中,组织攻防双方展开较量。
在Kamelo看来,大型实网攻防演习与CTF比赛相比,对白帽子的要求更加全面和综合。白帽子需要掌握更广泛的知识和技能,具备团队协作和安全意识,并能够快速适应不同的情况和任务。
比如如何利用欺骗、钓鱼等手段使目标上当中招,当利用漏洞渗透进入目标内网后,如何迅速获取目标系统内部更大的权限,如何隐藏自己入侵的痕迹不被防守方的安全设备检测到,这些都是平常很难学到的知识。
“第一次参加实网攻防演习时,其实我还是很有点紧张的。”Kamelo说,虽然他以渗透技术见长,但却选择了更具挑战性的角色,以防守队的身份首次参加,这比当攻击队员更让人感到紧张,因为攻击渗透失败了大不了再来一次,但防守队根本猜不到对方会用什么样的攻击手法。
历经多次实战的Kamelo褪去了学生时期的稚嫩,并且早已成长为某家企业安全团队的攻防箭头,他对于白帽子也有了更深的理解。
据他讲,一名最优秀的白帽黑客应该具备以下技能。
精通计算机网络和操作系统:掌握计算机网络和操作系统的原理、结构及其内部运行机制,充分了解网络结构和服务的功能,以便更好地识别潜在安全风险。
深入了解各种安全工具和技术:拥有广泛的知识体系,熟悉各种安全工具和技术,并能够灵活应用这些工具和技术,以发现和利用安全漏洞。
具备编程和脚本语言技能:具备编写程序和脚本的能力,可以自动化测试和审计过程,提高效率和准确性。
良好的逆向工程技能:能够理解和修改二进制代码,深入了解软件内部的工作原理,从而发现软件中的漏洞。
出色的漏洞挖掘和利用技能:能够通过各种手段发现未知漏洞,并利用这些漏洞入侵目标系统。
良好的沟通能力和团队协作能力:与其他人员合作,配合渗透测试、修复和排除故障。
“那你对想要成为最厉害的黑客的新手白帽子,有什么建议吗?”笔者追问道。
Kamelo捏了捏鼻子,思考了一下说:“其实也没有什么了,你手上的拿着的图谱就是一份非常有价值的指导性材料,这份图谱基于实际需求,针对不同阶段和领域的技能和知识进行了详细的分类和解释,可以为从业者提供清晰的职业发展路径和技能提升方向。”
本文地址:http://lianchengexpo.xrbh.cn/quote/6307.html 迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多