Как подключиться к windows из linux по rdp

Обновлено: 05.07.2024

Для удаленного управления выделенным сервером можно подключиться к нему:

    (для серверов с ОС Linux); (для серверов с ОС Windows); (для серверов с macOS); (для серверов с любой ОС, кроме линейки Chipcore Line).

Параметры для подключения (логин, пароль, публичный IP-адрес сервера) указаны в панели управления на странице сервера ⟶ вкладка Операционная система.

Подключиться по SSH

Протокол SSH используется для подключения к серверам с ОС Linux из:

Для подключения к серверу можно вводить логин и пароль или использовать пару сгенерированных SSH-ключей. Подключиться по паре ключей можно только с того компьютера, на котором хранится закрытый SSH-ключ.

Подключиться из ОС Linux/ macOS

Подключитесь к серверу:

  • <username> — имя пользователя;
  • <server IP> — публичный IP-адрес сервера.

Введите пароль. Если вы используете пару SSH-ключей, вводить пароль не нужно.

Создать пару SSH-ключей

Сгенерируйте пару SSH-ключей:

Укажите путь для хранения ключей:

Опционально: введите кодовую фразу для дополнительной защиты и повторите ее:

Выведите открытый ключ:

Разместите открытый SSH-ключ на сервере:

    через панель управления. Потребуется переустановка ОС на сервере. Откройте страницу сервера ⟶ вкладка Операционная система, нажмите Изменить конфигурацию ОС, в поле SSH введите открытый ключ. Переустановите ОС, при этом открытый SSH-ключ автоматически копируется на сервер.

через CLI. Перейдите в директорию .ssh где находится пара ключей и скопируйте открытый SSH-ключ на сервер. При выполнении операции система запросит пароль.

  • <username> — имя пользователя;
  • <server IP> — публичный IP-адрес сервера.

Подключиться из ОС Windows

В Windows 10 подключиться к серверу можно также, как в Linux и macOS, через командную строку (cmd.exe). В более ранних версиях Windows для подключения используется PuTTY.

  1. Опционально: создайте пару SSH-ключей.
  2. Установите PuTTY и запустите его.
  3. Перейдите на вкладку Session.
  4. В поле Host Name введите публичный IP-адрес сервера.
  5. В поле Port укажите порт для SSH подключения (по умолчанию 22).
  6. В поле Connection type выберите тип соединения SSH.
  7. Если вы используете пару SSH-ключей, перейдите на вкладку SSH — Auth, нажмите Browse и загрузите файл с закрытым ключом.
  8. Нажмите Open.
  9. Откроется консоль. Подтвердите подключение и введите логин и пароль для входа на сервер. Если вы используете пару SSH-ключей, вводить пароль не нужно.

Создать пару SSH-ключей

Создать создать пару SSH-ключей в Windows 10 можно через командную строку (cmd.exe) также, как в Linux/macOS. В более ранних версиях Windows для генерации ключей используется PuTTY.

  1. Установите PuTTY и запустите приложение PuTTYgen.
  2. В меню Type of key to generate выберите тип ключа RSA.
  3. Нажмите Generate. Перемещайте курсор в рамках окна PuTTYgen пока не будет создана пара ключей. После создания открытый ключ будет выведен на экран.
  4. Нажмите Save public key и Save private key. Укажите путь для хранения ключей.
  5. Опционально: в поле Key passphrase введите кодовую фразу для дополнительной защиты.

Разместите открытый SSH-ключ на сервере:

    через панель управления. Потребуется переустановка ОС на сервере. Откройте страницу сервера ⟶ вкладка Операционная система, нажмите Изменить конфигурацию ОС, в поле SSH введите открытый ключ. Переустановите ОС, при этом открытый SSH-ключ автоматически копируется на сервер.

через командную строку (cmd.exe). Скопируйте открытый SSH-ключ на сервер:

  • </path/to/file> — путь до открытого ключа;
  • <username> — имя пользователя;
  • <server IP> — публичный IP-адрес сервера;
  • </path/to/destination> — путь для хранения открытого ключа на сервере.

Подключиться по RDP

Протокол RDP используется для подключения к серверам с ОС Windows из:

Подключиться из ОС Windows

  1. Откройте меню Пуск ⟶ Подключение к удаленному рабочему столу.
  2. В поле Компьютер введите публичный IP-адрес сервера.
  3. Нажмите Подключить.
  4. Введите Имя пользователя и Пароль.
  5. Нажмите OK.

Подключиться из ОС Linux

Подключитесь к серверу (пример для rdesktop) :

  • <server IP> — публичный IP-адрес сервера;
  • <username> — имя пользователя;
  • <password> — пароль.

Подключиться из macOS

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

  1. Установите Microsoft Remote Desktop и запустите его.
  2. Нажмите +.
  3. В поле PC name введите публичный IP-адрес сервера.
  4. Введите Username и Password.
  5. Нажмите Save.
  6. Дважды щелкните по созданному подключению в списке.

Подключиться по VNC

Протокол VNC используется для подключения к серверам с macOS из:

Подключиться из macOS

  1. Запустите Finder.
  2. Откройте меню Переход ⟶ Подключение к серверу.

В поле Адрес сервера введите:

Нажмите Подключиться.

Введите Имя пользователя и Пароль.

Нажмите Войти.

Подключиться из ОС Windows/ Linux

Для подключения используется клиент для VNC (TightVNC, RealVNC и пр.). Процесс подключения зависит от выбранного клиента.

freerdp — это клиент RDP для подключения к удалённому рабочему столу из Linux.

Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Если пакеты freerdp2-x11 и freerdp2-shadow-x11 не найдены, то поищите пакет с именем freerdp.

Для установки freerdp в Arch Linux и производные выполните команду:

Как подключиться командой freerdp

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

  • /f — опция означает открыть удалённый стол в полноэкранном режиме
  • /u:ИМЯ-ПОЛЬЗОВАТЕЛЯ — имя учётной записи на компьютере, к которому подключаемся
  • /p:ПАРОЛЬ — пароль указанной учётной записи
  • /v:ХОСТ[:ПОРТ] — IP адрес или имя компьютера, к удалённому столу которого выполняется подключение. ПОРТ указывать необязательно

Например, я хочу открыть удалённый стол компьютера с IP адресом 192.168.0.101, на котором имеется пользователь Tester с паролем 1234, причём я хочу открыть удалённый рабочий столк в полноэкранном режиме, тогда команда следующая:

Для переключения между полноэкранным режимом и оконным, используется сочетание клавиш Ctrl+Alt+Enter.


Поскольку используются самоподписанные сертификаты без добавленного в хранилище приватного CA (центра аутентификации, удостоверяющего центра), то единственный выбор, это согласиться доверять указанному сертификату, для этого введите Y.

В полноэкранном режиме вы можете отключиться от удалённого рабочего стола двумя способами:

  • нажать крестик на верхней панели
  • меню «Пуск» → Выключение → Отключиться


Для запуска в оконном режиме не используйте опцию /f:


Опции xfreerdp

У программы xfreerdp множество опций, далее выбраны самые интересные из них:

Как в freerdp создать общие папки

С удалённым рабочим столом, подключённым по RDP, можно иметь совместные папки. Рассмотрим несколько примеров.

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

На скриншоте показан удалённый стол Windows, в котором доступны папки Linux системы, из которой сделано подключение по RDP:


Чтобы подключить только домашнюю папку текущего пользователя Linux в качестве сетевой папки к компьютеру по RDP укажите опцию +home-drive:

В этом случае домашняя папка смонтирована в систему, подключённую по протоколу удалённый рабочий стол:


С опцией /drive:ИМЯ,/ПУТЬ/В/LINUX можно подключить любую папку с любым именем. В качестве /ПУТЬ/В/LINUX должен быть указан путь в текущей системе, а ИМЯ это то имя, которое будет иметь шара в удалённой системе. Например, чтобы подключить корневую папку текущей системы (/) к удалённой с именем root:

Как вывести удалённый рабочий стол на другой монитор

Если у вас несколько мониторов, то вы можете выбрать, какой из них использовать для удалённой системы. Чтобы вывести список мониторов запустите команду:

Как установить размер окна удалённого рабочего стола

Если вместо высоты (h) установлена ширина (w), примерно как /size:50%w, то будет использоваться 50 процентов ширины.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Оглавление: Всё о RDP: от настройки до взлома

Теперь рассмотрим, как из Linux подключиться к удалённому столу Windows.

Как подключиться к удалённому столу по RDP в Linux

