学习总结一

接近一年了吧,算是一个总结。

我之前一直以为渗透这个行业,类似于pwn那样是一步一个台阶,后来才发现是类似于中医那样子靠细致和耐心,积累经验的过程。

一、web的学习

web的学习主要是各类漏洞的利用和找寻,在实际过程中,你要在限定时间内挖掘出0day并且成功利用,是很有难度的。从常见的web基础10大漏洞上手,看视频学原理,遇到看不懂的地方太多,就需要先开始学php语言和html语言,给我的感觉就是很杂,然后做一些经典的靶场比如dvwa。也在做一些ctf的题目,增长了见识。

实际上,一个好的渗透白帽子不应只会一种语言,应该至少能做到能基本看懂js,HTML,php,python等语言,知道一个网站的弱点可能在哪里。知道它大概是一个什么网站。而当了解了主流的web漏洞之后,就需要了解中间件的漏洞,各种反序列化,在实际攻防过程中,学会利用公开漏洞,也是一种能力。

关于src,人类是有极限的,主流的漏洞awvs难道没有你厉害吗?他都挖不出来你可以吗?所以,src作为一款无法被漏扫工具扫描出来的漏洞类型,成为了我们在学习过程中要挖掘的另一个方向。

提供了一个很好的学习平台是docker搭建的vulhub,里面有各种各样的cve漏洞都有复现,都有poc和exp。学会利用公开漏洞,和良好的信息收集能力是脱不开关系的,这一点我觉得可以下一步强化学习……

二、内网的学习

内网给我的感觉就是多而且杂乱,涉及各种隧道、代理,端口转发,想要去详细了解每一种技术背后的原理是很难的,还有域环境渗透,这需要深入了解微软的机制。。。主要还是学习了一些套路和方法居多,但是我还是想进一步学习到对抗中涉及的原理和方法,思路,知其然更要知其所以然,才能走的更远……

cs的使用在内网可谓是必须的,但是cs的特征几乎已经被蓝队给摸透了……所以针对bof或者cs的profile流量隐藏很重要。当我们拿下了一个webshell的站点之后,想的并不是进一步拓展,而是先把当前的点“站稳”,搜集本机的信息,寻找出网的通道,搭建一条可以长期利用的隧道,方便了我们进一步的渗透。

隧道是端口转发的体现形式,其实抓包分析可以看出就是把带有我们恶意payload的流量包用对应的隧道协议封装而已(比如用icmp隧道,就是在tcp包的包头再加上icmp报文头部)。

后门是一种持久化方法,隐藏后门的手法通过学习目前知道了黄金票据,白银票据,ssh软链接后门,端口复用后门,改注册表,改自启动等。但是还是会被发现……

三、免杀和工具开发的学习

关于免杀的学习我学的比较少,仅仅知道了基于脚本小子的免杀手段,更多的如果要细分

静态免杀:这个容易一点,加壳,加冷门壳,用工具直接找到特征码然后改特征码,如果有源码那就更好了,可以直接改源码,让我学到最开心得一点我觉得是我知道了两个点:

1、测试的时候联网和不联网的优劣

2、用一款很牛逼的杀软就可以直接进行测试,其实没必要都测试,这样“擒贼先擒王”的想法改变了我之前“所有杀软都要测试”的想法……

关于动态免杀,我真的觉得很难,如果没有源码那就要逆向,然后一个一个地切换成不同的函数,因为你可能是某个行为或者某个命令调用就触发了杀软。关于这一点我一直有一个疑问:

如果进入内网之后,一些命令被ban了,比如hashdump,ipconfig,那你怎么办?

对于工具开发,我第一次接触,之前仅仅是拿着poc去写exp,难的写不来,简单的懒得写。

四、java代码审计

这是一个新的挑战,之前仅仅搞过一点简单的php的cms的漏洞挖掘和审计,但是java的没搞过,可能是由于java的普及,越来越多组件用java写,那么我们对于java的审计,挖掘0day就显得很有必要了。

但是java的审计和php我感觉很不一样,首先是环境,java的环境偏复杂,这和它是一种强类型语言可能有关系吧,代码很冗余很长一串,看的很麻烦很难受。尤其是反序列化,我之前做ctf题目的时候,一直以为反序列化是调用反序列化函数的时候触发的魔术方法引发的漏洞导致的,结果java的反序列化是字节序列恢复为Java对象的过程中出现的漏洞……

对于java的漏洞,我的学习思路是对照着php的来学,就会相对容易理解一点……

你可能感兴趣的:(WEB渗透学习,安全)