Выполнять в ос windows команды в режиме текстового интерфейса позволяет

Обновлено: 07.07.2024

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

Способы запуска командной строки

Ссылки на материалы по настройке командной строки и приемах работы с ней размещены в конце страницы.

Справочник по командам CMD Windows

Данная страница представляет собой самый полный документ в русскоязычном сегменте Интернет, содержащий список команд командной строки всех версий Windows. Наименования подавляющего большинства команд являются ссылками и ведут на страницы с подробным их описанием и примерами использования. В разных версиях ОС семейства Windows набор поддерживаемых команд, их параметры командной строки, синтаксис и отображение результатов выполнения могут различаться. Одна и та же утилита командной строки может присутствовать в стандартной поставке одной версии Windows, но отсутствовать в другой, или входить в состав дополнительных средств, как например, Resource Kit или Software Development Kit.

На данной странице представлено описание не только внутренних команд CMD, но и стандартных утилит командной строки, входящих в состав конкретных версии операционной системы (ОС) семейства Windows. Некоторые из приведенных команд устарели, и больше не поддерживаются разработчиком или не имеют смысла в современных операционных системах, что отмечается в описании команды.

Список команд постоянно обновляется и включает в себя все новейшие команды, добавляемые в стандартную поставку при выходе новых версий или обновлений ОС Windows 10.

APPEND - позволяет программам открывать файлы данных из указанных папок так, как будто они находятся в текущей папке.

ARP - просмотр и изменение таблиц ARP (Address Resolution Protocol)

ASSOC - просмотр или изменение сопоставлений расширений файлов приложениям

AT - управление планировщиком задач

ATTRIB - изменение атрибутов файлов

Auditpol - управление политиками аудита.

BASH - командная оболочка BASH в подсистеме Windows для Linux (WSL).

BCDBOOT - копирование в системный раздел файлов загрузки и создание нового хранилища конфигурации загрузки (BCD)

BCDEDIT - редактирование хранилища данных конфигурации загрузки (BCD)

BOOTCFG - редактирование параметров загрузки в файле boot.ini

BOOTIM - вызов меню загрузки и восстановления (Выбор действия) Windows 10

BOOTREC - восстановление загрузочных записей и конфигурации загрузки Windows

BOOTSECT - редактирование загрузочных секторов для обеспечения загрузки NTLDR или BOOTMGR

BREAK - включить или выключить обработку комбинации клавиш CTRL+C в DOS

CACLS - редактирование списков управления доступом к файлам (ACL - Access Control List)

CALL - вызов из командного файла подпрограмм или других командных файлов

CD - смена каталога (Change Directory)

CHANGE - изменение настроек сервера терминалов. Контексты - LOGON, PORT, USER

CHGLOGON - изменение настроек сервера терминалов, аналогично CHANGE LOGON

CHGPORT - изменение настроек сервера терминалов, аналогично CHANGE PORT

CHGUSR - изменение настроек сервера терминалов, аналогично CHANGE USER

CHCP - просмотр или изменение текущей кодовой страницы

CHKDSK - проверка диска (Check Disk)

CheckNetIsolation - управление доступом приложений к интерфейсу замыкания на себя (localhost) в Windows 10

CHKNTFS - проверка признака ошибки файловой системы и управление проверкой диска при загрузке Windows

CHOICE - реализация пользовательского ввода в командном файле

CIPHER - отображение или изменение шифрования файлов на томах NTFS

CLEARMGR - управление очисткой дисков Windows

CLIP - перенаправление вывода утилит командной строки в буфер обмена Windows

CLS - очистка экрана в командной строке

CMD - запуск новой копии интерпретатора командной строки

CMDKEY - создание, отображение, удаление и сохранение имен пользователей и паролей

COLOR - изменение цвета текста и фона в окне CMD

COMMAND - запуск новой копии интерпретатора командной строки MS-DOS

COMP - сравнение содержимого файлов

COMPACT - управление сжатием и распаковкой файлов в разделах NTFS

CONVERT - преобразование файловой системы из FAT в NTFS

COPY - копирование файлов и каталогов

Cscript - сервер сценариев Windows с консольным интерфейсом

DATE - отображение или изменение даты

DEBUG - запуск отладчика DOS-Windows XP

DEL - удаление одного или нескольких файлов

DevCon - управление устройствами в командной строке

DIANTZ — тоже что и MAKECAB, создание архивов .cab.

DIR - отображение списка файлов и каталогов

