一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
4.格式化字符串
格式化字符串漏洞的产生主要源于对用户输入内容未进行过滤,这些输入数据都是作为参数传递给某些执行格式化操作的函数,如printf.fprintf.bprintf.sprintf等等.恶意用户可以使用”%s”和”%x”等格式符,从堆栈或其他位置输出数据,也可以使用格式符”%n”向任意位置写入任意数据,配合printf()函数和其他功能类似的函数就可以向任意地址写入被格式化的字节数,可能导致任意代码执行,或者读取敏感信息,比如用户名以及密码等等.
因为可以执行任意代码,所以可以通过shellcode获取系统管理员的权限,也有可能通过一些技术,直接在内存中将系统密码直接读出.
5.双重释放
双重释放漏洞主要是由对同一块内存进行二次重复释放导致的,利用漏洞可以执行任意代码.
在释放过程中,临近的已释放堆块的合并动作,这回改变原有的堆头信息以及前后向指针,之后在对其中的地址进行引用,就会导致访问异常,最后程序崩溃,正式因为程序引用到了已释放的内存,所以说双重释放漏洞就是Use After Free漏洞的子集.如果程序不存在堆块合并动作,那么双重释放后可能不会马上崩溃,但会在程序中遗留隐患,导致在后续执行过程中的某一刻爆发.
对于堆内存的利用,最常用也最简单的方法就是使用堆喷射技术(Heap Spraying),也就是申请大量内存块,将shellcode放在内存块的最后,前面放上利用地址以及滑板指令,用大量内存来碰撞,直到最后执行到shellcode.
Shellcode可以执行任意代码,也就可以利用此来进行提权操作.
6.释放重引用
UAF漏洞的成因一般都是因为在编程过程中对引用计数的处理不当导致对象被释放后重用的。利用UAF漏洞实现远程代码执行,首先需要Bypass ASLR,获得模块基址及 shellcode的地址(也可以通过堆喷射在指定内存空间布置shellcode),然后硬编码、动态构造ROP来Bypass DEP,最终实现任意代码的执行。
7.数组访问越界
数组访问越界类似于溢出漏洞,但是又不完全是溢出漏洞
A)数组访问越界包含读写类型,而溢出属于数据写入
通常数组越界访问是由于数组下标数值超出了数组元素个数导致的,数组的读写操作有时是同时并存的,程序越界索引栈上分配的数组,同时又向其写入数据.最终造成溢出.
B)部分溢出漏洞的本质就是数组越界
导致溢出的原因有多种,有些正是由于针对数组下表标范围未做有效限制,导致允许越界访问数组并对其写入数据,造成溢出
8.内核级漏洞
在Ring3的溢出漏洞,格式化字符串漏洞,释放重引用漏洞,双重释放漏洞,数组越界漏洞都可以在内核中复现,但是利用方法差异比较大.
内核漏洞不易挖掘,也不易分析利用.但是如果可以利用成功,那么直接可以使用Ring0权限.
9.类型混淆
类型混淆漏洞主要是讲数据类型A当做数据类型B解析引用,可能导致非法访问数据,进而执行任意代码,但这里的数据类型并非是单纯的编程概念上的数据类型,比如Uint被转换成String,Flash漏洞:CVE-2014-0590,也包括类对象或者数据结构的转换,比如以下两个类,A类被混淆成B类,就可能导致私有域被外部访问到.
10.沙盒逃逸
A)Broker接口漏洞:IE借助Broker进程完成一些需要高权限的操作,若其服务端口本身就存在漏洞,就可以直接被攻击者用于执行任意代码.
B)策略检查绕过:Broker进程在检查Elevation Policies时若被绕过也可能导致沙盒逃逸,比如CVE-2013-4015用Tab带起空格从而绕过对程序名的检查.
C)策略设置不当:对于沙箱可操作的程序,如果其Elevation Policies设置不当,允许静默以Medium权限执行,就可能创建高权限的进程再借助该程序的一些接口完成任意代码执行.
D)IPC通信问题:当IPC通信过程中使用的共享内存包含过多的IE的未注册信息,可能导致沙盒的进程篡改其中主进程中的敏感信息,比如EPM沙盒的开关标准,被篡改后就可以直接关闭沙盒
E)沙盒权限限制不严:在沙盒中的进程如果权限限制的不够严谨,使得本不改访问的安全对象被访问,就可能导致沙盒逃逸.
F)内核提取:利用系统内核漏洞获取比沙盒本更更高的权限,就可以直接关闭沙盒本身,从而实现沙盒逃逸.
11.RPC漏洞
RPC是一种远程过程调用协议,RPC提供进程间的交互通信机制,允许在某台计算机上运行的程序无缝的在远程系统上执行.
因为TCP/IP处理交换等问题,导致恶意代码可以利用漏洞以本地系统权限在系统上执行任意指令.
II.数据库漏洞类型
1.SQL Server漏洞提权
SQL server 2005以上有一个叫做xp_cmdshell的危险存储过程,可以直接利用提权,在SQL server 2005之后如果通过SQL注入等技术手段获得了SA的密码的话,一样可以通过添加存储过程的手段,将存储过程添加回来,然后像SQL server 2000一样的提权
2.MySQL 漏洞提权
将MySQL提权脚本文件上传到服务器,设置UID为ROOT,密码为具有root权限用户的密码,链接,创建shell函数,然后用select shell(‘cmd’,’net’,’user’)查看系统的所有用户,然后select shell(‘cmd’,’net user temp temp123456’),select shell(‘cmd’,’net localgroup administrators temp /add’)执行,如果成功,就已经成功添加了具有管理员权限的账号,提权成功.
III.服务器软件漏洞
1.Serv-U提权
漏洞是使用Serv-u本地默认管理端口,以默认管理员登陆新建域和用户来执行命令,Serv-u>3.x版本默认本地管理端口是:43958,默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P,这是集成在Serv-u内部的,可以以Guest权限来进行连接,对Serv-u进行管理。
2.Magic Winmail Server 提权
Magic Winmail server程序安装为系统服务,程序一般是在administrator权限下运行的,而服务程序MailServer.exe是在system权限下运行的,因此当有Webshell时,就可以通过这个漏洞来提升权限了。
学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!