科技行者

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

知识库

知识库 安全导航

至顶网安全频道网络安全如何通过扫描工具Nmap列出开放端口和监听服务?

如何通过扫描工具Nmap列出开放端口和监听服务?

  • 扫一扫
    分享文章到微信

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

如果你在寻找一种可以发现在网络设备上开放的那些端口的方法,不妨了解一种功能强大的跨平台解决方案,它能够帮你达到预期效果。

来源:51CTO 2015年6月19日

关键字: 网络安全 端口扫描 网络监听 扫描工具

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

网络管理员面临的最棘手问题之一就是设备上的开放端口。除非你将操作系统手动安装到网络上的每个设备上,确保关闭了所有不必要的端口,否则你就有可能面临攻击的风险。

通过端口扫描工具Nmap列出开放端口和监听服务

你应该禁用的端口视系统而异,甚至可能取决于特殊软件的需要(比如说,QuickBooks需要特定的端口才能正常运行――具体哪些端口由版本决定)。你需要列出可以或必须保持开放的端口。一旦你有了这份列表,就可以着手关闭那些机器上的端口了。

但是你又如何才能知道哪些机器的哪些端口是开放的?当然了,你可以过去查看网络上的每个机器,打开用作防火墙的任何设备,手动确保所有必要的端口都开放,所有不必要的端口都关闭。

或者,你可以扫描网络,查明哪些机器的哪些端口是开放的?如果你知道了开放端口的位置,就能对照主列表来核实该信息,关闭必要的每个端口。现在来说说棘手的部分。

如何运行端口扫描?

你如何才能查明哪些机器的哪个端口是开放的?你可以运行端口扫描。假如你不知道如何运行端口扫描,我会逐步介绍整个过程。

我使用一台Linux机器来扫描。原因何在?因为Linux拥有出色的扫描工具,它们随时可以处理这项任务,不仅免费,而且易于使用。

如果你没有Linux运行在上面的机器,也不用担心――你可以下载Kali Linux之类的网络渗透直启动发行版(live distribution),将ISO文件刻录到CD或USB闪驱上,并启动机器、进入到Linux的直启动实例(不需要对所用的机器进行更改,因为直启动实例完全从内存运行)。直启动实例安装并运行起来后,你就有了形形色色的网络取证/分析工具可以使用。

你应该使用的端口扫描工具

最出色的端口扫描工具是Nmap。如果你不想捣鼓命令行,还有一个出色的GUI前端程序,名为Zenmap(https://nmap.org/zenmap/),它可适用于Linux、Windows和Mac等平台。如果你不想为Linux而操心,可以将它安装在Windows上。(Nmap的功能要比Windows内置网络扫描工具强大得多。)Nmap和Zenmap在众多平台上工作起来一模一样,所以如果你知道了如何在一个平台上使用该工具,就可以在所有平台上使用它。

Zenmap安装完毕后,你随时可以对自己的网络运行全面的端口扫描。网络规模将决定运行扫描所花的时间。如果使用Zenmap,你可以运行非常笼统的扫描和非常具体的扫描。不妨先运行非常笼统的扫描,大致了解我们所处理的对象。我们将在整个192.168.1.x网络上运行扫描。

1. 打开Zenmap。

2. 在Target(目标)部分,输入192.168.1.1/24(或者你想要扩展的任何庞大的目标)。

3. 从Profile(配置文件)中选择Intense Scan(精细扫描)。

4. 点击Scan(扫描)按钮。

你应该会立马看到结果批量装入到Nmap Output(输出)选项卡;结果显示网络中机器上的开放端口(图A)。精细扫描要花很长时间,但是如果你想要获得网络方面的最详细信息,就应该进行精细扫描。

使用Zenmap进行精细扫描

图A:使用Zenmap进行精细扫描。

一旦扫描完毕,你会在左窗格看到一份列表,列出了网络上存在的所有设备。点击其中一个设备,滚动浏览Nmap Output(输出),寻找列有Port(端口)、State(状态)和Service(服务)的这几部分(图B)。

Linux生产机器上开放的端口8080和端口8086

图B:Linux生产机器上开放的端口8080和端口8086。

如果你没有时间来梳理扫描,总是可以保存起来,以便之后查看(使用Zenmap查看)。想保存扫描结果,进入到Scan(扫描) | Save Scan(保存扫描),给它取个名字,并点击Save(保存)。

想快速查看网络上的开放端口,点击Ports/Hosts(端口/主机)选项卡,即可查看哪些端口完全开放(图C)。

使用Zenmap快速查看开放端口

图C:使用Zenmap快速查看开放端口。

如果你不想依赖GUI,如果使用Nmap(你在安装Zenmap时一并安装),就可以从命令行运行同样的扫描。比如说,你想对单一主机运行精细扫描。打开终端窗口,执行这个命令。

sudo nmap -T4 -A -v 192.168.1.1/24

这些是上述命令的参数选项符。

T4─ 将时间设为4(0-5,5代表最快)

A ─ 启用操作系统检测

v ─ 详细输出

这时候(无论你通过命令行使用Nmap还是使用Zenmap GUI),应该可以获得网络上开放端口的完整列表。既然已知道了哪些机器上的哪些端口开放,保护这些端口安全性、进而保护网络安全性的可能性大大提高。

结束语

Nmap/Zenmap不是市面上唯一的网络扫描选择方案,不过你很难找到使用更简单、功能更强大的工具来帮助发现网络上哪些端口是开放的。

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

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

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