Cogitations poenam nemo patitur (лат.)
Никто не несет наказания за мысли
Да будет использован синтаксис
ассемблера и чистого Си!
(c) MD5: d0558134ba9db6d134e639d0e1ebb008Начинаем становится сискодеромИтак мы уже считаем себя сискодером, уяснили что между ядром и режимом пользователя Рассматривать нативные функции можно здесь – отличие от Win API огромно, но несет для нас , т.е. потенциальных вирмейкеров серьезный потенциал.
Или по простому - системным программистом
Приложение 1 к
"VX начала "
(c) MD5: d0558134ba9db6d134e639d0e1ebb008
часть 1
Далее, все что тут будет рассматриваться имеет лишь чисто познавательно – экспериментальный характер, предназначенный для запуска лично у себя на виртуальных машинах и т.д. не несет потенциально вредоносной нагрузки в априори. Все применения последующих машинных команд снимают с автора данного текста всякие основания для его преследования, согласно международного законодательства и конвенциями о свободе мысли и слова ООН.
Что ж, поехали.
Все дефайны и хидеры вы получите подключив к своим проектам в Visual Studio. Архив прилагается навсегда и будет , …..когда откроется тематический раздел или погуглите. Считайте домашним заданием для начинающих малварекидесов)
Ну, так например начнем пищать с системного динамика:
Если есть бипер – пикалка при загрузке на материнке, то нативная функция NtDeviceIoControlFile самая из всех в системе уязов- херовое обеспечение на уровне железа. обеспечивает прямой доступ к вашей памяти и управляет ей, девайс только назван \\Device\\Beep, На самом низком уровне ядра – это файл.Код (C):
BOOL WINAPI NtBeep (DWORD dwFreq, DWORD dwDuration) { HANDLE hBeep; //Хендл устройства ядра UNICODE_STRING BeepDevice; OBJECT_ATTRIBUTES ObjectAttributes; IO_STATUS_BLOCK IoStatusBlock; if ((dwFreq >= 0x25 && dwFreq <= 0x7FFF) ||(dwFreq == 0x0 && dwDuration == 0x0)) { // Причем, это просто внутренняя структура для 2-х функций : /* https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-rtlinitunicodestring положено в нативе, кроме загрузчика, все только UNICODE: InitializeObjectAttributes(&ObjectAttributes,&BeepDevice,0,NULL,NULL); // надо юзать здесь, но я употребил тут заполнение структур для запоминания количества байт, что бы считали сами впредь *// BeepDevice.Buffer=L"\\Device\\Beep"; // Открываем драйвер вашего динамика бипера на материнской плате. Если есть. BeepDevice.Length=24; //жестко задал, чтоб не мучатся иниками BeepDevice.MaximumLength=26; InitializeObjectAttributes(&ObjectAttributes,&BeepDevice,0,NULL,NULL); if (NT_SUCCESS(NtCreateFile(&hBeep,FILE_READ_DATA | FILE_WRITE_DATA,&ObjectAttributes,&IoStatusBlock,NULL,0,FILE_SHARE_READ | FILE_SHARE_WRITE,FILE_OPEN_IF,0,NULL,0))) { struct { ULONG Frequency; ULONG Duration; } BEEP_SET_PARAMETERS={{dwFreq},{dwDuration}}; if (NT_SUCCESS(NtDeviceIoControlFile(hBeep,NULL,NULL,NULL,&IoStatusBlock,0x10000,&BEEP_SET_PARAMETERS,sizeof(BEEP_SET_PARAMETERS),NULL,0))) { if ((dwFreq != 0x0 || dwDuration != 0x0) && dwDuration != (DWORD)-1) NtSleepEx(dwDuration,TRUE); NtClose(hBeep); return TRUE; } else return FALSE; } } return FALSE; }
Чем отличается символическая ссылка от хардварной – это не ко мне, мы долго спорили в 2007 с FourF и пришли к выводу, что хардлинки просто спуфятся ядром, где не важно, видимо в шарах.
В общем: Драйвер стоит у всех, но динамик не у всех физически на материнке, поэтому канал отладки SMB (полный контроль системы на основе доступа к РДП) связанный со структур Share memory, а проще все в систем находящейся всего лишь под эмулятором WoW64 образует файловую проекцию на Share memory с установкой временного обхода AV, т.н. FikeMapping, который является на сегодня теоретическим сплоитом.
Сноска: Вообще – вся Windows исторически писалась разными людьми и причем не согласованно и в большом количестве кода. Сначала придуман был Биллом Гейтсом объект Файл, потом его начали на уровне ядра все переписывать, получилась каша и неразбериха, 4 команды индусов придумали RPC, 8 команд их придумали т.н. пайпы (именованные каналы), 2 команды придумали вывод в консоль, и т.д. я про порты здесь не говорю.
Я на данный момент могу старым софтом Sokol практически по любой целевой машине ударить ARP+RPC+SMB (дебилы применяют сейчас для DDOS -атак),
Поверьте устоит лишь та машина, где хеши/пароли меняются в период захвата прав Админа.
(C)(2020) by MD5: d0558134ba9db6d134e639d0e1ebb008
Telegram: @DartSidys
Jabber: CryptorX@404.city
PS: Времени реакции сети на провокацию SMB. –вижу, но ARP+RPC+SMB, но принесет профит только SMB.
Начинаем становится сискодером [цикл для новичков]
Дата публикации 2 авг 2020
| Редактировалось 18 ноя 2022