为Nmap添砖加瓦

Nmap介绍

Nmap作为一款优秀的端口扫描器,被所有渗透测试人员当作工作中必不可少的辅助工具,它不仅支持多种扫描方式,还支持添加漏洞测试脚本,在强大的lua脚本支持下,使得nmap更加如虎添翼,官方的nmap自带有非常多的脚本,这些不是今天的主角,今天的主角是如何编写属于自己的脚本,为namp的强大添砖加瓦。

理解nse脚本的结构

任何脚本插件都有自己的编写规则,都有一定的模板,所以nmap的脚本也不例外,想要编写脚本,必须去了解其编写规则,以及执行流程,下面我们就一起学习学习。大家可以先去看一下freebuf上的一个文章,点击下方原文连接查看。

脚本模版

我们需要做的就是修改Rule以及功能函数的内容即可。所以我们要理解rule的四种触发条件才能完成我们想要完成的功能脚本。

Rule的四种条件类型:

Prerule

Prerule()用于在Nmap没有执行扫描之前触发脚本执行,这类脚本脚本并不需要用到任何Nmap扫描的结果;

测试代码:

扫描结果如下:

Hostrule

Hostrule()用在Nmap执行完毕主机发现后触发的脚本,根据主机发现的结果来触发该类脚本

测试代码:

扫描结果:

Portrule

Portrule用于Nmap执行端口扫描或版本侦测时触发的脚本,例如检测到80端口,获取网页的title

测试代码:

扫描结果:

Postrule

Postrule用于Nmap执行完毕所有扫描后,通常用于扫描结果的数据提取和整理。

测试代码:

扫描结果:

其他基础

以上内容大概介绍了nmap在不同阶段触发脚本的情况,剩下就需要有一定的lua脚本编写基础,以及熟悉nmap自带的所有库文件,这样才能快速的编写适合自己的脚本。

参考资料:

https://nmap.org/nsedoc/

nmap自带脚本

总结

平时我们在渗透测试中,遇到特定的条件,需要批量扫描的时候,自己实现一个符合自己条件的nse脚本,让我们可以在渗透测试中事半功倍,nmap自带了很多的脚本,基本覆盖了大多数的情况,在写自己的脚本的时候可以参考别人写好的,让我们能够更快的开发出符合条件的脚本。

原文发布于微信公众号 - 信安之路(xazlsec)

原文发表时间:2017-06-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WindCoder

百度wordpress结构化数据插件sitemap1.0,“一直提示校验中”解决办法

之前从joe处得知了百度wordpress结构化数据插件sitemap1.0,安装好后验证时一直提示校验中!!今天刚找到解决方法,留给大家吧。原来

11410
来自专栏同步博客

memcached的安装以及php两个扩展软件安装(memcache、memcached)

百度云安装包:http://pan.baidu.com/s/1pKZeDwn  k3ap

11620
来自专栏代码GG之家

Scoops android app多主题架构(一)

简要说明 Scoops是一个android应用库,主要解决的是多主题实现方案。通过配置多个R.style.Theme ,代码进行动态设置主题,重启当前界面实现...

262100
来自专栏区块链

Web安全常见漏洞修复建议

看各大发布漏洞的平台,发现众多挖洞大神精彩的漏洞发掘过程,但在修复建议或者修复方案处,给出千奇百怪神一般的回复,故而总结一下修复建议(才疏学浅不算太全敬请谅解,...

32860
来自专栏FreeBuf

XSS利用之延长Session生命周期

1.0 话题准备 —— session 和 cookie 的原理 —— ▌1.1 session介绍 ---- 简单介绍:PHP session 变量用于存储...

20590
来自专栏安恒网络空间安全讲武堂

翻译 | Linux利用动态链接共享对象库提权

Linux利用动态链接共享对象库提权 RPATH和弱文件权限会导致系统的损害。Linux应用程序可以利用动态链接的共享对象库(我们从现在开始称它们为共享库)来提...

27150
来自专栏张善友的专栏

ASP.NET 2.0 中 Web 事件

ASP.NET 2.0 还提供了全功能的应用程序监视和健康监视。这个系统是由一个完全可扩展事件模型和一个能将事件发送到多种接收器的事件引擎组成的。举例来说,您可...

21770
来自专栏电光石火

IDEA切换git分支

点击右下角的git:master,然后选择origin/master,然后选择你要切换的分支,我目前在master分支,换dev分支就选择origin/dev,...

77230
来自专栏JetpropelledSnake

Python Web学习笔记之Cookie,Session,Token区别

31270
来自专栏上善若水

056-android-AndroidManifest.xml文件中的permission与uses-permission之间的区别与用法

为了保证application的正常运行,需要系统授予app的权限声明。这个权限是在用户安装应用的时候授予的。android:name的值可以是其他app通过声...

22070

扫码关注云+社区

领取腾讯云代金券