namp使用教程


namp使用教程

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。我们一般用命令行形式的脚本,下载:Nmap: the Network Mapper - Free Security Scanner

命令

主机发现

主机发现有时候也叫做ping扫描,但它远远超越用世人皆知的ping工具 发送简单的ICMP回声请求报文。用户完全可以通过使用列表扫描(-sL)或者 通过关闭ping (-P0)跳过ping的步骤,也可以使用多个端口把TCP SYN/ACK,UDP和ICMP 任意组合起来玩一玩。这些探测的目的是获得响应以显示某个IP地址是否是活动的(正在被某主机或者网络设备使用)。

常规扫描

简单的在命令后加ip地址,可以进行常规扫描,查看主机是否存活以及开放的端口。

nmap ip

列表扫描

列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机, 不发送任何报文到目标主机。

nmap -sL -v ip

Ping 扫描

类似于Ping命令,仅执行Ping扫描,可以快速发现主机是否存活。

nmap -sn ip

免Ping扫描

穿透防火墙,避免被防火墙发现

nmap -P0 ip

TCP SYN Ping 扫描

通常情况下,Nmap默认Ping扫描是使用TCP ACK和ICMP Echo请求对目标进行是否存活的响应,当目标主机的防火墙阻止这些请求时,可以使用TCP Syn Ping扫描。

nmap -PS -v ip

TCP ACK Ping 扫描

使用 -PA 选项可以进行 TCP ACK Ping 扫描,它与 TCP Syn Ping 是非常类似的,唯一的区别是设置TCP的标志位是ACK而不是SYN,使用这种方式扫描可以探测组织SYN包或ICMP Echo请求的主机。

nmap -PA -v ip

UDP Ping 扫描

-PU 选项是发送一个空的UDP报文到指定端口,如果目标主机响应则返回一个ICMP端口不可达错误,如果目标主机不是存活状态则会返回各种ICMP报错信息。

nmap -PU -v ip

ICMP Ping Types 扫描

ICMP Echo 方式扫描
nmap -PE -v ip
使用ICMP时间戳Ping扫描
nmap -PP -v ip
使用ICMP地址掩码Ping扫描
nmap -PM -v ip

ARP Ping 扫描

这个选项通常用在扫描局域网时,在本地局域网中防火墙不会禁止ARP请求,这就使它的扫描更加高效。

nmap -PR ip

禁止方向域名解析

告诉Nmap永不对它发现的活动IP地址进行反向域名解析

nmap -n -sL -v ip

方向域名解析

告诉Nmap永远对目标IP地址作反向域名解析

nmap -R -sL -v ip

使用系统域名解析系统

Nmap通过直接发送查询到您的主机上配置的域名服务器来解析域名。为了提高性能,许多请求 (一般几十个 ) 并发执行

nmap --system-dns ip

路由跟踪

nmap --traceroute -v 域名

SCTP INIT Ping 扫描

nmap -PY -v ip

端口扫描

扫描端口开放状态,端口分成六个状态: open(开放的), closed(关闭的),filtered(被过滤的), unfiltered(未被过滤的), open|filtered(开放或者被过滤的),或者 closed|filtered(关闭或者被过滤的)

扫描指定端口

nmap -p port(80) ip
nmap -p 80-100 ip
nmap -p T:80,U:445 ip

快速扫描

nmap -F ip

不要按随机顺序扫描端口

nmap -r ip

时序扫描

nmap -T(0-5) ip

扫描最有用的前100个端口

nmap --top-ports 100 ip   (扫描最有用的前100个端口)

TCP SYN 扫描 (高效的扫描方式)

它常常被称为半开放扫描, 因为它不打开一个完全的TCP连接。它发送一个SYN报文, 就像您真的要打开一个连接,然后等待响应。

nmap -sS -v ip

TCP 连接扫描

当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描。

nmap -sT -v ip

UDP 连接扫描

UDP扫描发送空的(没有数据)UDP报头到每个目标端口。 如果返回ICMP端口不可到达错误, 该端口是closed(关闭的)。 其它ICMP不可到达错误表明该端口是filtered(被过滤的)。

nmap -sU -p 80-100 ip

隐蔽扫描

