如果作为一名渗透测试人员(乙方/甲方),应该如何提升自己的能力?渗透这种东西没有彻底的有一个体系?那么应该如何提升自己的能力,是朝一个方向前进吗?比如代码审计,或者安全开发,扫描器之类的.fuzz?还是说不断挖src或者日站。还是说去学习pwn…等等。Emm提升自己可以换成如何有加工资的实力底气。谢谢师傅们


谢邀,其实,我倒认为这个问题更应该你自己问自己。

对于web安全学习走到一定阶段后,其实每个人都会有一个疑惑,想继续向前走,却完全迷失方向,道理很简单,web应用的新增代码量就那么点,偏偏又是人满为患的领域,所以,掌握更多的新漏洞只能增加你的经验,却不能带给你本质上的提升。说难听一点就是,除非碰到了一样的漏洞,否则该搞不下的目标,你还是搞不下。

其实就我目前注意到的情况来看,就甲方和乙方的工作场景和需求来说。其实随著安全行业的发展,相当多的渗透需求被甲方自己的内部团队给解决了(腾讯云鼎/阿里飞天九部/360的0kee等)

对于甲方自己的应急响应和渗透团队来说,更多的是希望你充当一个从正面硬上的暴徒,把所有开发可能犯错的地方进行轮番测试。这个时候你对白盒代码审计的能力就非常的重要。因为比起你从一个点写出一整套exp,他们更希望你能够对整个逻辑有更深入的了解,把整个面的漏洞都尽量补上,补不上的,就交给waf吧。

作为国内最早几个搞机器学习waf的人,我至今对它深恶痛绝。原因不多说,不过这东西忽悠一些领导挺好使的。

而期待乙方来解决自己安全问题的更多是一些刚准备上市,甚至规模更小的企业。对他们来说,很多时候你只需要做重复性工作而已。

也就是说,恐怕尤其在某些企业按照漏洞数量给合同定价的情况下,你更需要的是完成大量的安全开发工作(自动化扫描器)和增加自己知识面的广度。避免一直在搞php/python相关的安全却突然接到个全是java单子的尴尬。

所以说,这个时候你必须做出抉择

你到底是享受入侵成功的快感,还是说享受高效的挖掘漏洞,或者是想更深入安全技术,探寻底层的奥秘?or 像问题描述中写的,只是想要更多薪水?

如果是纯粹享受hacking乐趣的人,我倒觉得不妨去一些专业red team,你会对怎么样高效的利用漏洞有更好的理解。

如果是享受高效的挖掘漏洞,就好好的做自动化工具和爬虫,注意收集每天的新鲜poc并抽空写exp放到扫描器里。

如果像我这个强迫症一样,不了解那些隐藏在各种奇技淫巧后的细节就彻夜难眠的话,可以考虑往逻辑漏洞/二进位的方向靠拢。说句实话,就算挖不出漏洞,了解了各大系统上的二进位漏洞利用方法,你也可以熟练的应用0.5day漏洞轻松的从对方的浏览器/文档阅读器得手。这年头,就连app里都要内置个浏览器。

如果单纯想要更多薪水,就去做一些让简历变得好看的项目,无论它有用与否,诚然,有被看穿的风险,但是这个行业的滥竽充数者超出你的想像。咦?想要更多薪水的话,为什么要选择安全行业呢。当然,这不是说我们不应该追求更好的待遇,而是希望能够坚持技术的初心。

如果公司开出的价码不够。有能力作为底气,也敢于跳槽。

当然,以上观点纯属个人口胡。说实话,每当面对国内各位神仙打架,看到国外loki hardt, james forshaw,tavis等人成吨的挖掘系统/浏览器漏洞,我都觉得自己应该好好的沉下心,继续学习知识,因为我啊,说不定也是滥竽充数的那个人呢。


谢邀,感觉自己配不上回答这个问题,因为在我的人生经历中,安服是一个我不喜欢的职业,在很多次面临抉择的时候我都选择绕著走。

所以我就单纯的从Web方向上聊聊看。

对我来说我感觉的学习过程中有几个关键点给我很大的感触。

1、应该是大三左右的时候,我开始尝试学著写一些工具。

其中有一些稍微比较大的比如Feigong

LoRexxar/Feigong?

github.com图标

也有很简单的一些爬虫什么的

也有花费了超多精力进去的自动化静态代码审计工具Cobra-W

LoRexxar/Cobra-W?

github.com图标

写工具是一个我在这几年一直在做的事情,在写工具的时候,不仅是代码能力的提高,一方面也迫使我重新思考,我的那些人工能完成的事情,到底怎么能从自动化的角度解释。

在这个过程中,一次次重构给我带来的不只是编码能力,也是对很多基础的重新思考,我开始渐渐明白一个工具的诞生要多少心血进去,这也逐渐成为了我的一个习惯,给我非常积极的影响。

2、应该是大二左右开始,除了ctf以外我开始尝试去混一些src

其实我想这点可能帮不到题主,但我还是想说说,因为这个经历让我重新认识了一些东西。

一个很有意思的体验,我经常分享给别人,ctf和渗透最大的区别是什么?

CTF:ctf永远一定有解,无论多复杂多牛逼甚至多脑洞的题目,它一定有解,当这个预期在心里的时候,你对目标的思考永远就可以被量化为条件,当所有的条件都摆在明面上的时候,会不会做就成了你如何思考的问题了。

但有趣的点就在于,只有CTF中让我感受到,居然有这么牛逼这么巧妙地利用思路可以使用,CTF给我带来的是各种开拓的思路和奇技淫巧。也同样是很多实际很难遇到的场景的难得再现。

