Nmap的脚本编写

本文详细介绍了如何使用Halcyon IDE进行Nmap脚本的开发,包括环境配置、IDE启动、脚本创建、代码生成以及脚本测试。实验中通过创建一个检测目标是否为web服务器的脚本来演示具体步骤,展示了Halcyon在Nmap脚本编写中的便捷性和实用性。
摘要由CSDN通过智能技术生成

预备知识

关于nmap

Nmap(网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的“映射”。为了实现其目标,Nmap将特定数据包发送到目标主机,然后分析响应。

实验目的

通过该实验了解nmap脚本的编写。

实验环境

服务器:kali,IP地址:随机分配;win,IP地址:10.1.1.100
辅助工具:halcyon

实验步骤一

Halcyon是一个开源的专门设计用于开发Nmap脚本的IDE。通过Halcyon你可以开发从侦察到利用的各类Nmap高级扫描脚本。
安装过程如下(已安装完成,直接启动即可)
安装依赖:

apt-get install default-jre
apt-get install ant

从git上clone:

git clone https://github.com/s4n7h0/Halcyon.git

在这里插入图片描述
接下来开始编译:
在这里插入图片描述
命令:

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

在这里插入图片描述
启动后会出现如下界面:
在这里插入图片描述
提示还没有配置,点击yes:
在这里插入图片描述
点击auto config自动配置:
在这里插入图片描述
点击apply:
在这里插入图片描述
要求我们重启后生效。
在此输入上面的命令即可启动:
在这里插入图片描述
新建一个项目:
在这里插入图片描述
会弹出如下对话框,要求填写脚本分类、存储位置等:
在这里插入图片描述
点击script name右边的文件夹,打开后选择保存在kali中nmap脚本的默认路径下,命名为demo.nse:
在这里插入图片描述
点击save,其他选项如图所示,然后点击create:
在这里插入图片描述
可以看到已经生成了一个nse脚本的模板文件。
在这里插入图片描述

实验步骤二

简单介绍下Halcyon的布局,左侧分别是namp脚本:
在这里插入图片描述
nse需要的数据,比如爆破时的字典、指纹等等:
在这里插入图片描述
以及nmap的库文件:
在这里插入图片描述

实验步骤三

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:
在这里插入图片描述
接着测试一下:

nmap --script demo 10.1.1.100

在这里插入图片描述
可以看到在扫描出80端口开放之后就打印出了This is a WebServer。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值