本章知识点
本章节将介绍在几大主流平台中如何安装Nmap,并介绍多种安装方式,通过对每一步的演示进行解说,让初学者可以很快地掌握安装Nmap技巧,以及如何简单地使用Nmap扫描一个目标地址、一个IP段,从而迈入Nmap渗透测试的大门。
本章选项
表1.1 第一章所需选项
选 项 |
解 释 |
---|---|
-A |
全面扫描/综合扫描 |
Nmap的英文全称是“Network Mapper”,中文为“网络映射器”。Nmap是一款开放源代码的网络探测和安全审核的工具,它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,这些主机提供什么服务(应用程序名和版本),服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一些其他功能。虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息、管理服务升级计划,以及监视主机和服务的运行。
Nmap的基本功能有3个,一是探测一组主机是否在线,其次是扫描主机端口,嗅探所提供的网络服务,还可以推断主机所用的操作系统。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的Ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所使用的操作系统;还可以将所有探测结果记录到各种格式的日志中,供进一步分析操作。
Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。Filtered(被过滤的)意味着防火墙,过滤器或者其他网络障碍阻止了该端口被访问,Nmap无法得知它是Open(开放的)还是Closed(关闭的)。Closed(关闭的)端口上面没有应用程序监听,但是它们随时可能开放。
Nmap——Script功能的使用。在Nmap的安装目录的share/nmap/scripts中,已经有多种写好的脚本提供,使用这些脚本可以轻易地发起渗透测试。
Nmap可以运行在所有的Windows NT版本中,包括Windows 2000、Windows XP、Windows 2003、Windows Vista、Windows 7等。
在浏览器中打开网址“http://nmap.org/download.html ”,在Microsoft Windows binaries中选择下载。
下载完毕后双击安装文件即可安装。
如图1.1所示,阅读Nmap许可协议,点击“I Agree”进行下一步安装。
▲图1.1 Nmap许可协议
如图1.2所示,选择所需要安装的组建,如果不需要安装某些组件可以勾选掉,一般默认安装所有组件,确实无误后点击“Next”进行下一步安装。
▲图1.2 Nmap组件选择
如图1.3所示,选择Nmap安装路径,一般保持默认即可。
▲图1.3 Nmap安装路径
如图1.4所示,Nmap正在安装中。
▲图1.4 Nmap安装
如图1.5所示,在Nmap安装过程中会弹出对话框,询问某些组件的许可协议,选择“I Agrree”进行安装。
▲图1.5 Nmap组件许可
如图1.6所示,选择“Next”进行下一步安装。
▲图1.6 Nmap安装
如图1.7所示,选择您所需要的选项,点击“Next”进行下一步。
▲图1.7 Nmap选项选择
如图1.8所示,点击“Finish”完成安装。
▲图1.8 Nmap安装完成
在如图1.9所示的对话框中选择创建快捷方式,这里保持默认,点击“Next”进行下一步安装。
▲图1.9 Nmap创建快捷方式
如图1.10所示,点击“Finish”完成安装。
▲图1.10 Nmap安装完成
在Linux/Unix中我们可以很方便地通过源码编译安装Nmap,首先在“http://nmap.org/ download.html ”中选择源码进行下载。下载完毕后首先解压压缩包。
root@ubuntu:/home# bzip2 -cd nmap-6.46.tar.bz2 | tar xvf -
nmap-6.46/zenmap/zenmapCore/I18N.py
nmap-6.46/zenmap/zenmapCore/Version.py
nmap-6.46/zenmap/zenmapCore/Paths.py
nmap-6.46/zenmap/COPYING_HIGWIDGETS
…省略…
root@ubuntu:/home#
切换到Nmap目录进行编译。
root@ubuntu:/home# cd nmap-6.46
root@ubuntu:/home/nmap-6.46# ./configure
…省略…
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
no
configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING: 'Makefile.in' seems to ignore the --datarootdir setting
config.status: creating config.h
. .
\`-"'"-'/
} 6 6 {
==. Y ,==
/^^^\ .
/ \ ) Ncat: A modern interpretation of classic Netcat
( )-( )/
-""---""--- /
/ Ncat \_/
( ____
\_.=|____E
Configuration complete.
( ) /\ _ (
\ | ( \ ( \.( ) _____
\ \ \ ` ` ) \ ( ___ / _ \
(_` \+ . x ( .\ \/ \____-----------/ (o) \_
- .- \+ ; ( O \____
(__ +- .( -'.- <. \_____________ ` \ /
(_____ ._._: <_ - <- _- _ VVVVVVV VV V\ \/
. /./.+- . .- / +-- - . (--_AAAAAAA__A_/ |
(__ ' /x / x _/ ( \______________//_ \_______
, x / ( ' . / . / \___' \ /
/ / _/ / + | \ /
' (__/ / \/
/ \
NMAP IS A POWERFUL TOOL -- USE CAREFULLY AND RESPONSIBLY
Configuration complete. Type make (or gmake on some *BSD machines) to compile.
root@ubuntu:/home/nmap-6.46# make
root@ubuntu:/home/nmap-6.46# make install
编译完成后就可以使用Nmap进行渗透测试。
在http://nmap.org/download.html 页面下载RPM安装包,查看一下RPM安装包并安装。
root@ubuntu:~# cd /home/
root@ubuntu:/home# ls
apache nmap-6.46-1.i386.rpm
root@ubuntu:/home# rpm -ivh nmap-6.46-1.i386.rpm
在http://nmap.org/download.html 页面下载Mac OS版本的DMG文件,下载完毕后进行安装。
图1.11所示为Nmap的介绍页面,点击“继续”进行下一步。
▲图1.11 Nmap介绍
阅读如图1.12所示的许可协议,点击“继续”进行下一步安装。
▲图1.12 Nmap许可协议
如图1.13所示,安装程序进行许可协议的再次确认,点击“同意”进行下一步。
▲图1.13 Nmap许可协议
如图1.14所示,选择您所需要的组件,在一般情况下保持默认即可。
▲图1.14 Nmap组件选择
如图1.15所示,确认有充足的空间安装Nmap,点击“安装”。
▲图1.15 确认安装空间
如图1.16所示,看到此页面则表示安装成功。
▲图1.16 Nmap安装完成
如图1.17所示,在Shell终端中输入Nmap命令可以成功打开Nmap并使用。至此在Mac OS下的安装就已经完成。
▲图1.17 Nmap在MAC OS下使用
![]()
Mac OS的安全体系默认不允许安装非安全认证的软件,这需要在系统偏好设置——安全性与隐私当中将“允许从以下位置下载的应用程序”更改为“任何来源”,即可自由安装第三方软件。
Nmap使用TCP/IP协议栈指纹准确地判断目标主机的操作系统类型,Nmap工作原理如表1.2所示。
表1.2 Nmap TCP/IP协议栈指纹
测 试 |
描 述 |
---|---|
T1 |
发送TCP数据包(Flag=SYN)到开放TCP端口 |
T2 |
发送一个空的TCP数据包到开放的TCP端口 |
T3 |
发送TCP数据包(Flag=SYN,URG,PSH,FIN)到开放的TCP端口 |
T4 |
发送TCP数据包(Flag=ACK)到开放的TCP端口 |
T5 |
发送TCP数据包(Flag=SYN)到关闭的TCP端口 |
T6 |
发送TCP数据包(Flag=ACK)到开放的TCP端口 |
T7 |
发送TCP数据包(Flag=URG,PSH,FIN)到关闭的TCP端口 |
如表1.2所示,Nmap对目标主机进行一系列的测试,利用测试结果建立相应目标主机的Nmap指纹,然后Nmap会对指纹进行匹配,最终输出相应的结果。
我们在使用Nmap的时候大多是在命令行下进行的,即使是使用可视化Zenmap也是需要遵循Nmap固定的语法格式的。Nmap的固定语法格式如下:
Nmap【空格】【选项|多选项|协议】【空格】【目标】
其中,选项与多选项之间也是用空格进行分割的,如果某些选项需要指定某些数据,那么在这些选项与指定的数据之间也需要用空格进行分割。
![]()
所有的选项与命令以及选项参数都是用空格进行分割的,有时候选项与参数直接可以不用空格分割,如-p80,-p是选项,80是参数。为了使Nmap语法更加严谨,建议严格按照空格进行分割。
表1.3 本小节所需选项
选 项 |
解 释 |
---|---|
-A |
全面扫描/综合扫描 |
Nmap全面扫描的选项是-A,它可以全面扫描指定IP或域名的所有端口及其目标系统信息等,这需要花费点时间等待Nmap的扫描。
root@Wing:~# nmap -A 192.168.126.131
Starting Nmap 6.40 ( http://nmap.org
) at 2014-06-12 15:43 CST
Nmap scan report for 192.168.126.131
Host is up (0.00040s latency).
Not shown: 977 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4 #FTP服务商是vsftpd,版本是2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230) #允许匿名登录
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) #SSH供应商是OpenSSH 版本是4.7
| ssh-hostkey: 1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)#秘钥
|_2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
23/tcp open telnet Linux telnetd #Telnet服务
25/tcp open smtp Postfix smtpd #Smtp服务
|_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/ stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: 2010-03-17T14:07:45+00:00
|_Not valid after: 2010-04-16T14:07:45+00:00
|_ssl-date: 2014-06-10T10:00:54+00:00; -1d21h42m30s from local time.
53/tcp open domain ISC BIND 9.4.2 #DNS服务端口
| dns-nsid:
|_ bind.version: 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2) #HTTP服务
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
|_http-title: Metasploitable2 - Linux
111/tcp open rpcbind 2 (RPC #100000) #RPC服务
| rpcinfo: #RPC服务详细信息
| program version port/proto service
| 100000 2 111/tcp rpcbind
| 100000 2 111/udp rpcbind
| 100003 2,3,4 2049/tcp nfs
| 100003 2,3,4 2049/udp nfs
| 100005 1,2,3 40529/tcp mountd
| 100005 1,2,3 43983/udp mountd
| 100021 1,3,4 41255/tcp nlockmgr
| 100021 1,3,4 55723/udp nlockmgr
| 100024 1 35526/tcp status
|_ 100024 1 50609/udp status
139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP) #Samba版本为5.X
445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP) #Samba版本为5.X
512/tcp open exec netkit-rsh rexecd
513/tcp open login?
514/tcp open tcpwrapped
1099/tcp open rmiregistry GNU Classpath grmiregistry
|_rmi-dumpregistry: Registry listing failed (No return data received from server)
1524/tcp open shell Metasploitable root shell
2049/tcp open nfs 2-4 (RPC #100003)
2121/tcp open ftp ProFTPD 1.3.1
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
| mysql-info: Protocol: 10
| Version: 5.0.51a-3ubuntu5
| Thread ID: 21
| Some Capabilities: Connect with DB, Compress, SSL, Transactions, Secure Connection
| Status: Autocommit
|_Salt: fRHP:oB9:Tvy|$:6@}uU
5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open vnc VNC (protocol 3.3)
| vnc-info:
| Protocol version: 3.3
| Security types:
|_ Unknown security type (33554432)
6000/tcp open X11 (access denied)
6667/tcp open irc Unreal ircd
| irc-info:
| server: irc.Metasploitable.LAN
| version: Unreal3.2.8.1. irc.Metasploitable.LAN
| servers: 1
| users: 1
| lservers: 0
| lusers: 1
| uptime: 0 days, 23:24:39
| source host: A5B014C0.D9689365.FFFA6D49.IP
|_ source ident: nmap
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
|_http-favicon: Apache Tomcat
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
|_http-title: Apache Tomcat/5.5
MAC Address: 00:0C:29:E0:2E:76 (VMware) #目标主机MAC地址
Device type: general purpose #设备类型
Running: Linux 2.6.X #目标主机操作系统
OS CPE: cpe:/o:linux:linux_kernel:2.6 #目标主机中央处理单元
OS details: Linux 2.6.9 - 2.6.33 #目标主机详细资料
Network Distance: 1 hop #网络距离
Service Info: Hosts: metasploitable.localdomain, localhost, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_nbstat: NetBIOS name: METASPLOITABLE, NetBIOS user: , NetBIOS MAC:
| smb-os-discovery: #SMB系统发现
| OS: Unix (Samba 3.0.20-Debian) #操作系统为Unix,Samba版本为2.0.20
| NetBIOS computer name: #NetBIOS计算机名称
| Workgroup: WORKGROUP #所在工作组
|_ System time: 2015-06-10T06:00:51-04:00 #系统时间
TRACEROUTE
HOP RTT ADDRESS
1 0.41 ms 192.168.126.131
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/
.
Nmap done: 1 IP address (1 host up) scanned in 26.21 seconds
root@Wing:~#
全面扫描又称作综合扫描,是一种完整扫描目标信息的扫描方式。
在Nmap中我们可以指定扫描一个C段,这个功能不需要其他额外的选项,只需要使用“-”进行连接。
root@Wing:~# nmap 192.168.126.1-200
Starting Nmap 6.40 ( http://nmap.org
) at 2014-06-12 15:45 CST
Nmap scan report for 192.168.126.1
Host is up (0.00039s latency).
All 1000 scanned ports on 192.168.126.1 are filtered
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.126.2
Host is up (0.00053s latency).
All 1000 scanned ports on 192.168.126.2 are closed
MAC Address: 00:50:56:F1:06:20 (VMware)
Nmap scan report for 192.168.126.131
Host is up (0.00039s latency).
Not shown: 977 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
MAC Address: 00:0C:29:E0:2E:76 (VMware)
Nmap scan report for 192.168.126.130
Host is up (0.0000040s latency).
All 1000 scanned ports on 192.168.126.130 are closed
Nmap done: 200 IP addresses (4 hosts up) scanned in 5.71 seconds
root@Wing:~#