目录

TCP135端口

UDP137、138端口

TCP139、445端口

Windows一般开放udp_137, udp_138, tcp_139, tcp_445端口。

服务 端口 描述
NetBIOS名称服务(NBNS) UDP 137 NBNS也称为Windows Internet名称服务(WINS)。
NBNS的工作是将IP地址与NetBIOS名称匹配,并允许查询匹配。名称服务通常是第一个受到攻击的服务。访问者将需要它可以提供的信息来开始其他服务的会话。    
NetBIOS数据报 UDP 138 数据报服务用于通过UDP接收SMB数据包的广播。
此服务在广播其名称和服务时从LAN上的其他Windows计算机接收大量合法流量。攻击者很少使用此服务,除非他们尝试将其计算机添加到Windows网络。    
NetBIOS会话服务 TCP 139 会话服务用于处理NBT会话。NBT会话是用于包含SMB会话的轻量级协议。SMB协议和基于它的会话用于提供Window网络支持的服务的复杂功能; 例如文件和打印共享。
这是攻击者最感兴趣的服务。    
SMB Direct TCP 445 在Windows 2000中,Microsoft引入了SMB的实现,不需要NBT进行通信。
该服务实际上与NetBIOS会话服务相同,但没有围绕SMB会话的附加NBT协议。较旧的Windows版本不支持SMB Direct。较旧的黑客工具不针对此服务,而是针对NetBIOS会话服务。    

NetBIOS协议

NetBIOS是一种提供各种网络服务的API。

NetBIOS提供了几种服务:

NetBIOS名称服务(NBNS)

描述NetBIOS中的名称服务(服务,而不是特定的协议) - 它是一个提供名称查找,注册,…的服务。

UDP(或TCP)端口137上的/ NBNS(类似于DNS,在Windows上也称为WINS)。

NetBIOS数据报服务(NBDS)

描述NetBIOS中的数据报服务(服务,而不是特定协议) - 似乎很少使用。

UDP端口138上的/ NBDS。

NetBIOS会话服务(NBSS)

描述NetBIOS中的会话服务(服务,而不是特定协议) - 它是一种提供可靠的有序数据包传送的服务。

TCP端口139上的/ NBSS。

SMB协议

服务器消息块(Server Message Block,缩写为SMB),又称网络文件共享系统(Common Internet File System,缩写为CIFS, /ˈsɪfs/),一种应用层网络传输协议,由微软开发,主要功能是使网络上的机器能够共享计算机文件、打印机、串行端口和通讯等资源。它也提供经认证的行程间通信机能。

它主要用在装有Microsoft Windows的机器上,在这样的机器上被称为Microsoft Windows Network。所有Windows for Workgroups,Windows 95和Windows NT系统都(或能够)将SMB作为客户端,服务器或两者运行。微软的分布式文件系统实现就基于SMB。

SMB可以以不同方式运行在会话层或者更低的网络层之上:

SMB是客户端服务器,请求 - 响应协议。

Samba软件

SMB协议也用于unix系列操作系统。比如Samba软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无。Samba是许多服务以及协议的实现,其包括TCP/IP上的NetBIOS(NBT)、SMB、CIFS(SMB的增强版本)、MSRPC、NetBIOS Name Service(NBNS)、NT域协议包(包括NT Domain Logons、Secure Accounts Manager(SAM)数据库、Local Security Authority(LSA)服务、NT-style打印服务(SPOOLSS)、NTLM以及近来出现的包括一种改进的Kerberos协议与改进的轻型目录访问协议(LDAP)在内的Active Directory Logon服务。以上这些服务以及协议经常被错误地归类为NetBIOS或者SMB。Samba也能够用于共享打印机。

首先,这几个端口都是与文件共享和打印机共享有关的端口,而且在这几个端口上经常爆发很严重的漏洞。比如去年危害全球的永恒之蓝,就是利用的445端口。

Windows默认开放135、137、138、139和445五个端口,主要是方便初级用户操作,即不进行必要地设置就可以使用网络通信和各种共享服务。但这样一来,用户不希望启动或者用不到的一些服务都会随机启动,主机连接因特网后会在用户不知晓的情况下泄露本机信息。因此我们应尽可能的多了解一些这些端口的作用,权衡端口开放的利与弊,然后制定相应的安全策略。

TCP135端口
     在Windows默认的五个典型开放端口中,135用途最为复杂,也最容易引起外部攻击。若使用SecurityFriday公司开发的一款名叫 "IEen" 软件进行端口安全性验证,就能清楚地看到这个端口开放是非常的危险的。

IEen是一种远程操作IE浏览器的工具。使用它不仅可以获得其它电脑IE浏览器的信息,而且还可以对浏览器进行操作。具体而言,就是可以得到正在运行的IE浏览器的窗口一览表、各窗口所显示的Web站点的URL和Cookie,以及在检索站点中输入的检索关键词等信息。

IEen使用的是 Windows NT4.0/2000/XP 集成的分布式对象技术 DCOM(分布式组件对象模块),可以远程操作其他电脑中的DCOM应用程序。该技术使用的是 RPC(Remote Procedure Call,远程过程调用)服务。

这个RPC服务使用的就是135端口。RPC是 Windows 操作系统使用的一个远程过程调用服务。RPC 提供了一种进程间的通信机制,通过这一机制,允许在某台计算机上运行的程序流畅地在远程系统上执行代码。协议本身源自OSF(开放式软件基础)RPC 协议,但增加了一些 Microsoft 特定的扩展 。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。

因为在 RPC 中发出请求的程序是客户程序,而提供服务的程序是服务器。所以利用RPC功能进行通信时,就会向对方电脑的135端口询问可以使用哪个端口进行通信。这样,对方的电脑就会告知可以使用的端口号。在非加密状态下,使用IEen可以看到对方电脑本应受到SSL保护的数据,甚至能够直接看到比如在网络银行等输入的银行现金卡密码等信息。所以也不可避免地暴露了漏洞。攻击者能利用该漏洞在受影响的系统上以本地系统权限运行代码,执行任何操作,包括安装程序,查看、更改或者删除数据,或者建立系统管理员权限的帐户。针对这一漏洞的蠕虫病毒有许多。早期的这些蠕虫病毒只是攻击此漏洞,造成远端系统的崩溃,而大名鼎鼎的冲击波漏洞”则会利用这一漏洞进行快速传播,轻而易举地控制他人的IP地址和注册名,使更多的个人或公司系统遭殃。

回避这种危险的最好办法是关闭RPC服务。如果不使用DCOM特定的应用程序如 Web服务器、邮件或DNS服务器等,即便关闭135端口,也不会出现任何问题。关闭RPC服务的方法是在“控制面板”的“管理工具”中选择“服务”,在“服务”窗口中打开“Remote Procedure Call”属性,在属性窗口中将启动类型设置为“已禁用”,重新启动电脑,RPC就不再运行。也可打开注册表编辑器,将“HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//RpcSs”的“Start”的值由0x04变成0x02后,重新起动机器即生效。

不过,关闭RPC服务后会给Windows的运行带来很大的影响。因为Windows的很多服务都依赖于RPC,而这些服务在将RPC设置为无效后将无法正常起动。比如,如果客户端关闭了135端口,就无法使用Outlook连接Exchange Server。因为管理分布式处理的MSDTC、负责应用程序之间的信息交换的MSMQ以及动态地向连接网络的电脑分配地址的DHCP等服务也都使用这个端口。同时, Windows 启动的速度会变的非常慢。

关闭RPC服务弊端非常大,一般不能轻易关闭。但为了避免遭受攻击,网络客户端却可以禁止远程登录电脑。方法是依次选择“控制面板”、“管理工具”和“本地安全策略”,打开本地安全设置窗口,选择本地策略中的用户权利指派,然后利用该项下的“拒绝从网络访问这台计算机”,指定拒绝访问的对象。如果想拒绝所有的访问,最好指定为“Everyone”。

在公司内部,如果不想让其他计算机操作自己电脑,可以将DCOM设置为无效。方法是用DOS命令运行Windows NT/2000/XP标准集成的“dcomcnfg.exe”工具。从打开的分布式COM配置属性窗口中,选择“默认属性”页标,取消“在这台计算机上启用分布式COM”选项即可。

DCOM(分布式对象模型)是一种能够使软件组件通过网络直接进行通信的协议。DCOM 以前叫做“网络 OLE”,它能够跨越包括 Internet 协议(例如 HTTP)在内的多种网络传输。

UDP137、138端口
    只需向对方Windows的137端口发送一个询问连接状态的信息包,就可以得到该机的计算机名和注册用户名,该机是否为主域控制器和主浏览器、是否作为文件服务器使用、IIS和Samba是否正在运行以及Lotus Notes是否正在运行等信息。

不只是公司内部网络,连接因特网的电脑也是如此。只要知道对方的IP地址,就可以向这台电脑的137端口发送一个请求,获得诸多信息。如果捕捉到正在利用137端口进行通信的信息包,还有可能得到目标主机的起动和关闭时间。这是因为Windows起动或关闭时会由137端口发送特定的信息包。如果掌握了目标主机的起动时间,就可以非常轻松地使用上一次所讲的IEen等软件通过135端口操作对方的DCOM。

137端口为什么会使各种信息包泄漏到网络上呢?这是因为,在Windows网络通信协议——“NetBIOS over TCP/IP(NBT)”的计算机名管理功能中使用的是137端口(计算机名管理是指Windows网络中的电脑通过用于相互识别的名字——NetBIOS名,获取实际的IP地址的功能。)为了得到通信对象的IP地址,137端口就要交换很多信息包。

137端口信息包泄漏主要有两种途径:

一种途径,位于同一组中的电脑之间利用广播功能进行计算机名管理。电脑在起动时或者连接网络时,会向位于同组中的所有电脑询问有没有正在使用与自己相同的NetBIOS名的电脑。每台收到询问的电脑如果使用了与自己相同的NetBIOS名,就会发送通知信息包。这些通信是利用137端口进行的。
另一种途径,利用WINS(Windows因特网名称服务)管理计算机名。被称为WINS服务器的电脑有一个IP地址和NetBIOS名的对照表。WINS客户端在系统起动时或连接网络时会将自己的NetBIOS名与IP地址发送给WINS服务器。当主机与其他计算机通信时,会向WINS服务器发送目标主机NetBIOS名,然后WINS服务器会根据NetBIOS名将ip地址发回给主机。这种方法也使用137端口。
    随意地泄漏这样的信息,就好像是很友好地告诉攻击者应该如何来攻击自己的电脑。使恶意攻击者根本不必特意地通过端口扫描来寻找,就可以下手入侵。比如,如果知道IIS服务正在运行,就可以轻松地了解这台电脑上已经起动的服务。这对入侵者来说,恶意攻击简直太方便了。

138端口提供NetBIOS的浏览功能。在该功能中,被称为主浏览器的电脑管理着连接于网络中的所有电脑,该电脑上存在该网络内所有电脑的浏览列表。比如,在Windows2000中,从“网上邻居”选择了“整个网络”后,就能清楚地看到连接网络的所有的邻近电脑。

138端口提供NetBIOS的浏览功能。该功能使用的是与137端口计算机名管理不同的运行机制,主要用来显示连接于网络中的电脑一览表。每台电脑在起动时或连接网络时都会利用138端口广播自己的NetBIOS名,将自己的电脑信息发送给同组中的所有电脑。 收到NetBIOS名的主浏览器会将这台电脑追加到浏览列表中。当收到浏览列表显示请求时,收到请求的主浏览器会发送浏览列表给请求的主机。关闭电脑时,主机会通知主浏览器,以便让主浏览器将自己的NetBIOS名从列表中删除掉。尽管138端口的信息量没有137端口那么多,但也存在不容忽视的安全隐患。

NetBIOS服务主要使用137和138端口的向外部发送自己信息。NetBIOS主要用于Windows网络中,虽然Windows 2000以上的版本,不使用NetBIOS也能够管理计算机名,完全可以停止NBT,但会降低Windows网络使用的方便性,如无法显示用于寻找文件共享对象的信息。这对于基于公司内部网络环境构筑Windows网络的电脑来说,NetBIOS服务还是必要的。

停止NetBIOS服务,首先由控制面板中选择目前正在使用的网络连接,在属性窗口中查看“Internet协议(TCP/IP)”的属性。在“常规”页标中单击“高级”按钮,在“WINS”页标中选择“禁用TCP/IP上的NetBIOS(S)”即可。这样,就可以关闭137、138以及后面将要讲到的139端口。

需要注意的一点。NetBEUI协议如果为有效,NetBIOS服务将会继续起作用。在Windows 95中,NetBIOS是在默认条件下安装的。在更高的Windows版本中,如果选择也可以安装。所以不仅要停止NBT,还应该确认NetBEUI是否在起作用。如果使用NetBEUI,即便关闭137端口,也仍有可能向外部泄漏信息。

TCP139、445端口
    139和445端口的通信过程是通过SMB(服务器信息块)协议实现的。即根据DNS服务器中的名字列表信息,寻找需要通信的对象。如果顺利地得到对象的IP地址,就可以访问共享资源 。Windows 2000以前版本的Windows使用NetBIOS协议解决各计算机名的问题。通过向WINS服务器发送通信对象的NetBIOS名,取得IP地址。而Windows2000以后的版本所采用的CIFS则利用DNS解决计算机的命名问题。

在SMB通信中,首先要取得通信对象的IP地址,然后向通信对象发出开始通信的请求。如果对方充许进行通信,就会确立会话层(Session)。并使用它向对方发送用户名和密码信息,进行认证。如果认证成功,就可以访问对方的共享文件。在这些一连串的通信中使用的就是139端口。

除此之外,Windows 2000以后的系统还使用445端口。文件共享功能本身与139端口相同,但该端口使用的是与SMB不同的协议。这就是在Windows 2000中最新使用的CIFS(通用因特网文件系统)协议。 CIFS和SMB解决计算机名的方法不同。SMB使用NetBIOS和WINS解决计算机名,而CIFS则使用DNS。当139和445端口同时打开的话,网络文件共享优先使用445端口。当445端口关闭时,网络文件共享使用139端口。但是自从win10开始,文件共享只使用445端口,445端口关闭的话,则不能使用文件共享服务。因此,在文件服务器和打印服务器使用Windows的公司内部网络环境中,就无法关闭139和445端口。

在默认设置下,Windows会开放提供文件共享服务的TCP 139号端口。一旦文件共享服务起动,系统就会进入等待状态。而共享资源则可以利用net命令轻松地进行分配。尽管C盘如果没有管理员权限就无法共享,但如果不经意地将Guest帐号设置为有效以后,攻击者就能够访问C盘,非常轻松地破坏硬盘。如果客户端使用Windows 2000以上系统构成的网络,自身不公开文件,就可以关闭这两个端口。 这是因为如前所述,该网络只用445端口就能够进行文件共享。由于在解决计算机名过程中使用DNS,所以也可以关闭137和138端口。而在很多情况下,文件共享和打印机共享在普通的业务中必须使用139端口通过SMB协议进行通信,因此就无法关闭139端口。另外,浏览时还需要137~139端口。

公开服务器绝对应该关闭这些端口

在因特网上公开的服务器要另当别论。公开服务器打开139和445端口是一件非常危险的事情。就像本文开头所说的那样,如果有Guest帐号,而且没有设置任何密码时,就能够被人通过因特网轻松地盗看文件。如果给该帐号设置了写入权限,甚至可以轻松地篡改文件。也就是说在对外部公开的服务器中不应该打开这些端口。通过因特网使用文件服务器就等同自杀行为,因此一定要关闭139和445端口。对于利用ADSL永久性接入因特网的客户端机器可以说也是如此

要关闭139端口,与137和138端口一样,可以选择“将NetBIOS over TCP/IP设置为无效”。而要想关闭445端口则必须进行其他工作。利用注册表编辑器在“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters”中追加名为“SMBDeviceEnabled”的DWORD值,并将其设置为0,然后重新起动机器 
————————————————
版权声明:本文为CSDN博主「谢公子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36119192/article/details/83279527

Windows的重要服务端口135/137/138/139/445相关推荐

  1. win server服务器 关闭危险端口 135,137,138,139,445的方法

    Windows默认开放135.137.138.139和445五个端口,都与文件共享和打印机共享有关的,若机器连接网络后会在用户不知道的情况下泄露本机部分信息,这样会给用户带来一部分危险,所以我们在工作 ...

  2. 135,137,138,139,445端口作用

    如果全是2000以上的系统,可以关闭137.138.139,只保留445 如果有98系统,可能以上四个端口全部要打开 无论你的服务器中安装的是Windows 2000 Server,还是Windows ...

  3. 135.137.138.139.445端口分析

    无论你的服务器中安装的是Windows 2000 Server,还是Windows Server 2003,它们无一例外会在默认安装下开通135端口.137端口.138端口.139端口和445端口.这 ...

  4. 关闭135/137/138/139/445端口防止勒索病毒

    目前勒索病毒软件疯狂,因此本人小小的写了一个关闭端口的bat脚本 把一下内容写到记事本,保存为bat可执行文件即可.目前测试了win7,win10,win2008 r2都没问题. 欢迎反馈 netsh ...

  5. 微软域服务器关闭445,服务器在已经屏蔽 445,135,137,138,139;69端口后依然由于bugcheck重启...

    开始windows服务器收到永恒之蓝攻击event显示由于bugcheck导致重启,在服务器屏蔽 445,135,137,138,139;69端口后依然由于bugcheck重启,怀疑是驱动问题,请帮忙 ...

  6. Symantec赛门铁克企业版本防火墙怎么防止勒索病毒Symantec赛门铁克关闭137,138,139,445端口​

    Symantec赛门铁克企业版本防火墙怎么防止勒索病毒Symantec赛门铁克关闭137,138,139,445端口​ 我是否受到WannaCry勒索软件的保护? Symantec Data Cent ...

  7. 137/138/139/445端口

    同属于UDP端口,用于提供netbios服务,此服务用于提供计算机名称的查询 使用者通过向某台计算机的137端口发起一个请求,就可以获取该计算机的名称.注册用户名,以及是否安装主域控制器.IIS是否运 ...

  8. Window关闭端口的方法(445/135/137/138/139/3389等)

    为防止漏洞被利用,需要采取必要措施,关闭以上端口,以保证系统更加安全. window2003 关闭135端口的方法 要关闭此端口,只需停止DCOM接口服务即达到目的.下面是详细操作过程. 1.打开&q ...

  9. 电脑的危险端口?135,137,139,445,3389

    文章目录 TCP和UDP的135.137.138.139.445端口的作用? 135端口 137端口 138端口 139端口 445端口 具体操作 知识扩展 TCP和UDP的135.137.138.1 ...

  10. linux mysql 端口配置文件_linux虚拟机中各服务端口及配置文件路径

    查询端口状况命令: netstat -an| grep 端口号 查询服务状态(服务是否开启)命令:systemctl  status 服务名 开启服务命令:systemctl  start  服务名 ...

最新文章

  1. 泰晤士最新排名出炉,这两所大学跌惨了
  2. vue2.0中引入wangEditor2 步骤与坑
  3. Java面试题 Java中sleep和wait的区别?
  4. c语言万年历查询程序代码,C语言 万年历程序(示例代码)
  5. Dijkstra(迪杰斯特拉)算法的总结
  6. 小程序显示服务器开小差,小程序提交一直显示网络错误,网络开小差,请刷新重试,切换网络也上不去,请问是?...
  7. 使用实体框架返回数据表
  8. discuz 后台页面扩展开发
  9. INADDR_ANY的确切含义
  10. iperf服务器如何显示收到的包速率,使用Iperf诊断网络速度
  11. 垃圾邮件过滤python_手把手教你用Python 和 Scikit-learn 实现垃圾邮件过滤
  12. MacBook Pro 开机密码忘记解决方法
  13. 详解TCP数据包中SYN,ACK字段与数据发送的关联
  14. html 四个字与两个字,2014好听的两个字和四个字的qq网名大全精选
  15. 90后在虚拟世界建国风园林,完美融合数字艺术与传统诗词
  16. uc浏览器黑莓java下载安装_(黑莓软件)黑莓最新版UC浏览器下载安装!8.1最新版UC浏览器!...
  17. Vue项目搭建常用配置文件!
  18. 阿里资深技术专家总结:要怎样努力才可以成为公司主力架构师
  19. Linux如何退出VI编辑器
  20. 使用arduino平台调试STM32F103C8T6最小系统板3组串口全开

热门文章

  1. 这有清理C盘空间的妙招,学会了就不怕内存满了
  2. Flixel Dame 坦克大战(三)完成基本逻辑
  3. 干货分享:手游运营活动如何提升收入
  4. QQ特殊字符制作方式
  5. js特效--移动的广告窗
  6. mysql 添加 删除索引(index) alter table 修改字段 修改列
  7. ubuntu查看隐藏文件及显示隐藏文件所占用存储空间
  8. 49-从哥尼斯堡七桥问题开始
  9. word文档打不开、损坏了怎么修复
  10. python打开网页后点击网页按钮_python怎么模拟点击网页按钮