20189216 《网络攻防技术》第二周作业

一、教材内容学习总结

第一章作者通过亲身经历的黛蛇蠕虫应急响应事件这个典型的案例,介绍了整个黛蛇蠕虫事件过程,蠕虫的传播、取证分析和追踪的技术机理,以及重现黛蛇蠕虫的传播场景,让我们建立起对网络攻防技术的初始印象。接着回顾网络攻防技术领域的掌控者——黑客道的发展史,来让我们体会到黑客先驱们创道的努力奋斗和艰辛。作者从“极光”网络攻击事件引出网络攻防的技术体系框架,对网络攻击的基本路径图进行简要概述。本书将以此作为结构,来展开对各种类型的攻防技术的介绍与讲解,本章中简要的介绍了攻防技术中不可忽视的物理攻击和社会工程学。

P45作业:《战争游戏》影评
      本片是1983年轰动美国的卖座片之一。影片虽未脱商业性的科幻惊险片模式,但它却在娱乐之余向我们提出了一系列值得深思的严肃问题。影片是以当代最热门的电脑高科技战争指挥系统为背景展开情节的。麦基璀这个电脑拜物教的崇奉者笃信电脑的准确性和正确性,将其捧到至高无上的地位。当卡博纠正他的“电脑下令”说法应为“总统下令”时,他马上反击说:“总统也得听从电脑的判断……(核弹预警时间短)总统没时间作决定。”麦基璀这一艺术形象直到今天仍具有鲜明的现实意义。尽管人类已进入21世纪,苏联已不复存在,只剩美国一个超级大国,核战阴云已消退,然而美国的决策层却罔顾世界人民的和平意愿,拒签核禁试条约,违反美苏协议,凭借其世界领先的电脑技术大力研发战略防御导弹系统,妄图主宰世界。本片编导对美国社会中的这股浊流进行了辛辣的嘲讽和批判:你们不是鼓吹“电脑万能”吗?那就让这万能的电脑无中生有,给你造出一场核战来教训教训你。编导的创作手法也极具创意:先将其引向极端,到危机爆发的临界点再将其否定。编导开宗明义就直说WOPR玩的是战争游戏,且危机的引发也缘于戴维的游戏。结果戴维的游戏冲动引发WOPR中的软件“约书亚”接管了WOPR的最高权限。约书亚按军方意图被设计成必须在战争中取胜,且具有人工智能,因此它一旦被激活便隐蔽地、不计代价地去夺取最后胜利。而迷信电脑的麦基璀自以为能完全操控电脑,当发现戴维闯入后对系统进行了修改,便不加怀疑地信赖它。他们从冷战思维出发,认为这是苏联的阴谋而不是游戏,甚至戴维也被他们视为苏联间谍。美国决策阶层这种愚蠢的偏执至今仍还在可悲地延续着,所谓李文和为中国盗窃核机密的间谍案就是在新形势下这种闹剧的再现。于是他们像小丑般地被电脑游戏操控着,向战争边缘滑去。法肯和戴维的及时赶到使他们半信半疑地停止了主动反击,当事实证明这确是一场游戏后,编导用一个跌宕把剧情推向全剧的最高潮:只会夺取胜利的约书亚将破解密码,自行发射核弹。由于麦基璀们完全把操控权交给了电脑,短时内他们来不及制止约书亚的行动,在危机面前完全束手无策(由于程序已被他们部分修改,法肯也无法控制约书亚)。反倒是被他们视为敌人的小毛孩戴维急智应对,决定用新游戏替换约书亚的旧游戏。在法肯的提示下,他输入井格游戏,并键入命令让约书亚自我学习其游戏规则。约书亚将井格游戏与核战游戏结合起来,分析出作战双方都损失惨重,无最后胜者。这种零和结局也使它虽然查出了核弹的发射密码,但却放弃了实际发射,即将毁灭世界的危机终于化解。在这一过程中,迷信电脑的美国决策者们愚蠢丑陋的嘴脸得到了淋漓尽致的表现。影片中与麦基璀相对应的是另一典型人物法肯。法肯作为一个电脑奇才最初领导了约书亚的研制工作,但当他意识到核战争的巨大破坏力后便与军方产生龃龉而最终隐退,并且走向了宿命论的另一极端,消极地从基督教的末世说和恐龙灭绝的再进化论中寻求安慰。法肯的这种思想在整个西方很有代表性。与以上两种思潮相对立的是积极反核战派。他们坚信人类的理智终将取得胜利,只要人们行动起来,就一定能在核战毁灭人类之前制止核战。本片编导就持这种看法,他们塑造的主人公戴维(以及珍妮)就是这一思潮的典型代表。戴维这位与电脑时代共生的新生代对未来充满了美好的憧憬。面对核战危机,他冷静而机敏地寻找解救办法。他说服了消极派的法肯,壮大了自己的力量。最后当“电脑万能”论者麦基璀面对失控的约书亚束手无策时,他力挽狂澜,思路清晰地化解了危机。编导以此表明了自己对人类未来的乐观态度。
      本片的另一特点是早在1983年,影片就颇有预见性地展示了电脑时代特有的一些现象。当时个人电脑刚刚诞生,网络也处于原始状态,而编导就令人叹服地塑造了戴维这一黑客形象,并且详细演示了他如何利用后门程序闯入军方绝密电脑系统。本片所描述的黑客闯入高度机密的军事指挥系统的行为并非一种艺术夸张,而是信息时代必然会发生的社会现象。实际上,近年来随着因特网技术的迅猛发展,世界各国每年都有大量这方面的实例报道,而且多为像戴维这样的青少年所为。甚至我们可以说人类未来面临的战争威胁可能将不是核战,而是信息战。信息战的一个重要内容就是黑客对敌方网络的攻击,这将是信息社会一个有待探讨的新问题。本片编导能在1983年就发掘出这一黑客题材并加以演绎,这的确是富有预见性的。
      总之本片是部非常有电脑时代特色的娱乐片,而娱乐之余又不忘关照当代世界的热点问题。编导对这些问题的巧妙处理使影片具有极大的观赏性。本片无论是形式还是内容,在近30年后的今天看来仍有很强的现实意义。

第二章 网络攻防实验环境作为实践技能锻炼与培养的基础平台,在本书中的地位至关重要。本章中作者介绍了虚拟化网络攻防实验环境的组成部分、网络攻防实验环境配置、介绍了6个不同类型的虚拟机的镜像。通过上述介绍的虚拟机镜像,我们就可以在自己的笔记本电脑上构建出功能完整的个人版网络攻防实验环境。构建完成一套完整的网络攻防实验环境之后,就可以开始进入网络攻防的神奇世界,来着手一些网络攻防活动。

P61作业:
课上完成的实践作业如下:

二、KaliSecurity视频总结

1、课上已安装Kali,在此就不作过多介绍了

2、安全渗透测试一般流程:

  • 信息采集:这是选择目标的过程,也是对目标信息进行收集整理的过程。尽可能的使用多种信息搜集工具,包括搜索引擎和社会工程学方法。因为信息越多,发现漏洞的几率越大。
  • 漏洞分析:在搜集了足够的信息之后,首先我们要判断目标会存在哪些漏洞。通过搜索引擎,和通用的漏洞扫描器来完成。通过使用搜索引擎,可以得到比较直接的信息。
  • 漏洞利用:得到漏洞信息后,基本可以找到相应的攻击方法。Kali Linux中也提供了很多现成的工具,来帮助我们顺利的攻击目标。在这个过程,需要注意的是要明确自己的目的渗透测试和以破坏为目的的黑客行为是有区别的,渗透测试的目的是证明漏斗的存在,而不是搞破坏。对于攻击行为,还有一个更重要的内容就是如何隐藏攻击行为或清除攻击日志,让对方很难通过反追踪技术查找到攻击者。
  • 权限维持:成功攻破一个系统后,继续保持对系统的控制权限的问题。
    -文档编辑:对每次渗透测试的过程和结果进行文档化处理。
  • 其他相关项:无线攻击、密码攻击、嗅探攻击、逆向工程等等

3、Kali——信息搜集之GoogleHack

  • 通过互联网网站搜索信息,掌握一些常用的网站。
  • 常见的Google Hack语句需要掌握便于搜索信息。
  • 社交搜索工具Cree.py,主要针对国外信息的搜索。
    -常用的信息搜索工具theHarvester,是一个“社会工程学工具”。通过搜索引擎、PGP服务器以及SHODAN数据库收集用户的email,子域名,主机,雇员名,开放端口和banner信息。

4、Kali——信息搜集之目标获取

  • DNS能够使人更方便的访问互联网。
  • 使用Dig进行域名解析,使用方法简单。使用Dig进行域传送漏洞测试, dig NS 163.com。

三、学习Python3 简明教程——总结

1、在python中,有以下约定:

  • 使用 4 个空格来缩进
  • 永远不要混用空格和制表符
  • 在函数之间空一行
  • 在类之间空两行
  • 字典,列表,元组以及参数列表中,在 , 后添加一个空格。对于字典,: 后面也添加一个空格
  • 在赋值运算符和比较运算符周围要有空格(参数列表中除外),但是括号里则不加空格:a = f(1, 2) + g(3, 4)

2、在python中需特别注意的是,python使用缩进来定义语句块,缩进是python语法的一部分,这是与其他大多数语言不同的。

3、在 Python 中 我们不需要为变量指定数据类型。所以你可以直接写出 abc = 1 ,这样变量 abc 就是整数类型。如果你写出 abc = 1.0 ,那么变量 abc 就是浮点类型。这是与其他语言不同的。

