nmap进阶

简介: nmap进阶

简介

image.png

语法及示例

nmap是一款常用的网络扫描和安全评估工具,它可以用于发现网络上的主机、端口和服务等信息。下面是nmap的一些常用语法和示例:

扫描单个主机: nmap [options] <target> 示例:nmap 192.168.0.1

扫描多个主机: nmap [options] <target1> <target2> … 示例:nmap 192.168.0.1 192.168.0.2

扫描整个子网: nmap [options] <target>/24 示例:nmap 192.168.0.0/24

扫描指定端口: nmap [options] -p <port> <target> 示例:nmap -p 80 192.168.0.1

扫描常见端口: nmap [options] -F <target> 示例:nmap -F 192.168.0.1

扫描所有端口: nmap [options] -p- <target> 示例:nmap -p- 192.168.0.1

扫描指定端口范围: nmap [options] -p <start-port>-<end-port> <target> 示例:nmap -p 1-1000 192.168.0.1

扫描指定协议: nmap [options] -sU <target> # UDP扫描 nmap [options] -sT <target> # TCP扫描 示例:nmap -sU 192.168.0.1

扫描操作系统信息: nmap [options] -O <target> 示例:nmap -sV <target> 示例:nmap -sV 192.168.0.1

以上是nmap的一些常用语法和示例,你可以根据需要选择合适的选项进行扫描。

image.png

-pA参数:-pA参数是nmap的一个选项,表示同时进行TCP、UDP和ICMP协议的端口扫描。它会扫描目标主机上所有的TCP和UDP端口,并发送ICMP Echo请求来确定主机是否可达。

-pS参数表示使用TCP SYN扫描方式进行端口扫描。

TCP SYN扫描是一种常用的扫描技术,它利用TCP协议中的三次握手过程来判断目标主机上的端口是否开放。在进行扫描时,nmap发送一个SYN包给目标主机的指定端口,如果收到了SYN/ACK包作为响应,则表示该端口是开放的;如果收到了RST包作为响应,则表示该端口是关闭的。

使用nmap -pS命令可以指定要扫描的目标主机和端口范围。例如,nmap -pS 192.168.0.1-100可以扫描192.168.0.1到192.168.0.100之间的所有主机,并使用TCP SYN扫描方式进行端口扫描。

image.png

nmap是一款常用的网络扫描和安全评估工具,它可以用来探测目标主机的开放端口和服务。nmap对端口的扫描结果会将端口分为以下六种状态:

开放(Open):表示目标主机上的端口处于打开状态,可以接收连接请求并响应。

关闭(Closed):表示目标主机上的端口处于关闭状态,不接收连接请求。

过滤(Filtered):表示目标主机上的端口被防火墙或其他网络设备过滤,无法确定端口的状态。

未响应(Unfiltered):表示目标主机上的端口没有响应,但无法确定端口是否开放或关闭。

开放|过滤(Open|Filtered):表示目标主机上的端口可能是开放的,也可能被过滤,无法确定具体状态。

关闭|过滤(Closed|Filtered):表示目标主机上的端口可能是关闭的,也可能被过滤,无法确定具体状态。

这些状态可以帮助安全人员评估目标主机的安全性,并确定哪些服务和端口可能存在潜在的风险。

image.png

常见的端口扫描技术有以下几种:

TCP Connect扫描:这是最常见的端口扫描技术之一。它通过向目标主机的每个端口发送一个TCP连接请求,如果目标主机返回一个TCP连接确认包,则表示该端口是开放的。

SYN扫描(也称为半开放扫描):这种扫描技术利用TCP协议的三次握手过程。它发送一个SYN包给目标主机的每个端口,如果目标主机返回一个SYN/ACK包,则表示该端口是开放的。与TCP Connect扫描相比,SYN扫描不会建立完整的TCP连接,因此更难被目标主机检测到。

UDP扫描:UDP是一种无连接的协议,因此UDP扫描技术与TCP扫描技术有所不同。UDP扫描发送一个UDP数据包到目标主机的指定端口,如果目标主机返回一个ICMP端口不可达消息,则表示该端口是关闭的。如果没有收到任何响应,则表示该端口可能是开放的或过滤掉了。

NULL、FIN和Xmas Tree扫描:这些扫描技术利用TCP协议中的一些特殊标志位来判断端口是否开放。NULL扫描发送一个没有任何标志位的TCP包,FIN扫描发送一个只有FIN标志位的TCP包,Xmas Tree扫描发送一个同时设置FIN、URG和PSH标志位的TCP包。如果目标主机返回一个RST包,则表示该端口是关闭的。

ACK扫描:ACK扫描用于确定防火墙规则。它发送一个只有ACK标志位的TCP包,如果目标主机返回一个RST包,则表示该端口是关闭的。如果目标主机返回一个RST/ACK包,则表示该端口是开放的。

进阶用法

nmap是一款常用的网络扫描和安全评估工具,它可以用于发现网络上的主机、端口和服务等信息。除了基本的扫描功能外,nmap还提供了一些进阶用法,下面是一些示例:

指定端口范围扫描:可以使用"-p"参数指定要扫描的端口范围。例如,"nmap -p 1-100 192.168.0.1"表示扫描192.168.0.1主机上的1到100号端口。

指定扫描类型:nmap支持多种扫描类型,如TCP全连接扫描、SYN半开放扫描、UDP扫描等。可以使用"-s"参数指定扫描类型。例如,"nmap -sS 192.168.0.1"表示使用TCP全连接扫描方式对192.168.0.1进行扫描。

指定脚本扫描:nmap内置了许多脚本,可以用于执行各种安全评估任务。可以使用"–script"参数指定要执行的脚本。例如,"nmap --script vuln 192.168.0.1"表示执行漏洞扫描脚本对192.168.0.1进行扫描。

指定输出格式:可以使用"-o"参数指定扫描结果的输出格式。例如,"nmap -oN output.txt 192.168.0.1"表示将扫描结果保存到output.txt文件中。

扫描速度控制:可以使用"-T"参数指定扫描的速度。速度级别包括0(最慢)到5(最快)。例如,"nmap -T4 192.168.0.1"表示使用较快的扫描速度对192.168.0.1进行扫描。


image.png

image.png

常见端口及服务

常见端口及其对应的服务如下:

80端口:HTTP(超文本传输协议)服务,默认用于Web浏览器访问网页。

443端口:HTTPS(安全超文本传输协议)服务,默认用于加密的Web浏览器访问网页。

21端口:FTP(文件传输协议)服务,默认用于文件传输。

22端口:SSH(安全外壳协议)服务,默认用于远程登录和安全文件传输。

25端口:SMTP(简单邮件传输协议)服务,默认用于发送电子邮件。

110端口:POP3(邮局协议版本3)服务,默认用于接收电子邮件。

143端口:IMAP(互联网消息访问协议)服务,默认用于接收电子邮件。

53端口:DNS(域名系统)服务,默认用于将域名解析为IP地址。

3389端口:RDP(远程桌面协议)服务,默认用于远程控制计算机。

3306端口:MySQL数据库服务,默认用于数据库访问。

image.png

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
11月前
|
网络协议
Nmap 中的各种端口扫描技术
Nmap 中的各种端口扫描技术
554 0
|
11月前
|
SQL Oracle 关系型数据库
Havij功能详解
Havij功能详解
Havij功能详解
|
11月前
|
网络协议 安全 生物认证
一文带你从了解到精通Nmap扫描器
一文带你从了解到精通Nmap扫描器
|
11月前
|
SQL 安全 数据库
sql注入技术
sql注入技术
|
11月前
|
安全 Java 编译器
关于 Python 3.13 你所需要知道的几点
关于 Python 3.13 你所需要知道的几点
239 14
关于 Python 3.13 你所需要知道的几点
|
11月前
|
XML 前端开发 Java
【Spring】@RequestMapping、@RestController和Postman
【Spring】@RequestMapping、@RestController和Postman
169 2
【Spring】@RequestMapping、@RestController和Postman
|
11月前
|
安全 Python
Python 高级编程:高效读取 txt 文件的技巧与实践
在 Python 中,读取 txt 文件是常见操作。本文介绍了使用 `with` 语句自动管理文件资源、逐行读取文件、读取特定字节范围内容、处理编码问题以及使用缓冲读取提高性能等高级方法,确保代码高效且安全。通过这些技巧,你可以更灵活地处理文件内容,并避免资源泄漏等问题。原文链接:https://www.wodianping.com/app/2024-10/44183.html
144 18
|
11月前
|
存储 Java 数据库
使用 AuraDB 免费版构建 Java 微服务
使用 AuraDB 免费版构建 Java 微服务
119 11
|
11月前
|
设计模式 安全 Java
Java Iterator(迭代器)详解
在Java中,`Iterator`是一种设计模式,用于遍历如`List`、`Set`等集合,提供统一访问元素的方式而不暴露内部结构。它包括`hasNext()`、`next()`和`remove()`方法,通过集合的`iterator()`方法获取实例,可用于安全删除元素,避免`ConcurrentModificationException`。
147 14
|
11月前
|
SQL 监控 安全
sql注入场景与危害
sql注入场景与危害