十三 如何防范ipc$入侵
1 禁止空连接进行枚举(此操作并不能阻止空连接的建立)
方法1:
运行regedit,找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous = DWORD的键值改为:1
如果设置为"1",一个匿名用户仍然可以连接到IPC$共享,但限制通过这种连接得到列举SAM帐号和共享等信息;在Windows 2000 中增加了"2",限制所有匿名访问除非特别授权,如果设置为2的话,可能会有一些其他问题发生,建议设置为1。如果上面所说的主键不存在,就新建一个再改键值。
方法2:
在本地安全设置-本地策略-安全选项-在';对匿名连接的额外限制';中做相应设置
2 禁止默认共享
1)察看本地共享资源
运行-cmd-输入net share
2)删除共享(重起后默认共享仍然存在)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除)
3)停止server服务
net stop server /y (重新启动后server服务会重新开启)
4)禁止自动打开默认共享(此操作并未关闭ipc$共享)
运行-regedit
server版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareServer(DWORD)的键值改为:00000000。
pro版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareWks(DWORD)的键值改为:00000000。
如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值。这两个键值在默认情况下在主机上是不存在的,需要自己手动添加。
3 关闭ipc$和默认共享依赖的服务erver服务
控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-选已禁用 这时可能会有提示说:XXX服务也会关闭是否继续,因为还有些次要的服务要依赖于lanmanserver,不要管它。
4 屏蔽139,445端口
由于没有以上两个端口的支持,是无法建立ipc$的,因此屏蔽139,445端口同样可以阻止ipc$入侵。
1)139端口可以通过禁止NBT来屏蔽
本地连接-TCP/IT属性-高级-WINS-选‘禁用TCP/IT上的NETBIOS’一项
2)445端口可以通过修改注册表来屏蔽
添加一个键值
Hive: HKEY_LOCAL_MACHINE
Key: System\Controlset\Services\NetBT\Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
Value: 0
修改完后重启机器
注意:如果屏蔽掉了以上两个端口,你将无法用ipc$入侵别人。
3)安装防火墙进行端口过滤
5 设置复杂密码,防止通过ipc$穷举出密码。
十四 ipc$入侵问答精选
上面说了一大堆的理论东西,但在实际中你会遇到各种各样的问题,因此为了给予大家最大的帮助,我看好几个安全论坛,找了n多的帖子,从中整理了一些有代表性的问答,其中的一些答案是我给出的,一些是论坛上的回复,如果有什么疏漏和错误,还请包涵。
1.进行ipc$入侵的时候,会在服务器中留下记录,有什么办法可以不让服务器发现吗?
答:留下记录是一定的,你走后用程序删除就可以了,或者用肉鸡入侵。
2.你看下面的情况是为什么,可以连接但不能复制
net use \\***.***.***.***\ipc$ "密码" /user:"用户名"
命令成功
copy icmd.exe \\***.***.***.***\admin$
找不到网络路径
命令不成功
答:可能有两个原因:
1)你的权限不够,不能访问默认共享;
2)对方没有开启admin$默认共享,不要认为能进行ipc$连接,对方就一定开了默认共享(很多人都这么以为,误区!!),此时你可以试试别的默认共享或普通共享,比如c$,d$,c,d等,如果还是不行,就要看你的权限了,如果是管理员权限,你可以开telnet,如果能成功,在给它开共享也行。
3.如果对方开了IPC$,且能建立空联接,但打开C、D盘时,都要求密码,我知道是空连接没有太多的权限,但没别的办法了吗?
答:建议先用流光或者别的什么猜解一下密码,如果猜不出来,只能放弃,毕竟空连接的能力有限。
4.我已经猜解到了管理员的密码,且已经ipc$连接成功了,但net view \\ip发现它没开默认共享,我该怎么办?
答:首先纠正你的一个错误,用net view是无法看到默认共享的。既然你现在有管理员权限,而且对方又开了ipc$,建议你用opentelnet.exe这个小程序打开它的telent,在获得了这个shell之后,做什么都可以了。
5.ipc$连接成功后,我用下面的命令建立了一个帐户,却发现这个帐户在我自己的机器上,这是怎么回事?
net uset ccbirds /add
答:ipc$建立成功只能说明你与远程主机建立了通信隧道,并不意味你取得了一个shell,只有在获得一个shell之后,你才能在远程建立一个帐户,否则你的操作只是在本地进行。
6.我已进入了一台肉机,用的管理员帐号,可以看他的系统时间,但是复制程序到他的机子上却不行,每次都提示“拒绝访问,已复制0个文件”,是不是对方有什么服务没开,我该怎么办?
答:不能copy文件有多个可能,除了权限不够外,还可能是对方c$,d$等默认管理共享没开,或者是对方为NTFS文件格式,通过设置,管理员也未必能远程写文件。既然你有管理员权限,那就开telnet上去吧,然后在开它的共享。
7.我用Win98能与对方建立ipc$连接吗?
答:不可以的,要进行ipc$的操作,建议用win2000
8.我用net use \\ip\ipc$ "" /user ""成功的建立了一个空会话,但用nbtstat -A IP 却无法导出用户列表,这是为什么?
答:空会话在默认的情况下是可以导出用户列表的,但如果管理员通过修改注册表来禁止导出列表,就会出现你所说的情况;或者你自己的NBT没有打开,netstat是建立在NBT之上的。
9.我建立ipc$连接的时候返回如下信息:‘提供的凭据与已存在的凭据集冲突’,怎么回事?
答:呵呵,这说明你与目标主机建立了一个以上的ipc$连接,这是不允许的,把其他的删掉吧:net use \\*.*.*.*\ipc$ /del
10.我在映射的时候出现:
F:\>net use h: \\211.161.134.*\e$
系统发生 85 错误。
本地设备名已在使用中。这是怎么回事?
答:你也太粗心了吧,这说明你的h盘正在使用,映射到别的盘符吧!
11.我建立了一个连接f:\>net use \\*.*.*.*\ipc$ "123" /user:"ccbirds" 成功了,但当我映射时出现了错误,向我要密码,怎么回事?
F:\>net use h: \\*.*.*.*\c$
密码在 \\*.*.*.*\c$ 无效。
请键入 \\*.*.*.*\c$ 的密码:
系统发生 5 错误。
拒绝访问。
答:呵呵,向你要密码说明你当前使用的用户权限不够,不能映射C$这个默认共享,想办法提升权限或者找管理员的弱口令吧!默认共享一般是需要管理员权限的。
12.我用superscan扫到了一个开了139端口的主机,但为什么不能空连接呢?
答:你混淆了ipc$与139的关系,能进行ipc$连接的主机一定开了139或445端口,但开这两个端口的主机可不一定能空连接,因为对方可以关闭ipc$共享.
13.我门局域网里的机器大多都是xp,我用流光扫描到几个administrator帐号口令是空,而且可以连接,但不能复制东西,说错误5。请问为什么?
答:xp的安全性要高一些,在安全策略的默认设置中,对本地帐户的网络登录进行身份验证的时候,默认为来宾权限,即使你用管理员远程登录,也只具有来宾权限,因此你复制文件,当然是错误5:权限不够。
14.我用net use \\192.168.0.2\ipc$ "password" /user:"administrator" 成功,可是 net use i: \\192.168.0.2\c
出现请键入 \\192.168.0.2 的密码,怎么回事情呢?
答:虽然你具有管理员权限,但管理员在设置c盘共享权限时可能并未设置允许administrator访问,所以会出现问题。 |