Skip to content

Latest commit

 

History

History
288 lines (232 loc) · 21 KB

Nmap.md

File metadata and controls

288 lines (232 loc) · 21 KB

Nmap

Nmap包描述

Nmap(“网络映射器”)是用于网络发现和安全审计的免费和开放源(许可证)实用程序。许多系统和网络管理员还发现它对于诸如网络库存,管理服务升级调度以及监视主机或服务正常运行时间等任务很有用。Nmap以新颖的方式使用原始IP数据包来确定网络上可用的主机,这些主机提供的服务(应用程序名称和版本),它们正在运行的操作系统(和操作系统版本),什么类型的数据包过滤器/防火墙正在使用,还有几十个其他特性。它旨在快速扫描大型网络,但对单个主机工作正常。Nmap在所有主要的计算机操作系统上运行,官方二进制包可用于Linux,Windows和Mac OS X。

Nmap被Linux Journal,Info World,LinuxQuestions.Org和Codetalker Digest评为“年度安全产品”。它甚至有十二部电影,包括矩阵重装,模具硬4,女孩与龙纹身和Bourne最后通atum。

Nmap是...

  • 灵活:支持数十种先进技术,用于映射填充有IP过滤器,防火墙,路由器和其他障碍的网络。这包括许多端口扫描机制(TCP和UDP),操作系统检测,版本检测,ping扫描等。请参阅文档页。

  • 强大:Nmap已被用于扫描数十万台机器的庞大网络。

  • 便携式:支持大多数操作系统,包括Linux,Microsoft Windows,FreeBSD,OpenBSD,Solaris,IRIX,Mac OS X,HP-UX,NetBSD,Sun OS,Amiga等。

  • 简单:虽然Nmap为高级用户提供了一组丰富的高级功能,但您可以简单地从“nmap -v -A targethost”开始。传统的命令行和图形(GUI)版本都可以满足您的偏好。二进制文件可用于那些不希望从源代码编译Nmap的用户。

  • 免费:Nmap项目的主要目标是帮助使互联网更安全一些,并为管理员/审计员/黑客提供探索其网络的高级工具。Nmap可以免费下载,并附带完整的源代码,您可以根据许可证条款修改和重新分发。

  • 良好的文件:重大的努力已经投入全面和最新的手册页,白皮书,教程,甚至一整本书!在这里找到多种语言。

  • 支持:虽然Nmap不提供保修,但它得到了开发人员和用户的充满活力的社区的良好支持。大多数此交互发生在Nmap邮件列表上。大多数错误报告和问题应该发送到nmap-dev列表,但只有在你阅读了指南。我们建议所有用户订阅低流量nmap-hackers公告列表。你也可以在Facebook和Twitter上找到Nmap。对于实时聊天,加入Freenode或EFNet上的#nmap频道。

  • 备受赞誉:Nmap赢得了无数奖项,包括“Linux年报”,“信息世界”和“Codetalker Digest”的“年度信息安全产品”。它已被数以百计的杂志文章,几部电影,几十本书和一本漫画书系列。请访问新闻页了解更多详情。

  • 热门:每天有成千上万的人下载Nmap,它包含在许多操作系统(Redhat Linux,Debian Linux,Gentoo,FreeBSD,OpenBSD等)中。它是Freshmeat.Net存储库中排名前十的(30,000个)程序之一。这是很重要的,因为它给Nmap带来了充满活力的开发和用户支持社区。

资料来源:http://nmap.org/

Nmap Homepage | Kali Nmap Repo

  • 作者:Fyodor

  • 许可证:GPLv2

nmap软件包中包含的工具

nping - 网络数据包生成工具/ ping实用程序

