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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 44 ::
收藏到网摘: 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