Вживление VB-кода в другие процессы

Обсуждение статей, опубликованных на сайте.
tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2006 (Пн) 10:31

VERITAS писал(а):Возможно отследить такое вжевление, ну тоесть определить то что оно произошло - можно(Outpost детектит)

Только в случае подгрузки своей длл-ки (как в случае с хуками и примере ANDLL)
Если код засовывать по VirtualAllocEx+WriteProcessMemory, как в примере с часиками в трее, никто ничего не просечёт.
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2006 (Пн) 12:04

Если код засовывать по VirtualAllocEx+WriteProcessMemory
Кажеться, Outpost отслеживает именно WriteProcessMemory... И пишет, что память процесса была изменена...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 05.06.2006 (Пн) 12:46

Я про это и говорил. Главное - чтобы нельзя было определить что конкретно внедренно и что "оно" то самое внедренное изменяет.

А по поводу Outpost - то программа рулез, такие вещи делают ребята в программе, что любому программеру хотелось бы найти исходники :)

tyomitch - поделись всоим ассемблером, я уже стоко их перекачал и tasm32 и masm32 и fasm, и nasm - ниодна из них не воспринимает "or" а некоторые вообще не хотят компилить ?? :roll:
No comments ...

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 05.06.2006 (Пн) 14:47

ANDLL по поводу твоего совета, использовать функцию ExitProcess ничего не вышло, после внедрения кода - "инфицированная" программа просто слетала с "рельс" (хотя может из за моих "кривых" рук). А вот через Open\Terminate Process все работает как надо.

И опять же по поводу безопастности и конфиденциальности (просто если внедрение не совершится - то весь мой проект накроется "медным тазом"), :
(1) Возможно ли сторонне восприпятствовать моему внедрению (например, через какую-то программу заблокировать доступ к процессу) ? И как можно удостовериться что внедрение произошло успешно ?
(2) Какие права в системе должен иметь юзверь, чтобы все из статьи ANDLL'a - работало?
No comments ...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2006 (Пн) 15:32

ANDLL по поводу твоего совета, использовать функцию ExitProcess ничего не вышло, после внедрения кода - "инфицированная" программа просто слетала с "рельс" (хотя может из за моих "кривых" рук).
Именно по этому.
Возможно ли сторонне восприпятствовать моему внедрению (например, через какую-то программу заблокировать доступ к процессу) ?
Разумеется. Перехватить WriteProcessMemory.
И как можно удостовериться что внедрение произошло успешно ?
Пусть внедренный код чтонибудь делает... Скажем, начиная от переключения светофора, и заканчивая создание\удалением какого нибудь "секретного" файла.
Какие права в системе должен иметь юзверь, чтобы все из статьи ANDLL'a - работало?
Смотря к кому желаем присоединится. Если к процессу того же пользователя, то никакаие. Если к процессу другого пользователя, то почти наверняка нужны права администратора или типа того....
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2006 (Пн) 17:15

ANDLL писал(а):
Если код засовывать по VirtualAllocEx+WriteProcessMemory
Кажеться, Outpost отслеживает именно WriteProcessMemory... И пишет, что память процесса была изменена...

Очень сильно сомневаюсь. Например потому, что WriteProcessMemory используется некоторыми системными функциями.

Вот сейчас проверю, и если окажется что ты неправ -- сильно обижусь :-)
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2006 (Пн) 17:44

Как я и предполагал, Outpost не отслеживает WriteProcessMemory. ANDLL -- стыд и позор за некомпетентность.


Код для проверки:
Код: Выделить всё
Option Explicit

Private Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByRef lpParameter As Any, ByVal dwCreationFlags As Long, ByRef lpThreadId As Long) As Long
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByRef dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByRef lpBuffer As Any, ByVal nSize As Long, ByRef lpNumberOfBytesWritten As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Const PROCESS_ALL_ACCESS = &HF0FFF
Private Const MEM_COMMIT = &H1000
Private Const MEM_RESERVE = &H2000
Private Const PAGE_EXECUTE_READWRITE = &H40