4、与c语言类似,在python中{:5d} 的意思是替换为 5 个字符宽度的整数,宽度不足则使用空格填充。 {:7.2f}的意思是替换为为7个字符宽度的保留两位的小数,小数点也算一个宽度,宽度不足则使用空格填充。其中7指宽度为7,.2f指保留两位小数。

5、发现python语言比c语言方便许多,例如交换两个数的数值。

6、只要有任意一个操作数是浮点数,结果就会是浮点数。在进行除法时,如果要进行整除,使用 // 运算符,它将返回商的整数部分。% 是求余运算符。

7、Python 是强类型语言,所以必要的时候需要手动进行类型转换。 常见的有如下几个: float(string):字符串 -> 浮点值; int(string):字符串 -> 整数值; str(integer):整数值 -> 字符串; str(float):浮点值 -> 字符串。

8、Python 中赋值语句执行时会先对赋值运算符右边的表达式求值,然后将这个值赋值给左边的变量。

9、Python 中有关下标的集合都满足左闭右开原则,切片中也是如此,也就是说集合左边界值能取到,右边界值不能取到。

10、Python 中for 循环通常与 range() 函数配合使用,要特别注意的是,range() 函数返回的并不是列表而是一种可迭代对象。

11、Python 中print 打印后的结尾不用换行,而用空格。默认情况下 print 打印后会在结尾换行。

12、与Java不同的是,在 Python 里请不要使用属性(attributes)读取方法(getters 和 setters),直接使用属性就可以了。

13、在Python 里,在标准库中,非缺省的编码应该仅仅用于测试目的,或者注释或文档字符串中的作者名包含非ASCII码字符;否则,优先使用\x、\u、\U或者\N来转义字符串中的非ASCII数据。

14、Python 中,gobj 并不是生成器或迭代器,因为它不具有 next 方法,只是一个可迭代对象,生成器是一定不能重复循环的。 如果想要使类的实例变成迭代器,可以用 iter + next 方法实现

15、作用于一个普通的非逻辑值时,短路(逻辑)运算符的返回值通常是能够最先确定结果的那个操作数

16、每调用一次 print() 就会换一次行,如同上面一样。你可以通过 print() 的另一个参数 end 来替换这个换行符,print(b, end=' ') 用空格代替换行。

print("-" * 50) 字符串若是乘上整数 n,将返回由 n 个此字符串拼接起来的新字符串。

四、黑客信息

国内黑客——中国木马之父:glacier黄鑫

  • 网名: glacier ,木马冰河
  • 真名:黄鑫
  • 毕业院校:西安电子科技大学
  • 工作:网络安全网站“安全焦点”
  • 性别:男

