Nmap的使用

必知参数

-p 可以指定要扫描的端口

-v 获取详细的输出

-n 禁用DNS反向解析

实例

nmap -v -n 192.168.0.103

快速扫描targetip

nmap -T4 -A -v 192.168.0.103

精细扫描,可以查看更详细的信息,如包含服务版本,操作系统类型,甚至还有traceroute..

nmap -sS -O scanme.nmap.org/24

进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。

nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127

进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。

nmap -v -iR 100000 -P0 -p 80

随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。

nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20

扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。

基本说明

除了选项,所有出现在Nmap命令行上的都被视为对目标主机的说明。 最简单的情况是指定一个目标IP地址或主机名。

有时候希望扫描整个网络的相邻主机,为此,Nmap支持CIDR风格的地址,如 192.168.10.0/24 将会扫描 192.168.10.0(11000000 10101000 00001010 00000000)到192.168.10.255(11000000 10101000 00001010 11111111)之间的256台主机。 target.com/16将会扫描 192.168.0.0到192.168.255.255之间的65536个ip地址。所允许的最小值是/1(也就是半个互联网),最大值是/32(也就是只扫描该主机或ip地址)。

CIDR有时不太灵活,可以用逗号分开的数字或范围列表为ip地址的每个八位字节指定它的范围。例如,192.168.0-255.1-254将略过在该范围内以.0和.255结束的地址。范围也不一定限于最后的8位: 0-255.0-255.13.37将在整个互联网范围扫描所有以13.37结束的地址。

参数

-iL (从列表中输入)

从文件中导入主机名(ip地址或域名,以下相同) 格式如上所述,可以CIDR,文件内容必须以换行符隔开。

–exclude <host1[,host2][,host3],…> (排除主机/网络)

排除不是目标的主机

–excludefile (排除文件中的列表)

排除不是目标的主机的列表

主机发现

简单来说,主机发现过程就是 发送一个简单的ICMP回声请求报文,获得了响应报文就说明某个ip地址是活动的(正在被某主机或网络设备使用)。

参数

-sL (列表扫描)

它仅仅列出指定网络上的每台主机, 不发送任何报文到目标主机。

-sP (Ping扫描)

该选项告诉Nmap仅仅 进行ping扫描 (主机发现),然后打印出对扫描做出响应的那些主机。 没有进一步的测试 (如端口扫描或者操作系统探测)。 这比列表扫描更积极,常常用于 和列表扫描相同的目的。它可以得到些许目标网络的信息而不被特别注意到。

系统管理员往往也很喜欢这个选项。 它可以很方便地得出 网络上有多少机器正在运行或者监视服务器是否正常运行。常常有人称它为 地毯式ping,它比ping广播地址更可靠,因为许多主机对广播请求不响应。

-P0 (无ping)

该选项完全跳过Nmap发现阶段。 通常Nmap在进行高强度的扫描时用它确定正在运行的机器。 默认情况下,Nmap只对正在运行的主机进行高强度的探测如 端口扫描,版本探测,或者操作系统探测。用-P0禁止 主机发现会使Nmap对每一个指定的目标IP地址 进行所要求的扫描。不管活不活动。

-PR (ARP Ping)

默认,目标IP的硬件地址(ARP),ARP扫描比基于IP的扫描更快更可靠。

-n (不用域名解析)

告诉Nmap 永不对它发现的活动IP地址进行反向域名解析(通过ip找域名,或者通过域名找ip,之间需要dns服务器)。 既然DNS一般比较慢,这可以让事情更快些。

端口扫描基础

nmap的核心功能,nmap 这个简单的命令扫描主机上的超过 1660个TCP端口。许多传统的端口扫描器只列出所有端口是开放还是关闭的, Nmap的信息粒度比它们要细得多。 它把端口分成六个状态: open(开放的), closed(关闭的),filtered(被过滤的), unfiltered(未被过滤的), open|filtered(开放或者被过滤的),或者 closed|filtered(关闭或者被过滤的)。

6个端口状态

  1. open(开放的)

应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。

  1. closed(关闭的)

关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。

  1. filtered(被过滤的)

由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。

  1. unfiltered(未被过滤的)

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

  1. open|filtered(开放或者被过滤的)

当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。

端口扫描技术

专家理解成打的扫描技术,选择最适合的一种 (或者组合)来完成给定的 任务。 另一方面,没有经验的用户和刚入门者总是用默认的SYN扫描解决每个问题。

Nmap支持大约十几种扫描技术。 一般一次只用一种方法, 除了UDP扫描(-sU)可能和任何一种TCP扫描类型结合使用。 友情提示一下,端口扫描类型的选项格式是-s, 其中 是个显眼的字符,通常是第一个字符。

参数

-sS (TCP SYN扫描)

SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。 它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个 端口。 SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。

-sT (TCP connect()扫描)

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

-sU (UDP扫描)

虽然互联网上很多流行的服务运行在TCP 协议上,UDP服务也不少。 DNS,SNMP,和DHCP (注册的端口是53,161/162,和67/68)是最常见的三个。 因为UDP扫描一般较慢,比TCP更困难,一些安全审核人员忽略这些端口。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏代码永生,思想不朽

TCP流量复制工具,另一个tcpcopy

很多年以前,网易推了一个tcp流量复制工具叫tcpcopy。2013年07月我入职新公司,大概10月份接触到tcpcopy,为tcpcopy修了两个bug,一个...

1.4K7
来自专栏涤生的博客

长连接和心跳的那些事儿

心跳和长连接在一起介绍的原因是,心跳能够给长连接提供保活功能,能够检测长连接是否正常(这里所说的保活不能简单的理解为保证活着,具体来说应该是一旦链路死了,不可用...

1744
来自专栏jojo的技术小屋

原 一、了解web及网络基础

作者:汪娇娇 时间:2017年9月7日 了解web及网络基础 这章我们会介绍一下什么是HTTP,HTTP是用来干嘛的; 然后还会介绍和HTTP关系紧密的3个协...

2856
来自专栏苦逼的码农

【漫画】两台陌生的主机是如何保证数据正确交付的?

小白:你知道吗?数据在传输的时候是分割成一小块一小块传输的,我们把这一小块的数据称之为一个分组。我们在传输这块分组的时候,主要面临两个问题。

1023
来自专栏前端开发

基于gulp的前端自动化方案

本文需要安装node(自行安装),并了解过gulp入门。gulp脚本下载:https://github.com/youhunwl/gulp 欢迎star。

1716
来自专栏JetpropelledSnake

Python Web学习笔记之面试TCP的15个问题

网络协议那么多,为什么面试喜欢问TCP?原因无外乎两个:1、TCP协议直接与进程打交道,写网络程序要用;2、TCP协议设计十分精巧,在一个不可靠的IP网络上实现...

5289
来自专栏xingoo, 一个梦想做发明家的程序员

caj转pdf——包含下载链接

很多人在知网上下载论文后,想转换成PDF格式,本片一站式教学,包含下载链接。 需要工具 1 caj格式的文件,即要转换的文件。 2 cajviewer,可...

3209
来自专栏HappenLee的技术杂谈

LVS-NAT模式的配置详解

由于实验室拟态存储的项目需要通过NAT模式来映射NFS服务器已实现负载均衡的目的,通过调研了多种负载均衡机制,笔者最终选择了LVS的NAT模式来实现需求,接下来...

1153
来自专栏人工智能LeadAI

这几个问题答不对,就别说精通TCP

网络协议那么多,为什么面试喜欢问TCP?原因无外乎两个:1、TCP协议直接与进程打交道,写网络程序要用;2、TCP协议设计十分精巧,在一个不可靠的IP网络上实现...

4058
来自专栏IT技术精选文摘

Presto内存调优及原理(基础篇)

Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。Presto支持在线数据查询,包括Hive, Cassandra,...

1495

扫码关注云+社区