root @ kali:〜#nping -h 
Nping 0.6.40(http://nmap.org/nping)
用法:nping [探测模式] [选项] {目标规格} 

目标规范:
  目标可以指定为主机名,IP地址,网络等。
  例如:scanme.nmap.org,microsoft.com/24,192.168.0.1; 10.0。*。1-24 
PROBE MODES:-- 
  tcp-connect:Unprivileged TCP连接探测器模式。
  --tcp:TCP探测模式。
  --udp:UDP探测模式。
  --icmp:ICMP探测模式。
  --arp:ARP / RARP探测模式。
  --tr,--traceroute:
                                     Traceroute模式(只能与TCP / UDP / ICMP模式一起使用)。
TCP CONNECT MODE 
   :-p,--dest-port <port spec>:设置目标端口。
   -g,--source-port <portnumber>:尝试使用自定义源端口。
TCP PROBE MODE:
   -g,--source-port <portnumber>:设置源端口。
   -p,--dest-port <port spec>:设置目标端口。
   --seq <seqnumber>:设置序列号。
   --flags <flag list>:设置TCP标志(ACK,PSH,RST,SYN,FIN ...)-- 
   ack <acknumber>:设置ACK号。
   --win <size>:设置窗口大小。
   --badsum:使用随机无效校验和。
UDP PROBE MODE:
   -g,--source-port <portnumber>:设置源端口。
   -p,--dest-port <port spec>:设置目标端口。
   --badsum:使用随机无效校验和。
ICMP PROBE MODE:
  -- icmp -type <type>:ICMP类型。
  --icmp-code <code>:ICMP代码。
  --icmp-id <id>:设置标识符。
  --icmp-seq <n>:设置序列号。
  --icmp-redirect-addr <addr>:设置重定向地址。
  --icmp-param-pointer <pnt>:设置参数问题指针。
  --icmp-advertisement-lifetime <time>:设置路由器通告生命周期。
  --icmp-advert-entry <IP,pref>:添加路由器广播条目。
  --icmp-orig-time <timestamp>:设置始发时间戳。
  --icmp-recv-time <timestamp>:设置接收时间戳。
  --icmp-trans-time <timestamp>:设置发送时间戳。
ARP / RARP PROBE模式:-- 
  arp-type <type>:类型:ARP,ARP应答,RARP,RARP应答。
  --arp-sender-mac <mac>:配置发送方MAC地址。
  --arp-sender-ip <addr>:设置发送方IP地址。
  --arp-target-mac <mac>:设置目标MAC地址。
  --arp-target-ip <addr>:设置目标IP地址。
IPv4选项:
  -S,--source-ip:设置源IP地址。
  --dest-ip <addr>:设置目标IP地址(用作
                                     {目标规范}的替代)。
  --tos <tos>:设置服务类型字段(8位)。
  --id <id>:设置标识字段(16位)。
  --df:设置不分段标志。
  --mf:设置更多片段标志。
  --ttl <hops>:设置生存时间[0-255]。
  --badsum-ip:使用随机无效校验和。
  --ip-options <S | R [route] | L [route] | T | U ...>:设置IP选项
  --ip-options <hex string>:
  设置IP选项--mtu <size>:设置MTU。如果MTU 
                                     足够小,则分组会碎片化。
IPv6选项:
  -6,--IPv6:使用IP版本6. 
  --dest-ip:设置目标IP地址(用作
                                     {目标规范}的替代)。
  --hop-limit:设置跳数限制(与IPv4 TTL相同)。
  --traffic-class <class>::设置流量类。
  --flow <label>:设置流标签。
以太网选项:-- 
  dest-mac <mac>:设置目标MAC地址。
                                     (禁用ARP解析)
  --source-mac <mac>:设置源MAC地址。
  --ether类型<type>:设置EtherType值。
PAYLOAD选项:-- 
  data <hex string>:包含自定义有效内容。
  --data-string <text>:包含自定义ASCII文本。
  --data-length <len>:包含随机字节作为有效载荷。
ECHO CLIENT / SERVER:-- 
  echo-client <passphrase>:在客户端模式下运行Nping。
  --echo-server <passphrase>:在服务器模式下运行Nping。
  --echo-port <port>:使用自定义<port>来监听或连接。
  --no-crypto:禁用加密和身份验证。
  --once:一次连接后停止服务器。
  --safe-payloads:清除回应报文中的应用数据。
时间和性能:
  <time>的选项以秒为单位,或者将值附加“ms”(毫秒),
  “s”(秒),“m”(分钟)或“h” ,0.25h)。
  --delay <time>:调整探测器之间的延迟。
  --rate <rate>:每秒发送num个数据包。
