Nmap

Nmap介绍

Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Nmap 常被跟评估系统漏洞软件Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。

主机发现原理

主机发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。Nmap支持十多种不同的主机探测方式,比如发送ICMP ECHO/TIMESTAMP/NETMASK报文、发送TCPSYN/ACK包、发送SCTP INIT/COOKIE-ECHO包,用户可以在不同的条件下灵活选用不同的方式来探测目标机。

Nmap的功能

其基本功能有三个,一是探测一组主机是否在线;

其次是扫描 主机端口,嗅探所提供的网络服务;

还可以推断主机所用的操作系统 。

Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。

Nmap常用命令

-sT 基于TCP扫描

-sT TCP connect() 扫描,这是最基本的 TCP 扫描方式。需要完成三次握手,只适用于找出TCP和UDP端口,这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。

-sS SYN扫描

-sS TCP 同步扫描 (TCP SYN),因为不必全部打开一个 TCP ,连接不需要完成三次握手,所以这项技术通常称为半开扫描 (half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要 root 权限来定制 SYN 数据包。

-sP ping扫描

-sP ping 扫描,用 ping 方式检查网络上哪些主机正在运行。当主机阻塞 ICMP echo 请求包是 ping 扫描是无效的。nmap 在任何情况下都会进行 ping 扫描,只有目标主机处于运行状态,才会进行后续的扫描。

-sU 基于UDP扫描

-sU UDP 的数据包进行扫描,UDP扫描发送空的(没有数据)UDP报头到每个目标端口,如果你想知道在某台主机上提供哪些 UDP(用户数据报协议,RFC768) 服务,可以使用此选项。

-sV 基于端口扫描

-sV 扫描目标主机的端口和软件版本

 -p 指定端口扫描

-p 指定端口扫描,有多个端口用逗号隔开

 ps:-p 可以和-sV 结合使用

-PO 不ping主机扫描

-P0 在扫描之前,不 ping 主机,跳过ping的探测,可以加快扫描速度

-PT 使用TCP Ping扫描

-PT 扫描之前,使用 TCP ping 确定哪些主机正在运行。

-PS root用户使用SYN扫描

-PS 对于 root 用户,这个选项让 nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80)

-PI 基于ICMP扫描

-PI 设置这个选项,让 nmap 使用真正的 ping(ICMP echo 请求)来扫描目标主机是否正在运行。

ps:ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用

-O 目标指纹扫描

-O 这个选项激活对 TCP/IP 指纹特征 (fingerprinting) 的扫描,获得远程主机的标志,也就是操作系统类型。

-sn 指定范围扫描

-sn扫描指定IP地址范围,查看活动主机,只进行主机发现,不进行端口扫描

-Pn 将所有指定的主机视作开启的,跳过主机发现的过程。

-sL 列表扫描

-sL List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现

--script=auth,vuln 漏洞扫描

判断常见的漏洞并扫描端口

-I 打开 nmap 的反向标志扫描功能。

-f 使用碎片 IP 数据包发送 SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。

-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。

-S <IP> 在一些情况下,nmap 可能无法确定你的源地址 (nmap 会告诉你)。在这种情况使用这个选项给出你的 IP 地址。

-g port 设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为 DNS(53) 或者 FTP-DATA(20) 的包通过和实现连接。显然,如果攻击者把源端口修改为 20 或者 53,就可以摧毁防火墙的防护。

-oN 把扫描结果重定向到一个可读的文件 logfilename 中。

-oS 扫描结果输出到标准输出。

--host_timeout 设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制。

--max_rtt_timeout 设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者超时。默认值是大约 9000 毫秒。

--min_rtt_timeout 设置 nmap 对每次探测至少等待你指定的时间,以毫秒为单位。

-M count 置进行 TCP connect() 扫描时,最多使用多少个套接字进行并行的扫描。

-sF,-sX,-sN 秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空 (Null) 扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应 RST 包,而打开的端口必需忽略有问题的包(参考 RFC 793 第 64 页)。

-sA ACK 扫描,这项高级的扫描方法通常可以用来穿过防火墙。

-sW 滑动窗口扫描,非常类似于 ACK 的扫描。

-b FTP 反弹攻击 (bounce attack),连接到防火墙后面的一台 FTP 服务器做代理,接着进行端口扫描。

-PB 这是默认的 ping 扫描选项。它使用 ACK(-PT) 和 ICMP(-PI) 两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。

更多参数请参考:http://www.nmap.com.cn/doc/manual.shtm#3

posted @ 2023-07-17 01:07  __Invoker  阅读(63)  评论(0编辑  收藏  举报