Пожалуйста, обратите внимание, что пользователь заблокирован
Мы тут всегда забываем, что все решается через анклавы, хорошо, что я пригласил сюда Индия, чтобы он нам постоянно напоминал. Все решается через анклавы, поцоны.
Ну вирту можно прокинуть и не универсальным способом, как бы вирта не может полностью эмулировать окружение реальной системы. Давай подумаем, как "прокинуть" hips/проактивку, которая в ядре сидит или на уровне гипервизора, или как "прокинуть" аверское облако, чтобы семпл не улетал на анализ туда. Я понимаю, что анклавы ты считаешь главным достижением своей жизни, но, поскольку ты на них зациклился, у тебя и мотивации больше нет что-то интересное делать.Да, это единственный универсальный способ прокинуть авер вирту, другого нет
Речь ведь была не совсем и про вирту. В последнем своём сообщении я раскрыл постановку вопроса более широко, касаясь в целом АВ технологий и средств обнаружения этой атаки.Rel
Да, это единственный универсальный способ прокинуть авер вирту, другого нет.
По сабжу: да ну этот ваш ROP, все модные поцоны используют JOP!В общем, Инди, не все визор, что блестит.
Это верно для Windows 10. Согласно https://j00ru.vexillium.org/syscalls/nt/64/ в предыдущих версиях Windows использовались номера 0x52, 0x53 и 0x54. Для некоторых других Nt*-функций номера вызовов изменялись при обновлениях Windows 10.move eax,55h 55 is the system call number for NtCreateFile function ,
Вот её, наверное, можно взять за основу: пусть дизассемблирует и вытаскивает номер сервиса из чистого образа.Я для обнаружения и вывода дизасма таких перехватов специальную тулзу делал тут: https://xss.pro/threads/43097/
yes, every windows version has defferent sys call number windows vista not like windows 7 and windows 7 not like windows 10 and there.This is true for Windows 10. According to https://j00ru.vexillium.org/syscalls/nt/64/ , previous versions of Windows used the numbers 0x52, 0x53 and 0x54. For some other Nt * features, call numbers have changed with Windows 10 updates.
Here it can probably be taken as a basis: let it disassemble and pull out the service number from a clean image.
Вообще, я где то слышал (сам пока не тестил), что номер сервиса однозначно соответствует порядковому номеру соответствующей Zw* функции в ntdll. То есть, если взять все экспорты из ntdll, которые начинаются на Zw, отсортировать их по имени, то индекс отсортированного массива на практике будет номером сисколла. Но на слово не верьте, это надо протестировать хорошо на всех системах, прежде, чем утверждать.Вот её, наверное, можно взять за основу: пусть дизассемблирует и вытаскивает номер сервиса из чистого образа.
Может быть так было когда-то (т.к. местами какой-то порядок прослеживается), но сейчас точно нет. Проверил на ntdll.dll и win32u.dll. Плюс где-то лежат еще другие базы системных dll с сиськами, но найти не могу и названия не помню. Может что-то с directx. Вообще Майки периодически удаляют и добавляют новые сиськи, в десятке биндифом наблюдал.Вообще, я где то слышал (сам пока не тестил), что номер сервиса однозначно соответствует порядковому номеру соответствующей Zw* функции в ntdll. То есть, если взять все экспорты из ntdll, которые начинаются на Zw, отсортировать их по имени, то индекс отсортированного массива на практике будет номером сисколла. Но на слово не верьте, это надо протестировать хорошо на всех системах, прежде, чем утверждать.
Такой вариант не слышал, посмотрю. Но в целом, найти их несложно - парсим таблицу экспорта , оттуда все функции, что начинаются на Zw/Nt, и смотрим первые байтычто номер сервиса однозначно соответствует порядковому номеру соответствующей Zw* функции в ntdll
B8 72 01 00 00 mov eax, 172h ; NtTerminateProcessYes i wrote about userland hooks as you know some of AV vendors use NT or Winapi hooking to can read buffer from function args like if we WriteProcessmemory they can read the buffer we wrote to address . so this code will just skipe the hook but if the AV hook in kernel or listing on kernel call or minifilters this will not work , and i tested this on KasperSky on windows 10 64bit he go bypassed in some Rats and some rats just get detected i think this becouse the rat has so many signituresI haven’t heard such an option, I’ll take a look. But in general, it is not difficult to find them - we parse the export table, from there all the functions that begin with Zw / Nt, and look at the first bytes
B8 72 01 00 00 mov eax, 172h ; NtTerminateProcess
here is what after B8, do MAKEWORD and there will be a siskol number. Tested on all OS, like you also wrote in your article about hooks?
But all the same, the method of siskols seems to me not particularly rosy due to
1) pale, because the sysenter / syscall instruction does not morph, and avers see it in the code
2) the complexity of development, tk. most of the software is 32 bit (see all the lockers on the market, all the stealers, etc.), and the OS is 64 bit; you can use the gateway as a TS, but then the whole point of the siskols is lost - the Aver puts the interception there and that's it, there were articles on this topic.
3) the reliability of the code is also questionable. How will it work in combat conditions? Of course, running some kind of facial expression or something is one thing. And even if you take a locker, you can use NtCreateThread, NtCreateFile, and in bulk and multithreaded. Whether it will work as normal is a question. On the market I have not met (I mean popular software) those that use siskols, although conventional reviles and locks had a lot of dough to rewrite software for siskols. Lokbit seems to be using native api, but I haven't seen its latest releases (version 2). There was such a locker handcrab, which allegedly earned 2 yards, they also announced siskols, in the end they abandoned this venture (it's not clear why, but I think not everything is as smooth in business as in the article).
Отсюда вытекает дальнейшее развитие "дизассемблера": поскольку чистый образ ntdll уже загружен в память и адреса переходников получены, может быть достаточно добавить соответствующим страницам право на исполнение (либо скопировать куда-то B8 xx xx 00 00 + хвост). С другой стороны, сам факт обхода юзеромодного хука может быть зафиксирован в ядре (минифильтром или нотификатором) - а это явный признак, что софт делает что-то не то.мне методика сисколов кажется не особо радужной из-за
1) палева , т.к. инструкция sysenter /syscall не морфится, и аверы видят ее в коде