MISC:
  -h,--help:显示帮助信息。
  -V,--version:显示当前版本号。
  -c,--count <n> :在<n>轮后停止。
  -e,--interface <name>:使用提供的网络接口。
  -H,--hide-sent:不显示发送的数据包。
  -N,--no-capture:不要尝试捕获回复。
  --privileged:假设用户具有完全特权。
  --unprivileged:假设用户缺少原始套接字权限。
  --send-eth:在原始以太网层发送数据包。
  --send-ip:使用原始IP套接字发送报文。
  --bpf-filter <filter spec>:指定自定义BPF过滤器。
OUTPUT:
  -v:将详细程度级别递增1。
  -v [level]:设置详细程度级别。例如:-v4 
  -d:将调试级别递增1。
  -d [level]:设置调试级。例如:-d3 
  -q:将详细程度级别降低一级。
  -q [N]:降低冗长级别N次
  --quiet:将详细程度和调试级别设置为最小。
  --debug:将verbosity和debug设置为最大级别。
示例:
  nping scanme.nmap.org 
  nping --tcp -p 80 --flags rst --ttl 2 192.168.1.1 
  nping --icmp --icmp-type time --delay 500ms 192.168.254.254 
  nping --echo-server“public”

ndiff - 用于比较Nmap扫描结果的实用程序

root @ kali:〜#ndiff -h 
用法:/ usr / bin / ndiff [option] FILE1 FILE2 
比较两个Nmap XML文件并显示它们的差异列表。
差异包括主机状态更改,端口状态更改以及
服务和操作系统检测更改。

  -h,--help显示此帮助
  -v,--verbose还显示未更改的主机和端口。
  - 文本格式的文本显示输出(默认)
  - XML格式的xml显示输出

ncat - 连接和重定向套接字