Sub Main()
Dim hProcess As Long, pMemory As Long
hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, 2564) 'подставить нужный PID
pMemory = VirtualAllocEx(hProcess, 0, 1024, MEM_RESERVE Or MEM_COMMIT, PAGE_EXECUTE_READWRITE)
WriteProcessMemory hProcess, pMemory + 0, &H6A5A58, 4, 0
WriteProcessMemory hProcess, pMemory + 4, &H68, 1, 0
WriteProcessMemory hProcess, pMemory + 5, pMemory + 20, 4, 0
WriteProcessMemory hProcess, pMemory + 9, &H68, 1, 0
WriteProcessMemory hProcess, pMemory + 10, pMemory + 50, 4, 0
WriteProcessMemory hProcess, pMemory + 14, &HFF50006A, 4, 0
WriteProcessMemory hProcess, pMemory + 18, &HE2, 1, 0
WriteProcessMemory hProcess, pMemory + 20, ByVal "Hello from the remote thread!", 30, 0
WriteProcessMemory hProcess, pMemory + 50, ByVal "Now see if the Outpost can notice this intrusion.", 50, 0
CreateRemoteThread hProcess, ByVal 0&, 0, pMemory, ByVal GetProcAddress(GetModuleHandle("user32"), "MessageBoxA"), 0, 0
End Sub


Тестировалось с версией 2.1.292.3816 (307)
У кого есть новее, можете проверить сами.
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2006 (Пн) 17:58

У меня 2.7.485.5401 (412).
Тестировалось с версией 2.1.292.3816 (307)

А тот процесс, в который вшивался файл вообще как то у Outpost отмечен был?
Вложения
AA.JPG
AA.JPG (144.31 Кб) Просмотров: 15201
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2006 (Пн) 18:20

Ну, значит я отстал от жизни :cry:
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2006 (Пн) 18:23

стыд и позор?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2006 (Пн) 18:33

Ага.
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2006 (Пн) 18:47

А мой "стыд и позор" аннулируется?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2006 (Пн) 19:03

Может, мне ещё прислать фотографию себя, кусающего локти? :-)
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2006 (Пн) 19:45

И это то же....
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 06.06.2006 (Вт) 10:06

ФЛУД !!! :)

Появился такой вопрос по поводу Oupost (ANDLL как я понял у тебя он стоит) - если "убить" процесс Outpost - то блокируется доступ в сеть, т.е. если завершить Outpost через TerminateProcess то он делает блокировку сети. Или же это вовсе не он а брандмауэр Windows.
Если это брандмауэр - то как сделать его сброс - чтобы он обновился ?

Заметка: ведь в XP при отключение сторонних защит и при выключенном встроенном брандмауэре в трее появляется значок Оповещения системы безопастности. Так вот, если, закрыть Outpost "нормальным способом" - то значок появляется, а вот если убить процесс - то значка нет в трее !!! Это значит что полюбому это как то связано !
No comments ...

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 06.06.2006 (Вт) 10:17

VERITAS
:)
Предлагаю тебе угадать с 3 попыток

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 06.06.2006 (Вт) 10:29

Да если бы я угадал - я б не спрашивал. Это дело такое "эники беники ели варенники ..." :D
No comments ...

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 06.06.2006 (Вт) 10:34

Предлагаю тебе тогда провести небольшой опыт :)
Открываешь 6 Бейсик, создаешь проэкт "Standart EXE" и коде формы пишешь

Код: Выделить всё
Private Sub Form_Unload(Cancel As Integer)
MsgBox "Я умираю"
End Sub


    Запускаешь приложение
    Закрываешь
    Запускаешь
    Убиваешь процесс
    Делаешь вывод (угадываешь)

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 06.06.2006 (Вт) 11:41

Ramzes нашел чем удивить :) Какое открытие :)

