前言

Nmap是一款强大的开源扫描工具。同时Nmap提供了强大的脚本引擎(Nmap Scripting Engine),支持通过Lua脚本语言来扩展Nmap的功能,在Nmap的发行版中已经包含了数百个扩展脚本,除了辅助完成Nmap的主机发现、端口扫描、服务侦测、操作系统侦测四个基本功能,还补充了其他扫描能力:如执行HTTP服务详细的探测、暴力破解简单密码、检查漏洞信息等等。

脚本分类及使用

分类

Nmap脚本主要分为以下几类,引用自:Nmap脚本使用总结

auth: 负责处理鉴权证书(绕开鉴权)的脚本
broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute: 提供暴力破解方式,针对常见的应用如http/snmp等
default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等
dos: 用于进行拒绝服务攻击
exploit: 利用已知的漏洞入侵系统
external: 利用第三方的数据库或资源,例如进行whois解析
fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware: 探测目标机是否感染了病毒、开启了后门等信息
safe: 此类与intrusive相反,属于安全性脚本
version: 负责增强服务与版本扫描(Version Detection)功能的脚本
vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067

命令行选项

Nmap提供的一些命令如下:

-sC/--script=default:使用默认的脚本进行扫描。
--script=<Lua scripts>:使用某个脚本进行扫描
--script-args=x=x,y=y: 为脚本提供参数
--script-args-file=filename: 使用文件来为脚本提供参数
--script-trace: 显示脚本执行过程中发送与接收的数据
--script-updatedb: 更新脚本数据库
--script-help=<Lua scripts>: 显示脚本的帮助信息

脚本

针对性脚本

​​​收集了Github上的一些较有针对性Nmap脚本:

  • MS15-034、LFI、Nikto、ShellShock、tenda

https://github.com/s4n7h0/NSE

  • 枚举ICS程序和设备

https://github.com/digitalbond/Redpoint

  • 一些NSE脚本合集

https://github.com/cldrn/nmap-nse-scripts

  • 路由器信息收集:

https://github.com/DaniLabs/scripts-nse

  • 暴力破解

https://github.com/lelybar/hydra.nse

  • Cassandra、WebSphere

https://github.com/kost/nmap-nse

  • Scada

https://github.com/drainware/nmap-scada

  • NSE开发工具

https://github.com/s4n7h0/Halcyon

  • Hadoop、Flume

https://github.com/b4ldr/nse-scripts

  • WordPress

https://github.com/peter-hackertarget/nmap-nse-scripts

  • VNC

https://github.com/nosteve/vnc-auth

  • PhantomJS检查Http Header信息

https://github.com/aerissecure/nse

  • WebServices检测

https://github.com/c-x/nmap-webshot

  • SSL心脏滴血

https://github.com/takeshixx/ssl-heartbleed.nse

  • OpenStack

https://github.com/sicarie/nse

  • Apache、Rails-xml

https://github.com/michenriksen/nmap-scripts

  • 网关、DNS

https://github.com/ernw/nmap-scripts

  • MacOS

https://github.com/ulissescastro/ya-nse-screenshooter

  • 目录扫描、WhatCMS、漏洞检测

https://github.com/Cunzhang/NseScripting

  • Redis

https://github.com/axtl/nse-scripts

  • 华为设备检测

https://github.com/vicendominguez/http-enum-vodafone-hua253s

  • Axis​​​​

https://github.com/bikashdash/Axis_Vuln_Webcam

内网渗透

来自影牛milsec公众号的推荐

Nmap提供了许多有效的脚本,无需依赖其他第三方的工具对内网机器进行渗透测试:

  • smb-enum-domains.nse

域控制器信息收集,主机信息、用户、密码策略等

  • smb-enum-users.nse

域控制器扫描

  • smb-enum-shares.nse

遍历远程主机的共享目录

  • smb-enum-processes.nse

通过SMB对主机的系统进程进行遍历

  • smb-enum-sessions.nse

通过SMB获取域内主机的用户登录session,查看当前用户登录情况

  • smb-os-discovery.nse

