Nmap工具的使用

简介: nmap是linux最早的网络扫描工具和嗅探工具包,它可以用来扫描网络上电脑开放的网络连接端,确定哪些服务运行在那些连接端,并且推断出计算机运行的是哪个操作系统。它的基本功能有三个,一是探测主机是否在线,然后扫描主机端口,还可以推断主机所使用的操作系统是哪个

Nmap工具的使用

nmap是linux最早的网络扫描工具和嗅探工具包,它可以用来扫描网络上电脑开放的网络连接端,确定哪些服务运行在那些连接端,并且推断出计算机运行的是哪个操作系统。它的基本功能有三个,一是探测主机是否在线,然后扫描主机端口,还可以推断主机所使用的操作系统是哪个


1.探测网络内的存活主机              nmap -sn (本机ip地址前三位,最后一位为*号)


2.检测目标主机操作系统                nmap -O (目标ip地址)


3.检测目标服务版本号                  nmap -sV -p (端口,端口)(目标IP地址)


4.检测是否存在特定安全漏洞            nmap --script smb-vuln-ms17-010.nse (目标ip){ms17-010是永恒之蓝漏洞}          显示VULNERABLE即为存在该漏洞


-A    启用操作系统检测和版本检测


-P    指定扫描tcp端口

-sU   扫描udp端口



Nmap是一种用来发现网络中主机和服务的安全扫描工具,从而能够产生一个网络“地图”,为了完成这个功能,nmap会向每个目标主机发送特定的报文,从而从目标主机返回报文(或者无返回报文)来判断目标主机的属性(如:开放的端口,所使用的操作系统,操作系统的类型等信息)


本文主要讨论nmap对端口进行扫描中,当nmap向目标主机发送报文并根据返回报文从而认定端口的6种状态的含义(注意:这六种状态只是namp认为的端口状态,例如:有些主机或者防火墙会返回一些不可靠的报文从而妨碍nmap对端口开放问题的确认)。


Open:端口处于开放状态,例如:当nmap使用TCP SYN对目标主机某一范围的端口进行扫描时,我们知道 TCP SYN报文是TCP建立连接的第一步,所以,如果目标主机返回SYN+ACK的报文,我们就认为此端口开放了并且使用了TCP服务。


Closed:端口处于关闭状态。例如:TCP SYN类型的扫描,如果返回RST类型的报文,则端口处于管理状态。这里我们值得注意的是关闭的端口也是可访问的,只是没有上层的服务在监听这个端口,而且,只是在我们扫描的这个时刻为关闭,当我们在另一个时间段进行扫描的时候,这些关闭的端口可能会处于open的状态。


Filtered(过滤的):由于报文无法到达指定的端口,nmap不能够决定端口的开放状态,这主要是由于网络或者主机安装了一些防火墙所导致的。当nmap收到icmp报文主机不可达报文(例如:type为3,code为13(communication administratively prohibit)报文)或者目标主机无应答,常常会将目标主机的状态设置为filtered。


Unfiltered(未被过滤的),当nmap不能确定端口是否开放的时候所打上的状态,这种状态和filtered的区别在于:unfiltered的端口能被nmap访问,但是nmap根据返回的报文无法确定端口的开放状态,而filtered的端口直接就没就没能够被nmap访问。端口被定义为Unfilterd只会发生在TCP ack扫描类型时当返回RST的报文。而端口被定义为filtered 状态的原因是是报文被防火墙设备,路由器规则,或者防火墙软件拦截,无法送达到端口,这通常表现为发送NMAP的主机收到ICMP报错报文,如:TYPE为3,code为13的报文(通信被认为的禁止 communication administratively prohibited),或者主机通过多次重复发送没有收到任何回应)。


Open|filtered状态,这种状态主要是nmap无法区别端口处于open状态还是filtered状态。这种状态只会出现在open端口对报文不做回应的扫描类型中,如:udp,ip protocol ,TCP null,fin,和xmas扫描类型。


 Closed|filtered状态,这种状态主要出现在nmap无法区分端口处于closed还是filtered时。此状态只会出现在IP ID idle scan

相关文章
|
6月前
|
搜索推荐 JavaScript 关系型数据库
基于用户评论分析挖掘的旅游景点推荐系统
本研究基于用户评论分析,构建个性化旅游景点推荐系统。融合自然语言处理与情感分析技术,挖掘游客真实偏好,结合Django、Vue.js与MySQL等技术实现系统开发,提升旅游决策效率与体验质量,推动旅游产业智能化发展。
|
存储 缓存 Java
JUC并发—10.锁优化与锁故障
本文主要介绍了:标志位修改场景优先使用volatile(服务优雅停机)、数值递增场景优先使用Atomic类(心跳计数器)、共享变量仅对当前线程可见的场景优先使用ThreadLocal(edits log的处理)、读多写少需要加锁的场景优先使用读写锁(服务注册表的并发读写)、尽量减少线程对锁占用时间(edits log分段加锁)、尽量减少线程对数据加锁的粒度(库存分段扣减)、尽量按不同功能进行锁分离(避免循环中加锁)、尽量减少高并发下线程对锁的竞争(多级缓存)、锁故障之死锁总结、无锁化编程。
|
安全
【史上最全面esp32教程】激超声波模块测距篇
【史上最全面esp32教程】激超声波模块测距篇
1418 0
|
编解码 Shell 开发工具
05-adb命令之查看设备信息
05-adb命令之查看设备信息
|
Android开发
Android应用实现开机自启动的一种较好的方式
Android应用实现开机自启动的一种较好的方式
|
运维 Linux 网络安全
2.3 为什么建议使用虚拟机来安装Linux?
笔者认为,通过虚拟机软件学习是初学者学习 Linux 的最佳方式。
509 0
2.3 为什么建议使用虚拟机来安装Linux?
|
10天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
2981 20
|
7天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
2772 5