报告在接收到本地后,由流光使用设定的密钥进行解密,如果密钥不对将无法得到正确的结果。如果在扫描之后修改了密钥(即扫描时的密钥和接收的密钥不一致),那么请先改回原来的密钥,这样才能够得到正确的解密报告。
并且必须也放入[Setup Directory]\FluxaySensor\Plugins中。
1)结构
插件的一般形式:
Name= 插件的名称,可以任意设置。
Type= 适用的操作系统,NT和UNIX两类。
Detail=插件的详细描述,出现在最后的扫描报告中。
port=目标的TCP端口
#start //开始
//执行的命令
#start^ //结束,也是插件检测成功的标志。
2)语法和命令
Send=发送的字符串
例如:send=GET / HTTP/1.0\0x0d\0x0a
在字符串中,不可以打印字符用“\”作为转义字符,16进制表示。
Recv=接受的最大字符数目
例如:Recv=100,最多接收100个字符
? 比较
包含
!非,取反
=相等
例如
?TESTSTRING 表示是否含有“TESTSTRING”这个字符串
?!404 PAGE NOT FOUND 表示是否不含有“404 PAGE NOT FOUND”这个字符串
3)例子
FrontPage2000 扩展远程溢出的插件
Name=FrontPage 2000 Extension Exploit
Type=NT
Detail=FrontPage 2000 Extension Exploit
port=80
#start
send=HEAD /_vti_bin/_vti_aut/fp30reg.dll HTTP/1.1\0x0d\0x0aHost:%host\0x0d\0x0a\0x0d\0x0a
recv=100
?200 OK
#start^
行号是为了解释方便而加入的,实际中的插件不需要行号。下面对每一行的含义作详细解释:
行1:插件的名称,出现在扫描设置的Plugins的列表中。
行2:对应检测的系统
行3:插件的详细描述,如果检测成功将出现在扫描报告中。
行4:连接目标主机的TCP端口号
行5:程序开始标志
行6:发送一个HTTP的请求
行7:接受100个字符
行8:在接收的字符中是否含有字符串“200 OK”,如果有继续,否则中断执行。
行9:结束,表示检测成功。
再如PlatinumFTPserver目录遍历的漏洞的插件编写如下:
Name=Platinum FTP Server vulnerability
Type=NT
Detail=Platinum FTP Server Directory traversal vulnerability
Port=21 //默认FTP的端口
#start
recv=1024 //接收1024个字符
? PlatinumFTPserver //判断是否为相应的FTP版本
send=user anonymous\0x0d\0x0a //匿名登陆
recv=1024
? 331 //是否允许匿名登陆
send=test@test.com\0x0d\0x0a
recv=1024
? 230 //登陆是否成功
send= dir \..\..\..\..\..\ //目录遍历
recv=1024
?200 //命令被成功执行
#start^ //结束
目前流光的插件功能设计只能用于一些简单的场合,流光插件设计的最终目的是希望达到Nessus NASL的强大功能。