Nmap扫描
Nmap是一款常用的网络扫描工具,它可以扫描目标网络上的主机和服务,帮助安全研究员了解目标网络的拓扑结构和安全情况。
主机探测:Nmap可査找目标网络中的在线主机。默认情况下,Nmap通过4种方式—— ICMP echo请求(ping)、向443端口发送TCP SYN 包、向80端口发送TCP ACK包和ICMP 时间戳请求——发现目标主机。
服务/版本检测:在发现开放端口后,Nmap可进一步检查目标主机的检测服务协议、应用 程序名称、版本号等信息。
操作系统检测:Nmap 向远程主机发送一系列数据包,并能够将远程主机的响应与操作系统 指纹数据库进行比较。如果发现了匹配结果,它就会显示匹配的操作系统。它确实可能无法 识别目标主机的操作系统;在这种情况下,如果您知道目标系统上使用的何种操作系统,可 在它提供的 URL 里提交有关信息,更新它的操作系统指纹数据库。
网络路由跟踪:它通过多种协议访问目标主机的不同端口,以尽可能访问目标主机。Nmap 路由跟踪功能从TTL的高值开始测试,逐步递减TTL,直到它到零为止。
Nmap脚本引擎:这个功能扩充了Nmap的用途。如果您要使用Nmap实现它(在默认情况 下)没有的检测功能,可利用它的脚本引擎手写一个检测脚本。目前,Nmap可检査网络服务 的漏洞,还可以枚举目标系统的资源。
Nmap的基本原理:
是基于网络数据包的发送和接收,通过分析目标主机的响应和行为来获取网络信息。
-
主机发现:Nmap使用不同的技术和方法,如Ping扫描、ARP扫描等,发送网络数据包以确定目标网络上哪些主机处于活动状态。
-
端口扫描:Nmap使用各种扫描技术,如TCP扫描、UDP扫描、SYN扫描等,发送特定的网络数据包来确定目标主机上开放的端口。
-
服务和版本识别:Nmap通过发送特定的网络数据包,并分析目标主机返回的响应,来确定目标主机上运行的服务和软件的版本信息。
-
操作系统识别:Nmap使用不同的技术和方法,如TCP/IP堆栈指纹、TCP/IP堆栈序列号等,来识别目标主机所运行的操作系统类型和版本。
-
脚本扫描:Nmap支持使用脚本进行扫描,这些脚本可用于检测漏洞、执行特定的操作等。
发送特定的网络数据包,分析目标主机返回的响应,来探测和识别目标网络上的主机、服务、开放端口和操作系统信息。它利用各种扫描技术和方法进行探测,并根据响应进行分析和判断。Nmap的灵活性和可定制性使得它成为一种强大的网络扫描工具,广泛应用于网络安全评估、漏洞评估和渗透测试等任务。
Nmap端口扫描工作原理:
1、使用端口扫描技术对目标主机进行端口扫描可以得到目标主机开放的服务程序和运行的系统版本等信息,从而为下一步的系统或漏洞扫描做好准备。端口扫描用于网络安全扫描的第二阶段。
2、端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应。根据扫描结果的结果,TCP开放的端口与进程进行分析判断。而开放的端口即是一个通道,可通过通道对其目标的信息进行收集判断
具体命令:
Network Mapper,一款开源的网络探测器
-采用原始报文方式,可以快速扫描单个主机或大型网络
-识别目标的服务类型、程序版本、防火墙等
1)nmap 命令格式
nmap [扫描类型] [选项]
2)指定扫描类型
-sS:TCP 半开扫描(只发SYN包,不会产生会话日志),速度快
-sT:TCP全开扫描(尝试全连接),结果更准确
-sU:UDP扫描
-sP:使用ICMP扫描,仅用于探测目标是否在线
-O 扫描操作系统
-sV 扫描端口对应的服务版本
3)指定目标端口(p:port 端口)
-p 3389 :扫描指定端口
-p 20-80 :扫描连续的端口
-p 22,80 :扫描多个指定端口
4)端口状态
open : 开放的
filtered :探测报文被目标服务器的防火墙过滤和阻止了
closed :关闭的
探测逻辑:
1、探测存活的主机:nmap -sP 192.168.10.0/24; nmap -sS 192.168.10.0/24 2、探测目标主机的端口号:nmap -sS -p 端口列表 主机列表 3、探测目标主机端口对应的软件信息:nmap -sV -p 端口 主机 4、探测目标主机操作系统信息:nmap -O 主机 5、进一步攻击:密码爆破、漏洞利用、拒绝服务攻击
有哪些常用nmap指令?
1)-A :选项用于使用进攻性方式扫描;
2)-T4: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉;
3)-oX test.xml: 将扫描结果生成 test.xml 文件,如果中断,则结果打不开;
4)-oA test.xml: 将扫描结果生成 test.xml 文件,中断后,结果也可保存;
5)-oG test.txt: 将扫描结果生成 test.txt 文件;
6)-sn : 只进行主机发现,不进行端口扫描。
脚本扫描:
nmap --script=auth [目标IP] //弱口令扫描
nmap --script=vuln [目标IP] //扫描常见漏洞
nmap --script=ftp-brute.nse [目标IP] //扫描弱口令账号,但是所用字典很小
nmap -p 80 --script=http-enum.nse ip //扫描WEB敏感目录
还有哪些常用的扫描工具?
netenum工具、fping工具、nbtscan 工具、ARPing工具、Netdiscover工具、dmitry工具、WAF工具
网络扫描主要技术有哪些?
传统技术:ICMP Echo扫描、ICMP Sweep扫描、Broadcast ICMP扫描、Non-Echo ICMP扫描
高级技术:构造IP包
OpenVAS:(针对操作系统、主机)
OpenVAS背景:
OpenVAS(开放式漏洞评估扫描仪)。是一个功能齐全的漏洞扫描程序。其功能包括未经身份验证和身份验证的测试,各种高级和低级互联网和工业协议,大规模扫描的性能调优以及用于实现任何类型的漏洞测试的强大内部编程语言。 扫描程序从具有较长历史记录和每日更新的源中获取用于检测漏洞的测试。 用户需要一种自动测试的方法,并确保正在运行一种最恰当的最新测试。OpenVAS包括一 个 中 央 服 务 器 和 一 个 图 形 化 的 前 端 ,这个服务器准许用户运行 几种不同的网络漏洞测试(以Nessus攻击脚本语言编写),而且OpenVAS可以经常对其进行更新。OpenVAS所有的代码都符合GPL规范。
OpenVAS作用:
OpenVAS漏洞检测系统。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测系统和应用程序的安全问题。
但是它的最常用途是检测目标网络或主机的安全性。它的评估能力来源于数万个漏洞测试程序,这些程序都是以插件的形式存在。openvas是基于C/S(客户端/服务器),B/S(浏览器/服务器)架构进行工作,用户通过浏览器或者专用客户端程序来下达扫描任务,服务器端负责授权,执行扫描操作并提供扫描结果。其功能包括未经身份验证和身份验证的测试,各种高级和低级互联网和工业协议,大规模扫描的性能调优以及用于实现任何类型的漏洞测试的强大内部编程语言。
OpenVAS 扫描流程:
-
目标选择:用户指定要扫描的目标,可以是单个主机、IP地址范围、子网或域名等。
-
端口扫描:OpenVAS使用Nmap等工具对目标进行端口扫描,确定目标主机上开放的端口和服务。这些信息用于后续的漏洞扫描。
-
漏洞扫描:OpenVAS使用漏洞数据库中的规则和插件,对目标主机上的服务和应用程序进行扫描,识别潜在的安全漏洞。这些规则和插件会尝试利用已知的漏洞来检查目标系统的安全性。
-
漏洞评估:一旦发现潜在漏洞,OpenVAS会评估漏洞的危害程度和可能的攻击路径,并生成相应的报告。评估通常基于漏洞的CVSS(Common Vulnerability Scoring System)评分,该评分系统可以用来衡量漏洞的严重程度。
-
报告生成:OpenVAS会生成详细的扫描报告,包括漏洞的摘要、详细信息、修复建议等。报告通常按照漏洞的严重程度进行排序,以便用户可以优先处理高危漏洞,并采取相应的安全措施。
OpenVAS的基本原理是基于漏洞扫描和评估的,通过扫描目标主机上的服务和应用程序,识别潜在的安全漏洞,并根据漏洞的严重程度进行评估和生成报告。这帮助用户及时发现和修复系统中的安全漏洞,提高系统的安全性。同时,OpenVAS还支持定制规则和插件,用户可根据需求进行漏洞扫描的定制和扩展。
OpenVAS部署:
-
独立安装:可以将OpenVAS直接安装在物理或虚拟机上,这是一种常见的部署方式。用户可以从OpenVAS官方网站下载并安装OpenVAS软件包,在目标主机上进行安装和配置。
-
Docker容器(轻量级的虚拟化技术):OpenVAS也可以通过Docker容器进行部署。Docker容器提供了一种轻量级和可移植的部署方式,用于封装和隔离应用程序及其依赖环境,可以使OpenVAS在不同的平台上快速部署和运行。
-
虚拟机映像:OpenVAS还提供了预先配置好的虚拟机映像,用户可以直接下载和导入到虚拟化平台中,快速搭建OpenVAS环境。
-
云服务:一些云服务提供商也提供OpenVAS的镜像或模板,用户可以在云平台上创建OpenVAS实例,方便进行远程漏洞扫描和评估。
OpenVAS架构:
OpenVAS是一个客户端/服务器架构,它由几个组件组成。
在服务器上(仅限于Linux),用户需要四个程序包:
OpenVAS-Server: 实现基本的扫描功能
OpenVAS-Plugins: 一套网络漏洞测试程序
OpenVAS-LibNASL 和OpenVAS-Libraries: 实现服务器功能所需要的组件
而在客户端上(Windows或Linux均可),用户仅需要OpenVAS客户端。
上图解疑:
gsad 是提供给用户配置任务资源的UI接口的程序。
gvmd 是管理器,主要功能是管理任务和各种资源,当启动扫描任务时,向openvassd发送 扫描请求,接受openvassd的扫描结果。
openvassd 是扫描器,扫描核心,执行扫描任务,执行nasl脚本。
openvas 是基于C/S 和B/S架构工作。
B/S模式 通过浏览器登录gsad ,gsad连接gvmd,使用openvas服务的。安装 gsad gvmd openvassd即可。
C/S模式 是通过命令行 连接gvmd, 使用openvas服务的。需要安装 gvm-cli gvmd openvassd 。
命令行的使用要求高一点,需要了解gmp协议和使用的命令,适合老手。
对于新手来说,建议B/S模式。