Inject в svchost.exe

Тема в разделе "WASM.BEGINNERS", создана пользователем maestro-ant, 25 окт 2006.

  1. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Траблы с инжектом. При инжекте, процесс svchost.exe вылетает ошибка.

    Код (Text):
    1. format PE GUI 4.0
    2.  
    3. include 'win32a.inc'
    4.  
    5. section '.code' code readable writeable executable
    6.  
    7. stri      STARTUPINFO         ?
    8. prci      PROCESS_INFORMATION ?
    9. szSvchost db 'svchost.exe', 0
    10. oldp      dd 0
    11.  
    12. entry $
    13.   call   apis
    14.   mov    [stri.cb], sizeof.STARTUPINFO
    15.   invoke CreateProcess, 0, szSvchost, 0, 0, 0, CREATE_SUSPENDED, 0, 0, stri, prci
    16.   test   eax, eax
    17.   jz     @F
    18.   invoke LoadLibraryEx, szSvchost, 0, DONT_RESOLVE_DLL_REFERENCES
    19.   test   eax, eax
    20.   jz     @F
    21.   add    eax, [eax+3Ch]
    22.   mov    edi, [eax+28h]
    23.   add    edi, [eax+34h]
    24.   invoke VirtualProtectEx, [prci.hProcess], edi, _download_end-_download , PAGE_EXECUTE_READWRITE, oldp
    25.   invoke WriteProcessMemory, [prci.hProcess], edi, _download, _download_end-_download, 0
    26.   invoke ResumeThread, [prci.hThread]
    27. @@:
    28.   ret
    29.  
    30. apis:
    31.   mov  edi,[MessageBox]
    32.   mov  [_MessageBox],edi
    33. ret
    34.  
    35. ;------------------------------------------------------------------------------;
    36. _download:
    37.  
    38.   call  .delta
    39.  
    40.  .delta:
    41.    pop   ebp
    42.    sub   ebp,.delta
    43.  
    44.    xor   esi,esi
    45.  
    46.    push  MB_OK
    47.    lea   eax,[ebp+_Str1]
    48.    push  eax
    49.    lea   eax,[ebp+_Str1]
    50.    push  eax
    51.    push  HWND_DESKTOP
    52.    call  [ebp+_MessageBox]
    53. ret
    54.  
    55.  .data:
    56.    _MessageBox          dd  0
    57.    _Str1                db  'Hello!',0
    58.  
    59. _download_end:
    60. ;------------------------------------------------------------------------------;
    61.  
    62. section '.idata' import data readable writeable
    63.  
    64. library kernel32, 'kernel32.dll'
    65. include 'apia\kernel32.inc'
    66. include 'apia\USER32.INC'
     
  2. Koshak

    Koshak New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2006
    Сообщения:
    31
    Адрес:
    Russia
    Когда я инжектил свой код в процессы, то я сначала останавливал ВСЕ потоки того процесса, куда я пытался что-то впихнуть. Это во-первых. Во-вторых, чтобы что-то куда-то записать, надо под это дело память выделить (NtAllocateVirtualMemory(...)), иначе может получиться так, что ты запишешь свой код на код или данные того процесса, куда пишешь. В-третьих, (как следствие) ты пишешь по адресу EDI, а ты уверен, что по этому адресу в процессе svchost.exe память доступна для записи?
     
  3. Koshak

    Koshak New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2006
    Сообщения:
    31
    Адрес:
    Russia
    Пардон, потоки у тебя должны быть остановлены, т.к. ты процесс создаёшь с CREATE_SUSPENDED.
     
  4. fr0b-p

    fr0b-p New Member

    Публикаций:
    0
    Регистрация:
    1 окт 2006
    Сообщения:
    118
    нормально инжектится в работающий процесс... а память да, должна быть выделена.
     
  5. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    отвечу и сюда, также, как и на форум фасма.

    воспользуйся командой Int 3, и посмотри что происходит.

    У тебя нет адреса МессагаБокса, он неверный лежит в [_MessageBox].

    отладчик тебе в помощь.
     
  6. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    dead_body почему это его нет?

    mov edi,[MessageBox]
    mov [_MessageBox],edi ;записывается адрес MessageBox в переменную _MessageBox
     
  7. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    edi = 000020D4

    на адрес МасагаБокса никак не похоже.
     
  8. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    http://board.flatassembler.net/topic.php?p=46765#46765

    я тебе тут ответил.
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    "Hurray for malware writers" :)
     
  10. Pinkbyte

    Pinkbyte Member

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    106
    А можно вопрос в тему - как произвести inject в svchost не будучи админом, то есть не используя SE_DEBUG_PRIVILEGE(доступную по идее только админам)?
     
  11. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    люди, а откуда взят этот сорец?
     
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Pinkbyte
    Написать код использующий локальную уязвимость с повышением прав.
     
  13. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
  14. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    ...разобрался, проблема была в дебаг привелегиях
     
  15. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    maestro-ant
    Такой вот вопрос: "Чем отлаживать внедряемый в посторонний процесс, код?"
    Вот этот твой код (или что-то больше) --->
    Код (Text):
    1. ...
    2. _download:
    3.  
    4.   call  .delta
    5.  
    6.  .delta:
    7.    pop   ebp
    8.    sub   ebp,.delta
    9.  
    10.    xor   esi,esi
    11.  
    12.    push  MB_OK
    13.    lea   eax,[ebp+_Str1]
    14.    push  eax
    15.    lea   eax,[ebp+_Str1]
    16.    push  eax
    17.    push  HWND_DESKTOP
    18.    call  [ebp+_MessageBox]
    19. ret
    20. ...
    ---> как этот код вообще возможно отлаживать, т.е. каким отладчиком? Olly не показывает код, может я не туда смотрю? или может настройки для Olly какие я не учел?
     
  16. Errorneous

    Errorneous New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    3
    Адрес:
    Moscow
    =))
     
  17. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
  18. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    hlt + Delphi 7
    При вылете процесса можно отладить при помощи Delphi-debugger. Очень хороший отладчик.
    Это плюс в сторону делфи.

    А никак.
    Даже будучи админом без отладочных привилегий инжект в системный процесс ты не зделаешь...
    Только сплойт.

    ЗАЧЕМ?? В чем смысл? У меня все прекрасно инжектится и без остановки.
     
  19. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    nitrotoluol
    а Olly не может? даже если как-то поднастроить?
     
  20. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Без синхронизации тоже все обычно работает. До поры-до времени.