科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道漫谈Linux下的网络扫描利器:NMAP

漫谈Linux下的网络扫描利器:NMAP

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

NMap是Linux下的网络扫描和嗅探工具包。可以帮助网管人员深 入探测UDP或者TCP端口,直至主机所使用的操作系统;还可以将所有探测结果记录到各种格式的日志中,为系统安全服务。

作者:中国IT实验室 2007年8月27日

关键字: 监听 IP地址 嗅探 探测 网络扫描

  • 评论
  • 分享微博
  • 分享邮件

  NMap是Linux下的网络扫描和嗅探工具包。可以帮助网管人员深 入探测UDP或者TCP端口,直至主机所使用的操作系统;还可以将所有 探测结果记录到各种格式的日志中,为系统安全服务。  

  NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工 具包,其基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操 作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。  

  一、如何获得并安装Nmap

  一些Linux的发行版本提供对nmap的安装支持。如果没有,你可 以获取并安装其最新版本。这里我们介绍源码的tgz安装,当然也可 以选择rpm格式或者rpm源码格式。例如,在Red Hat 6.1下从 http://www.insecure.org/nmap 下载nmap-latest.tgz到/home目录,执行tar -zxvf nmap-latest.tgz, 将源码解压到/home目录下的nmap-latest子目录,然后执行configure, make和make install命令,将nmap二进制码安装到/usr/local/bin 目录。这样就可以执行nmap。  

  二、Nmap的使用

  1、各种扫描模式与参数

  首先你需要输入要探测的主机的IP地址作为参数。假如一个LAN 中有两个节点:192.168.0.1和192.168.0.2如果在命令行中输入:nmap 192.168.0.2结果可能是:  

  Starting nmap V. 2.53 by fyodor@insecure.org (www.insecure.org/nmap)

  Interesting ports on LOVE (192.168.0.2):

  (The 1511 ports scanned but not shown below are in state:closed)

  Port State Service

  21/tcp open ftp

  23/tcp open telnet

  25/tcp open smtp

  79/tcp open finger

  80/tcp open http

  98/tcp open linuxconf

  111/tcp open sunrpc

  113/tcp open auth

  513/tcp open login

  514/tcp open shell

  515/tcp open printer

  6000/tcp open X11

  Nmap run completed -- 1 IP address (1 host up) scanned in 1 second  

  ? 是对目标主机的进行全面TCP扫描后的结果。显示了监听端口的 服务情况。这一基本操作不需要任何参数,缺点是运行了日志服务的 主机可以很容易地监测到这类扫描。该命令是参数开关-sT的缺省, 即监听TCP,结果完全一样。  

  如果不是在本地的LAN,而是使用拨号上网主机,可以运行ifconfig 命令,或者从/var/log/messages文件中检测出你目前的IP地址,假 如是202.96.1.1,那么你不妨探测一下你的网上邻居,比如202.96.1.2 。可以输入:nmap -sT 202.96.1.2以上是一些入门的基本操作。假 如一些命令选项开关,就可以实现较高级的功能。  

  -sS选项可以进行更加隐蔽的扫描,并防止被目标主机检测到。 但此方式需要用户拥有root权限-sF -sX -sN则可以进行一些超常的 扫描。假如目标主机安装了过滤和日志软件来检测同步空闲字符SYN, 那么-sS的隐蔽作用就失效了,此时可以采用-sF(隐蔽FIN), -sX(Xmas Tree)以及-sN(Null)方式的扫描。这里需要注意的是由于微软的坚 持和独特,对于运行Windows 95/98或者NT的机器FIN,Xmas或者Null 的扫描结果将都是端口关闭,由此也是推断目标主机可能运行Windows 操作系统的一种方法。以上命令都需要有root权限。  

  -sU选项是监听目标主机的UDP而不是默认的TCP端口。尽管在Linux 机器上有时慢一些,但比Window系统快得多。比如,我们输入上面的 例子:  

  nmap -sU 192.168.0.2 结果可能是:  

  Starting nmap V. 2.53 by fyodor@insecure.org (www.insecure.org/nmap)

  Interesting ports on LOVE (192.168.0.2):

  (The 1445 ports scanned but not shown below are in state: closed)

  Port State Service

  111/udp open sunrpc

  517/udp open talk

  518/udp open ntalk  

  Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds  

  2、操作系统探测

  -O选项用来推断目标主机的操作系统,可以与上述的命令参数联 合使用或者单独调用。Nmap利用TCP/IP“指纹”技术来推测目标主机 的操作系统。还使用前面的例子,我们输入:  

  nmap -O 192.168.0.2 结果可能是:  

  Starting nmap V. 2.53 by fyodor@insecure.org (www.insecure.org/nmap)

  Interesting ports on LOVE (192.168.0.2):

  (The 1511 ports scanned but not shown below are in state:closed)

  .....

  .....

  

  TCP Sequence prediction: Class=random positive increments

  Difficulty=1772042 (Good luck!)

  Remote operating system guess: Linux 2.1.122 - 2.2.14

  nmap提供了一个OS数据库,上例中检测到了Linux以及内核的版本号。  

  3、更进一步的应用

  除了一次只扫描一个目标主机,你也可以同时扫描一个主机群,比如下例:  

  nmap -sT -O 202.96.1.1-50就可以同时扫描并探测IP地址在202.96.1.1 到202.96.1.50之间的每一台主机。当然这需要更多的时间,耗费更多的系统资源和网络带宽。输出结果也可能很长。所以,可以使用下面命令将结果重定向输送到一个文件中:  

  nmap -sT -O -oN test.txt 202.96.1.1-50  

  另外的一些命令参数选项包括:

  -I 进行TCP反向用户认证扫描,可以透露扫描用户信息

  -iR 进行随机主机扫描

  -p 扫描特定的端口范围

  -v 长数据显示,-v -v 是最长数据显示

  -h 当然是快捷帮助了  

  综合了上述参数的例子 比如:  

  nmap -sS -p 23,80 -oN ftphttpscan.txt 209.212.53.50-100  

  4、nmap的图形用户界面GUI

  nmap有一些图形用户前端,比如:

  NmapFE: GTK界面,网址:http://codebox.net/nmapfe.html

  Kmap: Qt/KDE前端,网址:http://www.edotorg.org/kde/kmap/

  KNmap: KDE前端,网址:http://pages.infinit.net/rewind/

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章