LanYunのBlog

LanYunのBlog

马上订阅 LanYunのBlog RSS 更新: https://lanyundev.com/atom.xml

记录一下关于nmap命令

2022年4月11日 16:51

前言&介绍

软件官网Nmap中文参考指南在线工具—–用于匿名化Nmap扫描原理与用法一种避开Nmap操作系统特征识别法的手段nmap端口扫描1nmap端口扫描2

Mac安装: 在终端中输入brew install nmap(如果未安装Homebrew,需在之前输入ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null)

以下介绍来自维基百科:
Nmap**(网络映射器)是一款用于网络发现安全审计网络安全工具,它是自由软件。软件名字Nmap是Network Mapper的简称。通常情况下,Nmap用于:

  • 列举网络主机清单
  • 管理服务升级调度
  • 监控主机
  • 服务运行状况

Nmap可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。 它是网络管理员必用的软件之一,用以评估网络系统安全。

Nmap 是不少黑客脚本小子爱用的工具 。系统管理员可以利用Nmap来探测工作环境中未经批准使用的服务器,黑客通常会利用Nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Nmap通常用在信息搜集阶段,用于搜集目标机主机的基本状态信息。扫描结果可以作为漏洞扫描漏洞利用权限提升阶段的输入。例如,业界流行的漏洞扫描工具Nessus与漏洞利用工具Metasploit都支持导入Nmap的XML格式结果,而Metasploit框架内也集成了Nmap工具(支持Metasploit直接扫描)。

Nmap不仅可以用于扫描单个主机,也可以适用于扫描大规模的计算机网络(例如,扫描英特网上数万台计算机,从中找出感兴趣的主机和服务)。

核心功能

主机发现

用于发现目标主机是否处于活动状态。
Nmap 提供了多种检测机制,可以更有效地辨识主机。例如可用来列举目标网络中哪些主机已经开启,类似于Ping命令的功能。

端口扫描

用于扫描主机上的端口状态。
Nmap可以将端口识别为开放(Open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)、开放或过滤(Open|Filtered)、关闭或过滤(Closed|Filtered)。默认情况下,Nmap会扫描1660个常用的端口,可以覆盖大多数基本应用情况。

版本侦测

用于识别端口上运行的应用程序与程序版本。
Nmap目前可以识别数千种应用的签名(Signatures),检测数百种应用协议。而对于不识别的应用,Nmap默认会将应用的指纹(Fingerprint)打印出来,如果用户确知该应用程序,那么用户可以将信息提交到社区,为社区做贡献。

操作系统侦测

用于识别目标主机的操作系统类型、版本编号及设备类型。
Nmap目前提供1500个操作系统或设备的指纹数据库,可以识别通用PC系统、路由器、交换机等设备类型。

防火墙/IDS规避和哄骗

Nmap提供多种机制来规避防火墙、IDS的的屏蔽和检查,便于秘密地探查目标主机的状况。
基本的规避方式包括:数据包分片、IP诱骗、IP伪装、MAC地址伪装。

NSE脚本引擎

NSE是Nmap最强大最灵活的特性之一,可以用于增强主机发现、端口扫描、版本侦测和操作系统侦测等功能,还可以用来扩展高级的功能如web扫描、漏洞发现和漏洞利用等。Nmap使用Lua语言来作为NSE脚本语言,目前的Nmap脚本库已经支持350多个脚本。

Nmap部分命令和一些用法

  • Nmap 基本指令
1
nmap [ <扫描类型> ...] [ <选项> ] { <扫描目标说明> }
  • 全方位扫描(包括Host Discovery、端口扫描、端口服务版本扫描、OS类型扫描及默认脚本扫描):
1
nmap -A target_ip
  • Ping扫描:
1
nmap -sn target_ip
  • 快速端口扫描(前100个常用端口):
1
nmap -F target_ip
  • 版本扫描:
1
nmap -sV target_ip 
  • 作业系统类型扫描:
1
nmap -O target_ip
  • 运行标记为safe的nse script
1
nmap -sC target_ip
  • 运行完整tcp握手扫描(虽然nmap默认使用tcp半开放扫描,即选项-sS。但却容易被今日大多信息安全厂商入侵侦测系统发现,因此使用“完整握手扫描-sT”还比“隐形扫描-sS”来得更隐匿)
1
nmap -sT target_ip
  • 发送碎片数据包,躲避ids侦测和绕过防火墙(8-bytes为单位),但实际上碎片数据包特征过于明显,不建议于实际红队攻击中使用
1
nmap -f target_ip
  • 使用同网段上闲置主机(zombie_host)作为跳板扫描
1
nmap -sI zombie_host:zombie_port target_ip
  • 使用大量虚假的源地址,混淆被扫描方日后鉴识、分析的能力,即诱饵扫描
1
nmap -D ip1,ip2,ip3,... target_ip  

1
nmap -D RND:10 target_ip (随机产生10组ipv4掩护)

如果希望对某台主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用了改选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。

命令形式:

nmap –T4 –A –v targethost

其中-A选项用于使用进攻性(Aggressive)方式扫描;-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态.(使用-vv可以获得更好的效果)

主机发现的探测方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。

-sn: Ping Scan 只进行主机发现,不进行端口扫描。

-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。...

剩余内容已隐藏

查看完整文章以阅读更多