关闭默认共享,禁止ipc$空连接
要防止别人用ipc$和默认共享入侵,需要禁止ipc$空连接,避免入侵者取得用户列表,并取消默认共享
禁止ipc$空连接进行枚举
运行regedit,找到如下组键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous = DWORD的键值改为:00000001
Value:0x0(缺省)
0x1 匿名用户无法列举本机用户列表
0x2 匿名用户无法连接本机IPC$共享
说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server
上述操作执行完成后,用net share命令仍能看到ipc$ 共享,但只是不允许匿名空连接,可使用密码连接
关闭139与445端口
ipc$连接是需要139或445端口来支持的,139端口的开启表示netbios协议的应用,通过139,445(win2000)端口实现对共享文件/打印机的访问,因此关闭139与445端口可以禁止ipc$连接。
关闭139端口可以通过禁用 netbios 协议来实现。
139端口关闭方法:控制面板->网络和拨号连接->本地连接,点属性按钮进入“本地连接
属性”页面,选择“Internet 协议 (TCP/IP)”,然后点属性按钮,在弹出窗口点高级按钮,然后选择WINS标签,点“禁用 TCP/IP 上的 NetBios”,最后确定退出。
445端口关闭方法:运行regedit,找到项[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters],建立名称为SMBDeviceEnabled,DWORD类型的键,值为00000000。
关闭默认共享:
1、删除已有的共享
运行
net share ipc$ /del
net share admin$ /del
net share c$ /del
net share d$ /del
…………(有几个删几个)
OR:建立新TXT文件,输入:
ECHO OFF
NET SHARE C$ /Delete
NET SHARE D$ /Delete
NET SHARE E$ /Delete
NET SHARE F$ /Delete
NET SHARE G$ /Delete
NET SHARE H$ /Delete
(有更多分区的话继续加,I$ J$ ……)
另存为 noshare.bat 放在系统目录下,建立快捷方式到“开始”菜单的“启动”组。
这样每次启动的时候都自动删除共享。
或者在“控制面板->管理工具->计算机管理”里的“共享文件夹->共享”中删除。
2、修改注册表
删除了共享,下一次启动时还是会自动打开共享,要永久关闭需要修改注册表
IPC$、Admin$和C$、D$都不同,在注册表的修改是不同的。
你所改的只是禁止了C$、D$。而没有禁止IPC$。
但IPC$共享不受此影响,要想停止IPC$共享,可建立一个批处理文件stopipc.bat,内容包括net share ipc$ /delete一行,然后在启动组中建立一个快捷方式。当以Administrator组中用户登录时,可停止IPC$共享,当以其它用户登录时,因不能执行NET命令,不能停止IPC$共享。
禁止C$、D$管理共享
对于服务器而言:
修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
Name:AutoShareServer
Type:DWORD
Value:0
对于工作站而言:
修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
Name:AutoShareWks
Type:DWORD
Value:0
修改注册表后需要重启Server服务或重新启动机器。
注:这些键值在默认情况下在主机上是不存在的,需要自己手动添加。
禁止ADMIN$缺省共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
Name:AutoShareWks
Type:REG_DWORD
Value:0x0
另外:
A、关闭ipc$和默认共享依赖的服务(不推荐)
net stop lanmanserver
可能会有提示说,XXX服务也会关闭是否继续。因为还有些次要的服务依赖于lanmanserver。一般情况按y继续就可以了。