文章目录
一、自学网络安全学习的误区和陷阱
1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习
我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多
一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少
2.不要把深度学习作为入门第一课
很多人都是冲着要把网络安全学好学扎实来的,于是就很容易用力过猛,陷入一个误区:就是把所有的内容都要进行深度学习,但是把深度学习作为网络安全第一课不是个好主意。原因如下:
【1】深度学习的黑箱性更加明显,很容易学的囫囵吞枣
【2】深度学习对自身要求高,不适合自学,很容易走进死胡同
3.不要收集过多的资料
网上有很多关于网络安全的学习资料,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书,或者收藏几十个视频
网上的学习资料很多重复性都极高而且大多数的内容都还是几年前没有更新。在入门期间建议“小而精”的选择材料,下面我会推荐一些自认为对小白还不错的学习资源,耐心往下看
二、学习网络安全的一些前期准备
1.硬件选择
经常会问我“学习网络安全需要配置很高的电脑吗?”答案是否定的,黑客用的电脑,不需要什么高的配置,只要稳定就行.因为黑客所使用的一些程序,低端CPU也可以很好的运行,而且不占什么内存.还有一个,黑客是在DOS命令下对进行的,所以电脑能使用到最佳状态!所以,不要打着学习的名义重新购买机器…
2.软件选择
很多人会纠结学习黑客到底是用Linux还是Windows或者是Mac系统,Linux虽然看着很酷炫,但是对于新人入门并不友好。Windows系统一样可以用虚拟机装靶机来进行学习
至于编程语言,首推Python,因为其良好的拓展支持性。当然现在市面上很多网站都是PHP的开发的,所以选择PHP也是可以的。其他语言还包括C++、Java…
很多朋友会问是不是要学习所有的语言呢?答案是否定的!引用我上面的一句话:学习编程只是工具不是目的,我们的目标不是成为程序员
(这里额外提一句,学习编程虽然不能带你入门,但是却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识)
3.语言能力
我们知道计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的,而且一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。而且如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍,所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)
比如说:肉鸡、挂马、shell、WebShell等等
三、自学网络安全学习路线
重点内容
Windows操作系统
Linux操作系统
Unix系统安全基础
操作系统漏洞
操作系统入侵检
一、Windows操作系统
1、Windows操作系统简介
Windows目前是在个人计算机上使用的最为广泛的操作系统。
Windows 9X以其大众化的友好界面及支持的众多应用程序赢得了广大个人计算机用户的青睐。
Windows NT是微软公司第一个真正意义上的网络操作系统,它已经由NT 3.0,4.0发展到了NT 5.0,即俗称的Windows 2000,并逐步占据了广大的网络操作系统市场。
之后推出的Windows XP,Vista,以及最新的WIN7,进一步的稳固了微软在个人计算机操作系统市场上的霸主地位。
2、Windows 95/98/ME安全体系结构:
登录机制
Windows 98系统登录方式有三种:Windows登录、Microsoft网络用户登录和Microsoft友好登录。
Windows登录:是指仅登录到本地Windows,不访问网络的登录方式,如果以前保存过个人设置,登录时会自动恢复。
Microsoft网络用户登录:是指登录以后可以访问网络资源,如果指定了域服务器,登录时会同时进行域身份验证。
Microsoft友好登录:是指登录时提供在本机登录过的用户列表,供用户选择进行验证登录,方便和简化了用户操作,同样在登陆以后可以访问网络。
修改注册表可以提高Windows 95/98/ME安全性
禁止非法用户登录
隐藏和禁止访问“控制面板”
禁用“注册表编辑器”编辑注册表
3、 Windows NT/2000/XP的安全基础:
用户账号
Administrator
Administrator是系统管理员账号,拥有最高的权限,用户可以利用它来管理Windows 2000 Server的资源,但是Administrator并不是自动对Server中的所有目录和文件都拥有访问权限,管理员账号的名称可以更改,但是不可以删除。
Guest
为临时使用而设立的客户账号,它只有极少的权限,名称也可以更改,也可以设置密码修改头像等,但是不能删除,在默认状态下是不激活状态。
4、 Windows 2000安全基础概念
计算机账号
组
域
身份验证
授权
审核
5、 Windows 2000用户账号管理
-
添加用户账号
-
管理用户账号
设置用户登录时间
设置用户登录的计算机
设置账户的有效期限
6、 Windows 2000组的管理
-
添加用户组
-
指定用户隶属的组
-
管理组
二、Windows NT/2000
1、WindowsNT/2000文件系统
NTFS文件系统是Microsoft公司开发的一套具有优异性能的文件系统,相比早期的FAT和FAT32,功能要强大很多,它提供了性能、安全性和可靠性,这些在所有FAT版本中都没有实现的高级功能,是一种高级文件系统。
文件系统的安全性方面,Windows NT和Windows 2000都支持保证文件和文件夹安全性的访问控制列表(ACL,Access Control List)。
2、WindowsNT安全漏洞及解决方案
Windows NT系统上的重大安全漏洞,主要集中体现在两个方面:
NT服务器和工作站的安全漏洞
关于浏览器和NT系统的严重安全漏洞。
一些知名的网站,如Addoil.net,专门公布操作系统的安全漏洞,在addoil.net中就描述了几十个关于Windows NT系统的安全漏洞名称、解释、以及降低风险的一些建议。
定时定期地下载安装系统漏洞的补丁,是一个保障系统安全的好习惯。
更加有效的解决方案:建设一个强大的防火墙,精心地配置它,只授权给可信赖的主机通过防火墙访问外部网络资源。
在内部路由器上设置ACL,在各个独立子网之间,截止端口137到139的连接,这是一些有效的辅助措施,用以限制该安全漏洞。
三、Windows2000分布式安全协议
Windows NT 4
Windows NT4.0中,主要的分布式安全协议是NTLM(Windows NT LAN Manager)。
Windows 2000
Windows 2000中,微软采用了一个新的安全系统。在这个新的系统中,Kerberos是缺省的分布式安全协议。
兼容性
Windows 2000秉承了一贯的向下兼容的做法,仍然支持NTLM以及SSL协议。
四、Unix系统安全基础
1、口令安全
/etc/passwd文件中含有全部系统需要的关于每个用户的密码信息,加密后的口令也可能存于/etc/shadow中。 /etc/passwd中包含有用户的登录名,经过加密的口令,用户名,用户组名,用户注释,用户主目录和所有用户的shell程序。
一个保密性好的口令,至少应当包含6个字符长度,一般建议不要取个人信息,如生日、名字、反向拼写的字母或者有些人能记住的有特殊意义的符号和数字,普通的英语单词也不建议采用。
口令中最好有一些非字符类的,例如,数字、标点符号、控制字符等。
密码要容易被用户自己记忆,不要写在纸上或者计算机的文件里,以免被人非法访问之后窃取。
选择口令的一个很好的建议是,将两个不相关的词用一个数字或者控制字符连接起来,截断为8个字符。
2、文件许可权
文件属性决定了文件被访问的权限,也就是规定了什么用户能存取或者执行该文件。用ls –l可以列出详细的文件目录及其权限信息,通常我们会看到文件属性部分有如下的信息:
-rwxrwxrwx
具体的含义如下:
-:表示文件的类型;
第一个rwx:表示文件属主的访问权限;
第二个rwx:表示文件同组用户的访问权限;
第三个rwx:表示其他用户的访问权限。
若某种许可被限制,则相应的字母换为-。
在许可权限的执行许可位置上,可能是其他字母:s,S,t,T等。
S和S可能出现在所有者和同组用户许可位置上,与特殊的许可有关;
t和T可出现在其他用户的许可模式位置上,与“粘贴位”有关,而与安全无关;
小写的字母(x,s,t)表示执行许可为允许;
负号或者大写字母(-,S,T)表示执行许可为不允许。
改变许可方式的命令是chmod命令,并以新的许可方式和该文件名为参数,许可方式以3位8进制数为表现形式,例如r是4,w是2,x是1, 如果要给一个文件设置属性为rwxr-xr-,对应的数值就是754。
3、其他许可权
目录许可
umask命令
设置用户ID
同组用户ID许可
cp mv ln和cpio命令
cp拷贝文件
mv移动文件
ln建立一个链
cpio拷贝目录结构
su和newgrp命令
4、其他安全问题
文件加密
crypt命令,可以提供给用户加密文件的功能,使用一个关键词将标准输入的信息编码为不可读的杂乱字符串,送到标准输出设备。
其他安全问题
用户.profile文件
ls -a命令
.exrc文件
暂存文件和目录
UUCP和其他网络
特洛伊木马
诱骗
计算机病毒
注销登录
智能终端
断开与系统联接
Cu命令
5、保护账户安全要点
保持密码的安全
不让自己的文件或目录被他人写
不让其他用户读自己的文件或目录
不要写SUID/SGID程序
小心拷贝和移动文件
删除SUID/SGID程序
用crypt加密
除了信任的用户外,不要运行其他用户的程序
在自己的PATH系统变量中,加入系统目录
不要离开自己正在登录状态的终端
如果有智能终端,当心来自其他用户,包括write,mail命令和其他用户文件的信息中,带有换码的序列
用Ctrl+D或者exit退出后,在断开与系统的连接前等待看到“login:”提示
注意 cu的版本
五、Linux操作系统
1、Unix与Linux
Unix系统
运行于工作站
对硬件要求较高
PC机比较困难
面向企业和服务器级用户
Linux操作系统
运行于PC机
对硬件要求较低
兼容大部分Unix标准
沿袭Unix风格设计
面向个人和客户级用户
具备稳定性、可靠性高、源代码开放、价格低廉、安全特点
2、Linux与Windows NT
Windows NT系统
安全性低,病毒层出不穷
系统稳定性
硬件资源占用比率多
运行成本较高
Linux操作系统
更加安全,病毒非常少
系统更加稳定
硬件资源占用比Windows NT少很多
成本节省,单个使用者成本降低一半,合作计算的环境下,成本可节省70%
3、Linux网络安全
网络服务
检查系统中运行的服务
允许/拒绝服务器
ssh安全Shell
监视程序和运行日志
jail
ftpd,rlogind以及其他用户交互
其他安全措施:防火墙
其他安全问题及解决方法
六、操作系统漏洞
1、操作系统脆弱性等级
操作系统的脆弱性,分为A、B、C三个等级:
A级
A级,是指允许过程用户未经授权访问的漏洞,这一类级别威胁性最大,一般由于系统管理或设置上的失误造成。
B级
B级,是指允许本地用户非法访问的漏洞,允许本地用户获得或增加未经授权的访问。这类级别威胁性处于中等,主要来源于应用程序,例如缓冲区的溢出。防止的手段:
编写正确的代码
非执行的缓冲区
数组边界检查
程序指针完整性检查
C级
指允许拒绝服务的漏洞。这类级别威胁性最小,一般来源于操作系统本身。
2、操作系统漏洞攻击
口令的攻击术
黑客攻击目标时常把破译普通用户的口令作为攻击的开始。
字典破译攻击法
DES算法破译用户密码
实例: Join The Ripper
IIS Unicode漏洞攻击
IIS Unicode漏洞描述
微软IIS 4.0和IIS 5.0在Unicode字符编码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。
2. 攻击程序
攻击程序相对简单,通过TCP Socket建立HTTP连接,从命令行界面搜集命令,并根据目标服务器的IIS版本不同,构造和发送GET命令,然后获取IIS的反馈信息,利用这些信息进行下一步入侵的操作。