DISKCOMP - сравнение содержимого двух гибких дисков

DISKCOPY - копирование содержимого одного гибкого диска на другой

DISKPART - управление разделами и дисками из командной строки

DISM - управление компонентами образрв WIM.

DISPDIAG - вывод дампов с диагностической информацией о графической подсистеме.

DJOIN - автономное присоединение компьютера к домену.

DOSKEY - редактирование и повторный вызов команд Windows, создание макросов DOSKey

DRIVERQUERY - отобразить информацию об установленных драйверах.

DxDiag - средство диагностики DirectX.

ECHO - вывод текста на экран консоли

EDIT - запуск текстового редактора

ENDLOCAL - конец локальных изменений переменных окружения в командном файле

ERASE - аналогично команде DEL - удаление файлов

ESENTUTL - обслуживание баз данных Extensible Storage Engine для Windows

EXIT - выход из процедуры или командного файла

EXPAND - распаковка сжатых файлов CAB-файлов.

EXTRACT - извлечение содержимого, распаковка CAB-файлов в Windows (EXTRAC32)

FC - сравнение содержимого файлов

FIND - поиск строки символов в файле

FINDSTR - поиск строк в файлах с использованием регулярных выражений

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

FORFILES - выполнение указанной команды для каждого файла из заданной группы

FSUTIL - управление файловой системой

FTYPE - просмотр и изменение расширений файлов и сопоставленных им приложений

GETMAC - отображение физического адреса сетевого адаптера (MAC-адреса)

GOTO - команда безусловного перехода в командном файле

GPRESULT - отображение результирующей политики (RSoP)

GPUPDATE - обновление групповых политик.

HELP - вызов справки командной строки Windows

HOSTNAME - отображение имени компьютера

iCACLS - управление списками доступа (ACL)

IF - оператор условного выполнения команд в пакетном файле

IPCONFIG просмотр и управление конфигурацией протокола IP

LABEL - редактирование меток тома дисков

LOGMAN - управление монитором оценки производительности системы

LOGOFF - завершение сеанса пользователя

MAKECAB - создание сжатых файлов формата CAB

MBR2GPT - преобразование дисков MBR в GPT

MEM - вывод справки об использовании памяти в MS-DOS

MD - создание нового каталога

MKLINK - создание символической ссылки на файл или каталог

MODE - конфигурирование системных устройств в среде CMD

MORE - постраничный вывод в консоли

MOUNTVOL - управление точками монтирования томов

MOVE - перемещение файлов и каталогов

MOVEFILE - перемещение или удаление занятых файлов при следующей перезагрузке

MSTSC - подключение к удаленному рабочему столу.

NBTSTAT - просмотр статистических данных NETBIOS через TCP/IP (NetBT)

NET - управление ресурсами локальной сети

NETCFG - отображение и изменение конфигурации компонентов сети

NETSH - командная сетевая оболочка (Network Shell)

NETSTAT - отображение статистики сетевых соединений

NSLOOKUP - просмотр данных DNS в командной строке

OPENFILES - управление открытыми по сети или локально файлами

PATH - отображение или изменение путей поиска исполняемых файлов

PATHPING - трассировка маршрута с возможностью оценки качества участков трассы

PAUSE - пауза при выполнении командного файла

PING утилита проверки доступности узла

PKGMGR - управление программными пакетами Windows

PNPUTIL - конфигурирование драйверов устройств PnP

POPD - возврат в каталог, ранее запомненный с помощью команды PUSHD

POWERCFG - настройка параметров системы электропитания Windows

PRINT - печать текстового файла

PROMPT - изменение строки приглашения в консоли

PUSHD - сохранить текущий путь каталога и перейти в указанный

PSR - записать действия пользователя в Windows 7/8.1/10 ( P roblem S teps R ecorder)

QPROCESS - отобразить состояние процессов

QUERY - опросить состояние процессов и сеансов пользователей

QUSER - отобразить информацию о сеансах пользователей

RASDIAL - управление сеансами удаленного доступа

RASPHONE - управление сеансами удаленного доступа

REAGENTC - адимнистрирование стреды восстановления Windows

RECOVER - восстановление файлов на поврежденном диске

REG - утилита командной строки для работы с реестром Windows

REGEDIT - импорт и экспорт данных реестра Windows

REGSVR32 - регистрация или отмена регистрации DLL

REGINI - управление доступом к разделам реестра

REM - комментарии в командных файлах

