智传网优云课堂,专注分享IT技术
与IT技术爱好者一起共同学习进步

Linux扫描端口工具nmap与nc命令

前言

本文主要介绍两个极为重要的网络工具,分别是Netcat和nmap,他们常常用于检测网络质量,服务器连接状态,探测中间的防火墙,扫描目标主机开放的端口,探测目标主机的操作系统类型以及漏洞等等强大功能。

2. Netcat工具(nc命令)简介

nc号称是网络工具中的瑞士军刀,功能强大,可以做很多很多事情。如果系统没有安装的话,

2.1 安装netcat:

[root@zcwyou ~]# yum install -y nc

安装netcat

成功安装netcat

2.2 实例1

测试www.linuxrumen.com的80端口是否开放

[root@zcwyou~]# nc -vz -w 2 www.linuxrumen.com 80

检测80端口是否开放

上图表明,80端口正常开放。
测试www.linuxrumen.com的22端口是否开放

[root@zcwyou~]# nc -z -v 192.118.20.95 22

检测22端口是否开放

上图表示,22端口已经开放
测试www.linuxrumen.com的3369端口是否开放

检测3369端口是否开放

上图表示,3369端口并没有开放。

2.3 适用格式

重要的参数,略做介绍:
-4,-6 表示ipv 4和ipv6模式
-u 表示扫描UDP端口,默认是TCP端口
-o -x 结果输出到文件,x表示以二进制格式。
-v 结果的详细程度,可以多个v,比如-vv –vvv 数量越多表示结果越详细
-p –s 表示指定扫描源地址和ip。
-z 表零IO模式,表示扫描时不发送任何数据
-w 秒数 设置超时

3. nmap 是端口扫描之王,比nc强大

3.1 nmap描述

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。 它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。Nmap以新颖的方式使用原始 IP报文来发现网络上有哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然 Nmap 通常用于安全审核,许多系统管理员和网络管理员也用它来做一些 日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。

Nmap 输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。 “所感兴趣的端口表格”是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是 open(开放的),filtered(被过滤的), closed(关闭的),或者 unfiltered(未被过 滤的)。Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。 filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知它是open(开放的) 还是closed(关闭的)。closed(关闭的)端口没有应用程序在它上面监听,但是他们随时可能开放。当端口对 Nmap 的探测做出响应,但是Nmap 无法确定它们是关闭还是开放时,这些端口就被认为是unfiltered(未被过滤的) 如果Nmap报告状态组合open|filtered 和closed|filtered时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。当要求 进行版本探测时,端口表也可以包含软件的版本信息。当要求进行 IP 协议扫描时 (-sO),Nmap提供关于所支持的 IP 协议而不是正在监听的端口的信息。除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统猜测,设备类型,和MAC 地址。

Nmap 所识别的 6 个端口状态。 open(开放的)

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

closed(关闭的)

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

filtered(被过滤的)

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

unfiltered(未被过滤的)

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

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

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

closed|filtered(关闭或者被过滤的)

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

一个典型的 Nmap 扫描如 Example 1, “一个典型的 Nmap 扫描”所示。在这个例子中,唯一的选 项是-A, 用来进行操作系统及其版本的探测,-T4 可以加快执行速度,接着是两个目标主机名

3.2 centOS上安装nmap

[root@zcwyou~]# yum -y install nmap

安装nmap

成功安装nmap

[root@zcwyou~]# nmap -A -T4 192.168.1.1

timing 参数可以指定 nmap 扫描的速度。其中各个选项如下:

T0 => paranoid 慢速网络扫描,串行扫描,两次扫描间隔 5 分钟。扫描速度极慢。

T1 => Sneky 慢速网络扫描,串行扫描,两次扫描间隔 15 秒,扫描速度较慢。

T2 => Polite 中速网络扫描,串行扫描,两次扫描间隔 400 毫秒,扫描速度慢。

T3 => Normal 中速网络扫描,并行扫描,两次扫描间隔 0 秒,扫描速度正常。

T4 => Aggressive 快速网络扫描,并行扫描,两次扫描间隔 0 秒,扫描速度较快。

T5 => Normal 快速网络扫描,并行扫描,两次扫描间隔 0 秒,扫描速度极快。

-sS 使用SYN+ACK的方法,使用TCP SYN,

-sT 使用TCP的方法, 完成3次握手

-sU 使用UDP的方法

-sP ICMP ECHO Request 送信,有反应的端口进行调查

-sF FIN SCAN

-sN 全部FLAG OFF的无效的TCP包送信,根据错误代码判断端口情况

-P0 无视ICMP ECHO request的结果,SCAN

-p scan port range 指定SCAN的目端口的范围1-100, 或者使用25,100的方式

-O 侦测OS的种类

-oN 文件名 通常格式文件输出

-oX 文件名 通过DTD,使用XML格式输出结果

-oG 文件名,grep容易的格式输出

-sV 服务的程序名和版本SCAN

3.3. nmap常见用法

ARP扫描,探测本网段存活的设备:
nmap -PR 192.168.1.0/24

完成后,查看ARP表:
cat /proc/net/arp

进行ping扫描,列出对扫描做出响应的主机:  
nmap -sP 172.16.26.0/24

仅列出指定网络上的每台主机,不发送任何报文到目标主机,被动
nmap -sL 192.168.1.0/24

探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS 22,23,25,80):  
nmap -PS 192.168.1.234

使用UDP ping探测主机:
nmap -PU 192.168.1.0/24

使用频率最高的扫描选项(SYN扫描,又称为半开放扫描),它不打开一个完全的TCP连接,执行得很快: 
nmap -sS 192.168.1.0/24

SYN扫描,指定IP范围指定端口。
nmap -sS 192.168.1.1-30 -p 80

探测端口的服务和版本
nmap -sV 192.168.1.1 -p 1-65535

探测操作系统类型和版本
nmap -O 192.168.1.1
nmap -A -T4 192.168.1.1

探测目标操作系统类型和版本

扫描路由器
Nmap内部维护了一份系统与设备的数据库(nmap-os-db),能够识别数千种不同系统与设备。所以,可以用来扫描主流的路由器设备。

扫描思科路由器
nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16
思科路由器会在上述端口中运行了常见的服务。列举出上述端口开放的主机,可以定位到路由器设备可能的IP地址及端口状态。

扫描路由器操作系统

与通用PC扫描方式类似,使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做OS的指纹分析。
nmap -O -F -n 192.168.1.1

扫描指定IP开放端口
nmap -sS -p 1-65535 -v www.qq.com
-sS: 半开扫描,很少系统会把它计入系统日记。但是要root权限。
-p:指定端口。
-v:显示扫描过程,推荐使用。

探测主机操作系统
nmap -O www.qq.com

全面探测系统
nmap -v -A www.qq.com
-A: 全面系统检测,启用脚本检测。

穿透防火墙进行扫描
nmap -Pn -A www.qq.com

实例脚本引擎

nmap -p 80 --script=xxx.nse [www.qq.com](http://www.qq.com)

扫描57.182.0.0/21的2048 IP地址的80端口是是否开放,并只显示开放的主机。
nmap -sT -p 80 -oG – –open 57.182.0.0/21

扫描57.182.0.0/21的2048 IP地址的80端口是是否开放,并只显示开放的主机。
nmap -sT -p 80 -oG – –open 57.182.0.0/21

扫描IP.TXT文件里所有IP的开放80端口的主机。
有5000个左右的IP需要扫描80端口,(可以一行一条写在文本文档里。)
nmap -p 80 -iL “E:\ip.txt” –open

扫描116.148.0.0/18下的所有IP的8080端口,并把扫描结果保存入D盘nmap.txt。
在WINDOWS命令行下使用nmap扫描一个IP段,并把结果导入指定的TXT文件。
nmap -sS -p 8080 -T4 -Pn –open -oG d:\nmap.txt 116.148.0.0/18

赞(0)
未经允许不得转载:Linux入门学习到精通 » Linux扫描端口工具nmap与nc命令
分享到: 更多 (0)

学习QQ群:557371664

关注微信公众号自助视频学习

评论 抢沙发

评论前必须登录!