概念

NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包。

 其基本功能有三个:

(1)是扫描主机端口,嗅探所提供的网络服务

(2)是探测一组主机是否在线

(3)还可以推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本

nmap端口状态解析
open : 应用程序在该端口接收 TCP 连接或者 UDP 报文。 
closed :关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听。
filtered :由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙。
unfiltered :未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。 只有用于映射防火墙规则集的 ACK 扫描才会把端口分类到这个状态。
open | filtered :无法确定端口是开放还是被过滤, 开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP,IP协议,FIN, Null 等扫描会引起。
closed|filtered:(关闭或者被过滤的):无法确定端口是关闭的还是被过滤的

nmap基本参数及使用

  • -sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批的链接请求以及错误信息。
  • -sP ping扫描,加上这个参数会使用ping扫描,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping,却实际存在。
  • -sS 半开扫描,一般不会记入日志,不过需要root权限。
  • -sU udp扫描,但是一般不可靠。
  • -sA 用来穿过防火墙的规则集,速度慢。
  • -sV 端口服务及版本
  • -A 包含了-sV,-O,全面系统检测,启动脚本检测,扫描等。
  • -P0 扫描之前不使用ping,适用于防火墙禁止ping,比较有用。
  • -v 显示扫描进程
  • -O 探测目标系统的漏洞,容易误报
  • -oN/-oX/-oG 将报告写入文件,格式分别为正常(自定义.txt),XML,grepable.
  • -iL 扫描主机列表
  • -sC –script=default 默认的脚本扫描,主要是搜集各种应用服务的信息

img

namp扫描应用

在网络上寻找所有在线主机

nmap -sP 18.16.202.0/24
or 
nmap -sP 18.16.202.*

在网络上寻找一定范围内的主机

nmap -sP 18.16.202.100-255

扫描tcp端口:

指定端口范围使用-p参数,如果不指定要扫描的端口,Nmap默认扫描从1到1024再加上nmap-services列出的端口

nmap-services是一个包含大约2200个著名的服务的数据库,Nmap通过查询该数据库可以报告那些端口可能对应于什么服务器,但不一定正确。

所以正确扫描一个机器开放端口的方法是上面命令。-p1-65535

注意,nmap有自己的库,存放一些已知的服务和对应端口号,假如有的服务不在nmap-services,可能nmap就不会去扫描,这就是明明一些端口已经是处于监听状态,nmap默认没扫描出来的原因,需要加入-p参数让其扫描所有端口。

虽然直接使用nmap也可以扫描出开放的端口,但是使用-p1-65535 能显示出最多的端口

区别在于不加-p 时,显示的都是已知协议的端口,对于未知协议的端口没显示

$ nmap 18.16.202.169 -p 1-65535
Starting Nmap 7.70 ( https://nmap.org ) at 2019-01-12 14:15 ?D1�������?����??
Nmap scan report for 18.16.202.169
Host is up (0.00070s latency).
Not shown: 65510 closed ports
PORT      STATE    SERVICE
135/tcp   open     msrpc
137/tcp   filtered netbios-ns
139/tcp   open     netbios-ssn
445/tcp   open     microsoft-ds
902/tcp   open     iss-realsecure
912/tcp   open     apex-mesh
1080/tcp  open     socks
1536/tcp  open     ampr-inter
1537/tcp  open     sdsc-lm
1538/tcp  open     3ds-lm
1539/tcp  open     intellistor-lm
1545/tcp  open     vistium-share
1551/tcp  open     hecmtl-db
1552/tcp  open     pciarray
3306/tcp  open     mysql
3389/tcp  open     ms-wbt-server
4537/tcp  open     wssauthsvc
5040/tcp  open     unknown
5357/tcp  open     wsdapi
8118/tcp  open     privoxy
14264/tcp open     unknown
14280/tcp open     unknown
18386/tcp open     unknown
34642/tcp open     unknown
49152/tcp open     unknown

Nmap done: 1 IP address (1 host up) scanned in 17.87 seconds

不指定:

Starting Nmap 7.70 ( https://nmap.org ) at 2019-01-12 14:15 ?D1�������?����??
Nmap scan report for 18.16.202.169
Host is up (0.00051s latency).
Not shown: 990 closed ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
902/tcp   open  iss-realsecure
912/tcp   open  apex-mesh
1080/tcp  open  socks
3306/tcp  open  mysql
3389/tcp  open  ms-wbt-server
5357/tcp  open  wsdapi
49152/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 6.98 seconds

参考:

给Linux系统/网络管理员的nmap的29个实用例子

Nmap扫描原理与用法

渗透工具用法(三):Nmap 的用法

nmap命令—–基础用法

Nmap基本使用教程

不老的神器:安全扫描器Nmap渗透使用指南

nmap常用命令

nmap常用命令集合

版权声明:本文为hongdada原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hongdada/p/12254834.html