REPLACE - замена или добавление файлов в катологах

RESET - сброс сеанса удаленного рабочего стола (RDP сессии)

ROBOCOPY - утилита резервного копирования и синхронизации каталогов (Robust File and Folder Copy)

ROUTE - управление таблицей маршрутизации

RUNAS - запуск приложения от имени другого пользователя

RUNDLL32 - запуск DLL в качестве приложения

SC - управление службами Windows (Service Control)

SCHTASKS - управление планировщиком задач

SCLIST - отображение списка системных служб

ScriptRunner - запуск одного или нескольких скриптов в Windows 10

SET - отображение и изменение переменных среды окружения Windows

SETLOCAL - установка локальных переменных в командном файле

SETX - утилита для создания системных переменных

SFC - проверка и восстановление системных файлов Windows

SHARE - просмотр, создание и удаление разделяемых в локальной сети ресурсов

SHIFT сдвиг входных параметров для командного файла

SHUTDOWN - выключение или перезагрузка компьютера

SLEEP - задержка по времени в пакетном файле

SLMGR - управление лицензированием программного обеспечения Windows

SORT - сортировка строк в текстовом файле

START - запуск приложения или командного файла

STORDIAG - диагностика системы хранения данных в Windows 10

SUBST - назначение (отмена назначения) каталогу буквы диска

SxSTrace - диагностическое средство трассировки компонент системы

SYSTEMINFO - отображение информации о системе

TAKEOWN - изменение владельца файла или каталога

TAR - архивирование данных архиватором tar в Windows 10

TASKKILL - завершение процессов на локальной или удаленной системе.

TASKLIST - отображение списка выполняющихся приложений и служб Windows

TIME - отображение и установка системного времени

TIMEOUT - задержка в пакетных файлах

TITLE - изменение заголовка окна CMD.EXE

TRACERT - трассировка маршрута к удаленному узлу

TREE - отображение структуры каталога в графическом виде

TSCON - подключение к сессии удаленного рабочего стола (RDP).

TSDISCON - отключение сессии удаленного рабочего стола (RDP).

TSKILL - завершение процессов, адаптированное для среды сервера терминалов (RDP).

TYPE - вывод на экран содержимого текстового файла

TypePerf - вывод сведений о производительности на экран или в журнал

TZUTIL - управление часовыми поясами в среде Windows

VER - отображение версии операционной системы

VERIFIER - тестирование драйверов Windows.

VERIFY - управление режимом проверки записываемых файлов

VOL - вывод данных метки тома

VSSADMIN - администрирование службы теневого копирования томов.

W32TM - управление службой времени Windows

WAITFOR - организация обмена сигналами между компьютерами

WBADMIN - управление резервным копированием и восстановлением в Windows

WEVTUTIL - управление событиями в Windows

WHERE - определение места расположения файлов

WHOAMI - вывод имени текущего пользователя

WINDIFF - сравнение содержимого файлов

WinMgmt - обслуживание инструментария управления Windows (WMI)

WINRM - удаленное управление Windows из командной строки

WINRS - удаленная командная строка (Remote Shell)

WINSAT - средство проверки производительности Windows

WMIC - выполнение команды WMI в командной строке

WSCollect - получить CAB-файл с копиями журналов Windows 10 на рабочем столе

Wscript - сервер сценариев Windows с графическим интерфейсом

WSL - выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10

WSLconfig - конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10

WUSA - автономная установка обновлений Windows

XCOPY - копирование файлов и папок

Прочие материалы по работе с командной строкой Windows:

Настройка командной строки Windows. - Как изменить цвет фона, цвет символов, размер и расположение окна командной строки. Копирование и вставка текста в окне консоли. Как настроить дополнение имен файлов и каталогов при наборе в командной строке. Использование функциональных клавиш.

Работа с командной строкой Windows - Основные приемы, используемые при работе в командной строке Windows.

Командные файлы Windows - Общие принципы применения переменных среды в командных файлах. Обработка параметров командной строки. Использование меток, переходов и циклическая обработка данных. Практические примеры решения задач администрирования системы.

Запуск приложений от имени администратора без запроса UAC - Как запустить из командного файла приложение или командный файл без запроса системы контроля учетных записей UAC

Работа с сетью в командной строке. - подробное описание команд CMD Windows для работы с сетью и примеры их использования.

Подсистема Linux в Windows 10 - Использование командной строки Linux в Windows 10.