冰河之父的由来

      大家都知道微软网站被黑客入侵是因为木马软件的缘故。这个以特洛伊战争中使用的木马正大摇大摆地杀入互联网的领地,而这个软件的编写者就是被我们称为木马教父的黄鑫。99年,木马虽然已经在黑客中间遍布使用,但多数为国外的BO和BUS等木马,对于一些刚接触黑客的生手来说,理解这些软件的使用方法和熟练使用这些软件无疑成为了“通往黑客道路”上的最大的难题,此外这些木马多数能够被杀毒软件擒获,使得国内的黑客多数不愿意去用木马。正当国内大多数黑客们苦苦寻觅新的国外木马时,一款中国人自己的编写的木马悄悄诞生了,它就是冰河。冰河在诞生之初凭借着国产化和暂时无杀毒软件能防杀的特点迅速地成为了黑客们使用最广泛的木马。冰河本不该归属于木马的行列的,按照冰河作者黄鑫的话说,他编写冰河完全是靠自己的兴趣和网友的鼓励,最初只是想编写一个方便自己的远程控制软件,不曾想竟然编成了一个中国流传使用最广泛的黑客软件。
      在1.2版本冰河发布以后,国内的黑客们大多认同了冰河,把冰河作为了木马软件的首选。经过多方的支持和鼓励,特别是来自中国国内的黑客们的支持使得黄鑫又努力开发出冰河2.0。2.0新增加了许多以前没有的功能和特性,特别是它在使用的过程中比1.2的更加方便更加的隐蔽好,所以2.0的出现使得冰河立即成为了人尽皆知的木马类黑客软件。冰河良好的隐蔽性和使用简单的特点让国内许多想成为黑客,但又不懂黑客技术的人深深地过了一把黑客瘾,利用冰河入侵个人系统计算机后,他们便能够利用冰河得到他们想得到的一切。现今很多出名的黑客都是利用冰河迈向通往黑客道路的第一步的。黄鑫的冰河让很多人体会了做黑客的快感,更让很多人了解了网络安全的重要性。
      其实就黑客的定性而言,身为一个数据库开发程序员的黄鑫或许根本算不上一个黑客,他从来没有黑过任何一个网站,甚至在开发测试冰河的时候也是利用自己和朋友的计算机来检验。然而我们不能否认冰河的强大功能,特别是2.2版的冰河开发出后,它可以让任何一个菜鸟顷刻之间变成一个极具有攻击力的黑客。这一切理由都让黄鑫成为了中国黑客,特别是初级黑客们的精神领袖。我们几乎能从每一个想了解黑客的朋友的计算机里找到冰河的身影。在中国千千万万个连接在互联网上的计算机中,几乎每一百台里就埋藏着一个冰河,我们也不难发现在大大小小的网吧里时常能够听到那些初级黑客利用冰河搜寻出冰河的受害者后发出的兴奋高呼。冰河,已经成为了中国木马的代名词。冰河已经成为了互联网恐怖的象征。
      现如今黄鑫已经停止了对冰河后续版本的开发,作为程序员的良知让他不得不面对冰河作为一个黑客工具的危害性。没有人想成为人民的公敌,正是这些良知让黄鑫放弃了冰河的后期开发。作为一个无意间带动了中国互联网络安全发展的人,他的名字应向他的软件一样,永远值得我们去回忆,虽然他带给我们的只有那个经典的木马程序,但这依然不丝毫影响我们对他的崇敬。冰河在打开我们电脑大门的同时也打开了我们对网络安全认识的大门。
      黄鑫还是西安电子科技大学的学生时,为了给自己的电脑杀毒,黄鑫一头栽进网络安全的世界里再也没有出来。1999年上半年,黄鑫写出了冰河木马软件。随着冰河木马在网上的迅速传播,黄鑫的名字被越来越多的人熟悉。
      冰河木马一经问世就颇受争议,争议的核心是它既可当作植入被攻击端的木马,也可作为正当的网络远程管理利器。黄鑫自己从未用它黑过任何一台别人的电脑,如同一个纯粹的剑客武痴,他关注的只是技术本身。
      在那场中美黑客大战中,许多人都用了黄鑫写的程序去攻击。黄鑫始终认为,对真正的黑客来说,破坏并不是目的,技术研究的最终目的是在自由与开放的环境中发挥每个人的专长。
      江湖中,任何厉害的“武功”本身并没有害,只是要看用它来杀人,还是救人。当90%的人用“冰河”来给别人种木马时,黄鑫觉得“冰河”已失去了再升级的意义,他终止了冰河木马升级开发后,又关闭了“木马冰河”个人站点,因为这个网站正被众多狂热的黑客痴迷者变成“木马黑机”的交流园地。
      2000年底,黄鑫加盟网络安全网站“安全焦点”,他将完成公司本职工作之外的精力都用于知名扫描器“XSCAN″的开发升级以及“安全焦点″的建设维护。
      朋友和女友对黄鑫的评价是:黄鑫做事情比较踏实,重实际,技术很好但是谦虚,这就是他的人格魅力。
      黄鑫,木马的精神领袖。他应当之无愧地为中国黑客软件的头把交椅。

国外黑客——丹尼斯·利奇Dennis M Ritchie
人物简介

  • 丹尼斯·利奇Dennis M Ritchie(又译丹尼斯·里奇), C语言之父,Unix(一种多用户的计算机操作系统)之父。生于1941年9月9日,哈佛大学数学博士。Dennis M. Ritchie 担任朗讯科技公司贝尔实验室 (原AT&T实验室)下属的计算机科学研究中心系统软件研究部的主任一职。1978年布瑞恩W. Kernighan和Dennis M. Ritchie出版了名著《C程序设计语言(The C Programming Language)》,此书已翻译成多种语言,成为C语言方面十分权威的教材之一。
  • 在里奇的成长历程中,有两个人对他的影响最大,一个是他父亲,而另一个是他的好朋友,同为UNIX发明人的肯·汤普森。尤其是后者。有人问过丹尼斯,他的偶像是谁,不论在计算机领域还是其他领域?他说:我不过是在英雄熏陶下成长起来的。很显然,对我职业生涯影响最大的人物是肯·汤普森。UNIX大部分是他的工作,同样也是C语言的前辈,同样Plan 9系统(来自贝尔实验室的概念网络操作系统,定义为新型下一代操作系统)的大部分工作也是他做的。并且在这其间‘肯’做了第一个计算机象棋大师。
  • 里奇生于1941年9月9日的纽约布朗克斯维尔,获得学士学位并且获得哈佛大学更高的学位,在那里以肄业生资格学习物理,以研究生资格学习应用数学。也正是在这时候,一个偶然的机会改变了他一生的选择。里奇这样描述他的转变,当他听取一些非课程类的计算机讲座后(大约1960年),开始对计算机着迷,并选择了一学期正规(介绍性的)课程。第一部分是模拟计算机,后面是关于打孔卡片设备的,然后是关于真正的数字式计算机的,并为Univac I号机准备了一个程序。当时他是一个主修物理学的学生,但是更加着迷于计算机处理的理论和实际问题。因此,他的毕业论文大部分是理论方面的(递归函数的层次),但是也开始投入更大精力到实践方面。作为助教为同一个介绍性课程的后续版本工作了三年——不过那时计算机已经成了IBM7049。1968年获得数学博士,而论文正是上面的《递归函数的层次》。
  • 1967年加入贝尔实验室,他的父亲阿利斯泰尔·E·里奇在那里有长时间的工作经历,他的父亲对晶体管电路类的东西很有研究,正是由于父亲的影响,也使得他走上了科学研究之路。
    不久后,加入了Multics项目(多路信息计算系统),那是由贝尔实验室、麻省理工学院和通用电器三家的合作项目。Ritchie负责多道处理机的BCPL语言和GE650的编译器,它们都是属于GECOS系统的。同样的,他也写了ALTRAN语言的代数编译器,那是用于符号计算机的一种语言和系统。

