0x01
Halcyon是一个开源的专门设计用于开发Nmap脚本的IDE。通过Halcyon你可以开发从侦察到利用的各类Nmap高级扫描脚本
安装过程如下
安装依赖
apt-get install default-jre
apt-get install ant
从git上clone

接下来开始编译

命令:
java -cp /opt/Halcyon/src/lib/autocomplete.jar:/opt/Halcyon/src/lib/rsyntaxtextarea.jar:/opt/Halcyon/dist/Halcyon_IDE_v2.0.1.jar halcyon.ide.HalcyonIDE

启动后会出现如下界面

提示还没有配置,点击des

点击auto config自动配置

点击apply

要求我们重启后生效
在此输入上面的命令即可启动

新建一个项目

会弹出如下对话框,要求填写脚本分类、存储位置等

点击script name右边的文件夹,打开后选择保存在kali中nmap脚本的默认路径下,命名为demo.nes

点击save,其他选项如图所示,然后点击create

可以看到已经生成了一个nse脚本的模板文件

。
0x02
稍微介绍下Halcyon的布局
左侧分别是是namp脚本,

nse需要的数据,比如爆破时的字典、指纹等等

以及nmap的库文件

0x03
Halcyon对于编写nmap脚本而言功能非常强大
比如使用project->code generator功能可以快速生成对应的功能代码,以socket为例

生成的代码如下

接下来我们编写个简单的nmap脚本实现对web服务器的检测功能。
我们就做这么一个简单的功能:
如果发现目标开放了80端口,并在这个端口上运行http服务,则输出”this is a webserver”
description字段没有什么好修改的
我们直接来到关键部分,因为我们这个脚本的功能是评估目标是否为web服务器要根据端口状态及端口上的服务来判断,需要要用到portrule规则。
需要修改return为
return port.protocol == “tcp” and port.number == 80 and port.service == “http” and port.state == “open”

这样当目标服务器上开放的80端口运行着http服务时,就命中了规则,接着去执行action部分
所以我们再来编写action部分的代码

然后ctrl+s保存,再点击file->update script DB

接着测试一下

可以看到在扫描出80端口开放之后就打印出了this is a webserver
。
3185

被折叠的 条评论
为什么被折叠?