все поддерживаемые версии Windows (сервер и клиент) имеют набор встроенных команд консоли Win32.

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

Предварительные требования

Сведения, содержащиеся в этом разделе, применимы к:

  • Windows Server 2019
  • Windows Server (Semi-Annual Channel)
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows Server 2008 R2
  • Windows Server 2008
  • Windows 10
  • Windows 8.1

Общие сведения о командной оболочке

командная оболочка была первой оболочкой, встроенной в Windows для автоматизации стандартных задач, таких как управление учетными записями пользователей или ночное резервное копирование с пакетными файлами (.bat). с помощью Windows сервера сценариев можно выполнять более сложные сценарии в командной оболочке. Дополнительные сведения см. в разделе cscript или Wscript. С помощью скриптов можно более эффективно выполнять операции, чем с помощью пользовательского интерфейса. Скрипты принимают все команды, доступные в командной строке.

Windows имеет две командные оболочки: командная оболочка и PowerShell. Каждая оболочка представляет собой программную программу, обеспечивающую прямой обмен данными между вами и операционной системой или приложением, предоставляя среду для автоматизации ИТ-операций.

PowerShell был разработан для расширения возможностей командной оболочки для выполнения команд PowerShell, называемых командлетами. командлеты похожи на команды Windows, но предоставляют более расширяемый язык сценариев. вы можете выполнять команды Windows и командлеты powershell в powershell, но командная оболочка может выполнять только команды Windows, а не командлеты powershell.

для наиболее надежной и актуальной Windows автоматизации рекомендуется использовать PowerShell вместо команд Windows или Windows сервера скриптов для автоматизации Windows.

Вы также можете скачать и установить PowerShell Core, версию PowerShell с открытым исходным кодом.

Неправильное изменение реестра может серьезно повредить систему. Перед внесением следующих изменений в реестр следует создать резервную копию всех ценных данных на компьютере.

Чтобы включить или отключить завершение имен файлов и каталогов в командной оболочке на компьютере или в сеансе входа пользователя, запустите regedit.exe и задайте следующее значение reg_DWOrd:

Чтобы задать значение reg_DWOrd , используйте шестнадцатеричное значение управляющего символа для конкретной функции (например, 0 9 — TAB, а 0 08 — Backspace). Заданные пользователем параметры имеют приоритет над параметрами компьютера, а параметры командной строки имеют приоритет над параметрами реестра.

Справочник по командной строке A-Z

Чтобы найти сведения о конкретной команде, в следующем меню A-Z щелкните букву, с которой начинается команда, а затем щелкните имя команды.

1. Оболочка командной строки Windows. Интерпретатор Cmd.exe

В операционной системе Windows, как и в других операционных системах, интерактивные (набираемые с клавиатуры и сразу же выполняемые) команды выполняются с помощью так называемого командного интерпретатора, иначе называемого командным процессором или оболочкой командной строки (command shell). Командный интерпретатор или оболочка командной строки — это программа, которая, находясь в оперативной памяти, считывает набираемые вами команды и обрабатывает их.

Для запуска командного интерпретатора (открытия нового сеанса командной строки) можно выбрать пункт Выполнить… (Run) в меню Пуск (Start), ввести имя файла Cmd.exe и нажать кнопку OK.

Командный интерфейс ОС Windows

1.1 Синтаксис командной строки, перенаправление ввода – вывода

Файловая система имеет древовидную структуру и имена файлов задаются в формате [диск:] [путь\]имя_файла. Если путь начинается с символа «\», то маршрут вычисляется от корневого каталога – иначе от текущего.

Например, c:123.txt задает файл 123.txt в текущем каталоге, c:\123.txt – в корневом, а DOC\123.txt – в подкаталоге DOC текущего каталога.

Существуют особые обозначения для текущего каталога (точка «.») и трех его верхних уровней (две точки «..» - родительский, три «…» - второго уровня и, наконец, четыре «….» - третьего уровня).

Например, для текущего каталога C:\Windows\Media\Office97 путь к файлу autoexec.bat в корневом каталоге диска C: может быть записан в виде ….\autoexec.bat.

В именах файлов (но не дисков или каталогов) можно применять так называемые групповые символы или шаблоны: ? (вопросительный знак) и * (звездочка). Символ * в имени файла означает произвольное количество любых допустимых символов, символ ? — один произвольный символ или его отсутствие. Скажем, под шаблон text??1.txt подходят, например, имена text121.txt и text11.txt, под шаблон text*.txt — имена text.txt, textab12.txt, а под шаблон text.* — все файлы с именем text и произвольным расширением.

