转自:http://drops.xmd5.com/static/drops/tips-4333.html

0x00:说明


只是一个快速查询手册,理论的东西都没有补充,欢迎大家积极在评论区补充自己常用的参数,O(∩_∩)O

0x01:nmap功能介绍


  1. 1.主机存活检测
  2. 2.端口探测
  3. 3.服务识别
  4. 4.操作系统识别
  5. 5.硬件地址检测
  6. 6.服务版本识别
  7. 7.漏洞扫描,使用nmap自带脚本

0x02:简单示例


使用ping检测10.0.0.0/24这个网段

  1. #!bash
  2. nmap -sP 10.0.0.0/24

使用SYN的方法对全端口进行扫描,在aggressive(4)的时间模板下,同时对开放的端口进行端口识别

  1. #!bash
  2. nmap -p1-65535 -sV -sS -T4 target

PS: -T代表的是扫描的时候,一些控制选项(TCP的延迟时间,探测报文之间的间隔等)的集合,具体的man nmap一下就知道了

使用SYN扫描,在aggressive(4)的时间模板下,探测操作系统的类型和版本,还有显示traceroute的结果,结果输出较为详细

  1. #!bash
  2. nmap -v -sS -A -T4 target

使用SYN扫描,在insane(5)的时间模板下,探测操作系统的类型和版本,还有显示traceroute的结果,结果输出较为详细

  1. #!bash
  2. nmap -v -sS -A -T5 target

使用SYN扫描,在insane(5)的时间模板下,探测操作系统的类型,还有显示traceroute的结果,操作系统的类型,结果输出较为详细

  1. #!bash
  2. nmap -v -sV -O -sS -T5 target

使用SYN的方法对全端口进行扫描,同时对开放的端口进行端口识别,在aggressive(4)的时间模板下,探测操作系统的类型还有显示traceroute的结果,结果输出较为详细

  1. #!bash
  2. nmap -v -p 1-65535 -sV -O -sS -T4 target

用SYN的方法对全端口进行扫描,同时对开放的端口进行端口识别,在insane(5)的时间模板下,探测操作系统的类型,还有显示traceroute的结果,结果输出较为详细

  1. #!bash
  2. nmap -v -p 1-65535 -sV -O -sS -T5 target

从文件中读取需要扫描的IP列表

  1. #!bash
  2. nmap -iL ip-address.txt

Nmap输出格式

扫描的结果输出到屏幕,同时会存储一份到grep-output.txt

  1. #!bash
  2. nmap -sV -p 139,445 -oG grep-output.txt 10.0.1.0/24

扫描结果输出为html

  1. #!bash
  2. nmap -sS -sV -T5 10.0.1.99 --webxml -oX - | xsltproc --output file.html

Nmap扫描Netbios

在子网中发现开放netbios的IP

  1. #!bash
  2. nmap -sV -v -p139,445 10.0.0.1/24

扫描指定netbios的名称

  1. #!bash
  2. nmap -sU --script nbstat.nse -p 137 target

扫描指定的目标,同时检测相关漏洞

  1. #!bash
  2. nmap --script-args=unsafe=1 --script smb-check-vulns.nse -p 445 target

将nmap的80端口的扫描结果,通过管道交给nikto进行扫描

  1. #!bash
  2. Nmap Nikto Scan nmap -p80 10.0.1.0/24 -oG - | nikto.pl -h -

将nmap的80,443端口的扫描结果,通过管道交给nikto进行扫描

  1. #!bash
  2. nmap -p80,443 10.0.1.0/24 -oG - | nikto.pl -h -

0x03:Nmap参数详解


Nmap支持主机名,ip,网段的表示方式

例如:blah.highon.coffee, namp.org/24, 192.168.0.1;10.0.0-25.1-254

  1. #!bash
  2. -iL filename 从文件中读取待检测的目标,文件中的表示方法支持机名,ip,网段
  3. -iR hostnum 随机选取,进行扫描.如果-iR指定为0,则是无休止的扫描
  4. --exclude host1[, host2] 从扫描任务中需要排除的主机
  5. --exculdefile exclude_file 排除文件中的IP,格式和-iL指定扫描文件的格式相同

