Chinaunix

标题: 限制 Windows 服务器 IPC$ 的远程默认分享 [打印本页]

作者: Bernardus160    时间: 2002-06-18 05:28
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
限制 Windows 服务器 IPC$ 的远程默认分享

By Bernardus160 from Holland  

装置了 Windows NT/2000 服务器后,C$ 和 IPC$ 的分享是默认的。如不对此加以限制,那就会使外人给以可趁之机,入侵而加以利用。所以管理者须把这方便之门关闭而提高安全。尤其是 IPC$,是不能通过 C: 的属性来改变其分享性,因此,应由注册表而进行控制。

方法如下:

用 Regedit 在"运行"里打开注册表,而后在表中加上
HKLM\System\CurrentControlSet\Services\Lanmanserver\Parameters:Autoshareserver=0
DWORD字段如果没有的话,就加以新建。

这样设置后 IPC$ 还是可以访问的。但是你还可以设定 IPC$ 的访问限制:
HKLM\System\CurrentControlSet\Control\Lsa:RestrictAnonymous=1

做好这项措施后,Windows 服务器的安全性就大大的提高了。


作者: 南非蜘蛛    时间: 2002-06-18 16:33
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
写的好,鼓励大家向 Bernardus160  学习
作者: coolgxg    时间: 2002-06-20 09:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: wildcamel    时间: 2002-06-21 10:40
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
好像用proedit还可以,但不知道文件如何保存,根据帮助里的提示是放到netlogon里的ntconfig.pol
但是好像不行,请教了
作者: Bernardus160    时间: 2002-06-21 16:46
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
你们好,

严格来说,C$ 和 IPC$(InterProcess Communication Default)分享并不是 Windows NT/2000/XP 的漏洞,Windows 的这些 communication/sharing 的 feature 原始默认就是开放着,尤其是 IPC$ 主要是给 System Admin 进行远程登陆管理 C; 盘的。

但 Windows 平台这种与 Novell Netware 原始默认就关闭的不同作法就给予外人以可乘之机了。他们就有可能用网络命令 net use 而隐名利用 Admin 权限进行非法登陆而对系统加以利用了。

所以管理员应对此所谓的漏洞(vulnerability)加以关闭而控制系统安全。我的文章里说的很清楚了。其实也没有什么奥秘之处。但这是管理员由于 Windows 的 feature(特貌)所应才取的安全措施。

至于用 proedit 的作法。我不清楚。
作者: wildcamel    时间: 2002-06-21 19:24
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
Bernardus兄
你是不是从NT时代走过来的吧
作者: Bernardus160    时间: 2002-06-22 05:28
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
Mainframe+terminals/Digital Unix----CP/M=Control Program/Microcomputers 时代.
想当时在编 Fortrans, Algo 程序时,要打在卡片上,那笨蛋 mainframe 的 jobshop,与现在的 IDE 相比真是天差地。Apple computer PC,那是以后的事。那时,Bill Gate 还在自家后院地下室里捣蛋。
作者: wildcamel    时间: 2002-06-22 13:43
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
高手,高手
Bernardus160兄以后多多指教指教小弟,在此谢过!




作者: Bernardus160    时间: 2002-06-22 20:19
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
别说高手了。能者不分先后,后来者居上。长江后浪推前浪。现在许多年幼少年的电脑系统知识比我在上大学时还高明。真是少年可畏。让我们今后以平等地位交流吧。
作者: wildcamel    时间: 2002-06-23 11:08
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
你现在在哪里上班呀
作者: Bernardus160    时间: 2002-06-24 03:08
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
在欧洲荷兰,与你远隔千山万水。This is Internet right?
作者: Cinna    时间: 2002-06-24 18:01
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
c$和ipc$这样的东东,可以得到系统信息!!

在下一步!
作者: Bernardus160    时间: 2002-07-02 18:40
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
可以得到系统信息!!?? 请举实例说明。
作者: linuxbady    时间: 2002-07-03 10:07
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
不就是IPC$空链接吗?

net share d$ /d
net share c$ /d
net share e$ /d
net share admin$ /d
net share ipc$ /d

OK
作者: hangy2k    时间: 2002-07-04 16:14
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
我是新手,多多指教!!
IPC$的PASSWORD是不是等於ADMINISTRATOR的PASSWORD呢?
如果我想用回IPC$,但怎樣改PASSWORD呢?
作者: wildcamel    时间: 2002-07-04 16:53
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
以我现在所见的的问题,IPC只能用来进行渗透,如果除了ipc$和netlogon$外,其它全没share,没有启动netbios,且没有其它bug的话,请教如何攻击我?????
作者: Bernardus160    时间: 2002-07-05 02:31
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
[这个贴子最后由Bernardus160在 2002/07/05 02:46am 编辑]

可以从其他打开的TCP,UDP 端口,如 http port 80 就是标准常开的。