Например, DIR /? > helpdir.txt выведет справку по команде DIR в файл. Символ «>>» позволяет не создавать файл заново, а дописать в него. По аналогии символ «<» позволяет читать данные не с клавиатуры, а с файла. Например, DATE < date.txt ввод новой даты из файла.

1.2 Переменные окружения

При загрузке ОС Windows в оперативной памяти постоянно хранится набор т.н. переменных окружения (environment variables). Хотя в Windows есть более совершенный способ для хранения системных значений – реестр, многие программы по-прежнему используют переменные окружения. Наиболее важные переменные хранят системный путь для поиска (PATH), каталог запуска Windows (WINDIR), место хранения временных файлов (TEMP) и многое другое.

Переменные устанавливаются с помощью команды

Запуск SET без параметров приводит к выводу списка переменных среды. Для получения их значений (всегда строки) нужно имя соответствующей переменной заключить в символы «%», например: %TEMP%.

1.3 Внутренние и внешние команды. Структура команд

Некоторые команды распознаются и выполняются непосредственно самим командным интерпретатором — такие команды называются внутренними (например, COPY или DIR) Другие команды операционной системы представляют собой отдельные программы, расположенные по умолчанию в том же каталоге, что и Cmd.exe, которые Windows загружает и выполняет аналогично другим программам. Такие команды называются внешними (например, MORE или XCOPY).

Рассмотрим структуру самой командной строки и принцип работы с ней. Для того, чтобы выполнить команду, вы после приглашения командной строки (например, C:\>) вводите имя этой команды (регистр не важен), ее параметры и ключи (если они необходимы) и нажимаете клавишу <Enter>. Например:

Имя команды здесь — COPY, параметры — C:\myfile.txt и A:\, а ключом является /V. Отметим, что в некоторых командах ключи могут начинаться не с символа /, а с символа – (минус), например, -V.

Многие команды Windows имеют большое количество дополнительных параметров и ключей, запомнить которые зачастую бывает трудно. Большинство команд снабжено встроенной справкой, в которой кратко описываются назначение и синтаксис данной команды. Получить доступ к такой справке можно путем ввода команды с ключом /?.

1.4 Условное выполнение и группировка команд

В командной строке Windows NT/2000/XP можно использовать специальные символы, которые позволяют вводить несколько команд одновременно и управлять работой команд в зависимости от результатов их выполнения. С помощью таких символов условной обработки можно содержание небольшого пакетного файла записать в одной строке и выполнить полученную составную команду.

Используя символ амперсанта &, можно разделить несколько утилит в одной командной строке, при этом они будут выполняться друг за другом. Например, если набрать команду DIR & PAUSE & COPY /? и нажать клавишу <Enter>, то вначале на экран будет выведено содержимое текущего каталога, а после нажатия любой клавиши — встроенная справка команды COPY.

Символ ^ позволяет использовать командные символы как текст, то есть при этом происходит игнорирование значения специальных символов. Например, если ввести в командной строке

и нажать клавишу <Enter>, то произойдет выполнение подряд двух команд: ECHO Абв и COPY /? (команда ECHO выводит на экран символы, указанные в командной строке после нее). Если же выполнить команду

то на экран будет выведено

В этом случае просто выполняется одна команда ECHO с соответствующими параметрами.

Условная обработка команд в Windows осуществляется с помощью символов && и || следующим образом. Двойной амперсант && запускает команду, стоящую за ним в командной строке, только в том случае, если команда, стоящая перед амперсантами была выполнена успешно. Например, если в корневом каталоге диска C: есть файл plan.txt, то выполнение строки TYPE C:\plan.txt && DIR приведет к выводу на экран этого файла и содержимого текущего каталога. Если же файл C:\plan.txt не существует, то команда DIR выполняться не будет.

Два символа || осуществляют в командной строке обратное действие, т.е. запускают команду, стоящую за этими символами, только в том случае, если команда, идущая перед ними, не была успешно выполнена. Таким образом, если в предыдущем примере файл C:\plan.txt будет отсутствовать, то в результате выполнения строки TYPE C:\plan.txt || DIR на экран выведется содержимое текущего каталога.

Отметим, что условная обработка действует только на ближайшую команду, то есть в строке

команда COPY /? запустится в любом случае, независимо от результата выполнения команды TYPE C:\plan.txt.

