扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共2页)
上面我所说的事实是当我在纽约大学Courant Institute作程序员的时候的经历。那时候几乎互联网上所有的电脑都开放着各种服务供公众使用。当然,那时候的互联网还不是我们现在所说的Internet,而是它的前身ARPAnet,二者网络协议相同,只是规模不同而已。
那时候从网络上找到一种服务很容易(比如远程打印机),只需要在别的网络上闲逛一会儿,就会发现你所需要的服务。当然,我们现在的状况就完全不一样了。
正如我们现在所见到的,如今的互联网远远没有20年前的ARPAnet那么无拘无束。如今的互联网可以说无处不在,它连接了无数性能强大的电脑,就连现在最廉价的电脑,其性能也是20年前难以想到的。另外,各种操作系统提供的服务数量也是以往难以预料到的,同时,也是我们这篇文章要讨论的内容,即大量的电脑在默认情况下都开放着很多服务。
如今,安全已经成为了一种竞争的名字:任何地方,任何内容以及任何可能的硬件、操作系统、软件上,都频繁的出现与安全相关的内容。根据估计,如今一台没有打过补丁的Windows XP系统接入互联网20分钟内,就可以被一些不法分子发现并取得控制权。对于企业来说,确保你的系统和应用程序不暴露在外人眼前,是能够停留在商业领域继续经营的基本条件。在黑客遍布的互联网,任何安全措施都不为过。
安全工具
今天我要介绍的一款软件叫做NMAP。NMap是用来在网络层探测网络中存在的各个系统的软件,它可以发现系统在网络上开放的服务以及所连接的对象,如果可能,还会告诉用户这些系统或服务相关的漏洞。
NMap最初是在Unix系统上运行的,不过现在已经被编译成了多种版本,可以在任何操作系统上运行。软件主要采用命令行方式工作,不过也提供了GUI前端界面,可以兼容大部分系统。
也许你并不是一个网络专家,因此我就简单的介绍一下相关背景知识。每台带有TCP/IP协议栈或者运行了基于TCP/IP协议的应用(如FTP或SSH)的电脑,都可以被某种特殊设计的程序识别出来。系统或服务的某些特征是它区别于其他系统或服务的标志,这很像现实世界中的指纹,因此网络专家可以根据系统或服务的指纹来判断网络环境中有那些系统,以及这些系统上运行了哪些服务。
比如识别TCP/IP协议栈的方法可以查看TCP包的序列号生成方式,或者根据IP协议实现的某种特点来判断。在大多数情况下,简单的判断就可以分辨出目的系统上运行的操作系统是什么类型,这根本不需要网络专家登录到对方系统上。
更高级的协议有时候会出现一些bug,这些bug可以通过不同的方式被远程利用,有些危险性较小的特征则可以让远程用户确认系统的服务类型。有些协议的特殊设计使得它可以对外公布更多的指纹信息,这有时候更利于网络黑客的攻击。比如Sendmail的服务器,当用户连接到25端口后,服务会返回给用户当前操作系统是否正常运行,操作系统的版本号以及邮件服务的版本号。
NMap的作用就是查出一台系统上运行的是何种服务,确认这些服务并告知用户这些服务中是否存在可以被黑客利用的漏洞。
将NMap用于测试
首先忠告大家: NMap 并不是“攻击网络系统”的工具,它是一个分析工具。
在我们如今的时代,在互联网上随意扫描一台并不属于你的系统,发现其中的漏洞,并不像以前那么无拘无束了。实际上,在美国做这种事情等同于试图入室偷窃。在一些国家,NMap这样的工具本身就是违法的(对于这样的法律条款的争议很多,并不是本文讨论的重点)。总之,任何时候运行NMap,都必须征得被扫描对象的网络/系统管理者的同意才可以。吓过你之后,我们就开始看看如何使用NMap。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。