不过聪明的黑客不会用强攻猛打的手段,他们会耐心的选择系统薄弱环节。比如,为何许多病毒蠕虫木马选择用户的电子邮箱攻击呢?
作者: wildcamel    时间: 2002-07-05 14:17
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
所以,最重要还在于人的安全意识
作者: Bernardus160    时间: 2002-07-05 22:30
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
Indeed.
作者: Bernardus160    时间: 2002-07-07 21:19
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
也许还有其他不为人知,限制 IPC$ 的方法。如有,请登出让大家分享。
作者: chijw    时间: 2002-11-13 16:34
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
有现成的利用ipc$的工具,象cis能够得到远程机器的用户列表和组列表就是利用了ipc$的空连接,所以用它去扫描可以知道机器的用户名列表(如果ipc$没进行过处理)和每个用户所在的组,密码的更改情况,登录过的次数等,要是肉鸡就可以用弱密码登上了,不过我记得在"本地安全策略"中把对匿名用户的限制改成"不允许枚举匿名帐号"cis就扫不到了,不过是不是就安全了我也不知道,我试过在注册表的run中加net share ipc$ /d来删除,可就是每次重起都要登录才回被执行,不知道哪位兄台有好办法。
作者: 快乐的优盘    时间: 2002-11-20 17:54
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
斑竹的方法没起作用呀!
作者: 快乐的优盘    时间: 2002-11-20 19:31
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
sorry!现在好用了
作者: xwings    时间: 2002-11-21 23:42
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
in localsystem
//xxx.xxx.xxx.xxx/c$

i like holland )