通过SMB协议来收集目标主机的操作系统、计算机名、域名、全称域名、域林名称、NetBIOS机器名、NetBIOS域名、工作组、系统时间等

  • smb-ls.nse

列举共享目录内的文件,配合smb-enum-share使用

  • smb-psexec.nse

获取到SMB用户密码时可以通过smb-psexec在远程主机来执行命令

  • smb-system-info.nse

通过SMB协议获取目标主机的操作系统信息、环境变量、硬件信息以及浏览器版本等

  • ms-sql-brute.nse

收集组合字典后对域内的MSSQL机器进行破解

  • ms-sql-xp-cmdshell.nse

获得MSSQL的SA权限用户名密码时可以通过Nmap脚本来执行指定命令,可以通过SMB协议或者MSSQL来执行

  • redis.nse

爆破Redis的用户密码,可以结合写入SSH key获取服务器权限

  • oracle-sid-brute.nse

挂载字典爆破oracle的sid

  • oracle-enum-users

通过挂载字典遍历Oracle的可用用户

  • oracle-brute.nse

获取sid之后可以爆破Oracle的用户密码

  • pgsql-brute.nse

PostgreSql用户密码猜解脚本,对pgsql进行密码爆破,适当的权限下可以读写文件、执行命令,从而进一步获取服务器控制权限。

  • svn-brute.nse

对SVN服务器进行爆破,通过这些svn服务器上的内容,我们可以下载源代码,寻找一些有用的信息

工具

