目录
TCP端口
UDP、端口
TCP、端口
首先,这几个端口都是与文件共享和打印机共享有关的端口,而且在这几个端口上经常爆发很严重的漏洞。比如年危害全球的永恒之蓝,就是利用的端口。
首先我们来了解一些基础知识:
SMB:(ServerMessageBlock)Windows协议族,用于文件共享、打印共享的服务
NBT:(NetBIOSOverTCP/IP)使用(UDP)(UDP)(TCP)端口实现基于TCP/IP协议的NetBIOS网络互联
SMB的版本:
SMB1.0(orSMB1)–TheversionusedinWindows,WindowsXP,WindowsServerandWindowsServerR2SMB2.0(orSMB2)–TheversionusedinWindowsVista(SP1orlater)andWindowsServerSMB2.1(orSMB2.1)–TheversionusedinWindows7andWindowsServerR2SMB3.0(orSMB3)–TheversionusedinWindows8andWindowsServer
从Windows95开始,MicrosoftWindows操作系统支持SMB协议,但是由于SMB由于有漏洞。所以在WindowsVista之后,Windows开始使用SMB2协议。也就是自Vista之后的WIN7、WindowsServer等都是用的SMB2协议。而WindowsXP和WindowsServer及其之前的机器都是用的SMB1.0协议。
SMB协议支持直接运行在TCP上或封装运行在NetBIOS协议上,Psexec.py的SMB协议就是直接运行在TCP上,而netuse命令的抓包就是运行在NetBIOS协议。
在WindowsNT中,SMB除了基于NBT实现,还可以直接通过端口实现。
有了这些基础知识,我们就可以进一步来讨论访问网络共享对端口的选择了:
对于WinNT客户端(发起端)来说:
如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问和端口,如果端口有响应,那么就发送RST包给端口断开连接,用端口进行会话,当端口无响应时,才使用端口,如果两个端口都没有响应,则会话失败;
如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问端口,如果端口无响应,那么会话失败。
对于winNT服务器端来说:
如果允许NBT,那么UDP端口、,TCP端口,将开放;
如果禁止NBT,那么只有端口开放。
Windows默认开放、、、和五个端口,主要是方便初级用户操作,即不进行必要的设置就可以使用网络通信和各种共享服务。但这样一来,用户不希望启动或者用不到的一些服务都会随机启动,主机连接因特网后会在用户不知晓的情况下泄露本机信息。因此我们应尽可能的多了解一些这些端口的作用,权衡端口开放的利与弊,然后制定相应的安全策略。
01TCP端口在Windows默认的五个典型开放端口中,用途最为复杂,也最容易引起外部攻击。若使用SecurityFriday公司开发的一款名叫"IEen"软件进行端口安全性验证,就能清楚地看到这个端口开放是非常的危险的。
IEen是一种远程操作IE浏览器的工具。使用它不仅可以获得其它电脑IE浏览器的信息,而且还可以对浏览器进行操作。具体而言,就是可以得到正在运行的IE浏览器的窗口一览表、各窗口所显示的Web站点的URL和Cookie,以及在检索站点中输入的检索关键词等信息。
IEen使用的是WindowsNT4.0//XP集成的分布式对象技术DCOM(分布式组件对象模块),可以远程操作其他电脑中的DCOM应用程序。该技术使用的是RPC(RemoteProcedureCall,远程过程调用)服务。
这个RPC服务使用的就是端口。RPC是Windows操作系统使用的一个远程过程调用服务。RPC提供了一种进程间的通信机制,通过这一机制,允许在某台计算机上运行的程序流畅地在远程系统上执行代码。协议本身源自OSF(开放式软件基础)RPC协议,但增加了一些Microsoft特定的扩展。由于使用RPC的程序不必了解支持通信的网络协议的情况,因此RPC提高了程序的互操作性。
因为在RPC中发出请求的程序是客户程序,而提供服务的程序是服务器。所以利用RPC功能进行通信时,就会向对方电脑的端口询问可以使用哪个端口进行通信。这样,对方的电脑就会告知可以使用的端口号。在非加密状态下,使用IEen可以看到对方电脑本应受到SSL保护的数据,甚至能够直接看到比如在网络银行等输入的银行现金卡密码等信息。所以也不可避免地暴露了漏洞。攻击者能利用该漏洞在受影响的系统上以本地系统权限运行代码,执行任何操作,包括安装程序,查看、更改或者删除数据,或者建立系统管理员权限的帐户。针对这一漏洞的蠕虫病*有许多。早期的这些蠕虫病*只是攻击此漏洞,造成远端系统的崩溃,而大名鼎鼎的冲击波漏洞”则会利用这一漏洞进行快速传播,轻而易举地控制他人的IP地址和注册名,使更多的个人或公司系统遭殃。
回避这种危险的最好办法是关闭RPC服务。如果不使用DCOM特定的应用程序如Web服务器、邮件或DNS服务器等,即便关闭端口,也不会出现任何问题。关闭RPC服务的方法是在“控制面板”的“管理工具”中选择“服务”,在“服务”窗口中打开“RemoteProcedureCall”属性,在属性窗口中将启动类型设置为“已禁用”,重新启动电脑,RPC就不再运行。也可打开注册表编辑器,将“HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Services//RpcSs”的“Start”的值由0x04变成0x02后,重新起动机器即生效。
不过,关闭RPC服务后会给Windows的运行带来很大的影响。因为Windows的很多服务都依赖于RPC,而这些服务在将RPC设置为无效后将无法正常启动。比如,如果客户端关闭了端口,就无法使用Outlook连接ExchangeServer。因为管理分布式处理的MSDTC、负责应用程序之间的信息交换的MSMQ以及动态地向连接网络的电脑分配地址的DHCP等服务也都使用这个端口。同时,Windows启动的速度会变得非常慢。
关闭RPC服务弊端非常大,一般不能轻易关闭。但为了避免遭受攻击,网络客户端却可以禁止远程登录电脑。方法是依次选择“控制面板”、“管理工具”和“本地安全策略”,打开本地安全设置窗口,选择本地策略中的用户权利指派,然后利用该项下的“拒绝从网络访问这台计算机”,指定拒绝访问的对象。如果想拒绝所有的访问,最好指定为“Everyone”。
在公司内部,如果不想让其他计算机操作自己电脑,可以将DCOM设置为无效。方法是用DOS命令运行WindowsNT//XP标准集成的“d