作者: 一无所有    时间: 2002-11-22 10:28
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
不错!
作者: flywolf    时间: 2002-11-26 11:52
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
斑竹,有个问题请教一下!
我的局域网中安装win98的机器访问安装WINXP系统的机器的时候,会弹出一个窗口让我输入Ipc$的密码,但是我的XP的机器是没有设置密码的。请问这种问题应该怎样解决!谢谢!
作者: sinister    时间: 2002-11-26 16:16
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
除非你把 IPC$ 关了。否则的话 RestrictAnonymous = 1 只能限制 NetUserEnum API 来
枚举用户列表。几年前我就写过一个例子,介绍如何用 LookupAccountSid 等一系列 SID
函数来得到用户列表
作者: bmw    时间: 2002-11-27 11:59
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
楼上的师兄,你的函数还在吗? 能不能给我看看
作者: sinister    时间: 2002-11-27 18:18
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
当时主要是为了实现功能,所以写的很乱,时间长了也就懒的改了。只能凑合看。
只要你 IPC$ 开着。即使你设置了注册表也照样可以得到用户列表。

   SID_NAME_USE                 peUse&#59;
   PSID_IDENTIFIER_AUTHORITY    SidIdentify&#59;
   NETRESOURCE                  netr&#59;

   TCHAR                        netBuf[MAX_PATH]&#59;
   TCHAR                        netNB[MAX_PATH]&#59;
   DWORD                        dwResult&#59;
   PSID                         Sid&#59;
   PSID                         newSid&#59;
   DWORD                        cbSid&#59;
   TCHAR                        DomainName[MAX_PATH]&#59;
   DWORD                        cbDomainName&#59;
   TCHAR                        AccountBuff[MAX_PATH]&#59;
   DWORD                        cbAccountBuff&#59;
   BYTE                         SidSubCount&#59;
   BYTE                         StoreCount&#59;
   int                          i,j&#59;
   DWORD                        storeSIDsub[8]&#59;
   DWORD                        tempPDWORD&#59;


   Sid = (PSID)HeapAlloc(GetProcessHeap(),0,1024)&#59;

   ListBox1->;Items->;Clear()&#59;
   cbDomainName=255&#59;
   cbSid=255&#59;
   sprintf(netBuf,"\\\\%s\\ipc$",Form1->;Edit1->;Text.c_str())&#59;
   sprintf(netNB,"\\\\%s",Form1->;Edit1->;Text.c_str())&#59;
   netr.dwScope=RESOURCE_GLOBALNET&#59;
   netr.dwType=RESOURCETYPE_ANY&#59;
   netr.lpLocalName=NULL&#59;
   netr.lpRemoteName=netBuf&#59;
   netr.lpProvider=NULL&#59;

   dwResult=WNetAddConnection2(&netr,"","",NULL)&#59;
   if(dwResult==NO_ERROR)
    {

      if(LookupAccountName(netNB,"Guest",Sid,&cbSid,DomainName,&cbDomainName,&peUse))
        {
          sprintf(netBuf,"域名:  %s",DomainName)&#59;
          Form1->;ListBox1->;Items->;Add(String(netBuf))&#59;

          SidIdentify=GetSidIdentifierAuthority(Sid)&#59;
          SidSubCount=*GetSidSubAuthorityCount(Sid)&#59;
          StoreCount=SidSubCount&#59;

          for(i=0&#59;i<=StoreCount-1&#59;i++)
           {
             tempPDWORD=*GetSidSubAuthority(Sid,i)&#59;
             storeSIDsub=tempPDWORD&#59;
           }
          cbDomainName=255&#59;
          cbAccountBuff=255&#59;
          storeSIDsub[StoreCount-1]=500&#59;

          if(AllocateAndInitializeSid(SidIdentify,SidSubCount,storeSIDsub[0],storeSIDsub[1],
                                      storeSIDsub[2],storeSIDsub[3],storeSIDsub[4],storeSIDsub[5],
                                      storeSIDsub[6],storeSIDsub[7],&amp;newSid))
          {
             if(LookupAccountSid(netNB,newSid,AccountBuff,&amp;cbAccountBuff,DomainName,&amp;cbDomainName,&amp;peUse))
               {
                 Form1->;ListBox1->;Items->;Add(&quot;用户名称:  &quot;+String(AccountBuff))&#59;
               }

             else
                exit(1)&#59;
            FreeSid(newSid)&#59;
         
            //以下枚举过程
            j=1&#59;
            i=1000&#59;
            while(j<=30)
            {
               cbDomainName=255&#59;
               cbAccountBuff=255&#59;
               storeSIDsub[StoreCount-1]=i&#59;

               AllocateAndInitializeSid(SidIdentify,SidSubCount,storeSIDsub[0],storeSIDsub[1],
                                      storeSIDsub[2],storeSIDsub[3],storeSIDsub[4],storeSIDsub[5],
                                      storeSIDsub[6],storeSIDsub[7],&amp;newSid)&#59;

               if(LookupAccountSid(netNB,newSid,AccountBuff,&amp;cbAccountBuff,DomainName,&amp;cbDomainName,&amp;peUse))
               {
                 if(peUse==SidTypeInvalid) j=j+1&#59;
                 else if(peUse!=SidTypeDeletedAccount)
                  {
                    j=-1&#59;
                    int le=lstrlen(AccountBuff)&#59;
                    if(AccountBuff[le-1]=='$')
                       Form1->;ListBox1->;Items->;Add(&quot;主机名称:  &quot;+String(AccountBuff))&#59;
                    else
                      Form1->;ListBox1->;Items->;Add(&quot;用户名称:   &quot;+String(AccountBuff))&#59;
                  }
               }
               else
                 j=j+1&#59;
               Application->rocessMessages()&#59;
               i=i+1&#59;
               FreeSid(newSid)&#59;
            }   
          }
        }
       else Application->;MessageBox(&quot;请重新连接&quot;,&quot;无法获得SID标识&quot;,MB_OK|MB_ICONWARNING)&#59;
     }
  else
  {
      ShowMessage(GetLastError())&#59;
  }

  HeapFree(GetProcessHeap(),0,Sid)&#59;
  WNetCancelConnection2(netBuf,0,true)&#59;
作者: xichen    时间: 2002-11-28 11:53
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
这是什么语言啊,我想试试
作者: jazzbull    时间: 2002-11-29 09:44
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
我想请教一下楼上的大虾们,为什么我一台win2000 SERVER 按楼猪的那样,注册表都改回来了,别的客户机在共享时还是出现IPC$联接需要密码?是不是还有别的地方可以禁用IPC$联接呢?急!!!
作者: 醒木    时间: 2002-12-15 09:48
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
根据我的经验,限制IPC$远程登录的防护措施主要有以下三条:
1、设置比较复杂的管理员密码,当然前提是你不能轻易把这个密码告诉不可信任的人。
2、修改注册表,这个前面的仁兄已经说得很清楚,在此不再多说。
3、如果你懒得修改注册表的话,也可一个办法,就是把本地网络协议中的“Microsoft  的网络文件和打印机共享”去除。那当然这样做以后,任何人都不能共享你的文件了,比较聪明的做法是只把这个协议前面的钩去除,当要共享东西给别人的时候再把它打上。

但是前面几位仁兄说的扫描到用户列表的攻击,我就不是很清楚上面的方法对这种攻击有没有效果了。

如果是win98和win2k共存的局域网,win98要访问win2k的共享资源是要求输入密码的,即使你的win2k没有密码,但也有一种方法,就是开放win2k的guest权限(在默认情况下是关闭的)。


说的可能有错,肯请高手批评指正。
作者: shaotao27    时间: 2003-05-07 07:35
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
这是一个很打漏洞啊 要注意啊
作者: shaotao27    时间: 2003-05-07 07:35
标题: 限制 Windows 服务器 IPC$ 的远程默认分享

作者: adjust    时间: 2003-05-10 10:56
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
net share c$ /d
net share ipc$ /d
.........................
把这个文本文件改为.cmd格式,加到系统启动里,就会自动运行了
作者: jiekechoo    时间: 2003-05-15 09:24
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
[quote]原帖由 "wildcamel"]以我现在所见的的问题,IPC只能用来进行渗透,如果除了ipc$和netlogon$外,其它全没share,没有启动netbios,且没有其它bug的话,请教如何攻击我?????[/quote 发表:


简单:DDOS

想往哪里跑?
作者: beginner-bj    时间: 2003-05-22 14:53
标题: 限制 Windows 服务器 IPC$ 的远程默认分享
安全性的根本所在是管理员密码的强弱,与是否限制远程默认共享无关。

况且,楼主写的方法只能应用在win2k server上,不适用win2k professional。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2