目录
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 of
directories, 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 or
script-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这个值,那么有更