0x01
Halcyon是一个开源的专门设计用于开发Nmap脚本的IDE。通过Halcyon你可以开发从侦察到利用的各类Nmap高级扫描脚本
安装过程如下
安装依赖
apt-get install default-jre
apt-get install ant
从git上clone
Nmap脚本编写
接下来开始编译
Nmap脚本编写
命令:
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
Nmap脚本编写
启动后会出现如下界面
Nmap脚本编写
提示还没有配置,点击des
Nmap脚本编写
点击auto config自动配置
Nmap脚本编写
点击apply
Nmap脚本编写
要求我们重启后生效
在此输入上面的命令即可启动
Nmap脚本编写
新建一个项目
Nmap脚本编写
会弹出如下对话框,要求填写脚本分类、存储位置等
Nmap脚本编写
点击script name右边的文件夹,打开后选择保存在kali中nmap脚本的默认路径下,命名为demo.nes
Nmap脚本编写
点击save,其他选项如图所示,然后点击create
Nmap脚本编写
可以看到已经生成了一个nse脚本的模板文件
Nmap脚本编写

0x02
稍微介绍下Halcyon的布局
左侧分别是是namp脚本,
Nmap脚本编写
nse需要的数据,比如**时的字典、指纹等等
Nmap脚本编写
以及nmap的库文件

Nmap脚本编写

0x03

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

接下来我们编写个简单的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”
Nmap脚本编写
这样当目标服务器上开放的80端口运行着http服务时,就命中了规则,接着去执行action部分
所以我们再来编写action部分的代码
Nmap脚本编写
然后ctrl+s保存,再点击file->update script DB
Nmap脚本编写
接着测试一下
Nmap脚本编写
可以看到在扫描出80端口开放之后就打印出了this is a webserver

相关文章: