Загрузка...

Автозагрузка в безопасном режиме

Тема в разделе C/C++ создана пользователем Podorozhnyk 16 апр 2022. 236 просмотров

  1. Podorozhnyk
    Podorozhnyk Автор темы 16 апр 2022 0 18 авг 2020
    C
    bool WinlogonSet(wstring lpPath)
    {
    HKEY hKey = NULL;
    const TCHAR winlogonDir[MAX_PATH] = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\";
    TCHAR lpBuffer[MAX_PATH];

    wcscpy_s(lpBuffer, L"explorer.exe, ");
    wcscat_s(lpBuffer, lpPath.c_str());

    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, winlogonDir, NULL, KEY_WRITE, &hKey) != ERROR_SUCCESS) {
    return false;
    }
    if (RegSetValueEx(hKey, L"Shell", 0, REG_SZ, (PBYTE)lpBuffer, MAX_PATH) != ERROR_SUCCESS) {
    return false;
    }

    RegCloseKey(hKey);
    return true;
    }

    Этот код создает по пути запись, которая должна осуществлять автозапуск как в обычном режиме, так и в безопасном. Но при тесте возникла проблема. Запись создается, но после перезапуска программа не стартует. Но если изменить как-нибудь эту запись (например, добавить пробел в конце) и перезапустить систему, то после загрузки программа стартует и с этого момента будет включаться после каждого перезапуска. Чем это можно объяснить?
     
  2. Replacer
    Replacer 17 апр 2022 ARTIFICIAL SUICIDE 99 21 июл 2021
    Объяснить можно изменением системного значения (т.е зарезервированного изначально), думаю, поэтому оно может так тупить. Пытался добавлять еще какие-либо символы или колдовать со значением? Если говорить по факту - необходимо подвергать это дебагу, смотреть, что выкидывает в случаях, что ты описал.
    Не пробовал реализавоть тот же COM Hijacking, к примеру?
     
    17 апр 2022 Изменено
    1. Посмотреть предыдущие комментарии (8)
    2. Replacer
      Podorozhnyk, тогда стоит посмотреть другие методы резистентности, думаю. Обрати внимание на scheduled tasks или тот же COM hijacking. Извини, что с этим не смог помочь
    3. Podorozhnyk Автор темы
      Replacer, да ничего, но не подскажешь, что за COM hijacking?
    4. Replacer
      Podorozhnyk, закрепление через абьюз COM-объектов в
      HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mscfile\shell\open\command
      . Технически туда можно закинуть бинарь и он должен (по идее) сработать при старте системы (тут не имеет смысла учитывать, что инициализируется ранее).
      Была у меня еще идея тебе предложить абьюзить autorun, но с заменой легитимных PE. Т.е, допустим у нас есть Spotify, а мы меняем ключ загрузки на собственный бинарь, при этом сохраняя ключ и к Spotify. Вот тебе PoC для понимания к чему я веду.
Top
Загрузка...