Клиенты RDP существуют для многих платформ, даже для мобильных телефонов, конечно, имеются клиенты RDP и для Linux

Мы рассмотрим 2 клиента RDP под Linux

  • freerdp — бесплатная реализация протокола удалённого рабочего стола (Remote Desktop Protocol (RDP))
  • rdesktop — клиент с открытым исходным кодом для служб Windows удалённого рабочего стола

Также имеется клиент VNC и RDP с графическим пользовательским интерфейсом — Remmina. У программы много настроек, в целом она дружественная пользователю за исключением одного недостатка — она не заработала. Тем не менее она присутствует в стандартных репозиториях большинства дистрибутивов, поэтому при желании вы без труда сможете установить и попробовать её.

Как пользоваться freerdp

Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Если пакеты freerdp2-x11 и freerdp2-shadow-x11 не найдены, то поищите пакет с именем freerdp.

Для установки freerdp в Arch Linux и производные выполните команду:

Как подключиться командой freerdp

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

  • /f — опция означает открыть удалённый стол в полноэкранном режиме
  • /u:ИМЯ-ПОЛЬЗОВАТЕЛЯ — имя учётной записи на компьютере, к которому подключаемся
  • /p:ПАРОЛЬ — пароль указанной учётной записи
  • /v:ХОСТ[:ПОРТ] — IP адрес или имя компьютера, к удалённому столу которого выполняется подключение. ПОРТ указывать необязательно

Например, я хочу открыть удалённый стол компьютера с IP адресом 192.168.0.101, на котором имеется пользователь Tester с паролем 1234, причём я хочу открыть удалённый рабочий стол в полноэкранном режиме, тогда команда следующая:

Для переключения между полноэкранным режимом и оконным, используется сочетание клавиш Ctrl+Alt+Enter.


Поскольку используются самоподписанные сертификаты без добавленного в хранилище приватного CA (центра аутентификации, удостоверяющего центра), то единственный выбор, это согласиться доверять указанному сертификату, для этого введите Y.

В полноэкранном режиме вы можете отключиться от удалённого рабочего стола двумя способами:

  • нажать крестик на верхней панели
  • меню «Пуск» → Выключение → Отключиться


Для запуска в оконном режиме не используйте опцию /f:


Опции xfreerdp

У программы xfreerdp множество опций, далее выбраны самые интересные из них:

Как в freerdp создать общие папки

С удалённым рабочим столом, подключённым по RDP, можно иметь совместные папки. Рассмотрим несколько примеров.

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

На скриншоте показан удалённый стол Windows, в котором доступны папки Linux системы, из которой сделано подключение по RDP:


Чтобы подключить только домашнюю папку текущего пользователя Linux в качестве сетевой папки к компьютеру по RDP укажите опцию +home-drive:

В этом случае домашняя папка смонтирована в систему, подключённую по протоколу удалённый рабочий стол:


С опцией /drive:ИМЯ,/ПУТЬ/В/LINUX можно подключить любую папку с любым именем. В качестве /ПУТЬ/В/LINUX должен быть указан путь в текущей системе, а ИМЯ это то имя, которое будет иметь шара в удалённой системе. Например, чтобы подключить корневую папку текущей системы (/) к удалённой с именем root:

Как вывести удалённый рабочий стол на другой монитор

Если у вас несколько мониторов, то вы можете выбрать, какой из них использовать для удалённой системы. Чтобы вывести список мониторов запустите команду:

Как установить размер окна удалённого рабочего стола

Если вместо высоты (h) установлена ширина (w), примерно как /size:50%w, то будет использоваться 50 процентов ширины.

Как пользоваться rdesktop

Для установки rdesktop в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Для установки rdesktop в Arch Linux и производные выполните команду:

Как подключиться к удалённому рабочему столу с rdesktop

Для подключения к RDP с rdesktop используйте команду вида:

Как обычно, в самом начале возникнет проблема с сертификатом:


Набираем yes.

Затем возникнет ошибка:

Другой вариант, который позволяет подключиться к Windows по RDP с помощью rdesktop без настройки Network Level Authentication (NLA) — это отключить аутентификацию на уровне сети в Windows. Понятно, что это ослабит безопасность RDP, поэтому не рекомендуется. Но как «быстрый грязный фикс» это можно сделать следующим образом: Меню «Пуск» → Параметры → Система → Удалённый рабочий стол → Дополнительные параметры → Снять галочку с «Требовать использование компьютерами аутентификации на уровне сети для подключения (рекомендуется)»:


Всё равно продолжить:


После этого подключение rdesktop проходит без ошибок:


В настройках Windows вы могли увидеть ссылку «Почему следует разрешать подключения только с проверкой подлинности на уровне сети?», там написано следующее:

Если вы хотите ограничить доступ к компьютеру, разрешите доступ только с проверкой подлинности на уровне сети (NLA). При включении этого параметра пользователи должны пройти аутентификацию в сети, чтобы подключиться к компьютеру. Разрешение подключений только с компьютеров с удаленным рабочим столом с NLA является более безопасным методом проверки подлинности, который поможет защитить компьютер от злоумышленников и вредоносных программ. Чтобы узнать больше о NLA и удаленном рабочем столе, ознакомьтесь с разделом Configure Network Level Authentication for Remote Desktop Services Connections (Настройка NLA для подключения к удаленному рабочему столу).

Если вы подключаетесь удаленно к компьютеру в своей домашней сети, не находясь в этой сети, не выбирайте этот параметр.

Как установить сервер RDP в Linux

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

В Linux протокол RDP не встроен по умолчанию как в Windows. Также в Linux отсутствуют некоторые другие протоколы, которые используются прозрачно (незаметно) для пользователей Windows, например, для сетевой аутентификации.

Тем не менее существуют сервера RDP которые успешно работают на Linux.

Как использовать freerdp-shadow для запуска RDP сервера

Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Для установки freerdp в Arch Linux и производные выполните команду:

Исполнимые файлы в разных дистрибутивах называются чуть по-разному. В Debian, Kali Linux, Linux Mint, Ubuntu файл для запуска RDP сервера называется: freerdp-shadow-x11

А в Arch Linux файл для запуска RDP сервера называется: freerdp-shadow-cli

Но по сути это одна программа и опции у них одинаковые.

Чуть выше, говоря о rdesktop, мы уже столкнулись с Network Level Authentication (NLA), то есть проверкой подлинности на уровне сети. Для запуска RDP сервера на Linux вы должны выбрать один из двух вариантов:

  • запустить сервер вовсе без аутентификации
  • включить NLA и сделать необходимые для неё настройки

Чтобы запустить RDP сервер вовсе без аутентификации используйте опцию -auth:

Если аутентификация включена, PAM используется с подсистемой X11. Запуск от имени пользователя root не обязателен, однако, если запускать от имени пользователя, только тот же пользователь, который запустил freerdp-shadow, может аутентифицироваться. Предупреждение: если аутентификация отключена, каждый может подключиться.

Любая сетевая служба без аутентификации это беда для безопасности системы. Поэтому рассмотрим, как запустить freerdp-shadow с поддержкой NLA.

Прежде всего для NLA необходимо создать файл, в котором будет строка вида:

Имя пользователя Linux нам известно, для вычисления хеша нужно выполнить команду вида:

К примеру, имя пользователя mial, а пароль цифра 2 тогда команда следующая:

Создаём текстовый файл SAM и в него записываем строку

Теперь запускаем freerdp-shadow-x11 с двумя опциями:

  • /sam-file:ФАЙЛ — указывает на расположение NTLM SAM файла для NLA аутентификации
  • /sec:nla — принудительное включение аутентификации по протоколу NLA

Итак, моя команда следующая:

Для проверки подключаюсь из Windows:


У нас запрашивают пароль — это означает, что на сервере RDP включена аутентификация NLA.

Для того, чтобы делиться не всем экраном, а только его частью, используйте опцию /rect:x,y,w,h. Где:

  • x,y — координаты верхнего левого угла прямоугольника
  • w — ширина прямоугольника
  • h — высота прямоугольника

Если при запуске RDP сервера freerdp-shadow вы получили ошибку:

То необходимо создать файл SAM и запустить freerdp-shadow с опциями /sam-file:SAM /sec:nla как это показано выше.

Как запустить RDP сервер с xrdp

Для установки xrdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:

Для установки xrdp в Arch Linux и производные выполните команды:

Для запуска служб xrdp-sesman и xrdp в любом дистрибутиве выполните команду:

Важные файлы xrdp:

  • /etc/xrdp/xrdp.ini — файл настроек
  • /var/log/xrdp.log — файл журналов событий

Подключаемся из Windows к xrdp. Вводим имя пользователя и пароль пользователя Linux:


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


Как из Linux подключиться к другому Linux по RDP

Каких-то особенностей при подключении с использованием программы xfreerdp нет, достаточно запустить сервер RDP, причём, если вы используете freerdp-shadow, то опции /sam-file:SAM /sec:nla также нужны:

Либо запустите xrdp-sesman и xrdp.

А затем подключение ничем не отключается от подключению к Windows:

Что касается rdesktop, то её не удалось заставить работать ни с одним из рассмотренных серверов RDP под Linux — если вы знаете, как это сделать, то пишите в комментариях.

Для подключения к удалённому рабочему столу Windows, мы будем использовать утилиту rdesktop. Использовать rdesktop, можно только на Linux с графическим интерфейсом. Установку можно производить через консоль, но запускать утилиту нужно через терминал в графическом интнрфейсе. Утилита доступна для многих ОС семейства Linux, я буду использовать её на CentOS 7.

Установка утилиты rdesktop

  • Во внутренних репозиториях CentOS 7 нет пакетов rdesktop, поэтому нужно подключить сторонний репозиторий.
  • Подключив репозиторий, запускаем команду установки rdesktop.
  • После установки rdesktop, если Вы производили установку через консоль, можно закрывать консоль и переходить в графический интерфейс ОС.
  • Если запустить команду на подключение в консоли, то появится ошибка.
  • Заходим в графический интерфейс, и открываем терминал.

Для подключения к удалённой машине Windows, у Вас должны быть логин и пароль пользователя, которому разрешены подключения по RDP к этой машине Windows.

Подключение по RDP к Windows из Linux

  • Вводим команду с необходимыми данными для подключения к удалённой Windows.
  • Если всё сделано правильно, то появится удалённый рабочий стол, и Вы получите возможность использования удалённой Windows, в соответствии с правами пользователя, под которым произвели подключение.
  • Если в процессе подключения необходим обмен файлами, то можно подключится с использованием общего сетевого ресурса.

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

  • При подключении таким способом, на удалённой машине подключается сетевая папка, которая и есть Ваша директория для общего доступа.
  • Для завершения сеанса, и отключения от удалённой Windows, достаточно просто завершить сеанс на самой Windows.

Подключение к удалённому рабочему столу Windows из Linux, не сложнее подключения с другой Windows машины, либо с устройства Android.

Сегодня мы рассмотрели тему: "Подключение по RDP к Windows из Linux". Произвели два типа подключений – простое подключение, и подключение с обменом файлами. Смотрите также видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

Видео на тему "Подключение по RDP к Windows из Linux":

Понравилась статья?
Напиши Комментарий, и Поделись с Друзьями!

wm-logo


WMZ-кошелёк = Z667041230317
WMR-кошелёк = R571680308266 ✔ Для вас важна анонимность и безопасность в сети Internet?
✔ Вы боитесь доверять сторонним VPN сервисам из-за утечки информации?
✔ Вам нужен VPN, где гарантированно не ведутся логи?
✔ Хотите иметь возможность делиться VPN со своими близкими и друзьями?
✅ Лучшим решением будет - Персональный VPN-Cервер , работающий только для Вас.

* В зависимости от хостинг-провайдера и параметров самого сервера, ежемесячная оплата сервера, может быть дешевле, чем покупка многих платных vpn-клиентов (от 100 руб в месяц).

* При покупке платных vpn-клиентов, Вам предоставляют возможность одновременного использования максимум 5 устройств-клиентов, иногда даже с ограниченным трафиком. В случае с Персональным VPN-сервером, количество устройств-клиентов зависит от Вашего желания, и ограничивается только ресурсами самого сервера.

* Так как многие Vpn-сервисы в какой-либо форме производят сбор данных о своих пользователях, Персональный Vpn-сервер – это ещё и защита от утечек информации.

- Если у Вас уже есть работающий VDS или выделенный сервер (отвечающий необходимым параметрам), то стоимость настройки составит - всего 500 руб.

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

Она охватывает более 30 различных методов получения удаленной оболочки, удаленного выполнения команд или подключения к удаленному рабочему столу с использованием различных свободно доступных инструментов и утилит.

Существует множество различных инструментов, которые можно использовать для доступа к удаленному компьютеру с Windows из Linux и выполнения на нем команд. Вот список существующих инструментов, описанных в этой статье, которые можно использовать для этой задачи.

Инструменты для удаленной команды или удаленного доступа к оболочке:

Инструменты для удаленного графического отображения:

Все эти инструменты имеют открытый исходный код и свободно доступны в любом дистрибутиве Linux (Kali, Ubuntu, Debian, Arch, CentOS, RedHat, Parrot ..), включая платформы на основе UNIX, такие как BSD, Mac OS X и многие другие.

Большинство этих инструментов работают путем подключения к порту SMB (tcp / 445) на удаленном компьютере с Windows, но некоторые из них также используют другие интерфейсы, такие как WMI, MMC, DCOM, NetBIOS и, конечно, RDP или VNC в случае подключение к удаленному (графическому) рабочему столу.

Более подробная информация об этом включена в обзорную таблицу ниже.

Обзорная таблица

В следующей таблице приводится сводка всех методов удаленного доступа, описанных в этой статье.

Вы можете увидеть, какой тип удаленного выполнения возможен с использованием каждого метода, а также подробную информацию о том, какие сетевые порты используются во время соединения.

Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux


Методы удаленного доступа из командной строки

Этот раздел содержит все методы удаленного доступа к командной строке, которые можно использовать для удаленного выполнения команд на машине Windows из Linux, включая создание интерактивной оболочки (cmd.exe или powershell.exe). ВАЖНО : Для использования этих методов необходимо предоставить учетные данные администратора. Это относится ко всем описанным ниже методам. Теперь перейдем к реальным методам и приемам.

Impacket

Impacket — это библиотека Python для работы с различными сетевыми протоколами Windows. Он используется многими различными инструментами тестирования на проникновение и содержит ряд методов для выполнения команд на удаленных компьютерах с Windows.

Impacket dcomexec.py RCE example

Вот как мы можем использовать Impacket для выполнения команд в удаленной системе Windows:

1. Impacket psexec.py

Это создаст интерактивную удаленную оболочку с помощью метода Psexec:

psexec.py "./Administrator:pass123"@192.168.0.1

2. Impacket dcomexec.py

Это создаст полуинтерактивную удаленную оболочку с использованием DCOM:

dcomexec.py "./Administrator:pass123"@192.168.0.1

3. Impacket smbexec.py

Это создаст полуинтерактивную удаленную оболочку через встроенные функции Windows SMB:

smbexec.py "./Administrator:pass123"@192.168.0.1

4. Impacket wmiexec.py

Это создаст полуинтерактивную удаленную оболочку с использованием WMI:

wmiexec.py "./Administrator:pass123"@192.168.0.1

5. Impacket atexec.py

Это выполнит команду удаленно через Atsvc:

atexec.py "./Administrator:pass123"@192.168.0.1 "whoami"

Примечание: Impacket также поддерживает метод аутентификации с использованием хеш-кода, что позволяет использовать NTLM-хэш вместо пароля. Вот пример с psexec.py:

psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 "./Administrator"@192.168.0.1

Подробную информацию об этих методах с еще большим количеством примеров и снимков экрана можно найти здесь.

CrackMapExec

CrackMapExec — это швейцарский армейский нож пентеста. Он имеет множество полезных функций и интегрируется с рядом других проектов по обеспечению безопасности, таких как Mimikatz, Empire, PowerSploit или Metasploit.

Он также содержит ряд методов для выполнения команд на удаленных машинах Windows.

CrackMapExec winrm RCE method utilizing PSRemoting

Вот как использовать CrackMapExec для выполнения команд в удаленных системах:

6. CrackMapExec wmiexec

Это выполнит команду (CMD / PowerShell) удаленно с помощью WMI:

crackmapexec smb -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET> crackmapexec smb -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

7. CrackMapExec atexec

Это выполнит команду (CMD / PowerShell) удаленно через Atsvc:

crackmapexec smb --exec-method atexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method atexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

8. CrackMapExec smbexec

Это выполнит команду (CMD / PowerShell) удаленно с использованием собственного SMB:

crackmapexec smb --exec-method smbexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method smbexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

9. CrackMapExec mmcexec

