Возможно ли как то впихнуть Shell ?

Тема в разделе "WASM.RESEARCH", создана пользователем assasincore, 22 апр 2010.

  1. assasincore

    assasincore New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2010
    Сообщения:
    55
    У меня есть сервис. На котором реализован Pipe server(CreateNamedPipe) количество instance не ограничено.
    Это может привести к тому что процесс, имея самые маленькие права, может завалить сервис путем бесконечного создания instance'ов.
    Так вот вопрос можно или как то запихнуть shellcode? Если да, то как ?
    Кривой псевдо

    Код (Text):
    1. __try  {
    2.    hPipe = CreateNamedPipe( , , , PIPE_UNLIMITED_INSTANCES, , , );
    3.  
    4.    if ( hPipe== INVALID_HANDLE ) {
    5.        __leave;
    6.   }
    7.  
    8.   ConnectNamedPipe( hPipe, &overlapped );
    9.  
    10.    //
    11.    //После всех проверок и ожидание соединения  WaitForMultipleObjectsEx(2,  {overlapped.hEvent, hEventStop}, FALSE, TRUE, INFINITE )
    12.    //
    13.  
    14.    switch(retWaitForMultipleObjectsEx)  {
    15.    case WAIT_OBJECT_0:
    16. ///          exit
    17.         break;
    18.  
    19.    case WAIT_OBJECT_2:
    20. ///          новое соединение. Выделяется память через new(не перегруженный, стандартный WDK )
    21. ///          ReadFileEx(, , , OnCompleteRead)
    22.         break;
    23.  
    24.    case WAIT_IO_COMPELTE:
    25.         break;
    26.   }
    27.  
    28. }
    29. __except(1) {
    30.  
    31.    ExitProcess(0);
    32. }
    П.С.
    Я в встраивании shell code не секу. Так что особо не пинайте... ))

    П.С. П.С.
    Пока что вижу что можно завалить сервис, и подправить .exe файл сервиса... Сервис не подписан....
     
  2. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Нуу... чтобы подправить файл сервиса, тоже обычно нужны не "самые маленькие" права.
    Во-вторых, винда умеет перезапускать упавшие сервисы.