【工具进阶】使用 Nmap 进行有效的服务和漏洞扫描
在渗透测试中,Nmap 是一款功能强大的经典工具。其应用场景广泛,包括主机发现、端口扫描、服务检测等。然而,要充分发挥 Nmap 的潜力,需要遵循科学的流程和规范。本文将为您详细介绍如何使用 Nmap 进行高效的渗透测试,同时分享一些常见的注意事项和优化建议。
1. 主机发现
主机发现是使用 Nmap 的第一步,其目的是确定网络中有哪些 IP 地址处于活动状态。直接对整个 C 段进行大规模扫描并不推荐,因为这样会产生大量流量,极易引起目标的注意和防御。正确的操作方法是采用低流量的扫描方式,逐步缩小目标范围。
以下是主机发现的基本命令:
sudo nmap -sn 192.168.1.0/24
-sn 参数用于执行 ping 扫描,仅检测哪些主机在线,而不进行端口扫描。例如,在一个 C 段中可能只有三到五个 IP 是活动的,这样可以大幅减少后续扫描的时间和资源消耗。
2. 全端口扫描
在完成主机发现后,可以针对每个在线的 IP 地址进行全端口扫描。此步骤的目的是列出主机上所有开放的端口。
示例命令如下:
sudo nmap -p- 192.168.1.1
-p- 参数表示扫描所有端口(0-65535)。单个 IP 地址的全端口扫描大约会产生 4MB 左右的流量,这在可接受范围内。
为了进一步筛选开放的端口,可以使用以下命令:
sudo nmap -p- 192.168.1.1 --open
--open 参数用于仅显示处于开放状态的端口,避免冗余信息干扰。
3. 服务与版本检测
在确定开放端口后,需要进一步探测端口上运行的服务及其版本信息。这一步对于判断潜在的漏洞非常关键。
示例命令:
sudo nmap -p21,22,23 -sV 192.168.1.1
-sV 参数用于探测服务的版本信息。通过这一过程,可以判断服务是否存在已知漏洞,从而为后续的漏洞利用打下基础。
Nmap 的服务探测(
-sV参数)主要基于网络层信息,虽然足够准确,但在某些情况下可能达不到应用层的精确度。如果需要更高精度,可以结合 Metasploit Framework (MSF) 的模块进行探测。MSF 会通过发送应用层探测包提供更准确的结果。
Nmap 作为一款经典工具,其指纹库和漏洞库一直以来都非常全面,这也是它经久不衰的重要原因。尽管一些新兴工具在扫描速度和性能上可能优于 Nmap,但在指纹识别方面依然无法企及。因此,建议在遇到某个端口服务时,务必使用 Nmap 进行扫描。Nmap 会通过收集服务的指纹信息和发包特征进行综合判断,其结果通常是很准确的。
然而,Nmap 的局限性也源于它的优秀。由于 Nmap 发包特征过于明显,蓝方通常能够轻松识别和标记这些流量特征,这使得它在隐蔽性和灵活性方面稍显不足。这也成为它在某些场景中被逐渐淡化的主要原因。
话又说回来,在靶机渗透,乃至OSCP等考试过程中,目标机器对 Nmap 并没有实网环境中那么多的检测或限制,因此使用 Nmap 已经完全足够,且能十分优秀地完成渗透任务。
4. 漏洞探测
Nmap 的漏洞探测是通过 Nmap 脚本引擎 (NSE) 实现的。NSE 提供了一个丰富的脚本库,包含了多种功能强大的脚本,这些脚本能够自动化执行不同类型的扫描任务,如服务检测、漏洞扫描以及信息收集等。通过这些脚本,Nmap 能够高效识别目标系统中从服务漏洞到配置错误的各种安全漏洞。
NSE 脚本文件存储在以下目录中:
/usr/share/nmap/scripts
该目录中存放着大量的脚本文件,用户可以根据实际需求选择适当的脚本来进行漏洞探测。脚本的命名通常能反映其功能,因此可以根据目标系统的特点,选择合适的脚本进行扫描。
基本用法
在 Nmap 中进行漏洞探测时,常用的参数是 --script,它允许用户指定要运行的脚本或脚本类别。通过该参数,Nmap 会根据选择的脚本来执行相应的漏洞探测任务。以下是两种常见的用法:
- 执行所有漏洞相关的脚本
sudo nmap --script=vuln -p22,80,8088 192.168.1.1
--script=vuln:运行所有与漏洞探测相关的 NSE 脚本。Nmap 会自动根据目标主机的开放端口选择合适的漏洞扫描脚本。扫描内容涵盖了常见的漏洞类型,如远程代码执行、信息泄露、权限提升等。
- 执行特定协议的漏洞扫描
sudo nmap --script=smb* 192.168.1.1
-
--script=smb*:运行所有以 “smb” 开头的脚本,这些脚本主要用于扫描与 SMB 协议相关的漏洞。常见的漏洞包括弱密码、配置错误、历史漏洞等。 -
脚本调优:可以使用
--script-args参数传递额外的选项和参数,以调整脚本的行为。例如,可以设置http-user-agent或smb-username等参数。
常见的漏洞探测脚本
Nmap 脚本库包含了大量的漏洞探测脚本,以下是一些常用的脚本及其功能:
vuln/ms08_067_netapi:用于检测 Windows 系统上的 MS08-067 漏洞(广为人知的 SMB 漏洞)。smb-vuln-ms17-010:用于检测 Windows 上的 EternalBlue 漏洞,该漏洞导致了 WannaCry 等勒索病毒的传播。http-vuln-cve2017-5638:检测 Apache Struts 2 上的远程代码执行漏洞(CVE-2017-5638)。ftp-vsftpd-backdoor:用于检测是否存在特定版本的 vsftpd FTP 服务漏洞,该漏洞会使系统受到远程攻击。smb-enum-shares:列出目标系统共享的文件夹,可以帮助识别潜在的敏感信息泄露。
5. 理解端口与服务的关联
需要注意的是,端口号并不能直接与服务类型划等号。例如,虽然 21 端口默认运行 FTP 服务,但管理员可以将其配置为其他用途。类似地,80 端口不一定承载 Web 服务,也可能运行 FTP 或 SSH 服务。靶机通常喜欢将服务配置到非传统端口,例如将 SSH 服务设置在 2222 端口,或将 MySQL 服务运行在 33060 端口。
因此,避免固化思维显得尤为重要。正确的方法是依据 Nmap 等工具提供的服务指纹识别结果,而非仅凭默认端口号下结论。
总结
本文分享了一些关于 Nmap 的使用建议和方法论,希望对大家有所启发。
科学的操作流程和灵活的工具选择,是提升渗透测试效率的关键。通过合理利用 Nmap 的功能,您可以更好地发现目标网络中的安全隐患,为后续的漏洞挖掘奠定坚实基础。
相关文章:
【工具进阶】使用 Nmap 进行有效的服务和漏洞扫描
在渗透测试中,Nmap 是一款功能强大的经典工具。其应用场景广泛,包括主机发现、端口扫描、服务检测等。然而,要充分发挥 Nmap 的潜力,需要遵循科学的流程和规范。本文将为您详细介绍如何使用 Nmap 进行高效的渗透测试,同…...
【工具推荐】XSS 扫描器-XSStrike
介绍 XSStrike 是一个跨站点脚本检测套件,配备四个手写解析器、一个智能有效载荷生成器、一个强大的模糊测试引擎以及速度极快的爬虫。XSStrike 不会像其他工具一样注入有效载荷并检查其是否有效,而是使用多个解析器分析响应,然后通过与模糊…...
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
概念 事务定义 事务,就是一组操作数据库的动作集合。事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。…...
Zabbix5.0版本(监控Nginx+PHP服务状态信息)
目录 1.监控Nginx服务状态信息 (1)通过Nginx监控模块,监控Nginx的7种状态 (2)开启Nginx状态模块 (3)配置监控项 (4)创建模板 (5)用默认键值…...
C# 设计模式概况
什么是设计模式 大家熟知的GOF23种设计模式,源自《Design Patterns: Elements of Reusable Object-Oriented Software》一书,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著,四人组Gang of Four简称GOF。总结了在面向…...
Nginx 配置 SSL(HTTPS)详解
Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。 随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务…...
论文解读之Generative Dense Retrieval: Memory Can Be a Burden
本次论文解读,博主带来生成式稠密检索:记忆可能成为一种负担的论文分享 一、简介 生成式检索根据给定的查询,自回归地检索相关的文档标识符,在小规模的文档库中表现不错,通过使用模型参数记忆文档库,生成…...
RTC:实时时钟
RTC:实时时钟 1、实时时钟2、闹钟中断3、秒中断4、输出功能5、BKP的读写6、BKP的侵入事件 1、实时时钟 ①RTC.c #include "RTC.h"/*** brief:RTC初始化函数*/ RCC_PeriphCLKInitTypeDef RTCPeriphClkInit; //RTC时钟配置结构体 RTC_HandleT…...
mqtt python rtsp拉流图传测试
GitHub - robmarkcole/mqtt-camera-streamer: Stream images from a connected camera over MQTT, view using Streamlit, record to file and sqlite 用这个项目,按照readme配置,把config里面的ip配置成接收端的ip地址。 该装的包装完之后,…...
win32汇编环境,对话框程序中通过资源显示bmp图像
;运行效果 ;win32汇编环境,对话框程序中通过资源显示bmp图像 ;通过资源的方式,会把图像固定在exe文件里,会变大。通过读取文件的方式,没有固定在exe文件里,也可以随时换图像文件,所以exe文件较小 ;直接抄进RadAsm可编译…...
《探索人工智能的多元学派:符号主义、连接主义与行为主义》
在人工智能发展的进程中,不同学派从各自的角度诠释着智能的本质。其中符号主义、连接主义和行为主义学派占据着重要地位,它们以独特的方式推动着人工智能的发展。 符号主义学派:逻辑推理的核心 符号主义学派认为人工智能源于对逻辑符号的处…...
2024年终总结及计划
24年收获不少,早就想总结下,但是有的问题不想去思考,也不想去面对,就晚了几天,趁着加班总结反思下。 一、计划完成情况 1、生活 ①运动:继续坚持每周慢跑15公里,这是必须要做的。另外&#x…...
数据挖掘——关联规则挖掘
数据挖掘——关联数据挖掘 关联数据挖掘关联规则关联规则挖掘问题:具体挖掘过程Apriori 产生关联规则 关联数据挖掘 关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。 关联规则反映一个事物与…...
JVM实战—9.线上FGC的几种案例
大纲 1.如何优化每秒十万QPS的社交APP的JVM性能(增加S区大小 优化内存碎片) 2.如何对垂直电商APP后台系统的FGC进行深度优化(定制JVM参数模版) 3.不合理设置JVM参数可能导致频繁FGC(优化反射的软引用被每次YGC回收) 4.线上系统每天数十次FGC导致频繁卡顿的优化(大对象问题…...
STM32-BKP备份寄存器RTC实时时钟
一、原理 Unix: 一些系统是使用32bit有符号数存储,实际范围为-2,147,483,648到2,147,483,647即~ 经过计算int32数据会在2038年1月19日溢出,可以看到转换的为北京时间。 STM32的时间戳为无符号时间戳。 我们需要把秒计数器的时间通过计算…...
HTML-文本标签
历史上,网页的主要功能是文本展示。所以,HTML 提供了大量的文本处理标签。 1.<div> <div>是一个通用标签,表示一个区块(division)。它没有语义,如果网页需要一个块级元素容器,又没…...
香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录
1 说明 我依照官方手册编译单独编译linux内核,安装后重启出现内核启动失败的问题,编译和安装步骤如下:# 1. 克隆源码 git clone --depth1 -b orange-pi-6.1-rk35xx https://github.com/orangepi-xunlong/linux-orangepi# 2 配置源码 make rockchip_linu…...
嵌入式应用软件开发中C语言方向面试题
嵌入式应用软件开发中C语言方向面试题随笔 前言一、C语言基础二、嵌入式开发相关三、硬件相关知识五、实际编程问题前言 做嵌入式开发这么多年了,简单记录下C语言方向常见面试题,这里是应用软件方向的。 一、C语言基础 C语言的指针与数组的区别是什么?指针:指针是一个变量…...
linux 系统配置ip
最常见的配置方法是通过 DHCP 获取动态 IP 地址,或者手动配置一个静态 IP 地址。下面我将详细说明这两种常见的配置方法。 通过 DHCP 自动获取 IP 地址 如果你的开发板连接到网络(比如通过网线或者 Wi-Fi),并且网络环境支持 DHCP…...
低代码开发:开启企业数智化转型“快捷键”
一、低代码开发浪潮来袭,企业转型正当时 在当今数字化飞速发展的时代,低代码开发已如汹涌浪潮,席卷全球。从国际市场来看,诸多企业巨头纷纷布局低代码领域,像微软的 PowerApps、OutSystems 等平台,凭借强大…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...