Это выполнит команду (CMD / PowerShell) удаленно через MMC:

crackmapexec smb --exec-method mmcexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method mmcexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

10. CrackMapExec winrm

Это выполнит команду (CMD / PowerShell) удаленно с помощью PSRemoting:

crackmapexec winrm -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec winrm -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

Примечание: Хотя CrackMapExec позволяет запускать команду только в удаленной системе, мы все равно можем использовать ее для создания интерактивной оболочки с помощью командлета обратной оболочки PowerShell (например, некоторых из них ).

CrackMapExec также поддерживает передачу хэша NTLM вместо пароля (pass-the-hash). Вот пример с wmiexec:

crackmapexec smb -d <DOMAIN> -u <USER> -H <LM:NTLM> -x <COMMAND> <TARGET>

crackmapexec smb -d . -u Administrator -H aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 -x "cmd /c whoami" 192.168.0.1

Более подробную информацию о CrackMapExec с примерами и скриншотами можно найти здесь.

Набор инструментов PTH

PTH Toolkit — это набор утилит, созданный пионерами техники передачи хеширования. Он содержит ряд полезных инструментов для подключения к удаленным машинам Windows, некоторые из которых также предназначены для выполнения команд в удаленных системах Windows.

pth-winexe RCE command example

Вот как использовать все функции удаленного доступа PTH Toolkit:

11. PTH Toolkit: pth-winexe

Это создаст интерактивную удаленную оболочку с использованием метода, подобного Psexec:

pth-winexe -U <DOMAIN>\\<USER>%<PASSWORD> --uninstall //<TARGET> <COMMAND>

pth-winexe -U ".\Administrator%pass123" --uninstall //192.168.0.1 cmd

Обратите внимание, что с помощью параметра «–system» pth-winexe также может автоматически расширяться до учетной записи «nt Authority \ system».

12. PTH Toolkit: pth-wmis

Это выполнит команду удаленно с помощью WMI:

pth-wmis -U ".\Administrator%pass123" //192.168.0.1 'cmd.exe /c whoami'

Обратите внимание, что этот конкретный метод не возвращает выходные данные команды. Если нам нужен результат, мы должны получить его с помощью дополнительной утилиты pth-smbget.

Примечание: PTH Toolkit, конечно, также поддерживает предоставление хеш-кода NTLM вместо пароля (pass-the-hash). Вот пример с pth-winexe:

pth-winexe -U <DOMAIN>\\<USER>%<LM|NTLM> --uninstall //<TARGET> <COMMAND>

pth-winexe -U ".\Administrator%aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76" --uninstall //192.168.0.1 cmd

Более подробную информацию о PTH Toolkit с примерами и скриншотами можно найти здесь:

Keimpx

Keimpx — это инструмент лаборатории NCC Group, разработанный для пентестинга сред Windows. Он имеет много интересных функций, таких как работа с общими сетевыми ресурсами или кустами реестра, сброс хэшей и удаленное извлечение файлов NTDS, и, конечно же, ряд методов для удаленного выполнения команд в системах Windows.

Keimpx svcshell remote semi-interactive shell

Вот как использовать Keimpx для удаленного выполнения команд.

Сначала нам нужно запустить Keimpx с целевым списком, к которому нужно подключиться. Здесь мы подключаемся к одной машине:

keimpx.py -D <DOMAIN> -U <USER> -P <PASSWORD> -t <TARGET>

keimpx.py -D . -U Administrator -P pass123 -t 192.168.0.1

Теперь будет интерактивное меню, в котором мы сможем выбрать, что мы хотим сделать.

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

13. Keimpx: svcexec

Это выполняет команду в удаленной системе с помощью службы Windows. Введите в меню:

s vcexec <COMMAND>

svcexec "dir c:\users"

14. Keimpx: svcexec SERVER

Метод svcexec SERVER также выполняет команду, но он разработан для более ограниченных систем, в которых нет доступных для записи сетевых ресурсов:

svcexec <COMMAND> SERVER

svcexec "dir c:\users" SERVER

15. Keimpx: svcshell

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

svcshell

16. Keimpx: svcshell SERVER

Svcshell также поддерживает режим СЕРВЕРА, который может порождать удаленную оболочку в более ограниченных системах без какого-либо доступного для записи сетевого ресурса:

Читайте также: