nmap介绍

Nmap介绍

Nmap用于列举网络主机清单、管理服务升级调度、监控主机或服务运行状况。Nmap可以检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。

什么是端口

端口大全

比如端口:8080

服务:代理端口

说明:WWW代理开放此端口。

端口:8000

服务:OICQ

说明:腾讯QQ服务器端开放此端口
在kali里的nmap图形界面
image
常用的操作命令可以保存成为profile(即配置)

输入

nmap -help

可以查看nmap的很多命令

nmap的功能架构图

image

Nmap的基本使用方法

确定目标主机在线情况及端口基本状况

nmap [目标ip]

对某台主机进行全面的扫描,执行

nmap -T4 -A -v [目标主机ip]

对某台主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用了改选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。

-A选项用于使用进攻性(Aggressive)方式扫描

-T4指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4。

-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。

image

主机发现

主要用于发现目标主机是否在线

主机发现的原理

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

image

DNS域名系统:相当于一个ip地址的名字

-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。

-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。-PO[protocollist]: 使用IP协议包探测对方主机是否开启。
使用样例:

nmap –sn –PE –PS80,135 –PU53 www.163.com

image

-sn: Ping Scan 只进行主机发现,不进行端口扫描。

输入:

nmap -sn 192.168.1.1-100

image

在局域网内,Nmap是通过ARP包来询问IP地址上的主机是否活动的,如果收到ARP回复包,那么说明主机在线。

其他方法:

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

  • -sn: Ping Scan 只进行主机发现,不进行端口扫描。

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

  • -PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。

  • -PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。

  • -PO[protocollist]: 使用IP协议包探测对方主机是否开启。

  • -n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。

  • –dns-servers

端口扫描

Nmap通过探测将端口划分为6个状态

  • open:端口是开放的。
  • closed:端口是关闭的。
  • filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
  • unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。

  • open|filtered:端口是开放的或被屏蔽。

  • closed|filtered :端口是关闭的或被屏蔽。

端口扫描的原理

TCP SYN scanning

Nmap默认的扫描方式,通常被称作半开放扫描(Half-open scanning)。该方式发送SYN到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;如果收到RST包,说明该端口是关闭的。如果没有收到回复,那么判断该端口被屏蔽(Filtered)。因为该方式仅发送SYN包对目标主机的特定端口,但不建立的完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用范围广。
TCP SYN探测到端口关闭:
image
TCP SYN探测到端口开放:
image

TCP connect scanning

TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑选择的方式。

TCP connect探测到端口关闭:
image
TCP connect探测到端口开放:
image

TCP ACK scanning

向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。

TCP ACK探测到端口被屏蔽:
image
TCP ACK探测到端口未被屏蔽:image

TCP FIN/Xmas/NULL scanning

这三种扫描方式被称为秘密扫描(Stealthy Scan),因为相对比较隐蔽。FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包,如果收到对方RST回复包,那么说明该端口是关闭的;没有收到RST包说明端口可能是开放的或被屏蔽的(open|filtered)。

TCP FIN探测到主机端口是关闭的:
image
TCP FIN探测到主机端口是开放或屏蔽的:image

UDP scanning

UDP扫描方式用于判断UDP端口的情况。向目标主机的UDP端口发送探测包,如果收到回复“ICMP port unreachable”就说明该端口是关闭的;如果没有收到回复,那说明UDP端口可能是开放的或屏蔽的。因此,通过反向排除法的方式来断定哪些UDP端口是可能出于开放状态。

UDP端口关闭:
image
UDP端口开放或被屏蔽:
image

其他的扫描方式

Nmap还支持多种其他探测方式。例如使用SCTP INIT/COOKIE-ECHO方式来探测SCTP的端口开放情况;使用IP protocol方式来探测目标主机支持的协议类型(TCP/UDP/ICMP/SCTP等等);使用idle scan方式借助僵尸主机(zombie host,也被称为idle host,该主机处于空闲状态并且它的IPID方式为递增,来扫描目标在主机,达到隐蔽自己的目的;或者使用FTP bounce scan,借助FTP允许的代理服务扫描其他的主机,同样达到隐藏自己的身份的目的。

扫描方法

  • -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。

  • -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。

  • -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。

  • –scanflags : 定制TCP包的flags。

  • -sI

端口参数与扫描顺序

  • -p : 扫描指定的端口

实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)

  • -F: Fast mode – 快速模式,仅扫描TOP 100的端口

  • -r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。

  • –top-ports :扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)

  • –port-ratio : 扫描指定频率以上的端口。与上述–top-ports类似,这里以概率作为参数,让概率大于–port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件。

例:
命令:

nmap –sS –sU –T4 –top-ports 300 192.168.1.100

参数-sS表示使用TCP SYN方式扫描TCP端口;-sU表示扫描UDP端口;-T4表示时间级别配置4级;–top-ports 300表示扫描最有可能开放的300个端口(TCP和UDP分别有300个端口)

link

windows查看自己已经开放的端口

输入:

netstat -an
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值