当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Nessus安全测试插件编写教程1

Unix/Linux
如何实现Linux操作系统的自动登录
做一个好管家 Linux系统管理技巧大荟萃
linux 9系统下构建小型入侵检测系统
Linux系统初学之学习方向和方法浅谈
Linux系统管理技巧大荟萃
Linux操作系统中的7件武器详解
linux入门教程 第5章:网络应用
linux入门教程 第4章 X-Window与汉化
linux入门教程 第3章 rh使用指南
linux入门教程 第2章 安装指南
linux入门教程1 系统简介
[基础知识]Linux新手系列之五
[基础知识]Linux新手系列之四
[基础知识]Linux新手系列之三
[基础知识]Linux新手系列之二
[基础知识]Linux新手系列之一
[Linux]Mandrake 9.0安装和升级用法
[Linux]完全Mandrake 9.0 美化
[Linux]WINE安装教程
[Linux]输入法xsim安装方法

Unix/Linux 中的 Nessus安全测试插件编写教程1


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 54 ::
收藏到网摘: n/a

Nessus安全测试插件编写教程1
Nessus安全测试插件编写教程1作者:Renaud Deraison(Nessus最主要的编写者,法国人)翻译:nixe0n版本:1.0.0pre21.简介1.1.什么是NASL?NASL是一个为网络安全扫描工具Nessus开发的脚本语言。通过它,任何人都可以方便快速地针对新出现的漏洞编写出测试插件,也便于不同操作系统的用户分享测试脚本。除此之外,NASL还可以保证编写的脚本只能用于针对目的主机的测试,使编写者难以使用编写的脚本用于恶意用途。使用NASL,你可以很容易地打造IP报文,或者发送通常的报文。NASL中还有一些专门的函数用于向FTP和WEB服务器发送数据。另外,NASL还可以保证:除了目标主机之外,不向任何的主机发送报文。不允许在本地系统执行任何命令。1.2.What NASL is notNASL不是一种功能很强大的脚本语言。它的目的只是用于安全测试。因此,别指望使用这种脚本语言写出第三代的WEB服务器或者文件转换工具,要编写此类软件还是使用Perl、Python或者其它的脚本语言吧。用它们编写要比使用NASL快100倍。另外,由于NASL的设计有些仓促,在语法上还有一些需要改进的地方。1.3.为什么不在Nessus中使用Perl、Python、tcl或者其它脚本语言我知道有很多功能非常强大的脚本语言,和它们相比NASL功能要弱很多。不过,虽然这些语言都非常强大,但是它们都不太安全。使用这些语言,你可以非常容易地编写出木马检测插件,泄露你的信息,让第三者知道你是一个Nessus用户,甚至会把一些敏感信息(例如:密码文件)发送到第三方主机。使用这些语言还有另外一个问题,它们都会消耗大量的系统资源,尤其是内存。这非常令人头疼。以Perl为例,Perl非常棒,并且非常优美。但是,如果要使用它编写Nessus的测试插件,你需要消耗大量的时间安装必须的模块,Net::RawIP就是其中之一。与此相反,NASL根本不会消耗大料的内存。因此,即使没有256M内存,你也可以同时启动20个nessusd线程。而且,对于编写检测插件,NASL本身就足够了,你不必为了为了编写新的安全检测插件而安装大量的软件包。1.4.为什么你应该自己编写安全测试插件你可能会盘算为了自己编写Nessus安全测试插件而在学习一种脚本语言是否值得?但是,你要知道:NASL为Nessus做过专门的优化,因此使用NASL编写的安全测试插件效率很高。在很多方面,NASL和C非常类似,因此你没有必要担心很难掌握。NASL非常适合编写安全测试插件。NASL的移植性很好。在M$版本的Nessus发布之后,所有的安全测试插件根本勿需修改,就可以使用。1.5.这个教程会教你一些什么东西这个教程的目的是教你如何使用NASL编写自己的Nessus安全测试插件。1.6.NASL的局限我在上面讲过,NASL不是一种强大的脚本语言。它最大的局限是:结构(structure)。目前NASL还不支持结构,可能在不久的将来可以支持。一个调试程序。NASL还没有一个合适的debug程序。不过,有一个单独的解释程序nasl可以暂时用于排错。1.7.感谢下面这些人为NASL的设计提出了高贵的意见,作者在此致谢:Denis Ducamp([email protected])Fyodor([email protected])Noam Rathaus([email protected])2.NASL基础:语法在语法上,NASL非常类似于C,只是去掉了一些烦人的东西。你勿需顾及对象的类型,也不用为它们分配和释放内存;在使用变量之前不必事先声明。这样,你就可以只致力于安全测试插件的的编写。如果你以前不懂C语言,读这个教程可能要费点劲,如果你对C语言已经很精通,读本教程将非常轻松。2.1.注释在NASL中,注释符是#。它只对当前行有效,例如:有效的注释:a = 1 ; #let a = 1#set b to 2b = 2;无效的注释:#set a to 1#a = 1;a = # s