贡献

  • 当有人问里奇为什么使用他使用的方式开发了C语言的时候,里奇回答说“这样做看上去很好”,他说任何人在同一地方、同一时间会像他那样做的。但是其他许多人认为这只不过反映出了里奇的谦虚。C++的开发者和设计师、里奇在贝尔实验室的同事比雅尼·斯特劳斯特鲁普说:“假如里奇决定在那十年里将他的精力花费在稀奇古怪的数学上,那么Unix将胎死腹中。”
  • 事实上,丹尼斯·里奇与肯·汤普逊两人发展了C语言,同时发展了Unix操作系统,在电脑工业史上占有重要的席位。至今为止C语言在发展软件和操作系统时依然是一个非常常用的电脑语言,它对许多现代的编程语言如C++、C#、Objective-C、Java和JavaScript拥有极大的影响。在操作系统方面Unix也具有极大的影响:今天市场上有许多不同的Unix方言如AIX、Solaris、Mac OS X和BSD等,以及与Unix非常相似的系统如Minix和非常普及的Linux操作系统。甚至其Microsoft Windows操作系统与Unix相竞争的微软为他们的用户和开发者提供了与Unix相容的工具和C语言编译器。里奇还参加发展了Unix和C语言的两个后继软件:Plan 9和Inferno操作系统以及Limbo语言。两者均是基于他以前的工作上发展的。

人物印象

  • C语言是使用最广泛的语言之一,可以说,C语言的诞生是现代程序语言革命的起点,是程序设计语言发展史中的一个里程碑。自C语言出现后,以C语言为根基的C++、Java和C#等面向对象语言相继诞生,并在各自领域大获成功。但今天C语言依旧在系统编程、嵌入式编程等领域占据着统治地位。C语言,这种最有效、最通用的编程语言,就是他开发的,而这还是他在做另一个项目时的副产品。Dennis Ritchie还和Ken Thompson一起开发了Unix操作系统,因此,他还是名副其实的UNIX之父。
  • D M R先生的专业精神令人感动,近40年如一日,在他所从事的领域辛勤耕耘,而他的多项发明,包括C语言,Unix,也包括正在进行的Plan9,无论哪一项,在软件发展史上都有着举足轻重的地位,和他的伟大成就形成对照的是他的行事,态度低调,他的表达,像他的软件一样,简洁生动而准确。
  • C++的成功,很大一部分也来自于C,是C语言的普及和深入,才有了后面的凤凰涅槃,从另一个角度,在同另一语言大师Pascal之父Niklaus Wirth交流时,C++的名字也是源自C语言的利器,Wirth先生不无惋惜地表示,后来他开发的语言可惜没叫Pascal2。

五、安全工具