Несколько утилит можно сгруппировать в командной строке с помощью скобок. Рассмотрим, например, две строки:

В первой из них символ условной обработки && действует только на команду DIR, во второй — одновременно на две команды: DIR и COPY.


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

Как запустить команду в системе

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


Из-за такой сложной структуры пользователям может быть нелегко обнаруживать оптимальный функционал, который предоставляет операционная система для выполнения текущих задач. Допустим, нам необходимо запустить команду для конфигурации или для сбора данных о системе. Какими интерфейсами можно воспользоваться?

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

cmd.exe - интерпретатор командной строки

at.exe - инструмент для запуска команд по расписанию. Становится доступен, если запущен сервис расписаний.

wmic.exe - утилита для сбора данных из инструментария управления и диагностики операционной системой

psexec.exe - утилита для запуска приложений и процессов на удаленной или локальной системе

wscript.exe - сервер для выполнения скриптовых сценариев в ОС (vbscript, js)

cscript.exe - запускает сценарий для командной строки

Все перечисленные выше файлы действительно находятся в любой Windows системе, начиная, как минимум, с Windows 7. Но psexec.exe к таким не относится. Это инструмент, который изначально можно было только найти среди Sysinternals tools. На сегодняшний день psexeс имеет большое количество вариаций, переписанных на различные языки программирования.

Помимо готовых команд и интерпретаторов в ОС Windows существуют также наборы функций, которые могут предоставляться различными подсистемами, например WinRM , WMI , Windows Service Control Manager API .

Особенности запуска команд

Все команды, которые выполняются ОС Windows, могут быть разделены на несколько групп по различным признакам. Определим для нашего исследования следующие группы:

локальный запуск команд

удаленный запуск команд

запуск команд с теми же привилегиями

запуск команд с использованием чужих привилегий

Распределим все уже описанные методы запуска команд в ОС:

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

Запуск с повышенными привилегиями локально и удаленно:

Практическая проверка

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

Vbox в качестве виртуальной среды

Windows Server 2019 Evaluation в качестве системы для развертывания сервисов AD

Kali Linux в качестве атакующей системы

набор скриптов Impaсket для доступа к подсистемам выполнения команд

IOXIDResolver.py - инструмент для получения NetBIOS имени системы и перечня сетевых интерфейсов

Все машины подключены в host-only сеть. На машине Windows Server отключены механизмы защиты (FireWall, Defender).

Для первичного доступа в систему будем использовать уязвимость Zerologon. Описание и инструменты для эксплуатации уязвимости можно найти в сети. Оставим это в качестве домашнего задания для читателя.

Шаг 1 - получение данных о сетевых интерфейсах и netBIOS имени сервера:


Шаг 2 и 3 - запуск эксплойта Zerologon, получение hash пользователя:


Шаг 4 - для выполнения команд в системе будем использовать Administrator и его хэш. Для остальных пользователей можно будет выполнять те же самые операции. Предлагаем читателю выполнить их самостоятельно.

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

Нас интересуют следующие скрипты:

Для проверки привилегий каждый запущенный скрипт будет работать в интерактивном или полуинтерактивном режиме. Тестовая команда будет - whoami . Она как раз будет показывать, чьи привилегии сейчас использует скрипт для запуска команд.

Запуск psexec.py - скрипт повторяет работу одноименного инструмента. Особенностью запуска является задействование механизма имперсонализации. Для того, чтобы метод сработал, у пользователя должен быть доступ к расшаренным директориям системы. Скрипт за счет этого сможет создать сервис, который будет запускать cmd.exe от имени пользователя System:


Запуск smbexec.py - по сути использует тот же метод, что и psexec.py, только при запуске каждой команды, стартует новый сервис на целевой системе.


Запуск wmiexec.py - работает от имени тоже пользователя, чьи учетные данные были использованы. Обрабатываются запросы асинхронно, может занять длительное время.


Запуск atexec.py сопряжен с конфигурацией целевой системы. Если зависимый сервис не запущен в целевой системе, то выполнение команд невозможно.


Таким образом, можно запускать команды в ОС Windows удаленно. Рассмотренные методы наиболее эффективно позволяют производить сбор данных и проведения тестирования на проникновение.

На этом всё. В преддверии старта курса "Пентест. Практика тестирования на проникновение", приглашаем всех желающих на бесплатный демоурок, в рамках которого познакомимся с инструментами для исследования AD. Полученные данные будем использовать для повышения привилегий и продвижения в сети.

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