主机发现

  1. #!bash
  2. -sL 仅仅是显示,扫描的IP数目,不会进行任何扫描
  3. -sn ping扫描,即主机发现
  4. -Pn 不检测主机存活
  5. -PS/PA/PU/PY[portlist] TCP SYN Ping/TCP ACK Ping/UDP Ping发现
  6. -PE/PP/PM 使用ICMP echo, timestamp and netmask 请求包发现主机
  7. -PO[prococol list] 使用IP协议包探测对方主机是否开启
  8. -n/-R 不对IP进行域名反向解析/为所有的IP都进行域名的反响解析

扫描技巧

  1. #!bash
  2. -sS/sT/sA/sW/sM TCP SYN/TCP connect()/ACK/TCP窗口扫描/TCP Maimon扫描
  3. -sU UDP扫描
  4. -sN/sF/sX TCP NullFINand Xmas扫描
  5. --scanflags 自定义TCP包中的flags
  6. -sI zombie host[:probeport] Idlescan
  7. -sY/sZ SCTP INIT/COOKIE-ECHO 扫描
  8. -sO 使用IP protocol 扫描确定目标机支持的协议类型
  9. -b FTP relay host 使用FTP bounce scan

指定端口和扫描顺序

  1. #!bash
  2. -p 特定的端口 -p80,443 或者 -p1-65535
  3. -p U:PORT 扫描udp的某个端口, -p U:53
  4. -F 快速扫描模式,比默认的扫描端口还少
  5. -r 不随机扫描端口,默认是随机扫描的
  6. --top-ports "number" 扫描开放概率最高的number个端口,出现的概率需要参考nmap-services文件,ubuntu中该文件位于/usr/share/nmap.nmap默认扫前1000
  7. --port-ratio "ratio" 扫描指定频率以上的端口

服务版本识别

  1. #!bash
  2. -sV 开放版本探测,可以直接使用-A同时打开操作系统探测和版本探测
  3. --version-intensity "level" 设置版本扫描强度,强度水平说明了应该使用哪些探测报文。数值越高,服务越有可能被正确识别。默认是7
  4. --version-light 打开轻量级模式,为--version-intensity 2的别名
  5. --version-all 尝试所有探测,为--version-intensity 9的别名
  6. --version-trace 显示出详细的版本侦测过程信息

脚本扫描

  1. #!bash
  2. -sC 根据端口识别的服务,调用默认脚本
  3. --script=”Lua scripts 调用的脚本名
  4. --script-args=n1=v1,[n2=v2] 调用的脚本传递的参数
  5. --script-args-file=filename 使用文本传递参数
  6. --script-trace 显示所有发送和接收到的数据
  7. --script-updatedb 更新脚本的数据库
  8. --script-help=”Lua script 显示指定脚本的帮助

OS识别

  1. #!bash
  2. -O 启用操作系统检测,-A来同时启用操作系统检测和版本检测
  3. --osscan-limit 针对指定的目标进行操作系统检测(至少需确知该主机分别有一个openclosed的端口)
  4. --osscan-guess 推测操作系统检测结果,当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认进行这种匹配

防火墙/IDS躲避和哄骗

  1. #!bash
  2. -f; --mtu value 指定使用分片、指定数据包的MTU.
  3. -D decoy1,decoy2,ME 使用诱饵隐蔽扫描
  4. -S IP-ADDRESS 源地址欺骗
  5. -e interface 使用指定的接口
  6. -g/ --source-port PROTNUM 使用指定源端口
  7. --proxies url1,[url2],... 使用HTTP或者SOCKS4的代理
  8. --data-length NUM 填充随机数据让数据包长度达到NUM
  9. --ip-options OPTIONS 使用指定的IP选项来发送数据包
  10. --ttl VALUE 设置IP time-to-live
  11. --spoof-mac ADDR/PREFIX/VEBDOR MAC地址伪装
  12. --badsum 使用错误的checksum来发送数据包