1、五种安全工具
(1)Wireshark

  • 简介
          Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
          网络封包分析软件的功能可想像成 "电工技师使用电表来量测电流、电压、电阻" 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一。
  • 应用
          网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。当然,有的人也会“居心叵测”的用它来寻找一些敏感信息。
          Wireshark不是入侵侦测系统(Intrusion Detection System,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。 Wireshark本身也不会送出封包至网络上。
  • 发展简史
          1997年底,GeraldCombs需要一个能够追踪网络流量的工具软件作为其工作上的辅助。因此他开始撰写Ethereal软件。Ethereal在经过几次中断开发的事件过后,终于在1998年7月释出其第一个版本v0.2.0。自此之后,Combs收到了来自全世界的修补程式、错误回报与鼓励信件。Ethereal的发展就此开始。不久之后,GilbertRamirez看到了这套软件的开发潜力并开始参予低阶程式的开发。1998年10月,来自NetworkAppliance公司的GuyHarris在寻找一套比tcpview(另外一套网络封包撷取程式)更好的软件。于是他也开始参与Ethereal的开发工作。1998年底,一位在教授TCP/IP课程的讲师RichardSharpe,看到了这套软件的发展潜力,而后开始参与开发与加入新协定的功能。在当时,新的通讯协定的制定并不复杂,因此他开始在Ethereal上新增的封包撷取功能,几乎包含了当时所有通讯协定。
          自此之后,数以千计的人开始参与Ethereal的开发,多半是因为希望能让Ethereal撷取特定的,尚未包含在Ethereal默认的网络协定的封包而参与新的开发。2006年6月,因为商标的问题,Ethereal更名为Wireshark。

(2)BackTrack

  • 简介
          BackTrack,是一套专业的计算机安全检测的Linux操作系统,简称BT。
          BackTrack不仅仅是用来战争驾驶,还集成了包括Metasploit等200多种安全检查工具;此外众多的RFID工具和对ARM平台的支持也是一个亮点。
          BackTrack经过了多年发展,渗透测试并接受来自安全社区前所未有的帮助,BackTrack开始于早期live linux的发行版Whoppix,IWHAX以及auditor,BackTrack被设计成一体化的旨在安全审计用的live cd,现今它是被最广泛采用的渗透测试框架并被世界各地的安全社区所使用。
          现在,BackTrack已被Kali Linux所代替,BT将不再维护。
  • 原理
          BackTrack可以翻译为回溯,因为BackTrack在其无线安全审计中主要使用了BackTrack回溯算法,比如WEP加密时是两个维度,而到WPA加密就相当于三个维度,好比把正方形变成了正方体,破解难度成几何倍数增长,而BackTrack算法则是将维度降低,正方体还原回正方形,破解难度则被降低很多,原先需要40小时甚至是40天才能破解出的密码使用回溯算法后则只需几十分钟。
          BackTrack是基于Ubuntu的自启动运行光盘,它包含了一套安全及计算机取证工具。它其实是依靠融合Auditor Security Linux和WHAX(先前的Whoppix)而创建成的。
          BackTrack是目前为止知名度最高,评价最好的关于信息安全的Linux发行版。它是基于Linux平台并集成安全工具而开发成的Linux Live发行版,旨在帮助网络安全人员对网络骇客行为进行评估。不论您是否把它做为常用系统,或是从光盘或移动硬盘启动,它都可以定制各种安全包,包括内核配置、脚本和补丁,以用于入侵检测。
          BackTrack是一套信息安全审计专用的Linux发行版,它创造了一条可以方便用户从安全工具库寻找和更新安全工具的捷径。
  • 发展简史
          BackTrack 4使用了ubuntu8.10 的系统,而且只能装Debian的软件包。
          BackTrack 5使用了ubuntu10.04的系统。
          2011年8月18日,BackTrack发布了BackTrack5 R1,基于ubuntu10.04 LTS(Long-Term Support) 内核为Kernel 2.6.39.4,目前BackTrack的最新版本为2012年8月13日发布的BackTrack5 R3 黑帽子版,内核为Kernel 3.2.6。 [1]
          BackTrack经过了多年发展,渗透测试并接受来自安全社区的帮助。
          BackTrack开始于早期live linux的发行版Whoppix,IWHAX以及auditor。
          BackTrack被设计成一体化的live cd。
  • 功能
          BackTrack是一套专业的计算机安全检测的Linux操作系统,简称BT。目前最新与最好用版本是BT5R3 [2] 。
          它能破解WEP,WPA/WPA2加密方式的无线网络,前提是需要有足够强大的密码字典文件。
          BT对于基于无线射频技术的硬件系统有很强的检测能力。
          密码破解方面,在以往版本工具的基础上又加入了基于GPU的破解工具oclhashcat,分别为oclhashcat+(ATI),oclhashcat+(Nvidia),破解速度理论上可以达到传统CPU破解的百倍。
          Apache和MySQL都被集成到了系统中,方便使用者搭建LAMP环境进行测试,包含有Injection,XSS,Snort等IDS(入侵检测系统)工具。

(3)tcpdump

  • 简介
          Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。
          用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。
          作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。
          tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的 FreeBSD系统中,由于它需要将网络接口设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。
          基本上tcpdump的总的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数
  • 参数化支持
    参数
          tcpdump支持相当多的不同参数,如使用-i参数指定tcpdump监听的网络接口,这在计算机具有多个网络接口时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。
          然而更复杂的tcpdump参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都截留下来,数据量太大,反而不容易发现需要的数据包。使用这些参数定义的过滤规则可以截留特定的数据包,以缩小目标,才能更好的分析网络中存在的问题。tcpdump使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。请使用man tcpdump查看这些过滤规则的具体用法。
    安全
          显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的bpfilter伪设备。一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP 堆栈才行。在FreeBSD下,这就需要内核支持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具。
          并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。
          虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现并报告错误却是更关键的问题。网络中的数据包属于不同的协议,而不同协议数据包的格式也不同。因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要。昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、udp等低层协议。
    解码
          从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

(4)Nikto

  • 简介
          Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件/CGIs;超过625种服务器版本;超过230种特定服务器问题。扫描项和插件可以自动更新(如果需要)。基于Whisker/libwhisker完成其底层功能。这是一款非常棒的工具,但其软件本身并不经常更新,最新和最危险的可能检测不到。
          Nikto的作者是Chris Sullo,他是开放安全基金会(Open Security Foundation) 的财务总监。
  • 软件信息
          软件名称:nikto
          操作系统:Linux,FreeBSD,UNIX
          软件大小:162KB
          开发公司:开源
  • 功能
          Nikto用来检查网页服务器和其他多个范畴内的项目:
          * 错误的配置
          * 默认文件和脚本
          * 不安全的文件和脚本
          * 过时软件
          Nikto使用Rain Forest Puppy的LibWhisker实现HTTP功能,并且可以检查HTTP和HTTPS。同时支持基本的端口扫描以判定网页服务器是否运行在其他开放端口。 Nikto可以使用'update'选项从主版本站点自动更新,以应对新的弱点。 Nikto可以在启动时加载用户自定义的检测规则,当然前提是自定义检测规则已经放在了user_scan_database.db文件内(这个文件在插件目录下);即使使用-update选项升级,自定义的检测规则也不会被覆盖。Nikto也具有反入侵探测(IDS)功能。

(5)Snort

  • 简介
          在1998年,Marty Roesch先生用C语言开发了开放源代码(Open Source)的入侵检测系统Snort.直至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS.Snort符合通用公共许可(GPL——GNU General Pubic License),在网上可以通过免费下载获得Snort,并且只需要几分钟就可以安装并开始使用它。snort基于libpcap。
          Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
  • 原理及工作过程
          Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。
          Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。
          Snort通过在网络TCP/IP的5层结构的数据链路层进行抓取网络数据包,抓包时需将网卡设置为混杂模式,根据操作系统的不同采用libpcap或winpcap函数从网络中捕获数据包;然后将捕获的数据包送到包解码器进行解码。网络中的数据包有可能是以太网包、令牌环包、TCP/IP包、802.11包等格式。在这一过程包解码器将其解码成Snort认识的统一的格式;之后就将数据包送到预处理器进行处理,预处理包括能分片的数据包进行重新组装,处理一些明显的错误等问题。预处理的过程主要是通过插件来完成,比如Http预处理器完成对Http请求解码的规格化,Frag2事务处理器完成数据包的组装,Stream4预处理器用来使Snort状态化,端口扫描预处理器能检测端口扫描的能力等;对数据包进行了解码,过滤,预处理后,进入了Snort的最重要一环,进行规则的建立及根据规则进行检测。规则检测是Snort中最重要的部分,作用是检测数据包中是否包含有入侵行为。例如规则alert tcp any any ->202.12.1.0/24 80(msg:”misc large tcp packet”;dsize:>3000;)这条规则的意思是,当一个流入202.12.1.0这个网段的TCP包长度超过3000B时就发出警报。规则语法涉及到协议的类型、内容、长度、报头等各种要素。处理规则文件的时候,用三维链表来存规则信息以便和后面的数据包进行匹配,三维链表一旦构建好了,就通过某种方法查找三维链表并进行匹配和发生响应。规则检测的处理能力需要根据规则的数量,运行Snort机器的性能,网络负载等因素决定;最后一步就是输出模块,经过检测后的数据包需要以各种形式将结果进行输出,输出形式可以是输出到alert文件、其它日志文件、数据库UNIX域或Socket等。

2、安全工具Nikto的详述
(1)Nikto使用教程
1、快速入门
进行最基本的nikto扫描,你只需要指定目标的host(通过 -h 参数指定),也可以指定要扫描的端口号(通过 -p 来指定),默认是80

perl nikto.pl -h 192.168.0.1

2、多端口扫描
#扫描80,88,443三个端口

perl nikto.pl -h 192.168.0.1 -p 80,88,443

#扫描80~90共10个端口

perl nikto.pl -h 192.168.0.1 -p 80-90

3、多host扫描
h 参数的值为一个文件,该文件存一系列的host或者ip,文件的格式要求是,每个host必须占一行,端口号放行末,端口号通过冒号或者逗号和host,其他端口号区分开。

4、交互功能
在扫描期间,按下下面任意键,可开启或关闭相关功能,注意这些命令是区分大小写的

(2)Nikto命令行参数

Cgidirs
扫描CGI目录。

config
使用指定的config文件来替代安装在本地的config.txt文件

dbcheck
选择语法错误的扫描数据库。

evasion
使用LibWhisker中对IDS的躲避技术,可使用以下几种类型:
1.随机URL编码(非UTF-8方式)
2.自选择路径(/./)
3.虚假的请求结束
4.长的URL请求
5.参数隐藏
6.使用TAB作为命令的分隔符
7.大小写敏感
8.使用Windows路径分隔符\替换/
9.会话重组

findonly
仅用来发现HTTP和HTTPS端口,而不执行检测规则

Format
指定检测报告输出文件的格式,默认是txt文件格式(csv/txt/htm)

host
目标主机,主机名、IP地址、主机列表文件。

id
ID和密码对于授权的HTTP认证。格式:id:password

mutate
变化猜测技术
1.使用所有的root目录测试所有文件
2.猜测密码文件名字
3.列举Apache的用户名字(/~user)
4.列举cgiwrap的用户名字(/cgi-bin/cgiwrap/~user)

nolookup
不执行主机名查找

output
报告输出指定地点

port
扫描端口指定,默认为80端口。

Pause
每次操作之间的延迟时间

Display
控制Nikto输出的显示
1.直接显示信息
2.显示的cookies信息
3.显示所有200/OK的反应
4.显示认证请求的URLs
5.Debug输出

ssl
强制在端口上使用SSL模式

Single
执行单个对目标服务的请求操作。

timeout
每个请求的超时时间,默认为10秒

Tuning
Tuning 选项控制Nikto使用不同的方式来扫描目标。
0.文件上传
1.日志文件
2.默认的文件
3.信息泄漏
4.注射(XSS/Script/HTML)
5.远程文件检索(Web 目录中)
6.拒绝服务
7.远程文件检索(服务器)
8.代码执行-远程shell
9.SQL注入
a.认证绕过
b.软件关联
g.属性(不要依懒banner的信息)
x.反向连接选项

useproxy
使用指定代理扫描

update
更新插件和数据库

3、安全工具Snort的详述
(1)Snort的安装
1、安装snort软件
      1)下载snort软件,下载地址:http://www.snort.org/downloads/357(这个是windows专用的版本)
      2)1.安装开始,然后一步一步安装就可以了。一般的话,安装路径放在C盘中就可以(此处就是在C盘,这个比较重要,因为后面的一些修改要根据这个路径来修改,否则安装失败),就这一点需要注意。其他的选择保持默认就可以了。
      2.安装完成后,在snort目录下,新建一个temp文件夹,如下图:
      3)安装规则库,这个是snort软件必备的文件,否则,软件的效力大打折扣。下载地址:https://www.snort.org/downloads/445(需要注册,并登陆,才可以下载,否则会报错)。下载后,将它解压到snort中,覆盖一些原本存在的文件。如下图:
      4)配置,打开snort目录中的etc目录下的snort.conf文件(注意:备份配置文件 cmd 中 COPY c:\snort\etc\snort.conf C:\snort\temp)。如图:
需修改的地方:
      5)用 写字板 打开配置文件c:\snort\etc\snort.conf,进行修改
  Change line 194 to read
  var RULE_PATH c:\snort\rules
  Change lines 289-293 to read
  dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\sf_dcerpc.dll
  dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\sf_dns.dll
  dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\sf_ftptelnet.dll
  dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\sf_smtp.dll
  dynamicpreprocessor file c:\snort\lib\snort_dynamicpreprocessor\sf_ssh.dll
  Change line 312 to read
  dynamicengine c:\snort\lib\snort_dynamicengine\sf_engine.dll
  Change line 816 to read output
  alert_syslog: host=127.0.0.1:514, LOG_AUTH LOG_ALERT

2、测试snort
      1)查看安装情况,在windows运行->cmd c:\snort\bin\snort -W,我的环境得到的结果如图:
我的系统中只有一块网卡,所以显示的是1。
      2)在该窗口下继续运行 c:\snort\bin\snort -v –iX (其中的"X"指的是网卡编号,我的是1)所以我的命令为:c:\snort\bin\snort -v -i1 [注意 -i和1之间没有空格]
      运行后,屏幕一直在滚动。有数据被捕获。如下图:

3、snort的日志
      运行日志模式,使用bat批文件。SnortStart-l.bat
      c:\snort\bin\snort -i1 -s -l c:\snort\log\ -c c:\snort\etc\snort.conf
      如图:
      完成后,运行bat文件,如下图:

(2)Snort的使用
snort有三种用法:嗅探模式、记录模式和网络入侵检测模式。
(1)嗅探模式

snort -v
该模式打印通信的双方IP及协议头部,类似tcpdump

(2)记录模式

mkdir log
snort -dev -l ./log
该模式将截获的数据包记入文件(此处是当前log目录下),重点是-l

(3)网络入侵检测模式

mkdir log
snort -dev -l ./log -h 192.168.1.0/24 -c /etc/snort/snort.conf
该模式将会按指定的规则扫描通信数据包

posted @ 2019-03-10 19:32  鲍政李20189216  阅读(1063)  评论(0编辑  收藏  举报