黑客攻防从入门到精通:命令版(第2版)
上QQ阅读APP看书,第一时间看更新

1.1 认识黑客

1994年以来,因特网在全球的迅猛发展为人民提供了方便、自由和无限的财富,政治、军事、经济、科技、教育、文化等各个方面都越来越网络化,并且逐渐成为人们生活、娱乐的一部分。可以说,信息时代已经到来,信息已成为物质和能量以外维持人类社会的第三资源,它是未来生活中的重要介质。随着计算机的普及和因特网技术的迅速发展,黑客也随之出现。

1.1.1 黑客的分类及防御黑客攻击应具备的知识

1.黑客分类

黑客的基本含义是指一个拥有熟练计算机技术的人,但大部分的媒体认为“黑客”是指计算机侵入者。而实际上,黑客有如下几种。

白帽黑客是指有能力破坏计算机安全但不具恶意目的的黑客。白帽子一般遵守道德规范并常常试图通过企业合作来改善被发现的安全弱点。

灰帽黑客是指使用计算机或某种产品系统中的安全漏洞,进而引起其拥有者对系统漏洞的注意。

黑帽黑客别称骇客,通常指系统或网络的非法入侵者。

2.防御黑客攻击应具备的知识

知己知彼才能更好地做好防御,本节介绍防御黑客攻击应具备的知识。

(1)一定的英文水平

具备一定的英文水平对于防御黑客攻击来说非常重要,因为现在很多资料和教程都是英文版本,因此从一开始就要尽量阅读英文资料、使用英文软件,并且及时关注国外著名的网络安全网站。

(2)理解常用的黑客术语和网络安全术语

在常见的技术论坛中,经常会看到肉鸡、后门和免杀等词语,这些词语可以统称为黑客术语,如果不理解这些词语,则在与其他安全技术人员交流技术或经验时就会显得很吃力。除了掌握相关的黑客术语之外,还需要掌握TCP/IP协议、ARP协议等网络安全术语。

(3)熟练使用常用的DOS命令和黑客工具

常用DOS命令是指在DOS环境下使用的一些命令,主要包括ping、netstat以及net等命令,利用这些命令可以实现对应的功能,如使用ping命令可以获取目标计算机的IP地址以及主机名。而黑客工具则是指黑客用来远程入侵或者查看是否存在漏洞的工具,例如使用X-Scan可以查看目标计算机是否存在漏洞,利用EXE捆绑器可以制作带木马的其他应用程序。

(4)掌握主流的编程语言以及脚本语言

程序语言可分为以下5类。

● 网页脚本语言(Web Page Script Language)

网页脚本语言包括HTML、JavaScript、CSS、ASP、PHP、XML等。

● 解释型语言(Interpreted Language)

解释型语录包括Perl、Python、REBOL、Ruby等,也常称为脚本语言,通常用于与底层的操作系统沟通。这类语言的缺点是效率差、源代码外露。所以这类语言不适合用来开发软件产品,一般用于网页服务器。

● 混合型语言(Hybrid Language)

混合型语言的代表是Java和C#。介于解释型语言和编译型语言之间。

● 编译型语言(Compiling Language)

C/C++、Java都是编译型语言。

● 汇编语言(Assembly Language)

汇编语言是最接近于硬件的语言,不过现在用的人很少。

提示

如果完全没有程序经验,可按照JavaScript→解释型语言→混合型语言→编译型语言→汇编语言这个顺序学习。

1.1.2 黑客常用术语

1.肉鸡

比喻那些可以随意被黑客控制的计算机,黑客可以像操作自己的计算机那样操作它们,而不会被对方发觉。

2.木马

木马是指表面上伪装成正常程序,但是当这些程序被运行时,就会获取系统的整个控制权限。有很多黑客就是热衷于使用木马程序来控制别人的计算机,比如灰鸽子、黑洞、PcShare等。

3.网页木马

网页木马是指表面上伪装成普通的网页文件或是将恶意的代码直接插入正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的计算机上并自动执行。

4.挂马

挂马是指在别人的网站文件里放入网页木马或者将代码潜入对方正常的网页文件里,以使浏览者中马。

5.后门

这是一种形象的比喻,黑客在利用某些方法成功地控制了目标主机后,可以在对方的系统中植入特定的程序,或者修改某些设置。这些改动表面上是很难被察觉的,但是黑客却可以使用相应的程序或者方法来轻易地与这台计算机建立连接,重新控制这台计算机,就好像是黑客偷偷地配了一把主人房间的钥匙,可以随时进出而不被主人发现一样。通常大多数特洛伊木马程序都可以被入侵者用于语制作后门。

6.IPC$

IPC$是共享“命名管道”的资源,它是为进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。

7.弱口令

弱口令是指那些强度不够,容易被猜解的,类似123、abc这样的口令(密码)。

8.shell

shell指的是一种命令执行环境,比如我们按下键盘上的“开始键+R”时出现“运行”对话框,在里面输入“cmd”会出现一个用于执行命令的黑窗口,这个黑窗口就是Windows的shell执行环境。

9.WebShell

WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称为是一种网页后门。

10.溢出

确切来讲,溢出指“缓冲区溢出”。简单的解释就是程序对接收的输入数据没有执行有效的检测而导致的错误,后果可能是造成程序崩溃或者执行攻击者的命令。溢出大致可以分为两类:①堆溢出;②栈溢出。

11.SQL注入

由于程序员的水平参差不齐,相当一部分应用程序存在安全隐患,用户可以提交一段数据库查询代码,并根据程序返回的结果获得某些他想要的数据,这就是SQL注入。

12.注入点

注入点是可以实行注入的地方,通常是一个访问数据库的连接。根据注入点数据库运行账号权限的不同,你所得到的权限也不同。

13.内网

通俗来讲,内网就是局域网,比如网吧、校园网、公司内部网等都属于内网。查看IP地址时如果在以下三个范围之内,就说明我们是处于内网之中:10.0.0.0~10.255.255.255, 172.16.0.0~172.31.255.255,192.168.0.0~192.168.255.255。

14.外网

外网直接连入互联网,可以与互联网上的任意一台计算机互相访问。

15.免杀

通过加壳、加密、修改特征码、加花指令等技术来修改程序,使其逃过杀毒软件的查杀。

16.加壳

利用特殊的算法,将EXE可执行程序或者DLL动态链接库文件的编码进行改变(比如实现压缩、加密),以达到缩小文件体积或者加密程序编码,甚至躲过杀毒软件查杀的目的。目前较常用的壳有UPX、ASPack、PePack、PECompact、UPack等。

17.花指令

花指令是几句汇编指令,可以让汇编语句进行一些跳转,使得杀毒软件不能正常判断病毒文件的构造。通俗点就是,杀毒软件是从头到脚按顺序来查找病毒,如果我们把病毒的头和脚颠倒位置,杀毒软件就找不到病毒了。