Nmap 输出

  1. #!bash
  2. -oN 将标准输出直接写入指定的文件
  3. -oX 输出xml文件
  4. -oS 将所有的输出都改为大写
  5. -oG 输出便于通过bash或者perl处理的格式,非xml
  6. -oA BASENAME 可将扫描结果以标准格式、XML格式和Grep格式一次性输出
  7. -v 提高输出信息的详细度
  8. -d level 设置debug级别,最高是9
  9. --reason 显示端口处于带确认状态的原因
  10. --open 只输出端口状态为open的端口
  11. --packet-trace 显示所有发送或者接收到的数据包
  12. --iflist 显示路由信息和接口,便于调试
  13. --log-errors 把日志等级为errors/warings的日志输出
  14. --append-output 追加到指定的文件
  15. --resume FILENAME 恢复已停止的扫描
  16. --stylesheet PATH/URL 设置XSL样式表,转换XML输出
  17. --webxml namp.org得到XML的样式
  18. --no-sytlesheet 忽略XML声明的XSL样式表

其他nmap选项

  1. #!bash
  2. -6 开启IPv6
  3. -A OS识别,版本探测,脚本扫描和traceroute
  4. --datedir DIRNAME 说明用户Nmap数据文件位置
  5. --send-eth / --send-ip 使用原以太网帧发送/在原IP层发送
  6. --privileged 假定用户具有全部权限
  7. --unprovoleged 假定用户不具有全部权限,创建原始套接字需要root权限
  8. -V 打印版本信息
  9. -h 输出帮助

0x04:例子


