知己知彼,百战不殆
Nmap 在黑客帝国(The Matrix)中,连同SSH1的32位元循环冗余校验漏洞,被崔妮蒂用以入侵发电站的能源管理系统。
nmap是一个网络连接端扫描软件。好处是,它可以用隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。
正如大多数工具被用于网络安全的工具,nmap 也是不少黑客爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,而黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。
先用man nmap看看手册是怎么说的
但愿,你和我的手册一样是中文的……
NAME
nmap - 网络探测工具和安全/端口扫描器
SYNOPSIS
nmap [扫描类型…] [选项] {扫描目标说明}
描述
Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的
网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个
主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些
主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),
它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核,
许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。
从手册上要注意的有两点:
1、“nmap的使用形式是 nmap [扫描类型…] [选项] {扫描目标说明}”
2、“所感兴趣的端口表格”是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是
open(开放的),filtered(被过滤的), closed(关闭的),或者unfiltered(未被过滤的)。
Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。 filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知 它是 open(开放的) 还是 closed(关闭的)。 closed(关闭的) |
做个小test,我们来扫描一台主机,比如google.
nmap http://google.com.hk Starting Nmap 6.47 ( Nmap: the Network Mapper ) at 2016-09-27 13:37 CST Nmap scan report for google.com.hk (220.255.2.153) Host is up (0.073s latency). rDNS record for 220.255.2.153: chatenabled.mail.google.com Not shown: 998 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 6.33 seconds |
可以看到,我们探测了http://google.com.hk 发现了它的ip,并且它有两个端口是开放的,一个是80端口,一个是443端口。你可以猜到,它们一个是正常http的端口,一个是给https用的。
我们看到,我们花了6.33秒探测了这个主机——我的破网速!
再试试扫描整个子网
nmap 192.168.16.1/24
Starting Nmap 6.47 ( Nmap: the Network Mapper ) at 2016-09-27 13:45 CST Nmap scan report for 192.168.16.1 Host is up (0.0010s latency). Not shown: 998 closed ports PORT STATE SERVICE 53/tcp open domain 80/tcp open http |
Nmap scan report for 192.168.16.6 Host is up (0.00045s latency). Not shown: 989 closed ports PORT STATE SERVICE 21/tcp open ftp 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 1433/tcp open ms-sql-s 3389/tcp open ms-wbt-server 8080/tcp open http-proxy 9009/tcp open pichat 10000/tcp open snet-sensor-mgmt 10001/tcp open scp-config |
Nmap scan report for 192.168.16.104 Host is up (0.00050s latency). Not shown: 998 closed ports PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn |
Nmap scan report for 192.168.16.117 Host is up (0.00036s latency). Not shown: 997 closed ports PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds …… |
扫描到好多,所以省略,值得注意的是192.168.16.6这台主机,你注意到它开了多少端口吗!我确信单位的这台机子上有点什么!如果你有兴趣,google下相应的端口号与服务的名称,来看看这些开放的端口都是用来干嘛的。
当然,你也可以这样扫描
一个范围内的目标,如下:
nmap 192.168.1.1-100 (扫描IP地址为192.168.1.1-192.168.1.100内的所有主机)
一些小技巧帮助扫描
如果你想看到你扫描的所有主机的列表,用以下命令:
nmap -sL 192.168.1.1/24
扫描除过某一个ip外的所有子网主机,命令:
nmap 192.168.1.1/24 -exclude 192.168.1.1
扫描除过某一个文件中的ip外的子网主机命令
nmap 192.168.1.1/24 -exclude file xxx.txt (xxx.txt中的文件将会从扫描的主机中排除)
扫描特定主机上的80,21,23端口,命令如下
nmap -p80,21,23 192.168.1.1
用Nmap来识别操作系统
我们看下,刚那个192.168.16.6的系统信息。使用-O就可以做到
sudo nmap -O 192.168.16.6 (注意,执行这个需要root权限)
MAC Address: E4:1F:13:C0:FF:C2 (IBM) Device type: general purpose Running: Microsoft Windows XP|2003 OS CPE: cpe:/o:microsoft:windows_xp::sp2 cpe:/o:microsoft:windows_server_2003::sp1 cpe:/o:microsoft:windows_server_2003::sp2 OS details: Microsoft Windows XP SP2 or Windows Server 2003 SP1 or SP2 Network Distance: 1 hop OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 23.63 seconds |
看看我们探测到了什么,它的MAC地址,是E4:1F:13:C0:FF:C2 (IBM)
它的操作系统是Microsoft Windows server 2003,这应该是台windows的服务器。