Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing) 工具。软件名字Nmap是Network Mapper的简称
Nmap下载地址:http://nmap.org/download.html
nmap包含四项基本功能:
1.主机发现(host Discovery)
2.端口扫描(Port Scanning)
3.版本侦测(Version Detection)
4.操作系统侦测(Operating Sytem Detection)
首先需要进行主机发现,随后确定端口状况,然后确定端口上运行具体应用程序与 版本信息,然后可以进行操作系统的侦测。而在四项基本功能的基础上,Nmap提供防火 墙与IDS(IntrusionDetection System,入侵检测系统)的规避技巧,可以综合应用到四个基 本功能的各个阶段;另外Nmap提供强大的NSE(Nmap Scripting Language)脚本引擎功 能,脚本可以对基本功能进行补充和扩展.
主机发现(Host Discovery),即用于发现目标主机是否在线(Alive,处于开启状态)。 主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明 目标主机是开启的。Nmap支持十多种不同的主机探测方式,比如发送ICMP
ECHO/TIMESTAMP/NETMASK报文、发送TCPSYN/ACK包、发送SCTP INIT/COOKIE-ECHO 包,用户可以在不同的条件下灵活选用不同的方式来探测目标机。 默认情况下,Nmap会发送四种不同类型的数据包来探测目标主机是否在线。 • ICMP echo request • a TCP SYN packet to port 443 • a TCP ACK packet to port 80 • an ICMP timestamp request
主机并不会单独使用,只是作为端口扫描、版本侦测、OS侦测先行步骤.
它有一下的命令参数:
• -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协议包探测对方主机是否开启
示例:nmap -sn -PE -PS22,23,80,135 -PU53 192.168.1.1/24
端口扫描
端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况。 默认情况下,Nmap会扫描1000个最有可能开放的TCP端口。 Nmap通过探测将端口划分为6个状态: open:端口是开放的。 closed:端口是关闭的。 filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。 unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。 open|filtered:端口是开放的或被屏蔽。 closed|filtered :端口是关闭的或被屏蔽
Nmap在端口扫描方面非常强大,提供了十多种探测方式。 u TCP SYN scanning 这是Nmap默认的扫描方式,通常被称作半开放扫描(Half-open scanning)。该方式发送SYN 到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;如果收到RST包,说明该端口是 关闭的。如果没有收到回复,那么判断该端口被屏蔽(Filtered)。因为该方式仅发送SYN包对 目标主机的特定端口,但不建立的完整的TCP连接,所以相对比较隐蔽,而且效率比较高,适用 范围广。 u TCP connect scanning TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该 端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息, 不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑选择的方式。 u TCP ACK scanning 向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST 包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来 判断目标主机防火墙的状况。 5 www.listentide.com 听潮盛世(北京)科技有限公司 www.secdic.com 端口扫描 u TCP FIN/Xmas/NULL scanning 这三种扫描方式被称为秘密扫描(Stealthy Scan),因为相对比较隐蔽。FIN扫描向目标主机的 端口发送的TCP FIN包或Xmas tree包/Null包,如果收到对方RST回复包,那么说明该端口是关闭 的;没有收到RST包说明端口可能是开放的或被屏蔽的(open|filtered)。 其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP 包。 u UDP scanning UDP扫描方式用于判断UDP端口的情况。向目标主机的UDP端口发送探测包,如果收到回复 “ICMP port unreachable”就说明该端口是关闭的;如果没有收到回复,那说明UDP端口可能是开 放的或屏蔽的。因此,通过反向排除法的方式来断定哪些UDP端口是可能出于开放状态。 u 其他方式 除上述几种常用的方式之外,Nmap还支持多种其他探测方式。例如使用SCTP INIT/COOKIE- ECHO方式来探测SCTP的端口开放情况;使用IP protocol方式来探测目标主机支持的协议类型 (TCP/UDP/ICMP/SCTP等等);使用idle scan方式借助僵尸主机来扫描目标在主机,达到隐蔽 自己的目的;或者使用FTP bounce scan,借助FTP允许的代理服务扫描其他的主机,同样达到隐藏自己的身份的目的
端口扫描用法比较简单,Nmap提供丰富的命令行参数来指定扫描方式和扫描端口。
-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端口 状态。
-p : 扫描指定的端口 实例:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
(其中T代表TCP协议、U 代表UDP协议、S代表SCTP协议)
端口扫描 命令示例:nmap –sS –sU –T4 –p1-1000 192.168.1.1 参数-sS表示使用TCP SYN方式扫描TCP端口;-sU表示扫描UDP端口;-T4表示时间级别配 置4级;--1-1000表示扫描从1-1000的端口
标签:扫描,UDP,nmap,主机,简单,端口,TCP,Nmap,使用 From: https://www.cnblogs.com/llw131421/p/18143074