网络安全-端口扫描神器Nmap使用详解与参数指导_nmap全端口扫描参数

目录

简介

Nmap是一个免费的开源用于网络发现和安全审计的实用程序。许多系统和网络管理员还发现它对于网络库存、管理服务升级计划以及监控主机或服务正常运行时间等任务很有用。Nmap 以新颖的方式使用原始 IP 数据包来确定网络上可用的主机、这些主机提供的服务(应用程序名称和版本)、它们运行的​​操作系统(和操作系统版本)、数据包过滤器/防火墙的类型正在使用中,以及其他数十种特性。它旨在快速扫描大型网络,但对单个主机也能正常工作。Nmap 运行在所有主要的计算机操作系统上,官方二进制包适用于 Linux、Windows 和 Mac OS X。 除了经典的命令行 Nmap 可执行文件,Zenmap),一个灵活的数据传输、重定向和调试工具(Ncat),一个用于比较扫描结果的实用程序(Ndiff),以及一个数据包生成和响应分析工具(Nping)。

灵活:支持数十种高级技术,用于绘制充满 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 项目的主要目标是帮助使 Internet 更加安全,并为管理员/审计员/黑客提供用于探索其网络的高级工具。Nmap 可免费下载,还附带完整的源代码,您可以根据许可条款修改和重新分发。
有据可查:我们在全面和最新的手册页、白皮书、教程甚至整本书中投入了大量精力!在这里可以找到多种语言版本。

命令参数

Nmap 7.80 ( https://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL : Input from list of hosts/networks
-iR : Choose random targets
–exclude <host1[,host2][,host3],…>: Exclude hosts/networks
–excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
-sL: List Scan - simply list targets to scan
-sn: Ping Scan - disable port scan
-Pn: Treat all hosts as online – skip host discovery
-PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
-PO[protocol list]: IP Protocol Ping
-n/-R: Never do DNS resolution/Always resolve [default: sometimes]
–dns-servers <serv1[,serv2],…>: Specify custom DNS servers
–system-dns: Use OS’s DNS resolver
–traceroute: Trace hop path to each host
SCAN TECHNIQUES:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sU: UDP Scan
-sN/sF/sX: TCP Null, FIN, and Xmas scans
–scanflags : Customize TCP scan flags
-sI <zombie host[:probeport]>: Idle scan
-sY/sZ: SCTP INIT/COOKIE-ECHO scans
-sO: IP protocol scan
-b : FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
-p : Only scan specified ports
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
–exclude-ports : Exclude the specified ports from scanning
-F: Fast mode - Scan fewer ports than the default scan
-r: Scan ports consecutively - don’t randomize
–top-ports : Scan most common ports
–port-ratio : Scan ports more common than
SERVICE/VERSION DETECTION:
-sV: Probe open ports to determine service/version info
–version-intensity : Set from 0 (light) to 9 (try all probes)
–version-light: Limit to most likely probes (intensity 2)
–version-all: Try every single probe (intensity 9)
–version-trace: Show detailed version scan activity (for debugging)
SCRIPT SCAN:
-sC: equivalent to --script=default
–script=: is a comma separated list of
directories, script-files or script-categories

–script-args=<n1=v1,[n2=v2,…]>: provide arguments to scripts
–script-args-file=filename: provide NSE script args in a file
–script-trace: Show all data sent and received
–script-updatedb: Update the script database.
–script-help=: Show help about scripts.
OS DETECTION:
-O: Enable OS detection
–osscan-limit: Limit OS detection to promising targets
–osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
Options which take

接下来进行展示
攻击机:kali(Nmap 7.80)
靶机:owaspbwa、metasploitable_ubuntu
搭建过程:《MetaSploit渗透测试魔鬼训练营》之环境搭建

目标指定

CIDR风格 192.168.1.0/24
域名或ip www.baidu.com,www.zhihu.com,192.168.31.128
分割线 10.22-25.43.32

文件读入

-iL : 从文件中读入带扫描主机或网络列表
在这里插入图片描述

随机

-iR : 随机选择num个作为目标
个人认为没必要,需要随机时在调用nmap的外层软件随机即可,主要是有些防御手段发现某ip挨个访问网络内的主机时,可能封ip。

排除

–exclude <host1[,host2][,host3],…>: 排除主机/网络
–excludefile <exclude_file>:从文件中排除

在这里插入图片描述
从文件排除的留给读者实践吧。

主机发现

-sL: 简单列表扫描
-sP/-sn: 不进行端口扫描,仅发现主机
-Pn: 将所有主机视为在线,跳过主机发现
-PS/PA/PU/PY[portlist]: 使用TCP SYN/ACK, UDP or SCTP对所给端口进行主机发现
-PE/PP/PM:ICMP回显、时间戳和网络掩码请求发现探测
-PO[protocol list]: IP 协议 Ping
-n/-R: 从不进行DNS解析/始终解析[默认值:有时]
–dns-servers <serv1[,serv2],…>:指定自定义DNS服务器
–system-dns: 使用操作系统的DNS解析程序
–traceroute: 跟踪每个主机的跃点路径

-sn之前叫做-sP,目前版本也可以使用,建议用最新的。在这里插入图片描述
–traceroute发现路径
在这里插入图片描述
显示有一跳

扫描技术

-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon 扫描
-sU: UDP 扫描
-sN/sF/sX: TCP Null, FIN, and Xmas 扫描
–scanflags : 自定义TCP扫描标志
-sI <zombie host[:probeport]>: Idle 扫描
-sY/sZ: SCTP INIT/COOKIE-ECHO 扫描
-sO: IP 协议扫描
-b : FTP反弹扫描
使用-sS进行半连接扫描在这里插入图片描述 使用wireshark抓包,可以看到发送 的TCP数据包,SYN是最快的,半连接。

端口指定和扫描顺序

-p : 仅扫描指定的具体端口 例如: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
–exclude-ports : 排除这些端口
-F: 快速模式,比默认的端口扫描的更少
-r: 连续扫描端口,不要随机化
–top-ports : 扫描个最常见的端口
–port-ratio : 扫描比更常见的端口
使用–top-ports来扫描常用top5端口在这里插入图片描述
端口6大状态
open(开放的)
应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。

closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。 系统管理员可能会考虑用防火墙封锁这样的端口。 那样他们就会被显示为被过滤的状态,下面讨论。

filtered(被过滤的)
由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供 任何信息。有时候它们响应ICMP错误消息如类型3代码13 (无法到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应。 这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。 这使得扫描速度明显变慢。

unfiltered(未被过滤的)
未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。 只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。 用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。

open|filtered(开放或者被过滤的)
当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。

closed|filtered(关闭或者被过滤的)
该状态用于Nmap不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中。

服务/版本发现

-sV: 探测打开的端口,确定服务/版本信息
–version-intensity :从0到9(尝试所有探测)
–version-light:限制为仅对最可能的进行探测(强度2)
–version-all: 尝试所有探测(强度9)
–version-trace: 显示详细的版本扫描活动(用于调试)
使用-sV来查看端口对应服务及版本在这里插入图片描述

脚本扫描

-sC: 相当于–script=default
–script=: 是以逗号分隔的目录、脚本文件或脚本类别列表
–script-args=<n1=v1,[n2=v2,…]>: 为脚本提供参数
–script-args-file=filename: 在文件中提供NSE脚本参数
–script-trace: 在文件中提供NSE脚本参数显示所有发送和接收的数据
–script-updatedb: 更新脚本数据库
–script-help=: 展示脚本的帮助
查看脚本列表
在这里插入图片描述
查看脚本内容
在这里插入图片描述
查看脚本帮助并使用
在这里插入图片描述

操作系统版本

-O: 操作系统探测
–osscan-limit: 将操作系统检测限制在有希望的目标上
–osscan-guess: 更积极地猜测操作系统

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值