Nmap NSE脚本搜索引擎

  • https://github.com/JKO/nsearch

     ================================================
    _ _ _____ _____ _
    | \ | |/ ___|| ___| | |
    | \| |\ `--. | |__ __ _ _ __ ___ | |__
    | . ` | `--. \| __| / _` || '__| / __|| '_ |
    | |\ |/\__/ /| |___ | (_| || | | (__ | | | |
    \_| \_/\____/ \____/ \__,_||_| \___||_| |_|
    ================================================
    Version 0.4b http://goo.gl/8mFHE5 @jjtibaquira
    Email: jko@dragonjar.org | www.dragonjar.org
    ================================================ nsearch> search name:http author:calderon category:vuln
    *** Name Author
    [+] http-vuln-cve2012-1823.nse Paulino Calderon, Paul AMAR
    [+] http-phpself-xss.nse Paulino Calderon
    [+] http-wordpress-enum.nse Paulino Calderon
    [+] http-adobe-coldfusion-apsa1301.nse Paulino Calderon
    [+] http-vuln-cve2013-0156.nse Paulino Calderon
    [+] http-awstatstotals-exec.nse Paulino Calderon
    [+] http-axis2-dir-traversal.nse Paulino Calderon
    [+] http-huawei-hg5xx-vuln.nse Paulino Calderon
    [+] http-tplink-dir-traversal.nse Paulino Calderon
    [+] http-trace.nse Paulino Calderon
    [+] http-litespeed-sourcecode-download.nse Paulino Calderon
    [+] http-majordomo2-dir-traversal.nse Paulino Calderon
    [+] http-method-tamper.nse Paulino Calderon

总结

扫描经常会触发IDS或者其他的安全设备,所以在用的时候应根据实际的环境,来选择合适的脚本。

参考

一些Nmap NSE脚本推荐的更多相关文章

  1. NMAP执行脚本smb-check-vulns.nse出错

    错误信息:NSE: failed to initialize the script engine: /usr/bin/../share/nmap/nse_main.lua:801: ‘smb-chec ...

  2. nmap加载nse脚本在内网渗透中的使用-下

    smb-ls.nse 列举共享目录内的文件,配合smb-enum-share使用nmap -p 445 <ip> --script smb-ls --script-args 'share= ...

  3. nmap加载nse脚本在内网渗透中的使用-上

    转载自:https://mp.weixin.qq.com/s/zEgHxJEOfaiYVZYmg7NnXA? 大多数情况下,大家都认为nmap只是一个扫描工具,而不把当成是一个渗透工具.nmap集成了 ...

  4. weblogic nmap扫描脚本

     CVE-2018-2894 / Nmap利用脚本,可批量批量快速扫描getshell.检测漏洞.利用漏洞 地址:https://github.com/Rvn0xsy/nse_vuln/tree/ma ...

  5. Tampermonkey脚本安装问题及自用脚本推荐

    对于高手来说,chrome浏览器中即使没有其他任何chrome插件,可能都无关紧要.但是有一个插件必不可少, 那就是Tampermonkey油猴插件.Tampermonkey是Chrome上最流行的用 ...

  6. TamperMonkey 使用指南以及脚本推荐

    写在前面 Chrome浏览器是最适合开发者使用的浏览器,不仅仅是因为Chrome对于Js的友好支持,更是由于Chrome支持丰富且功能强大的插件,扩展了浏览器的功能和使用体验. 在这些插件里面,相信你 ...

  7. Nmap的一些常用的nse脚本

    转自freebuf.com/  点击跳转 在这篇文章中,我们将研究最著名的渗透工具之一 Nmap 一款标志性的跨平台扫描器.它的原意为Network Mapper(网络映射器),具有相当强大的扫描功能 ...

  8. nmap 使用脚本引擎进行扫描

    1.下载nmap(nmap官网). 2.安装nmap. 3.编辑环境变量(windows下所需),保存.

  9. 利用NSE脚本检测域传送和证书透明度滥用

    nslookup -type=NS <domain> <server> nmap -p 53 --script dns-zone-transfer --script-args ...

随机推荐

  1. iPhone X会成为苹果最短命的旗舰机型吗?

    最近,有媒体报道有凯基证券分析师郭明琪在他的最新报告指出,iPhone X将在今年中结束生产.因为苹果已计划下半年推出新款iPhone,价格也比iPhone X会低并有新功能发布.所以他预计iPhon ...

  2. Python字符串编码——Unicode

    ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte).也就是 ...

  3. numpy创建的array

    import numpy as np array = np.array([[1,2,3], [2,3,4]]) #打印列表 print(array)#是几维的 print('number of dim ...

  4. git push 时不用每次都输入密码的方法

    在本地克隆下来的git仓库中找到 .git 目录 (.git 目录是隐藏文件夹 在组织->文件夹和搜索选项-> 查看选项卡 -> 隐藏文件和文件夹 -> 显示隐藏的文件.文件夹 ...

  5. Thomson Plaza里面的三家店以及水果大会

    旅行应该是一个发现的过程,至少我是这么认为的.很多时候并不一定要到什么特别的地方,也可以感受到旅游的乐趣.我觉得只要能看到值得回味的东西就好了.而能回味的东西,往往是需要仔细地来品.像旅行社安排的那样 ...

  6. 《和莎莫的 500 天》中为什么 Summer 最终没有和 Tom 在一起?

    好的电影总是需要仔细赏味几次,每次也都会有不同的收获.就像我钟爱的[500 days of summer]. 彪悍的大胡子导演MarcWebb实在是太有趣,把自己的亲身经历搬上大荧幕,因为" ...

  7. Vue Zero · 啟

    其实,一开始我应聘的是Spark,Hadoop这样的,然后后面呢,发现只有Java的业务给我写了,再后面我发现,公司招不到前端,所以前端要由后端来写,刺激!!! 数据驱动 首先要明白一个概念,那就是D ...

  8. 学了C++不知道怎么搞后台开发?先看看这份学习路线吧!

    作者:AJ 在去年结束的秋季招聘中,后台开发或服务器开发的岗位需求一度火热,甚至超过了算法岗.不少同学从诸神黄昏的算法岗战场上退下,转向更偏向工程能力的后台开发岗,从而造成后台开发岗位竞争的大爆发. ...

  9. django之学习前的准备

    一.配置环境 Windows 10操作系统 Python安装配置教程参考:https://www.cnblogs.com/huangbiquan/p/7784533.html 安装Python虚拟环境 ...

  10. Linux - 修改系统的max open files、max user processes(附ulimit的使用方法)【转载】

    Linux - 修改系统的max open files.max user processes(附ulimit的使用方法)目录 1 问题说明2 修改max open files3 修改max user ...