渗透:渗透的一些都是未知,就像一个装满水的桶,你只需要找到其中最弱的一个点,轻轻戳一下就可以了,你不需要多锋利的矛,也不需要多牛逼的武功。你更需要的可能是一个火眼金睛!

除开CTF和渗透的区别以外,我开始慢慢明白甲方安全和乙方安全的区别。

在我慢慢了解业务安全的过程,我开始明白任意url跳转到底有啥危害?信息泄露问题多大?CORS配不好会怎么样?反射性XSS在一定的场景下可能爆发无穷的力量?

这是一个很有趣的过程,有些东西我也一下子说不明白,但我觉得懂的都懂。

3、应该是我到大四以来,我们开始逐渐接触一些开发

从最开始的PHP,到后面的js再到后面一些python开发。我开始简单的接触一些大型项目的开发。HaoTian(一个区块链智能合约的监控审计分析平台)可能是我开发过的最大的一个项目。从前端到后端到开发端。

在这个过程中我开始有一点儿明白为什么会有这样那样的漏洞会存在,一个很大的体验就是,为了保证安全真的可能要牺牲很多才能保证业务的正常,反过来也就是,为了保证业务的正常,有时候可能真的要牺牲安全,所以很多漏洞就诞生了

4、从到404实习之后,从开始的漏洞应急,到学习他们挖掘漏洞的思考方式

从来到404实习的第一个阶段就是做漏洞应急,大概就是爆出来的各种漏洞,我们需要迅速复现并且完成简报,看情况可能会完成分析文。

Discuz x3.4 前台 SSRF 分析?

paper.seebug.org图标

在一次次的复现+分析中,其实每一次就能带来一些理解,慢慢学习他们挖掘漏洞的思考方式,这真是一件很有趣的事情。

从学习再到自己尝试去思考,去审计,我还在这个过程中,你不妨也试试看。

前面瞎bb了一大堆,最后想说的是,Web领域不同于别的,我觉得真的有很多东西能玩,而怎么走应该是你自己去想明白的。学习到了每一个阶段都有瓶颈,重要的不是有没有到瓶颈,或者怎么突破瓶颈,重要的是你知不知道自己要成为什么样的人?只有知道目标,你才能知道自己现在最缺的是什么...

不管怎么样,祝好运


诶说到心坎里了,接触安全也有两年半了,学的比较杂从web安全,渗透测试,安卓都有接触过些,从来都是保持一颗谦逊的心,但是真的有些时候太迷茫了,有个事情不得不承认,安全这个东西,有些真的不是你一个人摸索就能摸索的到的,因为没人教,有些体系化的东西不是你能了解参与的到的。

最近面了几家,有些问题真的被问懵逼了,问我sdl,我没接触过,问我密码学,我一个非科班出身真的不了解,再问我一些安全问题的防范,说实话攻击的话还可以,但是防御的体系需要考虑的不单纯是防御,就单单一个csrf防御所引申出来的安全修复方法就有好多,但是如果在企业内部,所要考虑不单单是安全防御的问题,还要考虑开发,业务带来的影响。

不知道自己想的对不对,如果上升我觉得可能是上升到一个宏观的角度,去看待整个的安全问题。或者是沉淀自己,沉淀到一个底层都特别了解的成度

但是这两个高度,确确实实不是自己能快速摸索出来的,真的,现在遇到好多问题就有种很尴尬的事,没有一个我可以问的人……


安全从业者,解决的是什么问题呢?

是对抗攻击,是与黑客战争。

换位思考才是一个合格安全从业者该有的精神。

如果你是一名黑客,如何从目标系统中获利呢?

比如重放攻击优惠券,各种薅羊毛,订单信息泄露。。。。

一名合格的安全测试工程师,并不是非要攻击系统拿到许可权的。

另外未来的攻防一定会是以人为本的攻防。

毕竟大数据时代,谁也不敢保证自己的绝对安全。

顺便说一下,安全行业的泡沫期快过去了,一堆人被淘汰也是很正常的,跟不上变化注定被淘汰掉,每个行业都是这样。别以为政策红利期,就会一直吃老本吃香的喝辣的。生于忧患死于安乐!


渗透测试,其实需要把名字拆开来看,渗透是一个点,持久性的,测试是一个面,覆盖性的,想提升技能你要么摸点,要么触面。难在点,勤在面,要么专攻一个方向,总能得到一个点(shell),代码审计和漏洞挖掘,要么信息收集,收集漏洞利用方式写好漏洞批量检测脚本,关注最新漏洞和利用方式,了解各种网路环境。

关于提升列出几点来说:

1.有一定的基础的话,可以上来就复现几个漏洞的利用方式和相关的工具的使用,msf ms08067漏洞,ms12020,ms1701,iis-dev等等。其他工具awvs,nessus,appscan,sqlmap,nmap,burp suite等等。

2. 有一定的漏洞量的时候一定要自动化,列资产,就算没有漏洞,资产信息列的好,也可以冲工作量,批量漏洞检测,从埠到服务再到应用,每一层的相关漏洞要清楚。

3. 思路猥琐,漏洞的产生都和人有关,没有路子可走,就社工,溜达,假装之类的,吃吃喝喝,反正各种去冒险,脸皮厚,借口多,好干活。

4. 相互配合,渗透测试也不是一个人能完全做好的,摸索全面,有长有短。


终极目标,我认为是渗透测试的「道」,也就是回答渗透测试的本质是什么,为什么要有渗透。

摸清楚这个方向,再选择时,都是围绕这个「道」在积累技巧,也就是「术」,工具都不难,工具背后代表的含义才难,但也是根本。

祝顺利!


任何一个方向都可以鸭~~代码是功底,学好数理化,走遍天下都不怕;学好数据结构与演算法,代码审计、安全开发、挖洞都不怕


推荐阅读:
查看原文 >>
相关文章