流光IV CGI及Plugin扩展

流光™IV CGI扩展及Plugins

©小榕软件实验室 1995－2001

版权所有

一、CGI扩展

流光IV中CGI规则库很容易进行扩展，对应于NT和UNIX的CGI规则库分别在流光IV安装目录下名为ntcgi.dat和unixcgi.dat。增加规则的时候只需要用notepad打开对应的文件，将规则加入即可。

二、Plugins

流光IV中实现了一些简单的Plugins，对于一些简单的漏洞规则可以很容易加入其中。

流光IV中所有的Plugins都放在安装目录中的plugins目录下，扩展名为.flux。我们用一个例子来具体说明Plugins的具体写法。

Example of IIS5.Printer Plugin

"//"是为了说明Plugin功能的注释，实际的plugin是不支持注释的，请务必注意。

Name=IIS5.0 NULL.Printer Exploit //Plugin 的功能说明，Name=xxxxxxxxxxxxxxx，Name是关键字。
Type=NT //说明这一个Plugin适用于NT系统。
Detail=IIS5.0 .Printer Exploit(Grant System Privileges) //Plugin的详细说明，产生报告时使用。
port=80 //目标的TCP端口号，目前流光IV的Plugin仅支持TCP端口。
#start //程序开始标志
send=GET /NULL.printer HTTP/1.1\0x0d\0x0aHost:%host\0x0d\0x0a\0x0d\0x0a //当连接到Port指定的端口以后，发送指定的数据
recv=100 //接受100个字节的数据
?<>HTTP/1.1 500 13\0x0d\0x0aServer: Microsoft-IIS/5.0 //数据中是否包含指定的字符串，如果条件满足程序正常结束。
#start^ //程序结束标志，只要程序能够执行到这里，就说明检测成功，否则说明失败(即没有这个漏洞)。

说明：

- Name=
  Name说明Plugin的功能

- Type=
  说明Plugin适用的操作系统，只能选择ALL、NT或者UNIX

- Detail=
  Plugin的详细说明，产生报告的时候使用

- Port=
  目标主机的TCP端口号。

以上四项必须有。

- #start
  程序开始表标志

- #start^
  程序结束标志，同时也是检测成功标志，也就是说如果程序可以顺利执行到这里，就说明检测成功

- send=
  发送指定的数据给Port中指定的端口，如果发送失败，Plugins就结束。其中如果有二进制需要用转意字符\0x,例如\0x0d\0x0a代表回车换行。

- recv=
  接收制定长度的数据，如果接受失败，Plugins就结束。
  注意流光IV目前的Plugin只支持一个缓冲区，例如执行了两次recv,将只保留最后一次的结果。

- ?
  逻辑判断

- =
  缓冲区内的字符是否和指定的相同：?=Test String //比较缓冲区内内容是否等与Test String。

- <>
  缓冲区内的字符是否包含指定的字符：?<>IIS 5.0 //是否包含IIS 5.0

- !
  取反
  例如?!=表示不相等，?!<>不包含。

- %host
  表示当前目标主机的IP。

例：判断用户FTP主机是否可以匿名登陆。

通常手动的方法如下：

D:\>ftp 203.212.4.19
Connected to 203.212.4.19.
220 scsi Microsoft FTP Service (Version 5.0). //220 表示连接成功，输入用户名
User (203.212.4.19:(none)): ftp //输入用户名
331 Anonymous access allowed, send identity (e-mail name) as password. //表示输入密码
Password:ftp@203.212.4.19 //输入密码
230 Anonymous user logged in. //230表示登陆成功
ftp>

//至此说明匿名登陆成功

对应的Plugins

文件:Anonymous.flux

Name=FTP Anonymous Login
Type=ALL
Detail=FTP Server Anonymous Login Enable
Port=21 //FTP的端口
#start
recv=10
?<>220 //是否出现了220标志，如果成功就继续，否则结束
send=user ftp\0x0d\0x0a //发送user ftp,回车换行
recv=10
?<>331 //是否出现了输入密码的标志
send=pass ftp@%host //发送密码ftp@<主机的IP>
recv=10
?<>230 //是否找到登陆成功标志
#start^ //程序成功结束

将此文件保存到流光IV目录中的Plugins目录下，后缀为".flux"(注意：不是.flux.txt)，重新启动高级扫描模式即可。