整个子网检测的Netbios

  1. #!bash
  2. Nmap -sV -v -p 139,445 10.0.1.0/24
  3. Starting Nmap 6.47 ( http://nmap.org ) at 2014-12-11 21:26 GMT
  4. Nmap scan report for nas.decepticons 10.0.1.12
  5. Host is up (0.014s latency).
  6. PORT STATE SERVICE VERSION
  7. 139/tcp open netbios-ssn Samba smbd 3.X (workgroup: MEGATRON)
  8. 445/tcp open netbios-ssn Samba smbd 3.X (workgroup: MEGATRON)
  9. Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
  10. Nmap done: 256 IP addresses (1 hosts up) scanned in 28.74 seconds

Nmap 查找Netbios名称

  1. #!bash
  2. nmap -sU --script nbstat.nse -p 137 10.0.1.12
  3. Starting Nmap 6.47 ( http://nmap.org ) at 2014-12-11 21:26 GMT
  4. Nmap scan report for nas.decepticons 10.0.1.12
  5. Host is up (0.014s latency).
  6. PORT STATE SERVICE VERSION
  7. 137/udp open netbios-ns
  8. Host script results:
  9. |_nbstat: NetBIOS name: STARSCREAM, NetBIOS user: unknown, NetBIOS MAC: unknown (unknown)
  10. Nmap done: 256 IP addresses (1 hosts up) scanned in 28.74 seconds

如果开启Netbios服务,检查是否存在漏洞

  1. #!bash
  2. nmap --script-args=unsafe=1 --script smb-check-vulns.nse -p 445 10.0.0.1
  3. Nmap scan report for ie6winxp.decepticons (10.0.1.1)
  4. Host is up (0.00026s latency).
  5. PORT STATE SERVICE
  6. 445/tcp open microsoft-ds
  7. Host script results:
  8. | smb-check-vulns:
  9. | MS08-067: VULNERABLE
  10. | Conficker: Likely CLEAN
  11. | regsvc DoS: NOT VULNERABLE
  12. | SMBv2 DoS (CVE-2009-3103): NOT VULNERABLE
  13. |_ MS07-029: NO SERVICE (the Dns Server RPC service is inactive)
  14. Nmap done: 1 IP address (1 host up) scanned in 5.45 seconds

根据扫描结果,发现存在MS08-067漏洞

0x05参考


原文

http://highon.coffee/docs/nmap/

Namp官网的完整手册

https://svn.nmap.org/nmap/docs/nmap.usage.txt

Nmap官方的中文手册

http://nmap.org/man/zh/

国内的一篇讲Nmap的,写的挺不错的

http://blog.csdn.net/aspirationflow/article/details/7694274

Nmap手册的更多相关文章

  1. Nmap备忘单:从探索到漏洞利用(Part 2)

    这是我们的第二期NMAP备忘单(第一期在此).基本上,我们将讨论一些高级NMAP扫描的技术,我们将进行一个中间人攻击(MITM).现在,游戏开始了. TCP SYN扫描 SYN扫描是默认的且最流行的扫 ...

  2. Nmap官网中众多文档如何查看

    打开Nmap(nmap.org)官网后,会看多个关于文档的链接,熟悉之后会发现有三类,Reference Guide,Books,Docs.通过熟悉知道Doc是文档的入口,且下面是对Doc页面的翻译, ...

  3. nmap扫描时的2个小经验

    http://pnig0s1992.blog.51cto.com/393390/367558/ 1.我肉鸡的环境是Windows XP sp3,在使用nmap扫描外网的时候,提示我 pcap_open ...

  4. Nmap速查手册

    http://drops.wooyun.org/tips/4333 From:http://highon.coffee/docs/nmap/ 0x00:说明 只是一个快速查询手册,理论的东西都没有补充 ...

  5. nmap中文手册

    译注该Nmap参考指南中文版由Fei Yang <fyang1024@gmail.com>和Lei Li<lilei_721@6611.org> 从英文版本翻译而来. 我们希望 ...

  6. nmap 速查手册

     0x00:说明 只是一个快速查询手册,理论的东西都没有补充,欢迎大家积极在评论区补充自己常用的参数,O(∩_∩)O 0x01:nmap功能介绍 1.主机存活检测2.端口探测3.服务识别4.操作系统识 ...

  7. Man手册--nmap

    目录 nmap使用手册 附录: nmap使用手册 附录: NMAP(1) Nmap Reference Guide NMAP(1) NAME nmap - Network exploration to ...

  8. Nmap 操作手册 - 完整版

    目录 Nmap - 基础篇 Nmap 安装 RedHat Windows Debina & Ubuntu Others Linux Nmap 参数(简单版) 目标说明 主机发现 扫描技术 端口 ...

  9. NMAP实用手册

    nmap在网络和渗透中使用相当频繁,相关教程也层出不穷.在此,我只整理出最实用的,言简意赅,方便自己,方便他人. 一.nmap介绍 NMAP,也就是Network Mapper,最早是Linux下的网 ...

随机推荐

  1. gulp-htmlone的BUG弃坑

    之前用项目用gulp-htmlone做最后的js和css内联打包出现各种问题 这次居然遇到打包后的css斜杠变反斜杠的问题 如下:/src/common/images/i_banner.jpg会被改成 ...

  2. 09通过winfrom实现简单的播放音、视频

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. 【数据分析 R语言实战】学习笔记 第十一章 对应分析

    11.2对应分析 在很多情况下,我们所关心的不仅仅是行或列变量本身,而是行变量和列变量的相互关系,这就是因子分析等方法无法解释的了.1970年法国统计学家J.P.Benzenci提出对应分析,也称关联 ...

  4. win7 ghost 纯净版最新系统下载

    这个系统是WIN7系统GHOST版装机旗舰版 SP1,更新了系统补丁到2016-02(可通过微软漏洞扫描和卫士漏洞扫描),升级Internet Explorer为IE9,增加数款驱动的支持,支持最新的 ...

  5. sparkmlib-相关系数

    一.基本原理 在stat包中实现了皮尔逊(Pearson)与 斯皮尔曼(Spearman)两类相关系数的计算 (1)Pearson:   (x,y)协方差/[(x标准方差)*(y标准方差)] 详情可以 ...

  6. python小括号( )与中括号 [ ]

    在python中小括号()表示的是tuple元组数据类型,元组是一种不可变序列. >>> a = (1,2,3) >>> a (1, 2, 3) >>& ...

  7. 系统学习爬虫_2_urllib

    什么是urllib urlopen urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cad ...

  8. python_111_异常处理

    #1 name=['a','s'] try: print(name[3]) except: print('list index out of range')#list index out of ran ...

  9. python基础面试题整理---从零开始 每天十题(02)

    书接上回,我们继续来说说python的面试题,我在各个网站搜集了一些,我给予你们一个推荐的答案,你们可以组织成自己的语言来说出来,让我们更好的做到面向工资编程 一.Q:说说你对zen of pytho ...

  10. js模块化AMD、CMD、ES6

    AMD CMD ES6模块化 各个模块化规范对比理解 一.AMD 在上一篇js模块化入门与commonjs解析与应用中详细的解析了关于commonjs模块化规范,commonjs采用的用同步加载方式, ...