Nmap Script脚本使用指南
目录
Nmap介绍
一、脚本参数
二、实战
三、延伸
四、总结
Nmap介绍
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
在某些时候,我们大部分都使用Nmap进行扫描,然后再通过Metasploit进行漏洞利用,但是这个过程比较繁琐,一个个漏洞去验证的话还需要打开MSF去设置参数,最后run/exploit(不包括自动化,所以不要喷了)。
那么我们就要有必要认识一下Nmap的扩展脚本啦~
一、脚本参数
这个小例子中我会演示几个基本的脚本使用方式,但是更多的还是需要大家掌握使用脚本的技巧,然后自行发掘了。笔者在此不概述太多。
SCRIPT SCAN:-sC: equivalent to --script=default--script=<Lua scripts>: <Lua scripts> is a comma separated list ofdirectories, script-files or script-categories--script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts--script-args-file=filename: provide NSE script args in a file--script-trace: Show all data sent and received--script-updatedb: Update the script database.--script-help=<Lua scripts>: Show help about scripts.<Lua scripts> is a comma-separated list of script-files orscript-categories.
上面这部分是Nmap关于脚本的参数,下面一个一个来介绍:
- -sC 是指的是采用默认配置扫描,与--script=default参数等价;
--script=脚本名称,脚本一般都在Nmap的安装目录下的scripts目录中
那么Linux下可以查看脚本数量:
root@kali:~# ls /usr/share/nmap/scripts/ | wc -l
589
那么我当前的Nmap是有589个很使用的漏洞利用、工具脚本。也可以使用下面一条命令导出 ~
ls /usr/share/nmap/scripts/ | sed 's/.nse//' > scripts.list#关于sed命令解释如下:
第三个例子,我们要删除每行最后的两个字符:#点号表示一个单个字符, 两个点号就表示两个单个字符
[roc@roclinux ~]$ sed 's/..$//' test有人可能会问,用 sed‘/..$/d’test 为什么不行呢,d 不是表示删除么?用 d 是不行的,这是因为 d 表示删除整行内容,而非字符。'/..$/d'表示的是匹配所有末尾含有两个字符的行,然后删除这一整行内容,显然这和我们的初衷是相悖的。
那么所有的脚本名称都在scripts.list中了,这样做的原因是因为我们传递脚本名称的时候,不能写脚本的文件扩展名(.nse)。
- -sC ——> : 等价于–script=default,使用默认类别的脚本进行扫描 可更换其他类别
- --script-args=key1=value1,key2=value2... ——> 该参数是用来传递脚本里面的参数的,key1是参数名,该参数对应value1这个值,那么有更多的参数,使用逗号连接,后面例子中会给大家讲解;
- –script-args-file=filename ——> 使用文件来为脚本提供参数;
- --script-trace 如果设置该参数,则显示所有的脚本收发请求过程;
- --script-updatedb ——> 在Nmap的scripts目录里有一个script.db文件,该文件中保存了当前Nmap可用的脚本,类似于一个小型数据库,如果我们开启nmap并且调用了此参数,则nmap会自行扫描scripts目录中的扩展脚本,进行数据库更新;
- --script-help=脚本名称 ——> 调用该参数后,Nmap会输出该脚本名称对应的脚本使用参数,以及详细介绍信息.
二、实战
现在我们用一个很简单的脚本,telnet爆破脚本,我们搜索一下:
root@kali:~# ls /usr/share/nmap/scripts/ | grep telnet
telnet-brute.nse
telnet-encryption.nse
telnet-ntlm-info.nse
那么可以看到,返回了三个nse脚本名称,那么第一个就是telnet爆破的脚本了,如果不清楚的话,可以使用上面刚介绍过的--script-help参数。
root@kali:~# nmap --script-help=telnet-brute
Starting Nmap 7.70 ( https://nmap.org ) at 2019-12-30 21:21 CSTtelnet-brute
Categories: brute intrusive
https://nmap.org/nsedoc/scripts/telnet-brute.htmlPerforms brute-force password auditing against telnet servers.
可以看到 有一个Nmap的文档地址,正是我们现在想要使用的脚本的详细信息。
nmap -p 23 --script telnet-brute --script-args userdb=myusers.lst,passdb=mypwds.lst,telnet-brute.timeout=8s <target>
笔者就直接照搬官网文档的例子了。经常做安全测试的朋友肯定看一眼就会用了。
最后那个 <target>指的是我们的目标地址。userdb是用户名字典,passdb是密码字典,timeout是每次连接之间的等待超时时间。
当然了,我们也可以直接查看脚本源文件:
---
-- @usage
-- nmap -p 23 --script telnet-brute \
-- --script-args userdb=myusers.lst,passdb=mypwds.lst \
-- --script-args telnet-brute.timeout=8s \
-- <target>
--
-- @output
-- 23/tcp open telnet
-- | telnet-brute:
-- | Accounts
-- | wkurtz:colonel
-- | Statistics
-- |_ Performed 15 guesses in 19 seconds, average tps: 0
--
-- @args telnet-brute.timeout Connection time-out timespec (default: "5s")
-- @args telnet-brute.autosize Whether to automatically reduce the thread
-- count based on the behavior of the target
-- (default: "true")author = "nnposter"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {'brute', 'intrusive'}portrule = shortport.port_or_service(23, 'telnet')
上方这块,可以看到有一个例子,还有常规的扫描结果。那么加粗的这行是笔者故意为之,因为在某些情况下,管理员可能会更改telnet服务的端口(这里不只是光指Telnet),那么我们就无法使用这个脚本了。聪明的你一定想到了更改上方的23端口吧!但是这还不够灵活~ 我们可以将端口号自制成一个变量,通过我们的脚本参数传递进去。这里不再过多赘述,有违文章主体。
等等……还记得我们的-sC参数吗?其实它等价与--script=default,那么default调用了那些脚本呢?
在这里:default NSE Category
点进去你一定会惊讶,为什么会调用那么多,而且会影响扫描速度(懒人方案)。所以最好的方案就是根据服务去手动调用合适的脚本。
下面我们来实战一下,今日刚发现的运营商漏洞,就出在Telnet上。
我家上网是没有分配公网IP的,就是路由那里是一个内网,于是我先用nmap探测了一下这个内网,发现有某些网络设备。
root@kali:~# nmap -sT -Pn -F 10.14.16.0/24
Starting Nmap 7.70 ( https://nmap.org ) at 2019-12-30 21:40 CST
......
Nmap scan report for bogon (10.14.16.106)
Host is up (0.021s latency).
Not shown: 95 filtered ports
PORT STATE SERVICE
23/tcp open telnet
53/tcp open domain
1723/tcp open pptp
8081/tcp open blackice-icecap
49152/tcp open unknown
我在结果中发现了一台主机的信息:
作为一个搞Web安全的,首先去看的是8081……但是未果。于是准备从Telnet碰碰运气,会不会运营商也用若口令?
我把字典放到了 /usr/share/nmap/nselib/data 目录中,因为这个目录中是专门存放Nmap默认字典的。
扫描命令如下:
nmap -p 23 -Pn --script=telnet-brute --script-args=userdb=admin.lst,passdb=passwords.lst,telnet-brute.timeout=3s --script-trace 10.14.16.106
在这我用--script-trace开启了数据的收发开关:
经过耐心等待,得到爆破结果:
看来都是真的,童话原来不是谎言。
我们登录看看~
What ? 多协议路由?
为此我还复习了以前干网络工程的知识。这个不谈了。我们继续再来个例子 ~
root@ThundeRobot:/usr/share/nmap/nselib/data# nmap --script=http-ls vault.centos.orgStarting Nmap 7.01 ( https://nmap.org ) at 2017-04-28 04:01 CST
Nmap scan report for vault.centos.org (109.72.83.61)
Host is up (0.38s latency).
Other addresses for vault.centos.org (not scanned): 2607:ff28:0:28:5054:ff:fe4b:3e8a
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
| http-ls: Volume /
| maxfiles limit reached (10)
| SIZE TIME FILENAME
| - 19-Aug-2009 01:36 2.1/
| 1.2M 19-Aug-2009 01:36 2.1/centos2-scripts-v1.tar
| - 07-Sep-2004 13:04 2.1/extras/
| - 13-May-2004 03:26 2.1/final/
| - 15-Apr-2004 05:11 2.1/i386/
| - 08-Jan-2004 00:50 2.1/source/
| - 30-Dec-2003 06:18 2.1/updates/
| - 31-Jul-2005 16:05 3.1/
| - 20-Apr-2012 10:14 3.1/SRPMS/
| - 15-Sep-2004 14:17 3.1/addons/
|_
873/tcp open rsyncNmap done: 1 IP address (1 host up) scanned in 58.35 seconds
root@ThundeRobot:/usr/share/nmap/nselib/data#
这边是扫描了centos.org的列目录的安全隐患。
HTTP认证爆破:
nmap --script=http-brute dvwa.vuln.leafsec.com
三、延伸
漏洞利用方面:vuln NSE Category
权限验证方面:auth NSE Category
暴力破解方面:brute NSE Category
服务信息发现:discovery NSE Category
DOS攻击方面:dos NSE Category
漏洞利用方面:https://nmap.org/nsedoc/categories/exploit.html
外部扩展方面:external NSE Category (集成了shodanAPI)
FUZZ测试方面:fuzzer NSE Category
一些针对的服务入侵模块:intrusive NSE Category
恶意后门方面:malware NSE Category
版本识别:version NSE Category
auth
broadcast
brute
default
discovery
dos
exploit
external
fuzzer
intrusive
malware
safe
version
vulnall
以上参数都可以作为--script的通配参数,例如:--script=vuln
--script=all 调用所有脚本扫描
四、总结
这篇文章没什么技术含量,只是弹性较高,算是一个小干货了,Nmap可以做数据库、系统、协议、网络等方面的评估。就是因为插件很丰富,省时省力。也希望大家在使用工具的同时细心一点,多做总结,这些脚本都是可以继续优化起来的。那么就先到此结束啦~ 另外关于字典,我们可以让nmap的字典更加强大,全部放到nmap/nselib/data就可以了,方便后期的调用与整理。
Nmap Script脚本使用指南相关推荐
- nmap --script常用脚本简介
nmap脚本存放位置:/usr/share/nmap/scripts 脚本简介 1.nmap --script=auth [ip] 鉴权 扫描:使用 --script=auth 可以对目标主机或目标主 ...
- Shell脚本撰写指南
属性 信息 文档名称 Shell脚本撰写指南 版本号 V1.0.0.0 文档修改日志 修改时间 修改人 修改描述 版本号 12-13 13:00 宋全恒 脚本撰写指南 V0.0.0.0 12-17 1 ...
- Nmap NSE脚本使用
NSE脚本使用 NSE介绍 NSE使用 探测web服务的title信息(http-title) 探测http服务的http头(http-headers) NSE分类使用 基本使用 使用发现和版本信息分 ...
- 一些Nmap NSE脚本推荐
前言 Nmap是一款强大的开源扫描工具.同时Nmap提供了强大的脚本引擎(Nmap Scripting Engine),支持通过Lua脚本语言来扩展Nmap的功能,在Nmap的发行版中已经包含了数百个 ...
- bash 与 shell脚本编写指南
bash 与 shell脚本编写指南 bash 与 shell脚本编写指南 bash基本命令 man与info命令 遍历目录命令 文件与目录列表命令 处理文件相关命令 处理目录命令 查看文件内容 通过 ...
- 调试JavaScript/VB Script脚本程序(IE篇)
JavaScript/VB Script脚本程序一般有两种执行方式,一种是嵌入在宿主程序里面执行,比如在IE浏览器里面执行:另外一种,在资源管理器里面双击执行(虽然还是通过另外一个程序解释执行,但是给 ...
- 如何使用Elasticsearch groovy script脚本更新数据
2019独角兽企业重金招聘Python工程师标准>>> 如何使用Elasticsearch groovy script脚本更新数据 博客分类: 搜索引擎,爬虫 今天细说一下elast ...
- 调试JavaScript/VB Script脚本程序(ASP篇)
在文章调试JavaScript/VB Script脚本程序(Wscript篇)里面,有网友问我如何调试ASP里面的脚本程序,我不知道他问得是调试ASP网页里面的VBScript ASP代码,还是ASP ...
- 高级Bash脚本编程指南《Advanced Bash-Scripting Guide》 in Chinese
<Advanced Bash-Scripting Guide> in Chinese <高级Bash脚本编程指南>Revision 10中文版 在线阅读链接:http://ww ...
- 【iMessage苹果推信家庭推】位置推通过苹果实现iMessage群发的Apple script脚本代码如下: tell application “Messages” set csvDatator
推荐内容IMESSGAE相关 作者✈️@IMEAE推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者✈️@IMEAE推荐内容 1.家庭推内容 *** 点击即可查看作者要求 ...
最新文章
- Orcale11g单机安装与卸载
- python手机版下载3.7.2-QPython - Python for Android
- 【错误记录】PyCharm 运行 Python 程序报错 ( UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in positio )
- NHibernate Step by Step (一) 转载
- 【MySql】mysql-5.7.20-winx64安装配置
- 温商机器人企业_7家温商企业上榜“中国企业500强”
- Windows 系统如何查看本机的 IP 地址
- 不能用蛮力法解决的问题_专家教授叫嚣:中国7亿农民只有一身蛮力,对国家没有作用...
- MQTT的学习之Mosquitto安装使用(1)
- 202.结构体之位域
- [Andriod设计模式之旅]——Builder模式
- Microsoft SQL Server 2008 Management Studio Express 下载地址
- python—多进程的消息队列
- 2018达内web全套视频
- 7款堪称神器的黑科技App,每一款都是黑科技十足!
- 计算机专业学生该如何提高自己?提升自己的专业技能?
- CSS gird布局
- 加载Glove预训练词向量到字典
- excel操作系列之中文姓名转英文姓名
- mysql怎么设置每天定时清表_Mysql每天定时清空表