如果扫描系统遵循该RFC,当端口关闭时,任何不包含SYN,RST,或者ACK位的报文会导致 一个RST返回,而当端口开放时,应该没有任何响应。

nmap -sN ip(NULL扫描)
nmap -sF ip(FIN扫描)
nmap -sX ip(Xmas扫描)

TCP ACK 扫描

它用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。

nmap -sA ip

TCP 窗口扫描

通过检查返回的RST报文的TCP窗口域做到这一点。 在某些系统上,开放端口用正数表示窗口大小(甚至对于RST报文) 而关闭端口的窗口大小为0。因此,当收到RST时,窗口扫描不总是把端口标记为 unfiltered, 而是根据TCP窗口值是正数还是0,分别把端口标记为open或者 closed

nmap -sW -v -F  ip

TCP Maimon 扫描

和Null,FIN,以及Xmas扫描完全一样,除了探测报文是FIN/ACK。

nmap -sM -T4  ip

自定义 扫描

--scanflags选项允许您通过指定任意TCP标志位来设计您自己的扫描。--scanflags选项可以是一个数字标记值如9 (PSH和FIN),可以设置 TCP扫描类型(如-sA或者-sF),如–scanflags URGACKPSHRSTSYNFIN

nmap -sT --scanflags SYNURG ip

空闲 扫描( 隐藏IP )

这种高级的扫描方法允许对目标进行真正的TCP端口盲扫描

nmap -sI www.0day.co:80 ip

IP协议 扫描

IP 协议扫描可以让您确定目标机支持哪些IP协议 (TCP,ICMP,IGMP,等等)。

nmap -sO -T4 ip

FTP弹跳扫描

nmap -b <ftp relay host> (FTP弹跳扫描)

服务和版本探测

把Nmap指向一个远程机器,它可能告诉你端口25/tcp,80/tcp,和53/udp是开放的。使用包含大约2,200个著名的服务的 nmap-services数据库, Nmap可以报告那些端口可能分别对应于一个邮件服务器 (SMTP),web服务器(HTTP),和域名服务器(DNS)。

版本探测

打开版本探测

nmap -sV ip
nmap -sV -A ip

全端口版本探测

指定--allports扫描所有端口

nmap -sV --allports ip

设置扫描强度

被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文 一般没什么用。数值越高, 服务越有可能被正确识别。

nmap -sV --version-intensity (0-9) ip

轻量级扫描

--version-intensity 2的方便的别名。轻量级模式使版本扫描快许多

nmap -sV --version-light ip

重量级扫描

--version-intensity 9的别名, 保证对每个端口尝试每个探测报文。

nmap -sV --version-all ip

获取详细版本信息

Nmap打印出详细的关于正在进行的扫描的调试信息

nmap -sV --version-trace ip

RPC扫描

它对所有被发现开放的TCP/UDP端口执行SunRPC程序NULL命令,来试图 确定它们是否RPC端口,如果是, 是什么程序和版本号。

nmap -sS -sR ip

操作系统探测

Nmap发送一系列TCP和UDP报文到远程主机,检查响应中的每一个比特。 在进行一打测试如TCP ISN采样,TCP选项支持和排序,IPID采样,和初始窗口大小检查之后, Nmap把结果和数据库nmap-os-fingerprints中超过 1500个已知的操作系统的fingerprints进行比较,如果有匹配,就打印出操作系统的详细信息。

启用操作系统检测

也可以使用-A来同时启用操作系统检测和版本检测。

nmap -O ip

对指定的目标进行操作系统监测

nmap -O --osscan-limit ip

推测系统并识别

当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配

nmap -O --osscan-guess/ --fuzzy ip

时间和性能

调整并行扫描组的大小

--max-hostgroup选项用于说明使用最大的组,Nmap不 会超出这个大小。--min-hostgroup选项说明最小的组,Nmap 会保持组大于这个值

nmap --min-hostgroup 30 ip
nmap --max-hostgroup 1024 ip

调整探测报文的并行度

这些选项控制用于主机组的探测报文数量,可用于端口扫描和主机发现。

nmap --min-parallelism 100 ip
nmap --max-parallelism 100 ip

调整探测报文超时

Nmap使用一个运行超时值来确定等待探测报文响应的时间,随后会放弃或重新发送探测报文。

nmap --initial-rtt-timeout 100ms ip
nmap --max-rtt-timeout 100ms ip
nmap --min-rtt-timeout 100ms ip

放弃缓慢的目标主机

--host-timeout选项来说明等待的时间(毫秒)

nmap --host-timeout 1800000ms ip

调整报文适合时间间隔

这个选项用于Nmap控制针对一个主机发送探测报文的等待时间(毫秒)

nmap --scan-delay ls ip
nmap --max-scan-delay ls ip

设置时间模板

往往选择合适参数的时间超过了所需优化的扫描时间,Nmap提供了一些简单的方法,使用6个时间模板,使用时采用-T选项及数字(0 - 5) 或名称。模板名称有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。前两种模式用于IDS躲避,Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源。默认模式为Normal,因此-T3 实际上是未做任何优化。Aggressive模式假设用户具有合适及可靠的网络从而加速 扫描。Insane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。

nmap -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>
ip

防火墙/IDS躲避和哄骗

报文分段

-f选项要求扫描时(包挺ping扫描)使用小的IP包分段。其思路是将TCP头分段在几个包中,使得包过滤器、IDS以及其它工具的检测更加困难。

nmap -f -v ip

指定偏移大小

使用--mtu选项可以自定义偏移的大小,使用时不需要-f,偏移量必须 是8的倍数。

nmap --mtu 16 ip

IP欺骗

为使诱饵扫描起作用,需要使远程主机认为是诱饵在扫描目标网络。 IDS可能会报个某个IP的5-10个端口扫描,但并不知道哪个IP在扫描以及 哪些不是诱饵。

nmap -D RND:11 ip
nmap -D ip1,ip2,ip3 ip1

源地址欺骗

这个标志的另一个用处是哄骗性的扫描,使得目标认为是另一个地址在进行扫描。

nmap -sI 欺骗ip:80 ip

使用指定的接口

nmap -e interface ip

源端口欺骗

Nmap提供了-g--source-port选项(它们是 等价的)

nmap --source-port 902 ip

指定发包长度

这个选项告诉Nmap在发送的报文上附加指定数量的随机字节

nmap --data-length 30 ip

设置IP time-to-live域

设置IPv4报文的time-to-live域为指定的值。

nmap --ttl <value>

目标主机随机排序

告诉Nmap在扫描主机前对每个组中的主机随机排列,最多可达 8096个主机。

nmap --randomize-hosts ip

MAX地址欺骗

要求Nmap在发送原以太网帧时使用指定的MAC地址,这个选项隐含了 --send-eth选项,以保证Nmap真正发送以太网包。

nmap -sT -Pn --spoof-mac 0 ip

输出

Nmap提供5种不同的输出格式。默认的方式是interactive output, 发送给标准输出(stdout)。

标准保存

nmap -F -oN d:/xxx.txt ip

XML保存

nmap -F -oX d:/xxx.xml ip

133t 保存

nmap -F -oS d:/xxx.txt ip

Grep 保存

nmap -F -oG d:/xxx.txt ip

保存到所有格式

nmap -F -oA d:/xxx ip

补充保存文件

在输出文件中添加

nmap -F -append-output -oN d:/xxx.txt ip

转换 XML 保存

常见的调用方式是--stylesheet https://nmap.org/data/nmap.xsl

nmap -F -oX xxx.xml --stylesheet https://nmap.org/data/nmap.xsl ip

忽略 XML 声明的 XSL 样式表

nmap -oX d:/xxx.xml --no-stylesheet ip

继续中断的扫描

nmap --resume <filename>

优化

-v (提高输出信息的详细度)
-d [level] (提高或设置调试级别)
--packet-trace (跟踪发送和接收的报文)
--iflist (列举接口和路由)

其他

扫描IPV6地址

nmap -6 IPv6

激烈扫描模式

全面扫描

nmap -A ip

说明用户Nmap数据文件位置

nmap --datadir <directoryname>

使用原以太网帧发送

nmap --send-eth

在原IP层发送

nmap --send-ip

假定用户具有全部权限

nmap --privileged

打印版本信息

nmap -V/--version

打印帮助摘要面

nmap -h/--help

文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
评论
  目录