原创文章,转载请保留以下信息
作者:ipist (ipist#126.com)
来源:[url]http://www.xfocus.net[/url]
 
   SMB(Server Message Block),Windows协议族,用于文件和打印共享服务。在Win9X/NT中SMB基于NBT实现,NBT(NetBIOS over TCP/IP)使用137, 138 (UDP) and 139 (TCP)来实现基于TCP/IP的NETBIOS网际互联;而在Win2K以后,SMB除了基于NBT的实现,还可以直接运行在TCP/IP上,而没有额外的NBT层,使用TCP445端口。

    当Win9X/NT(允许NBT)作为client来连接SMB服务器时,由于设计时并没有考虑到445端口因此只会连接服务器的139端口;而当Win2K/XP(允许NBT)作为client来连接SMB服务器时,它会同时尝试连接139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,以455端口通讯来继续.当445端口无响应时,才使用139端口。

    假如我们的扫描结果显示对方打开了TCP139或445,这无疑方便了我们今后对它的文件传输和管理,使用NET命令对服务器进行远程管理操作,还有像NTCMD、Enum、Letmein、SMBCrack之类的工具都要基于这些端口来完成任务。但是要想成功利用这些端口,本地作为client还要满足一定的要求。

    如果对方只有139,要想利用它,本机必须“网络连接/属性/TCPIP协议/属性/高级/WINS”中设置启用NBT(NetBIOS over TCP/IP),将你的本地防火墙设置为允许这3个端口的通信,否则将无法与对方建立连接。使用普通拨号上网的用户就需要在拨号连接的网络属性里面通过选中“Microsoft 网络客户端”和“Microsoft 网络的文件和打印机共享”这两个组件来启用NBT,否则如果本地为Win9X/WinNT则直接显示无法连接,如果本地为Win2K/XP则直接尝试连接对方的445而跳过连接NBT,结果连接失败。

    如果对方只有445,本机要是Win2K以后的系统就可以直接连接,但如果本机是Win9X/WinNT,由于Win9X/WinNT所实现的SMB只能基于NBT,因而此时本机只会尝试139而不能和445建立连接,此时本机就无法使用基于SMB的工具。所以说***NT/2000最好还是使用Win2K。

    要是2个端口都开了,那就最好了,只要满足其中任一个连接要求就可以。
 
    我的第一篇原创网络文稿,现已被网上广泛转载,但请保留作者信息,谢谢。