Test-NetConnection: проверка открытых/закрытых TCP портов из PowerShell
В PowerShell 4.0 (Windows 2012 R2, Windows 8.1 и выше) появился встроенный командлет для проверки сетевых соединений — Test-NetConnection. С помощью данного командлета вы можете проверить доступность удаленного сервера или сетевой службы на нем, блокировку TCP портов файерволами, проверить доступность по ICMP и маршрутизацию. По сути, командлет Test-NetConnection
позволяет заменить сразу несколько привычных сетевых утилит: ping, traceroute, сканер TCP портов и т.д.
Содержание:
- TCP Port Ping: Использование Test-NetConnection для проверки открытых портов и доступности серверов
- Test-NetConnection в скриптах мониторинга
- Сканер сети на PowerShell
Любому администратору периодически приходится проверять доступность службы на удаленном сервере путем проверки ответа от удаленного TCP порта (например, доступность почтового или веб сервера).
telnet msk-msg01.winitpro.ru 25
. Но начиная с Windows 7 клиент telnet выделен в отдельный компонент, который нужно устанавливать отдельно. Посмотрим, как выполнить аналогичное действие в PowerShell.Основное преимущество командлета Test-NetConnection – он уже входит в состав всех современных версий Windows и вам не нужно устанавливать его отдельно. Командлет входит в состав модуля NetTCPIP (начиная с PoSh v4.0).
TCP Port Ping: Использование Test-NetConnection для проверки открытых портов и доступности серверов
Проверим, открыт ли порт TCP 25 (SMTP протокол) на почтовом сервере с помощью Test-NetConnection:
Test-NetConnection -ComputerName msk-msg01 -Port 25
Примечание.
С помощью командлета Test-NetConnection можно проверить только TCP соединение, для проверки доступности UDP портов он не применим.В сокращенном виде аналогичная команда выглядит так:
TNC msk-mail1 -Port 25
Разберем результат команды:
ComputerName : msk-msg01 RemoteAddress : 10.10.1.7 RemotePort : 25 InterfaceAlias : CORP SourceAddress : 10.10.1.70 PingSucceeded : True PingReplyDetails (RTT) : 0 ms TcpTestSucceeded : True
Как вы видите, командлет выполняет разрешение имени сервера в IP адрес, выполняется проверка ответа ICMP (аналог ping) и доступность TCP порта. Указанный сервер доступен по ICMP ( PingSucceeded = True
) и 25 TCP порт также отвечает ( RemotePort=25, TcpTestSucceeded= True
).
Примечание. В некоторых случаях может оказаться, что PingSucceeded=False, а TcpTestSucceeded= True.
У командлета есть специальный параметр –CommonTCPPort, позволяющий указать наименование известного сетевого протокола (HTTP, RDP, SMB, WINRM).
Например, чтобы проверить доступность веб-сервера, можно использовать команду:
Test-NetConnection -ComputerName winitpro.ru -CommonTCPPort HTTP
Или доступность RDP порта (3389):
Test-NetConnection msk-rds1 –CommonTCPPort RDP
Можно вывести все параметры, которые возвращает командлет Test-NetConnection:
Test-NetConnection msk-man01 -port 445|Format-List *
Если нужна только информация по доступности TCP порта, в более лаконичном виде проверка может быть выполнена так:
TNC msk-mail1 -Port 25 -InformationLevel Quiet
Командлет вернул True, значит удаленный порт доступен.
В Windows 10/ Windows Server 2016 вы можете использовать командлет Test-NetConnection для трассировки маршрута до удаленного сервера при помощи параметра –TraceRoute (аналог tracert). С помощью параметра –Hops можно ограничить максимальное количество хопов при проверке.
Test-NetConnection msk-man01 –TraceRoute
Командлет вернул сетевую задержку при доступе к серверу в милисекундах ( PingReplyDetails (RTT) : 41 ms
) и все IP адреса маршрутизаторов на пути до целевого сервера.
Test-NetConnection в скриптах мониторинга
Следующая команда позволить проверить доступность определенного порта на множестве серверов, список которых хранится в текстовом файле servers.txt. Нас интересуют сервера, где искомая служба не отвечает:
Get-Content c:\Distr\servers.txt | where { -NOT (Test-Netconnection $_ -Port 25 -InformationLevel Quiet)}| Format-Table –AutoSize
Аналогичным образом вы можете создать простейшую систему мониторинга, которая проверяет доступность серверов и выводит уведомление, если один из серверов недоступен.
Например, вы можете проверить доступность основных служб на всех контроллеров домена (список DC можно получить командлетом Get-ADDomainController). Проверим следующие службы на DC (в утилите PortQry есть аналогичное правило Domain and trusts):
- RPC – TCP/135
- LDAP – TCP/389
- LDAP – TCP/3268
- DNS – TCP/53
- Kerberos – TCP/88
- SMB – TCP/445
$Ports = "135","389","636","3268","53","88","445","3269", "80", "443"
$AllDCs = Get-ADDomainController -Filter * | Select-Object Hostname,Ipv4address,isGlobalCatalog,Site,Forest,OperatingSystem
ForEach($DC in $AllDCs)
{
Foreach ($P in $Ports){
$check=Test-NetConnection $DC -Port $P -WarningAction SilentlyContinue
If ($check.tcpTestSucceeded -eq $true)
{Write-Host $DC.name $P -ForegroundColor Green -Separator " => "}
else
{Write-Host $DC.name $P -Separator " => " -ForegroundColor Red}
}
Скрипт проверит указанные TCP порты на контроллерах домена, и, если один из портов недоступен, выделит его красным цветом (с небольшими доработками можно запустить данный PowerShell скрипт как службу Windows).
Сканер сети на PowerShell
Также вы можете реализовать простой сканер портов и IP подсетей для сканирования удаленных серверов или подсетей на открытые/закрытые TCP порты.
Просканируем диапазон IP адресов на открытый порт 3389:
foreach ($ip in 5..30) {Test-NetConnection -Port 3389 -InformationLevel "Detailed" 10.10.10.$ip}
Просканируем диапазон TCP портов от 1 до 1024 на указанном сервере:
foreach ($port in 1..1024) {If (($a=Test-NetConnection srvfs01 -Port $port -WarningAction SilentlyContinue).tcpTestSucceeded -eq $true){ "TCP port $port is open!"}}
Повысьте безопасность Windows, закрыв открытые порты — Сетевое администрирование
При стандартной установке операционной системы Windows сразу после установки открывается ряд портов. Некоторые из портов необходимы для правильной работы системы, в то время как другие могут использоваться конкретными программами или функциями, которые могут потребоваться только некоторым пользователям.
Эти порты могут представлять угрозу безопасности, поскольку каждый открытый порт в системе может использоваться злоумышленниками в качестве точки входа. Если этот порт не нужен для работы, рекомендуется закрыть его, чтобы заблокировать любые атаки, нацеленные на него.
Порт обеспечивает связь с устройством и с устройством. Его характеристиками являются номер порта, IP-адрес и тип протокола.
Эта статья предоставит вам инструменты для выявления и оценки открытых портов в вашей системе Windows, чтобы в конечном итоге принять решение, держать их открытыми или закрывать навсегда.
Программное обеспечение и инструменты, которые мы будем использовать:
- CurrPorts: Доступно для 32-битных и 64-битных версий Windows. Это монитор портов, который отображает все открытые порты в компьютерной системе. Мы будем использовать его для определения портов и программ, которые их используют.
- Диспетчер задач Windows: также используется для идентификации программ и связывания некоторых портов с программами.
- Поисковая система: поиск информации о портах необходим для некоторых портов, которые не так легко идентифицировать.
Было бы невозможно просмотреть все открытые порты, поэтому мы воспользуемся несколькими примерами, чтобы вы поняли, как проверить наличие открытых портов и выяснить, требуются они или нет.
Запустите CurrPorts и посмотрите на заполненную основную область.
Программа отображает, среди прочего, имя и идентификатор процесса, локальный порт, протокол и имя локального порта.
Проще всего идентифицировать порты с именем процесса, которое соответствует запущенной программе, такой как RSSOwl.exe, с идентификатором процесса 3216 в приведенном выше примере. Процесс отображается на локальных портах 50847 и 52016. Эти порты обычно закрываются при закрытии программы. Вы можете проверить это, завершив программу и обновив список открытых портов в CurrPorts.
Более важные порты — это те, которые нельзя сразу связать с программой, например системные порты, показанные на снимке экрана.
Есть несколько способов определить службы и программы, связанные с этими портами. Есть и другие индикаторы, которые мы можем использовать для обнаружения служб и приложений, помимо имени процесса.
Самая важная информация — это номер порта, имя локального порта и идентификатор процесса.
С помощью идентификатора процесса мы можем заглянуть в диспетчер задач Windows, чтобы попытаться связать его с процессом, запущенным в системе. Для этого вам необходимо запустить диспетчер задач (нажмите Ctrl Shift Esc).
Нажмите «Просмотр», «Выбрать столбцы» и включите отображение PID (идентификатора процесса). Это идентификатор процесса, который также отображается в CurrPorts.
Заметка : Если вы используете Windows 10, переключитесь на вкладку «Подробности», чтобы сразу отобразить информацию.
Теперь мы можем связать идентификаторы процессов в Currports с запущенными процессами в диспетчере задач Windows.
Давайте посмотрим на несколько примеров:
ICSLAP, TCP-порт 2869Здесь у нас есть порт, который мы не можем сразу идентифицировать. Имя локального порта — icslap, номер порта — 2869, он использует протокол TCP, имеет идентификатор процесса 4 и имя процесса «система».
Обычно рекомендуется сначала поискать имя локального порта, если его нельзя сразу определить. Запустите Google и найдите порт icslap 2869 или что-то подобное.
Часто есть несколько предложений или возможностей. Для Icslap это общий доступ к подключению к Интернету, брандмауэр Windows или общий доступ к локальной сети. Потребовалось некоторое исследование, чтобы выяснить, что в этом случае он использовался службой общего доступа к проигрывателю Windows Media.
Хороший вариант узнать, так ли это на самом деле, — остановить службу, если она запущена, и обновить список портов, чтобы увидеть, не появляется ли порт больше. В этом случае он был закрыт после остановки службы общего доступа к проигрывателю Windows Media.
epmap, TCP-порт 135Исследование показывает что он связан с программой запуска процессов сервера dcom. Исследования также показывает что отключать службу — не лучшая идея. Однако можно заблокировать порт в брандмауэре вместо его полного закрытия.
llmnr, порт UDP 5355Если вы посмотрите в Currports, вы заметите, что имя локального порта llmnr использует UDP-порт 5355. Библиотека ПК есть информация об услуге. Это относится к протоколу Link Local Multicast Name Resolution, который относится к службе DNS. Пользователи Windows, которым не нужна служба DNS, могут отключить ее в диспетчере служб. Это закрывает порты от открытия в компьютерной системе.
Резюме
Вы запускаете процесс, запустив бесплатную переносную программу CurrPorts. Он выделяет все открытые порты в системе. Рекомендуется закрыть все открытые программы перед запуском CurrPorts, чтобы ограничить количество открытых портов для процессов Windows и фоновых приложений.
Вы можете сразу связать некоторые порты с процессами, но вам необходимо найти идентификатор процесса, отображаемый CurrPorts в диспетчере задач Windows или стороннем приложении, например Process Explorer, иначе, чтобы идентифицировать его.
После этого вы можете изучить имя процесса, чтобы узнать, нужен ли он вам и можно ли закрыть его, если он вам не нужен.
ВыводНе всегда легко идентифицировать порты, а также службы или приложения, с которыми они связаны. Исследования поисковых систем обычно предоставляют достаточно информации, чтобы выяснить, какая служба отвечает за это, и способы ее отключения, если она не нужна.
Хороший первый подход перед тем, как начать поиск портов, — это внимательно изучить все запущенные службы в диспетчере служб, а также остановить и отключить те, которые необходимы системе. Хорошей отправной точкой для их оценки является страница конфигурации служб на BlackViper Веб-сайт.
Запускаем командную строку: | |
win+r там cmd и нажимаем ОК | |
Видим страшное чёрное окогко. Там пишем: | |
netstat -ano | |
netstat -ano | findstr $port — поиск условия в выводе | |
Вывод команды будет примерно таким: | |
Активные подключения | |
Имя Локальный адрес Внешний адрес Состояние PID | |
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1000 | |
TCP 0. 0.0.0:445 0.0.0.0:0 LISTENING 4 | |
TCP 0.0.0.0:990 0.0.0.0:0 LISTENING 3320 | |
TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING 4 | |
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 620 | |
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING 1128 | |
TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING 1204 | |
TCP 0.0.0.0:49156 0.0.0.0:0 LISTENING 668 | |
TCP 0.0.0.0:49159 0.0.0.0:0 LISTENING 704 | |
TCP 0. 0.0.0:51693 0.0.0.0:0 LISTENING 2900 | |
TCP 0.0.0.0:62343 0.0.0.0:0 LISTENING 2292 | |
TCP 127.0.0.1:5679 0.0.0.0:0 LISTENING 3320 | |
TCP 127.0.0.1:7438 0.0.0.0:0 LISTENING 3320 | |
TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING 2292 | |
TCP 192.168.0.100:139 0.0.0.0:0 LISTENING 4 | |
TCP 192.168.0.100:49160 157.55.235.160:40042 ESTABLISHED 2900 | |
TCP 192.168.0.100:49177 78. 141.179.13:12350 ESTABLISHED 2900 | |
Во втром столбце ищем интересующий нас порт. | |
Например возьмём последнюю строку и определим каким процессом у меня занят порт 12350 и что это за каннект вообще такой. | |
В последнем столбце смотрим его id. Это 2900. | |
Запускаем диспетчер задач (ctrl+shift+esc). Идём в меню вид==>выбрать столбцы. Там ставим галочку напротив PID. | |
И смотрим в диспетчере задач что за процесс скрывается под id 2900. У меня это оказался skype.exe | |
PID | |
echo $(netstat -ano | grep -P ‘(\d+\.){3}\d+:$port’ | awk -F ‘ ‘ ‘{print $NF}’) | |
taskkill /F /PID $pid | |
taskkill /F /PID |
135, 593 — Pentesting MSRPC
135, 593 — Pentesting MSRPC
Поддержите HackTricks и получите преимущества!
Удаленный вызов процедур Microsoft, также известный как вызов функции или вызов подпрограммы, представляет собой протокол, который использует модель клиент-сервер, чтобы позволить одной программе запрашивать обслуживание у программы на другом компьютере без необходимости разбираться в деталях. сети этого компьютера. Первоначально MSRPC была получена из программного обеспечения с открытым исходным кодом, но была усовершенствована и защищена авторскими правами Microsoft.
В зависимости от конфигурации хоста доступ к сопоставителю конечных точек RPC можно получить через порт TCP и UDP 135, через SMB с нулевым сеансом или сеансом с проверкой подлинности (TCP 139 и 445), а также в качестве веб-службы, прослушивающей TCP-порт 593.
135/tcp open msrpc Microsoft Windows RPC
Процесс MSRPC начинается на стороне клиента, при этом клиентское приложение вызывает локальную процедуру-заглушку вместо кода, реализующего процедуру. Код-заглушка клиента извлекает необходимые параметры из клиентского адресного пространства и доставляет их в клиентскую библиотеку времени выполнения, которая затем переводит параметры в стандартный формат представления сетевых данных для передачи на сервер.
Затем клиентская заглушка вызывает функции в библиотеке времени выполнения клиента RPC для отправки запроса и параметров на сервер. Если сервер расположен удаленно, библиотека времени выполнения указывает соответствующий транспортный протокол и механизм и передает RPC в сетевой стек для передачи на сервер. Отсюда: https://www.extrahop.com/resources/protocols/msrpc/
Изображение Из книги « Оценка сетевой безопасности, 3-е издание »
Раздел взят из книги Оценка сетевой безопасности, 3-е издание именованные трубы). Каждое значение IFID, полученное в ходе этого процесса, обозначает службу RPC (например, 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc — это интерфейс Messenger).
Утилиты Windows rpcdump и ifids Тодда Сабина запрашивают как локатор RPC, так и конкретные конечные точки RPC, чтобы получить список значений IFID. Синтаксис rpcdump следующий:
D: \ rpctools> rpcdump [-p-порт] 192.168.189.1
IFID: 5A7B91F8-FF00-11D0-A9B2-00C04FB6E6FC Версия 1,0
Аннотация: Сервис-посланник
.
Переплет: NCADG_IP_UDP: 192.168.189.1 [1028]
Вы можете получить доступ к службе локатора RPC, используя четыре последовательности протоколов:
NCACN_IP_TCP и NCADG_IP_UDP (TCP и UDPPRI_IP_TCP и NCADG_IP_IP_UDP (TCP и UDP 135)
))) 9003) 9003 9003 9003). \epmapper именованный канал через SMB)ncacn_http (RPC через HTTP через TCP-порты 80, 593 и другие) управление
использовать вспомогательный/сканер/dcerpc/tcp_dcerpc_auditor
rpcdump. py
-p 135 Обратите внимание, что из указанных опций все, кроме
tcp_dcerpc_23tor 900 900
0087 может только выполняться против msrpc в порт 135
5 5.Notable RPC interfaces
IFID value
Named pipe
Description
12345778-1234-abcd-ef00-0123456789ab
\pipe\lsarpc
LSA interface, used to enumerate пользователи
3919286a-b10c-11d0-9BA8-00C04FD92EF5
\ Pipe \ LSARPC
Служба каталогов LSA (DS), используемый для перечисления доменов и доверия. для доступа к общедоступным элементам базы данных SAM (например, именам пользователей) и перебору паролей пользователей независимо от политики блокировки учетной записи Библиотека Oreilly выполнять команды
338cd001-2244-31f1-aaaa-
8001003\pipe\winreg
Remote registry service, used to access the system registry
367abb81-9844-35f1-ad32-98f038001003
\pipe\svcctl
Service control диспетчер и серверные службы, используемые для удаленного запуска и остановки служб и выполнения команд
4b324fc8-1670-01d3-1278-5a47bf6ee188
\pipe\srvsvc
Службы диспетчера управления и серверные службы, используемые для удаленного запуска и остановки служб и выполнения команды
4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
\pipe\epmapper
Интерфейс DCOM, поддерживающий WMI
ServerAlive2 внутри интерфейса IOXIDResolver .
Этот метод использовался для получения информации об интерфейсе в виде адреса IPv6 из блока HTB APT . См. здесь запись 0xdf APT, она включает альтернативный метод с использованием rpcmap.py от Impacket с переплет (см. выше).
Ссылки:
https://airbus-cyber-security.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/
https://airbus-cyber-security.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/
rpcdump. exe из rpctools может взаимодействовать с этим портом.
Поддержите HackTricks и получите выгоду!
Сетевые услуги Пентаестринг - предыдущий
123/UDP - Пентузинг NTP
Next - Network Services Pentesting
137,138,139 - Пендовые NetBios
Последний модифицированный 10000
Копия
EDIT на GIT
Основная информация
Как работает MSRPC?
Идентификация открытых служб RPC
Идентификация IP-адресов
Порт 593
RPC - The Hacker Recipes
The Hacker Recipes
GitHubTwitterExegolTools
Search…
Introduction
Active Directory
Reconnaissance
NBT-NS
Responder ⚙️
Port scanning
BloodHound ⚙️
MS-RPC
enum4linux ⚙️
Политика паролей
Перемещение
Постоянство
Веб-службы
Разведка
Конфигурация
Учетные записи и сеансы
Пользовательские входы
Systems & Services
Reconnaissance
Начальный доступ (протоколы)
Начальный доступ (фишинг)
Привилегии Эскалация
. 🛠️ Сбор разведданных
CYBINT
GEOINT
🛠️ РАДИО
Bluetooth
Беспроводная клавиатура/мышь
🛠️ мобильные приложения
Android
Powered By GitBook
MS-RPC
MS-RPC (удаленный вызов процедур Microsoft) — это протокол, который позволяет запрашивать обслуживание у программы на другом компьютере без необходимости разбираться в деталях сети этого компьютера. К службе MS-RPC можно получить доступ через различные транспортные протоколы, среди которых:
сетевой канал SMB (прослушивающие порты 139 и 445)
обычный TCP или обычный UDP (прослушивающий порт устанавливается при создании службы)
локальный канал SMB
Службы RPC через транспорт SMB, т. е. порт 445/TCP, доступны через «именованные каналы» (через общий ресурс
IPC$
). Есть много интересных именованных каналов, которые позволяют выполнять различные операции из контекста сеансов NULL в локальный административный контекст.\pipe\lsarpc
: перечисление привилегий, доверительных отношений, SID, политик и т. д. через LSA (локальный орган безопасности)\pipe\samr
: перечисление доменных пользователей, групп и т. д. через локальную базу данных SAM (работает только до Win 10 Anniversary)\pipe\svcctl
: удаленное создание, запуск и остановка служб для выполнения команды (используется psexec. py и smbexec.py Impacket)\pipe\atsvc
: удаленно создавать запланированные задачи для выполнения команд (используется atexec.py Impacket)\9pipe0085 : используется DCOM (объектная модель распределенных компонентов), сама используется WMI (инструментарий управления Windows), сама используется злоумышленниками для выполнения команд (используется wmiexec.py Impacket). DCOM также используется MMC (Microsoft Management Console), но сама по себе используется злоумышленниками для выполнения команд (dcomexec.py от Impacket)
Поиск открытых служб
Программа epmapper (MS-RPC EndPoint Mapper) сопоставляет службы с портами. Он использует порт 135/TCP и/или порт 59.3/TCP (для RPC через HTTP). С помощью epmapper такие инструменты, как rpcdump.py (Python) от Impacket или rpcdump.exe (C) от rpctools, могут находить открытые службы RPC.
# с rpcdump.py (пример с целевым портом 135/TCP)
rpcdump.py -port 135 $TARGET_IP
# с rpcdump.exe (пример с целевым портом 593/TCP)
rpcdump.exe -p 5933 $TARGET_IP
Сеансы NULL
Сеансы NULL — это сеансы SMB без проверки подлинности, которые позволяют злоумышленникам выполнять вызовы RPC через именованные каналы SMB без предварительной проверки подлинности. Это позволяет использовать многие методы разведки, такие как перечисление доменной и локальной информации (пользователи, группы, RID, SID, политики и т. д.).
Утилита Samba с именем rpcclient может использоваться для выполнения разведки через службы MS-RPC за именованными каналами SMB. Он предлагает несколько полезных команд.
lsaquery
: get domain name and SID (Security IDentifier) enumalsgroups builtin
: list local groups, returns RIDs (Relative IDs)queryaliasmem
: list local group членов, возвращает SIDLookupsids
: Resolve SID к названиюLookupNames <имя>
: resolve name to sidEnumdomusers
: списки пользователей, эквивалент до. enumdomgroups
: список групп эквивалентенnet group /domain
queryuser
: получить информацию о пользователе, эквивалентноnet user
/domain QueryGroupMem
: Получить участники группы, эквивалентNet Group
/Domain GetDompwinfo
: Get Palsy Polidy 9003GetDompwinfo
: Get Palsorly 9003GetDompwinfo
: Get Palsor 9003
Циклирование RID
Циклирование RID — это метод, который позволяет злоумышленникам перечислять объекты домена путем подбора или угадывания RID и SID на основе того факта, что RID являются последовательными.
Сценарий Python ridenum может использоваться для работы с этой техникой разведки, с сеансом Null или с аутентифицированным сеансом.
Инструмент enum4linux можно использовать для простой работы с быстрым повторным обнаружением через MS-RPC, с нулевым сеансом или без него (см. эту страницу).
Удаленный вызов процедур и перечисление Active Directory
Medium
Previous
BloodHound ⚙️
Next
enum4linux ⚙️
Скопировать ссылку 10 месяцев назад
30003
На этой странице
Теория
Практика
Поиск открытых сервисов
Нулевые сеансы
Разведка через интересные именованные каналы
RID Cycling
Ресурсы
портов Active Directory, используемых клиентом на сервер
Роберт Аллен
В этом посте я рассмотрю порты TCP и UDP, используемые Active Directory от клиента к серверу.
Я буду использовать WireShark и серию тестов, чтобы определить, какие порты используются.
Тесты, которые я буду запускать:
- Порты, используемые при входе пользователя в компьютер
- Порты, используемые при запуске gpupdate
- Порты, используемые при присоединении компьютера к домену
- Порты, используемые при перезагрузке Тестовая среда:
- Сервер 2022 с IP-адресом 192.168.100.10 (сервер Active Directory)
- Windows 10 Pro с IP-адресом 192.168.100.20
- Wireshark установлен на сервере Active Directory
- Сервер Active Directory устанавливается по умолчанию
- TCP 135 Microsoft RPC
- TCP/UDP 49152 – 65535 RPC Dynamic Ports
- TCP 88 Kerberos
- TCP 389 LDAP
- UDP 53 DNS
- TCP 445 SMB
- Описание: Порт 135 является важным портом клиент/сервер. Этот порт используется многими службами Microsoft и не должен блокироваться брандмауэром. Сначала клиент подключается к службе сопоставления RPC (порт 135) и спрашивает средство сопоставления, какой порт прослушивает данная служба (это будет динамический диапазон портов… см. ниже). Сопоставитель RPC отвечает клиенту с портом, а затем клиент подключается к этому порту. Вы можете увидеть это на скриншоте выше.
- Брандмауэр: Разрешить между клиентом и сервером. Порт 135 не должен быть открыт для Интернета.
- Описание: Динамический диапазон портов используется различными серверными приложениями. Динамическое выделение портов RPC указывает программе RPC использовать конкретный случайный порт в диапазоне, настроенном для TCP и UDP, в зависимости от реализации используемой операционной системы. Преобразователь RPC (порт 135) используется для подключения клиентов к службам, работающим на этих динамических портах.
- Брандмауэр: Разрешить между клиентом и сервером. Этот диапазон портов не должен быть доступен в Интернете.
- Описание: Kerberos протокол аутентификации, который аутентифицирует запросы между клиентом и сервером безопасным образом. Это метод проверки подлинности Microsoft Window по умолчанию для устройств, присоединенных к домену.
- Брандмауэр: Разрешить между клиентом и сервером. Порт не должен быть открыт для Интернета.
- Описание: LDAP — это протокол доступа к каталогу. Этот протокол используется для поиска, добавления/удаления, аутентификации и изменения данных на сервере каталогов, таком как Active Directory.
- Брандмауэр: Разрешить между клиентом и сервером. Порт не должен быть открыт для Интернета.
- Описание: DNS — это важная служба, используемая для сопоставления IP-адресов с именами хостов. Это критически важная служба, используемая клиентами для поиска записей ресурсов в домене и поиска внешних доменных имен.
- Брандмауэр: Разрешить между клиентом и сервером. Если DNS работает на вашем сервере Active Directory, я не рекомендую выставлять его в Интернет.
- Описание: Блоки сообщений сервера (протокол SMB) — это протокол связи между клиентом и сервером, используемый для доступа к файлам, принтерам и данным в сети. Этот порт используется во время запуска для получения информации о GPO, а также при выполнении команды gpupdate.
- Брандмауэр: Разрешить между клиентом и сервером. Не открывайте этот порт для доступа в Интернет.
- TCP 88 (Kerberos)
- TCP 135 (Microsoft RPC)
- TCP 389 (LDAP)
- TCP 445 (Microsoft DS)
- TCP 49668 (RPC для LSA, SAM, запуск с NetLogon) к порту 135
- UDP 53 (DNS)
- UDP 389 (LDAP)
- Обзор служб и требования к сетевым портам для Windows
- Имя службы и номер транспортного протокола Реестр
Порты, используемые Active Directory между клиентом и сервером
В этом разделе приводится сводка портов, использованных во всех тестах.
TCP 135 Microsoft RPC Mapper
TCP/UDP 49152 – 65535 Динамические порты RPC
рекомендуется перенастроить брандмауэры, чтобы разрешить трафик между серверами в диапазоне динамических портов от 49152 до 65535. Этот диапазон является дополнением к хорошо известным портам, которые используются службами и приложениями.
https://docs.microsoft.com/en-US/troubleshoot/windows-server/networking/default-dynamic-port-range-tcpip-chang
TCP 88 Kerberos
TCP 389 LDAP
UDP 53 DNS
TCP 445 SMB
Порты, используемые при входе пользователя в компьютер, присоединенный к домену
В этом примере я войду в компьютер PC1 (192.168.100.20) и перехватлю сетевые пакеты с контроллера домена.
Вот диалоговое окно используемых портов TCP/UDP. Это трафик, отправляемый клиентом на контроллер домена и порты назначения.
Вот сводка портов назначения, используемых клиентом.
Порты, используемые при запуске Gpupdate
Войдя в клиентский ПК, я запущу команду gpupdate, чтобы узнать, какие порты используются.
Результаты ниже. Похоже, TCP-порт 445 используется чаще всего при запуске gpupdate.
Порты, используемые при присоединении компьютера к домену
Это похоже на другие захваты пакетов.
TCP 88 (Kerberos)
TCP 135 (Microsoft RPC)
TCP 389 (LDAP)
TCP 445 (Microsoft DS)
TCP 49668 (RPC для LSA, SAM, NetLogon) — начинается с запроса на порт 135
UDP 53 (DNS)
Порты, используемые при перезагрузке
Ничего нового, я вижу те же самые порты, используемые при сравнении с другими захватами пакетов.
Надеюсь, это руководство поможет вам понять порты, используемые между клиентом и сервером Active Directory. Имейте в виду, что этот тест был установкой контроллера домена по умолчанию без запуска дополнительных служб, чем больше служб вы устанавливаете, тем больше портов можно использовать.
Ресурсы:
Рекомендуемый инструмент: Анализатор разрешений для Active Directory
Этот БЕСПЛАТНЫЙ инструмент позволяет мгновенно просматривать разрешения пользователей и групп и позволяет быстро проверить разрешения пользователя или группы для файлов, сетевых ресурсов и общих папок.