前言
1999年7月6日《参考消息》:
【英国〈星期日电讯报〉7月4日文章】题:克林顿下令通过“电脑破坏行动”来推翻塞尔维亚领导人(记者 菲力普?舍卫尔 萨沙?尼科利茨 朱利叶斯?斯特劳斯)
克林顿总统已经命令美国政府的电脑黑客冲破障碍,查到米洛舍维奇在外国银行里的存款,并抽走他隐藏的财富,这是美国中央情报局旨在推翻南斯拉夫总统秘密计划的一部分。
这一有争议的行动计划是克林顿上周批准的共有6点内容的一揽子秘密计划的部分内容。华盛顿政界和情报界一些高级人士反对这一行动计划。
虽说2日晚上有5000多人在诺维萨德举行反米洛舍维奇的最新一次集会,但是,贝尔格莱德的反对派内部四分五裂促使华盛顿亲自出马,发起旨在推翻米洛舍维奇的“电脑破坏”
行动。去年,五角大楼为海、陆、空增添了电脑空间,作为第四战区,并建立了一个主管情报战事务的机构。
美国中央情报局认为,米洛舍维奇在其执政的10年期间向希腊、塞普路斯和俄罗斯银行转移了数以百万计英镑的钱财,因此得在这些银行进行调查。但是,一些情报官员担心,对塞尔维亚领导人米洛舍维奇数以百万计钱财采取这样的行动会对美国产生不利的后果,一些独立的黑客会向华盛顿的敌人出售他们的技术,从而使华盛顿的计算机系统成为他们进行破坏和非法抽取钱款的目标。
另外,此举在政治上也引起人们的关切和担心,这会影响到希腊和俄罗斯的主权,美国的外交官们在美俄两国就科索沃问题发生争执后刚刚在两国之间重新架起桥梁。
单是这条新闻,或许并没有给你太多的感想。但如果同时,把中国驻南斯拉夫大使馆被轰炸的事件联系在一起,或许会促使你更深层次地来分析这条新闻。
南斯拉夫无奈地从科索沃撤军,是因为军事力量,特别是当代高科技军事力量的薄弱,所以受到了欺负。同样,由于信息技术的落后,南斯拉夫又受到了欺负。随着信息时代的到来,信息技术越来越显得重要,信息技术也能影响一个国家的安全。入侵总统银行帐号只是信息战争的小手段,如果利用各种技术,破坏一个国家的各种计算机网络,绝对会使这个国家的商业经济,国家安全受到影响。信息技术为军事战争开辟了另外一个战场。如果一个国家的信息技术落后,同样会受到侵略。
我国驻南斯拉夫大使馆被轰炸,里面或多或少有点我国的军事力量不是很强大的因素在里面。那么如果,信息技术也大大落后与别国,是不是也存在国家安全问题。
回想一下5-60年代,我国自行研制两弹一星时的情形。这些巨大成就为当时我国立足于世界提供了什么样的支持。从那时侯起,没有哪一个国家敢小看我们中国的力量。
民族信息产业应该放到一个很重要的战略地位。过去是原子弹,氢弹,现在应该是高速计算能力,应该是现代化信息生产能力。
如果我们的各种计算机系统用的是进口的CPU,进口的操作系统,进口的办公软件,是不是到时候会被别人牵着鼻子走呢。
我们要象那些为两弹一星做出贡献的老科学家们一样,努力创造,发展民族信息产业。也希望民族信息产业能实现现代化,面向世界,大踏步走出去,屹立于世界。
(作者以前工作在一个高科技军事单位,为有幸能和这些为祖国争光的老前辈们同处一室而感到高兴。这些前辈的默默无闻的奉献精神,关心爱护年轻人的成长的胸怀,一直深深地印在我的脑海里。)
另外一个结论就是,我们应该正视黑客技术。
由于媒体的炒作,有关黑客的新闻给大众造成了一种对黑客技术不屑一顾,认为黑客是一类卑鄙下流的人的情况。有的商业公司甚至抓住大多数人不懂计算机技术这一特点,歪曲这些技术,误导大众,从而大赚其钱。
其实,黑客技术并不下流,也并不深奥。相反,黑客技术是网络安全技术的一部分。或者就可以认为就是网络安全技术。从反面说就是黑客技术,从正面说就是网络安全技术。
这种技术被不法之人用了,当然要遭到谴责。但如果因为这种技术会引来犯罪而不准研究和介绍,也是不正确的。我们应该推广介绍这些技术,这样才能使我们对网络安全有更深的理解,从更深层次地提高网络安全。
我们要善用这种技术,加强这些技术的研究。
本书试图对各种网络安全技术(黑客技术)进行介绍,分析原理和提供基本实现方法。
要想对网络安全技术有一个很深的研究,必须具备一些必要的知识。本书的前三章提供了一些操作系统,编程方法,网络协议和网络编程等基本概念。为以后各章打下良好的基础。在操作系统一章中介绍了Linux上的编程。因为Linux操作系统对网络通信做了很好的支持,而且带了gcc编译器和gdb调试器,是最佳选择。在Linux上编写的C程序可以很短小,代码执行效率也很高。第二章介绍了TCP/IP协议。对IP和TCP的数据包格式作了简单的介绍。另外将了TCP连接的三次握手。许多威胁网络安全的技术都是对协议的弱点的攻击。第三章介绍了网络编程。因为,在测试一个网络是否安全的时候,通常需要编个程序来完成一个特殊的测试工作。
接下来是介绍根据TCP/IP协议进行的攻击。IP地址欺骗和TCP/IP协议攻击都是根据协议的弱点进行。
接下来的几章介绍了进行攻击的方法。Sniffer一章介绍了Sniffer的工作原理,通过利用sniffer,能收集到许多有用的信息。端口扫描一章除了介绍一些常用的网络命令外,还介绍了端口扫描的几种技术。通过端口扫描也能收集到相当丰富和有用的信息。口令破解一章讲解了口令破解器的工作机理。口令破解是侵入一个系统的比较常用的方法。特洛伊木马是侵入系统后留下的后门,为以后能再进入目标系统做准备。随后,介绍了缓冲区溢出攻击方法。这通常也很常用,很重要的攻击方法。书中对它的原理作了较为详细地介绍。
再下来对攻击步骤作了一个总结,并介绍了怎样入侵Windows NT。对前面介绍的方法的综合利用做了介绍。
最后,介绍了计算机病毒的原理和防范以及Perl语言。
在每章,为了对某个原理进行介绍,在原理介绍后,基本上还提供一些简单的源代码程序。这里的程序大多数是由C写的Linux程序。
由于作者不是专业人士,水平有限,同时成书仓促,书中错误相当多。希望能得到批评指正,以便将来整理得更好。书中所有内容都来自Internet,只是略微加工整理。本书的最终目的是想让大家正确看待黑客技术,说明黑客技术并不是象许多媒体描述的那样高深莫测。
此书仅作抛砖引玉之用。
作者电子邮件地址:jxcai@iname.com ICQ#:27771117
第一章
操作系统简介
本章主要介绍几个目前常见的操作系统。首先介绍Linux系统,一个自由软件。Linux对网络通信有很好的支持,在介绍网络安全技术时,对网络技术进行实例时,没有Linux是不可能。
随后对Windows 9x的Msdos.sys的设置以及Windows NT中的注册表作了介绍。在理解安全技术时,这些也是最基本的。
第一节
Linux
一
Linux下的C++编程
ELF和a.out
在Linux下,有两种可执行文件:ELF和a.out。有可能你的Linux只支持一种,有可能两种都支持。运行一下命令file,如果命令输出包含ELF,则支持ELF,如果包含Linux/i386,则支持a.out。
GCC版本
使用下面命令,可以知道它的版本:
gcc -v
GCC安装后目录结构
/usr/lib/gcc-lib/target/version/ (及子目录) 编译器就在这个目录下。
/usr/bin/gcc可以从命令行执行的二进制程序在这个目录下。
/usr/target/(bin|lib|include)/ 库和头文件在这个目录下。
/lib/,/usr/lib和其他目录,系统的库在这些目录下。
符号定义
使用-V开关,就能看到GCC定义的符号。参见下列实例:
$ echo 'main(){printf("hello world");}' | gcc -E -v -
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2
/usr/lib/gcc-lib/i486-box-linux/2.7.2/cpp -lang-c -v -undef
-D__GNUC__=2 -D__GNUC_MINOR__=7 -D__ELF__ -Dunix -Di386 -Dlinux
-D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__i386
-D__linux -Asystem(unix) -Asystem(posix) -Acpu(i386)
-Amachine(i386) -D__i486__ -
GCC编译器使用简介
通常后跟一些选项和文件名来使用 GCC 编译器。gcc 命令的基本用法如下:
gcc [options] [filenames]
选项指定编译器怎样进行编译。
GCC选项
GCC 有100个编译选项。这些选项中的许多可能永远都不会用到,但一些主要的选项会经常遇到。很多的 GCC
选项包括一个以上的字符,因此必须为每个选项指定各自的连字符。例如, 下面的两个命令是不同的:
gcc -p -g test.c
gcc -pg test.c
第一条命令告诉 GCC 编译 test.c 时为 prof 命令建立剖析(profile)信息并且把调试信息加入到可执行的文件里。 第二条命令只告诉 GCC
为 gprof 命令建立剖析信息。
没有选项时,