root @ kali:〜#ncat -h 
Ncat 6.40(http://nmap.org/ncat)
用法:ncat [options] [hostname] [port] 

选项占用时间假定为秒。追加“ms”为毫秒,
“s”为秒,“m”为分钟,或“h”为小时(例如500ms)。
-4仅使用IPv4 
-6 仅使用IPv6 
-un,--unixsock 仅使用Unix域套接字
-C,--crlf对EOL序列使用CRLF 
-c,-- sh -exec <command>通过/ bin执行给定命令/ sh 
-e,
    --exec <command>执行给定的命令--lua-exec <filename>执行给定的Lua脚本
-g hop1 [,hop2,...   - listen绑定和侦听传入连接-k,-- keep -open在侦听模式下接受多个连接   -n,--nodns不通过DNS解析主机名   -t,--telnet回答Telnet协商   -u,--udp使用UDP而不是默认TCP       --sctp使用SCTP而不是默认TCP   -v,--verbose设置详细程度级别(可以使用多次)   -w,--wait <time>连接超时       --append-output追加而不是clobber指定输出文件       --send-only只发送数据,忽略接收; 退出EOF       - 仅限recv只接收数据,


nmap - 网络映射器

root @ kali:〜#nmap -h 
Nmap 6.40(http://nmap.org)
用法:nmap [扫描类型] [选项] {目标规格} 
目标规格:
  可以传递主机名,IP地址,网络等。
  例如:scanme.nmap.org,microsoft.com/24,192.168.0.1; 10.0.0-255.1-254 
  -iL <inputfilename>:从主机/网络列表输入-iR <numhost>:
  选择随机目标
  --exclude <host1 [,host2] [,host3],...>:Exclude主机/网络
  --excludefile <exclude_file>:从文件中排除列表
HOST DISCOVERY:
  -sL:列表扫描 - 只列出要扫描的目标
  -sn:Ping扫描 - 禁用端口扫描
  -Pn:将所有主机视为联机 - 跳过主机发现
  -PS / PA / PU / PY [portlist]:TCP SYN / ACK,   IP协议扫描-b <FTP中继主机>:FTP反弹扫描 端口规范和扫描顺序   :-p <端口范围>:仅扫描指定的端口     例如:-p22; p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9   -F:快速模式 - 扫描比默认扫描更少的端口   -r:连续扫描端口 - 不随机化   --top-ports < >:扫描<number>最常见的端口   --port-ratio <ratio>:扫描端口比<ratio>更常见 SERVICE / VERSION检测:   -sV:探测开放端口以确定服务/版本信息   - >:设置从0(光)到9(尝试所有探头)--   version-light:   限制最可能的探测(强度2)-- version-all:尝试每个探测器(强度9)--   version-trace:显示详细版本扫描活动(用于调试) SCRIPT SCAN:   -sC:等价于--script =默认   --script = <Lua scripts>:<Lua scripts>是逗号分隔的            目录,脚本文件或脚本类别   列表--script-args = <n1 = v1,[n2 = v2,...] :为脚本提供   参数--script-args-file = filename:在文件中提供NSE脚本参数   --script-trace:显示发送和接收的所有数据   --script-updatedb:更新脚本数据库。   --script-help = <Lua scripts>:显示关于脚本的帮助。            <Lua scripts>            是一个逗号分隔的脚本文件或脚本类别的列表。 操作系统检测:   -O:启用操作系统检测   --osscan-limit:将操作系统检测限制为有希望的目标   --osscan-guess:更积极地猜测OS 时间和性能:   采用<time>的选项以秒为单位或追加'ms' (毫秒),   “s”(秒),“m”(分钟)或“h”(小时)   -T <0-5>:设置定时模板(越高越快)--   min-hostgroup / max-hostgroup <size>:并行主机扫描组大小   --min-parallelism / max-parallelism <numprobes>:探测并行化   - -min-rtt-timeout / max-rtt-timeout / initial-rtt-timeout <time>:       指定探测往返时间。   --max-retries <尝试>:端口扫描探测重传的数目。   --host-timeout <time>:在这个长时间后放弃目标。   -scan-delay / - max-scan-delay <time>:调整探测之间的延迟   --min- rate <number>比每秒<number>每秒   --max-rate <number>:发送数据包不快于<number>每秒 FIREWALL / IDS EVASION AND SPOOFING:   -f; --mtu <val>:片段包(可选地,w /给定的MTU)   -D <decoy1,decoy2 [,ME],...>:   Clook a scan with decoys -S <IP_Address>:Spoof source address   -e <iface >:使用指定的接口   -g / - source-port <portnum>:   使用给定的端口号--data-length <num>:将随机数据附加到发送的数据包   --ip-options <options>:发送具有指定ip选项的数据包   --ttl <val>:设置IP生存时间字段   - -spoof-mac <MAC地址/前缀/供应商名称>:欺骗您的MAC地址   --badsum:发送带有伪造TCP / UDP / SCTP校验和的数据包 OUTPUT:   -oN / -oX / -oS / -oG <file>分别以正常,XML,s | <rIpt kIddi3      和Grepable格式输出扫描到给定文件名。   -oA <basename>:一次输出三种主要格式   -v:提高详细程度(使用-vv或更高效果)   -d:提高调试级别(使用-dd或更高效果)--   reason:   脚本扫描和traceroute --datadir <dirname>:指定自定义Nmap数据文件位置   --send-eth / - send-ip:使用原始以太网帧或IP数据包发送   --privileged:假设用户是完全特权   - -unprivileged:假定用户缺少原始套接字权限   -V:打印版本号   -h:打印此帮助摘要页。 示例:   nmap -v -A scanme.nmap.org   nmap -v -sn 192.168.0.0/16 10.0.0.0/8   nmap -v -iR 10000 -Pn -p 80 查看用户手册(http://nmap.org /book/man.html)更多选项和示例 使用原始以太网帧或IP数据包发送--privileged:假设用户是完全特权 - - 特权:假设用户缺少原始套接字权限-V:打印版本号-h:打印此帮助摘要页。示例:nmap -v -A scanme.nmap.org nmap -v -sn 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -Pn -p 80 查看用户手册(http://nmap.org /book/man.html)更多选项和示例 使用原始以太网帧或IP数据包发送--privileged:假设用户是完全特权 - - 特权:假设用户缺少原始套接字权限-V:打印版本号-h:打印此帮助摘要页。示例:nmap -v -A scanme.nmap.org nmap -v -sn 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -Pn -p 80 查看用户手册(http://nmap.org /book/man.html)更多选项和示例



nmap用法示例

扫描详细模式(-v),启用操作系统检测,版本检测,脚本扫描和traceroute (-A),针对目标IP (192.168.1.1)进行版本检测(-sV ):

root @ kali:〜#nmap -v -A -sV 192.168.1.1 

启动Nmap 6.45(http://nmap.org)在2014-05-13 18:40 MDT 
NSE:加载118脚本扫描。
NSE:脚本预扫描。
在18:40启动ARP Ping扫描
扫描192.168.1.1 [1端口] 
在18:40完成ARP Ping扫描,已过去
0.06秒(1个主机)启动1个主机的并行DNS解析。at 18:40 
完成1个主机的并行DNS解析。at 18: 
40,0.00s elapsed 启动SYN隐藏扫描在18:40 
扫描router.localdomain(192.168.1.1)[1000端口] 
发现的开放端口53 / tcp在192.168.1.1 
发现的开放端口22 / tcp在192.168.1.1 
发现在192.168.1.1上打开端口80 / tcp在192.168.1.1上
发现打开的端口3001 / tcp

nping用法示例

使用TCP模式(-TCP)来探测端口22 (-p 22)使用SYN标志(-flags SYN)为2的TTL (–ttl 2) 在远程主机上(192.168.1.1) :

60125 SA ttl = 64 id = 0 iplen = 44 seq = 3409166569 win = 5840 <mss 1460> SENT(3.0707s)TCP 192.168.1.15:60125> 192.168.1.1:22 S ttl = 2 id = 54240 iplen = 40 seq = 1720523417 win = 1480 RCVD(3.0710s)TCP 192.168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3424813300 win = 5840 <mss 1460> SENT(4.0721s)TCP 192.168.1.15 :60125> 192.168.1.1:22 S ttl = 2 id = 54240 iplen = 40 seq = 1720523417 win = 1480 RCVD(4.0724s)TCP 192.168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3440460772 win = 5840 <mss 1460> Max rtt:0.337ms | 最小rtt:0.282ms | 平均rtt:0.296ms 发送的原始分组:5(200B)| Rcvd:5(230B)| 丢失:0(0.00%) Nping完成:1 IP地址在4.13秒内ping通 SENT(3.0707s)TCP 192.168.1.15:60125> 192.168.1.1:22 S ttl = 2 id = 54240 iplen = 40 seq = 1720523417 win = 1480 RCVD(3.0710s)TCP 192.168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3424813300 win = 5840 <mss 1460> SENT(4.0721s)TCP 192.168.1.15:60125> 192.168.1.1:22 S ttl = 2 id = 54240 iplen = 40 seq = 1720523417 win = 1480 RCVD(4.0724s)TCP 192.168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3440460772 win = 5840 <mss 1460> Max rtt:0.337ms | 最小rtt:0.282ms | 平均rtt:0.296ms 发送的原始分组:5(200B)| Rcvd:5(230B)| 丢失:0(0.00%)Nping完成:1 IP地址在4.13秒内ping通 SENT(3.0707s)TCP 192.168.1.15:60125> 192.168.1.1:22 S ttl = 2 id = 54240 iplen = 40 seq = 1720523417 win = 1480 RCVD(3.0710s)TCP 192.168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3424813300 win = 5840 <mss 1460> SENT(4.0721s)TCP 192.168.1.15:60125> 192.168.1.1:22 S ttl = 2 id = 54240 iplen = 40 seq = 1720523417 win = 1480 RCVD(4.0724s)TCP 192.168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3440460772 win = 5840 <mss 1460> Max rtt:0.337ms | 最小rtt:0.282ms | 平均rtt:0.296ms 发送的原始分组:5(200B)| Rcvd:5(230B)| 丢失:0(0.00%)Nping完成:1 IP地址在4.13秒内ping通 168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3424813300 win = 5840 <mss 1460> SENT(4.0721s)TCP 192.168.1.15:60125> 192.168.1.1:22 S ttl = 2 id = 54240 iplen = 40 seq = 1720523417 win = 1480 RCVD(4.0724s)TCP 192.168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3440460772 win = 5840 <mss 1460 > Max rtt:0.337ms | 最小rtt:0.282ms | 平均rtt:0.296ms 发送的原始分组:5(200B)| Rcvd:5(230B)| 丢失:0(0.00%)Nping完成:1 IP地址在4.13秒内ping通 168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3424813300 win = 5840 <mss 1460> SENT(4.0721s)TCP 192.168.1.15:60125> 192.168.1.1:22 S ttl = 2 id = 54240 iplen = 40 seq = 1720523417 win = 1480 RCVD(4.0724s)TCP 192.168.1.1:22> 192.168.1.15:60125 SA ttl = 64 id = 0 iplen = 44 seq = 3440460772 win = 5840 <mss 1460 > Max rtt:0.337ms | 最小rtt:0.282ms | 平均rtt:0.296ms 发送的原始分组:5(200B)| Rcvd:5(230B)| 丢失:0(0.00%)Nping完成:1 IP地址在4.13秒内ping通 60125 SA ttl = 64 id = 0 iplen = 44 seq = 3440460772 win = 5840 <mss 1460> Max rtt:0.337ms | 最小rtt:0.282ms | 平均rtt:0.296ms 发送的原始分组:5(200B)| Rcvd:5(230B)| 丢失:0(0.00%)Nping完成:1 IP地址在4.13秒内ping通 60125 SA ttl = 64 id = 0 iplen = 44 seq = 3440460772 win = 5840 <mss 1460> Max rtt:0.337ms | 最小rtt:0.282ms | 平均rtt:0.296ms 发送的原始分组:5(200B)| Rcvd:5(230B)| 丢失:0(0.00%)Nping完成:1 IP地址在4.13秒内ping通




ndiff用法示例

比较昨天的端口扫描(yesterday.xml)与从今天(today.xml)的扫描:

root @ kali:〜#ndiff yesterday.xml today.xml 
-Nmap 6.45 scan started Tue May 13 18:46:43 2014 as:nmap -v -F -oX yesterday.xml 192.168.1.1 
+ Nmap 6.45 scan initiated Tue May 13 18:47:58 2014 as:nmap -v -F -oX today.xml 192.168.1.1 

 endian.localdomain(192.168.1.1,00:01:6C:6F:DD:D1):
未显示:96个过滤端口
+未显示:97过滤的端口
 PORT STATE服务版本
-22 / tcp打开ssh

ncat用法示例

要详细(-v) ,运行/ bin /在连接庆典(-exec“/斌/ bash中”) ,只允许1个IP地址(-ALLOW 192.168.1.123) ,听TCP端口4444上(-l 4444) ,和保持侦听器断开连接(-keep-open):

root @ kali:〜#ncat -v --exec“/ bin / bash”--allow 192.168.1.123 -l 4444 --keep-open 
Ncat:Version 6.45(http://nmap.org/ncat)
Ncat:Listening on ::: 4444 
Ncat:正在侦听
0.0.0.0:4444 Ncat:从192.168.1.123连接。
Ncat:连接从192.168.1.123:39501。
Ncat:从192.168.1.15连接。
Ncat:连接从192.168.1.15:60393。
Ncat:新连接被拒绝:不允许