По делу: Дак я не про то твержу - ведь Outpost пока работает - дает доступ к сети - т.е. пока он весит - доступ есть, а вот если его убить - доступа нет. Здесь может быть два объяснения: 1) То что во время работы Outpost - запрещен доступ к сети. При запуске какого-то процесса - проверяются права этого проесса - а затем уже он решает разрешить или нет этому процессу работать с сетью. 2) Что-то похожее на "вжевление кода". Может быть он внедряет в какой нибудь процесс свой код (по принципу статьи) - и если вы убиваете Outpost - происходит блокировка сети - а такое в принципе возможно (чем программист не шутит).

Ну и как тут угадать ?? А может действует и то и другое - я к сожалению незнаком с принципом работы Outpost - может ты знаешь ?

Меня однако интересует отнюдь не принцип - а как это обойти, или как с этим бороться. Можно ли как то заново открыть доступ в сеть, к примеру перезапустив службу (Service) ?

Да и можно ли как то определять - имеет доступ пользователь к какой нибудь WINIP функции ( вообще его права ) ? Смотрел по поиску посты, в которых обсуждалось как получить права текущего пользователя - но ничего удовлетворительного не нашел :(
No comments ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.06.2006 (Вт) 11:42

У оутпоста есть ядро, которое разграничивает доступ, и есть GUI, который управляет этим ядром. Прибиваешь ты GUI.
Lasciate ogni speranza, voi ch'entrate.

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 06.06.2006 (Вт) 12:01

Тогда как убить ядро ? Или как убить GUI - с последующим (по нити) убиением ядра ?
No comments ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.06.2006 (Вт) 12:05

Убъешь ядро и сети вообще не будет.
Lasciate ogni speranza, voi ch'entrate.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 06.06.2006 (Вт) 12:17

VERITAS
Ядро в kernel mode, так что ты его не убьёшь. На www.wasm.ru была статья, описывающая, как обмануть outpost (ссылку дать не могу, ибо сайт сейчас не работает :( Но написал её, если не ошибаюсь Ms-Rem, и название связано с инжектингом). Кстати WriteProcessMemory(точнее его kernel-mode аналог) таки перехватывается, но если объём данных меньше 16 байт, то outpost на неё не обращает внимания, думая, что вызов системный.
Изображение

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 06.06.2006 (Вт) 12:29

Вот теперь все прояснилось и прицип работы Outpost и как мне быть. Спасибо за разъяснения - выход один - оставить великий Outpost в покое - и обходить его стороной. Я еще раз убедился, что Outpost - очень замечательное творение !

Что же буду исключать его из проверки и не троогать, сверяя размер outpost.exe с default size - ибо другого выхода невижу.
No comments ...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.06.2006 (Вт) 12:35

ms-rem?.. Этот тот, ошибки в мыслях которого tyomitch неоднократно находил?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.06.2006 (Вт) 13:02

keks-n писал(а):Кстати WriteProcessMemory(точнее его kernel-mode аналог) таки перехватывается, но если объём данных меньше 16 байт, то outpost на неё не обращает внимания, думая, что вызов системный.

Гм. Ну пусть тогда ANDLL, у которого есть свежий Outpost, проверит мой код, урезав строки до 16 байт ;-)
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 06.06.2006 (Вт) 13:43

GSerg писал(а):ms-rem?.. Этот тот, ошибки в мыслях которого tyomitch неоднократно находил?..
ХОть мое мнение никого и не интересует, но чувак сильно шарящий... Хотя бы если сулить по его статьям.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 06.06.2006 (Вт) 13:44

ANDLL писал(а):
GSerg писал(а):ms-rem?.. Этот тот, ошибки в мыслях которого tyomitch неоднократно находил?..
ХОть мое мнение никого и не интересует, но чувак сильно шарящий... Хотя бы если судить по его статьям.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 06.06.2006 (Вт) 13:48

У меня Outpost на такое ругается, говорит, что-то вроде "процесс ай-ай-ай хочет изменить чужую память ай-ай-ай" :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.06.2006 (Вт) 13:49

gaidar, а у тебя версия какая? :-)
Изображение

Пред.След.

Вернуться в Статьи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList  
cron