百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

黑客最爱的Linux扫描端口工具怎么用?

nanshan 2024-10-22 13:02 29 浏览 0 评论

请关注本头条号,每天坚持更新原创干货技术文章。

如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

前言

本文主要介绍两个极为重要的网络工具,分别是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

扫描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

本文已同步至博客站:

https://www.linuxrumen.com/cyml/668.html

点击了解更多,快速查看更多的技术文章列表。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: