热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Nmap基础使用教程

描器是帮助你了解自己系统的绝佳助手。象windows2k/xp这样复杂的操作系统支持应用软件打开数百个端口与其他客户程序或服务器通信,端口扫描是检测服务器上运行了哪些服务和应用、向internet或其他网络开放了哪些联系通道的一种办法,不仅速度快,而且效果也

 描器是帮助你了解 自己系统的绝佳助手。象windows 2k/xp这样复杂的操作系统支持应用软件打开数百个端口与其他客户程序或服务器通信,端口扫描是检测服务器上运行了哪些服务和应用、向internet或其他网络开放了哪些联系通道的一种办法,不仅速度快,而且效果也很不错。

nmap被开发用于允许系统管理员察看一个大的网络系统有哪些主机以及其上运行何种服务。它支持多种协议的扫描如udp,tcp connect(),tcp syn (half open), ftp proxy (bounce attack),reverse-ident, icmp (ping sweep), fin, ack sweep,xmas tree, syn sweep, 和null扫描。你可以从scan types一节中察看相关细节。nmap还提供一些实用功能如通过tcp/ip来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的ping侦测下属的主机、欺骗扫描、端口过滤探测、直接的rpc扫描、分布扫描、灵活的目标选择以及端口的描述。

  一、安装nmap

  nmap要用到一个称为“windows包捕获库”的驱动程序winpcap??如果你经常从网上下载流媒体电影,可能已经熟悉这个驱动程序??某些流媒体电影的地址是加密的,侦测这些电影的真实地址就要用到winpcap。winpcap的作用是帮助调用程序(即这里的nmap)捕获通过网卡传输的原始数据。winpcap的最新版本在http://netgroup-serv.polito.it/winpcap,支持xp/2k/me/9x全系列操作系统,下载得到的是一个执行文件,双击安装,一路确认使用默认设置就可以了,安装好之后需要重新启动。

  接下来从www.insecure.org/nmap/nmap_download.html下载nmap(国内各大软件网站也有,但一般版本更新略有滞后)。下载好之后解开压缩,不需要安装。除了执行文件nmap.exe之外,它还有下列参考文档:

  ㈠ nmap-os-fingerprints:列出了500多种网络设备和操作系统的堆栈标识信息。

  ㈡ nmap-protocols:nmap执行协议扫描的协议清单。

  ㈢ nmap-rpc:远程过程调用(rpc)服务清单,nmap用它来确定在特定端口上监听的应用类型。

  ㈣ nmap-services:一个tcp/udp服务的清单,nmap用它来匹配服务名称和端口号。

  除了命令行版本之外,www.insecure.org还提供了一个带gui的nmap版本。和其他常见的windows软件一样,gui版本需要安装,图一就是gui版nmap的运行界面。gui版的功能基本上和命令行版本一样,鉴于许多人更喜欢用命令行版本,本文后面的说明就以命令行版本为主。

查看更多精彩图片

   二、常用扫描类型

  解开nmap命令行版的压缩包之后,进入windows的命令控制台,再转到安装nmap的目录(如果经常要用nmap,最好把它的路径加入到path环境变量)。不带任何命令行参数运行nmap,nmap显示出命令语法,如图二所示。 

查看更多精彩图片

  下面是nmap支持的四种最基本的扫描方式:

      ⑴ tcp connect()端口扫描(-sT参数)。

    ⑵ tcp同步(syn)端口扫描(-sS参数)。

    ⑶ udp端口扫描(-sU参数)。

    ⑷ ping扫描(-sP参数)。

  如果要勾画一个网络的整体情况,ping扫描和tcp syn扫描最为实用。ping扫描通过发送icmp(internet control message protocol,internet控制消息协议)回应请求数据包和tcp应答(acknowledge,简写ack)数据包,确定主机的状态,非常适合于检测指定网段内正在运行的主机数量。

  tcp syn扫描一下子不太好理解,但如果将它与tcp connect()扫描比较,就很容易看出这种扫描方式的特点。在tcp connect()扫描中,扫描器利用操作系统本身的系统调用打开一个完整的tcp连接??也就是说,扫描器打开了两个主机之间的完整握手过程(syn,syn-ack,和ack)。一次完整执行的握手过程表明远程主机端口是打开的。

  tcp syn扫描创建的是半打开的连接,它与tcp connect()扫描的不同之处在于,tcp syn扫描发送的是复位(rst)标记而不是结束ack标记(即,syn,syn-ack,或rst):如果远程主机正在监听且端口是打开的,远程主机用syn-ack应答,nmap发送一个rst;如果远程主机的端口是关闭的,它的应答将是rst,此时nmap转入下一个端口。

  图三是一次测试结果,很明显,tcp syn扫描速度要超过tcp connect()扫描。采用默认计时选项,在lan环境下扫描一个主机,ping扫描耗时不到十秒,tcp syn扫描需要大约十三秒,而tcp connect()扫描耗时最多,需要大约7分钟。 

查看更多精彩图片

nmap支持丰富、灵活的命令行参数。例如,如果要扫描192.168.7网络,可以用192.168.7.x/24或192.168.7.0-255的形式指定ip地址范围。指定端口范围使用-p参数,如果不指定要扫描的端口,nmap默认扫描从1到1024再加上nmap-services列出的端口。

  如果要查看nmap运行的详细过程,只要启用verbose模式,即加上-v参数,或者加上-vv参数获得更加详细的信息。例如,nmap -sS 192.168.7.1-255 -p 20,21,53-110,30000- -v命令,表示执行一次tcp syn扫描,启用verbose模式,要扫描的网络是192.168.7,检测20、21、53到110以及30000以上的端口(指定端口清单时中间不要插入空格)。再举一个例子,nmap -sS 192.168.7.1/24 -p 80扫描192.168.0子网,查找在80端口监听的服务器(通常是web服务器)。

  有些网络设备,例如路由器和网络打印机,可能禁用或过滤某些端口,禁止对该设备或跨越该设备的扫描。初步侦测网络情况时,-host_timeout<毫秒数>参数很有用,它表示超时时间,例如nmap sS host_timeout 10000 192.168.0.1命令规定超时时间是10000毫秒。

  网络设备上被过滤掉的端口一般会大大延长侦测时间,设置超时参数有时可以显著降低扫描网络所需时间。nmap会显示出哪些网络设备响应超时,这时你就可以对这些设备个别处理,保证大范围网络扫描的整体速度。当然,host_timeout到底可以节省多少扫描时间,最终还是由网络上被过滤的端口数量决定。

  nmap的手册(man文档)详细说明了命令行参数的用法(虽然man文档是针对unix版nmap编写的,但同样提供了win32版本的说明)。

  三、注意事项

  也许你对其他端口扫描器比较熟悉,但nmap绝对值得一试。建议先用nmap扫描一个熟悉的系统,感觉一下nmap的基本运行模式,熟悉之后,再将扫描范围扩大到其他系统。首先扫描内部网络看看nmap报告的结果,然后从一个外部ip地址扫描,注意防火墙、入侵检测系统(ids)以及其他工具对扫描操作的反应。通常,tcp connect()会引起ids系统的反应,但ids不一定会记录俗称“半连接”的tcp syn扫描。最好将nmap扫描网络的报告整理存档,以便随后参考。

  如果你打算熟悉和使用nmap,下面几点经验可能对你有帮助:

  ㈠ 避免误解。不要随意选择测试nmap的扫描目标。许多单位把端口扫描视为恶意行为,所以测试nmap最好在内部网络进行。如有必要,应该告诉同事你正在试验端口扫描,因为扫描可能引发ids警报以及其他网络问题。

  ㈡ 关闭不必要的服务。根据nmap提供的报告(同时考虑网络的安全要求),关闭不必要的服务,或者调整路由器的访问控制规则(acl),禁用网络开放给外界的某些端口。

  ㈢ 建立安全基准。在nmap的帮助下加固网络、搞清楚哪些系统和服务可能受到攻击之后,下一步是从这些已知的系统和服务出发建立一个安全基准,以后如果要启用新的服务或者服务器,就可以方便地根据这个安全基准执行。


推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 深入探讨ASP.NET中的OAuth、JWT与OpenID Connect
    本文作为前文关于OAuth2.0和使用.NET实现OAuth身份验证的补充,详细阐述了OAuth与JWT及OpenID Connect之间的关系和差异,旨在提供更全面的理解。 ... [详细]
  • 转自:http:www.yybug.comread-htm-tid-15324.html为什么使用Twisted? 如果你并不准备使用Twisted,你可能有很多异议。为什么使用T ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
author-avatar
个信2502875605
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有