一、背景介绍

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Nmap 常被跟评估系统漏洞软件Nessus 混为一谈。Nmap 以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。

二、资源装备

  1. 安装好Kali Linux的虚拟机一台;
  2. 整装待发的小白一个。

三、战略安排

3.1 nmap基本语法使用查看,如下图所示。

命令:nmap --help

python使用nmap实现主机存活探测 nmap检测存活主机_nmap安装


3.2 主机操作系统探测帮助信息,如下图所示。

-O:Enable os detection

对主机操作系统进行探测。

--osscan-guess:Guess os more aggressively

对主机操作系统进行模糊探测

优点:对主机操作系统探测结果给出更多的可能性;

缺点:追求速度使得扫描结果的准确性降低。

python使用nmap实现主机存活探测 nmap检测存活主机_nmap命令_02


3.3 实战扫描,如下图所示。

3.3.1 扫描目标主机信息,如下图所示。

命令:nmap -O 192.168.1.30

扫描结果:

Host is up:表示该主机存活

Running:主机操作系统信息

Os details:操作系统信息

Network Distance:网络距离(以跳为单位)

python使用nmap实现主机存活探测 nmap检测存活主机_nmap扫描局域网存活主机_03


3.3.2 不同的系统查看系统内核信息的命令,如下图所示。

Linux系统:uname -a

Windows系统:systeminfo

python使用nmap实现主机存活探测 nmap检测存活主机_nmap安装_04

python使用nmap实现主机存活探测 nmap检测存活主机_nmap安装_05


3.3.3 详细信息扫描,如下图所示。

命令:nmap -A -O 192.168.1.30

Service:服务

Version:版本

Port:端口

State:状态

Open:端口处于开放状态

Closed:端口处于关闭状态

Filtered:过滤的,由于报文无法到达指定端口,nmap不能决定端

口的开放状态,这主要是由于网络或者主机安装了一些防火墙所导致的。

Unfiltered(未被过滤的):当nmap不能确定端口是否开放的时候所打上的状态,这种状态和filtered的区别在于:unfiltered的端口能被nmap访问,但是nmap根据返回的报文无法确定端口的开放状态,而filtered的端口直接就没就没能够被nmap访问。

Open|filtered状态,这种状态主要是nmap无法区别端口处于open状态还是filtered状态。

Closed|filtered状态,这种状态主要出现在nmap无法区分端口处于closed还是filtered时。

python使用nmap实现主机存活探测 nmap检测存活主机_nmap扫描局域网存活主机_06


3.3.4 结果解析,如下图所示。

Mac Address:主机Mac地址

Service Info :OS: 操作系统信息

python使用nmap实现主机存活探测 nmap检测存活主机_nmap命令_07