Меню Рубрики

Windows server 2012 r2 защита rdp

Инструкция по защите RDP подключения

В этой инструкции описаны рекомендуемые действия по защите Вашего сервера.

Переименуйте стандартную учетную запись администратора

Нажмите Win + X и выберите «Управление компьютером»:

Затем выберите «Локальные пользователи» —→ «Пользователи» —→ кликните правой кнопкой мыши по имени пользователя «Администратор» и выберите «Переименовать»:

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

Блокировка RDP-подключений для учетных записей с пустым паролем

Усилить безопасность можно запретив подключаться к учетным записям с пустым паролем. Для этого нужно включить политику безопасности «Учетные записи»: разрешить использование пустых паролей только при консольном входе»:

Откройте локальную политику безопасности (нажмите Win + R и введите команду secpol.msc)

Перейдите в раздел «Локальные политики» –-> «Параметры безопасности».

3. Дважды щелкните на политике «Учетные записи: разрешить использование пустых паролей. » и убедитесь, что она включена:

Вещь полезная, поэтому не оставляйте этот параметр без внимания.

Смена стандартного порта Remote Desktop Protocol

Не лишним будет сменить стандартный порт на котором работает протокол RDP. Как это сделать уже описано в наших инструкциях: Windows Server 2012 и Windows Server 2016.

Защита от буртфорса

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

Для блокировки атакующих IP адресов будем использовать свободно распратраняющееся ПО — IPBan. Это приложение проверено и работает в Windows Server 2008 и всех последующие версях. Windows XP и Server 2003 — не роддерживаются. Алгоритм его работы простой: программа мониторит журнал событий Windows, фиксирует неудачные попытки входа в систему и, после 5-ти попыток злоумышленника подобрать пароль, блокирует IP адрес на 24 часа.

  1. Cкачайте архив с программой здесь;
  2. В нем находятся два архива IPBan-Linux-x64.zip и IPBan-Windows-x86.zip, нам нужен последний. Распакуйте архив IPBan-Windows-x86.zip в любое удобное место (в примере это корень диска C:);
  3. Так как файлы скачанные с интернета система автоматически блокирует в целях безопасности, для работы приложения необходимо разблокировать все файлы. Щелкните правой кнопкой мыши на все извлеченные файлы и выберите свойства. Обязательно выберите «разблокировать», если этот параметр доступен. Либо, откройте окно PowerShell (Win + R, введите powershellи «ОК») и воспользуйтесь командой следующего вида:

4. Вам нужно внести следующие изменения в локальную политику безопасности, чтобы убедиться, что в логах системы отображаются IP-адреса. Октройте «Локальную политику безопасности» (Win + R, введите secpol.msc и «OK«). Перейдите в «Локальные политики» —> «Политика аудита» и включить регистрацию сбоев для «Аудита входа в систему» и «Аудита событий входа в систему»:

5. Для Windows Server 2008 или эквивалентного вам следует отключить логины NTLM и разрешить только NTLM2-вход в систему. В Windows Server 2008 нет другого способа получить IP-адрес для входа в систему NTLM. Октройте «Локальную политику безопасности» (Win + R, введите secpol.msc и «OK«). Перейдите в «Локальные политики» —> «Параметры безопасности» —> «Сетевая безопасность: Ограничения NTLM: входящий трафик NTLM» и установите значение «Запретить все учетные записи»:

6. Теперь необходимо создать службу IPBan, чтобы приложение запускалось при старте системы и работало в фоновом режиме. Запустите оснастку PowerShell (Win + R, введите powershell и «ОК») и выпоните команду типа:

Перейдите в службы (Win + R, введите services.msc и «OK«) и запустите службу IPBAN, в дальнейшем она будет запускаться автоматически:

В «Диспетчере задач» можно убедиться, что служба запущена и работает:

Таким образом, программа следит за неудачными попытками авторизации и добавляет неугодные IP адреса в созданное правило для входящих подключений брандмауэра Windows:

Заблокированные IP адреса можно разблокировать вручную. Перейдите на вкладку «Область» в свойствах правила «IPBan_0» и удалите из списка нужный Вам IP адрес:

Источник

Защита RDP от подбора паролей с блокировкой IP правилами Windows Firewall

Возникла идея написать простой PowerShell скрипт для автоматической блокировки в брандмауэре Windows IP адресов, с которых фиксируются попытки подбора паролей через RDP (или длительные RDP атаки). Идея заключается в следующем: скрипт PowerShell анализирует журнал событий системы, и, если с конкретного IP адреса за последние 2 часа зафиксировано более 5 неудачных попыток авторизации через RDP, такой IP адрес автоматически добавляется в блокирующее правило встроенного брандмауэра Windows.

Итак, имеется небольшая сеть с доменом, для доступа внутрь на один из компьютеров на интернет-шлюзе с Linux через NAT проброшен RDP порт (снаружи отвечает порт TCP 13211, а внутрь перенаправляется стандартный 3389). Периодически на компьютере происходит блокировка известных учетных записей доменной политикой паролей из-за неудачных попыток авторизоваться на компьютере через RDP. Наша задача автоматически блокировать IP адреса, через которых идет подбор паролей в RDP .

Сначала создадим на компьютере правило брандмауэра, которое блокирует входящее RDP подключение с указанных IP адресов:

New-NetFirewallRule -DisplayName «BlockRDPBruteForce» –RemoteAddress 1.1.1.1 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Block

В дальнейшем в это правило мы будем добавлять IP адреса, с которых фиксируется попытки подбора паролей по RDP.

Теперь нужно собрать из журналов компьютера список IP адресов, с которых за последние 2 часа фиксировалось более 5 неудачных попыток авторизации. Для этого в журнале Security нужно выбрать события с EventID 4625 (неудачный вход — An account failed to log on и LogonType = 3, см. статью Анализ RDP логов в Windows). В найденных событиях нужно найти IP адрес подключающегося пользователя и проверить, что этот IP адрес встречался в логах более 5 раз.

Я использую такой код для выбора IP адресов атакующих из событий за последние 2 часа (можете изменить время):

$Last_n_Hours = [DateTime]::Now.AddHours(-2)
$badRDPlogons = Get-EventLog -LogName ‘Security’ -after $Last_n_Hours -InstanceId 4625 | ? <$_.Message -match 'logon type:\s+(3)\s'>| Select-Object @ >
$getip = $badRDPlogons | group-object -property IpAddress | where <$_.Count -gt 5>| Select -property Name

Теперь все обнаруженные IP адреса атакующего нужно добавить в правило брандмауэра BlockRDPBruteForce, которое мы создали ранее. Для управления брандмауэром Windows мы будем использовать встроенный модуль встроенный PowerShell модуль NetSecurity. Сначала получим список текущих заблокированных IP адресов и добавим к нему новые.

$log = «C:\ps\blocked_ip.txt»
$current_ips = (Get-NetFirewallRule -DisplayName «BlockRDPBruteForce» | Get-NetFirewallAddressFilter ).RemoteAddress
foreach ($ip in $getip)
<
$current_ips += $ip.name
(Get-Date).ToString() + ‘ ‘ + $ip.name + ‘ IP заблокирован за ‘ + ($badRDPlogons | where <$_.IpAddress -eq $ip.name>).count + ‘ попыток за 2 часа’>> $log # запись события блокировки IP адреса в лог файл
>
Set-NetFirewallRule -DisplayName «BlockRDPBruteForce» -RemoteAddress $current_ips

Проверяем, что в блокирующее правило Windows Defender Firewall добавились новые IP адреса.

Вам осталось скопировать данный PowerShell код в файл c:\ps\block_rdp_attack.ps1 и добавить его в задание планировщика, для запуска по расписанию. Например, каждые 2 часа.

$repeat = (New-TimeSpan -Hours 2)
$duration = ([timeSpan]::maxvalue)
$Trigger= New-ScheduledTaskTrigger -Once -At (Get-Date).Date -RepetitionInterval $repeat -RepetitionDuration $duration
$User= «NT AUTHORITY\SYSTEM»
$Action= New-ScheduledTaskAction -Execute «PowerShell.exe» -Argument «C:\PS\block_rdp_attack.ps1»
Register-ScheduledTask -TaskName «BlockRDPBruteForce_PS» -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

Либо вы можете запускать скрипт PowerShell при появлении события 4625 в журнале, таким образом вы будете более быстро реагировать на атаку подбора пароля по RDP.

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

disable-NetFirewallRule -DisplayName «BlockRDPBruteForce»

Мы ж таким образом отключаем правило….

Фенкс ) Скопировал код из черновика. Убрал эту строку.

Благодарю! Очень полезный скрипт. У нас на Windows VDS сервере постоянно идет долбежка с подбором паролей по RDP.
Один вопрос: можно вести лог событий блокировки IP для дальнейшего разбора полетов?

Добавил в скипт логирование. В резульатте в файле C:\ps\blocked_ip.txt у вас должны появляться строки вида:
10/3/2019 7:46:52 AM 192.168.1.11 IP заблокирован за 15 попыток за 2 часа
10/3/2019 7:46:52 AM 192.168.255.60 IP заблокирован за 7 попыток за 2 часа

Вот. Вот. Очень знакомый сценарий. Это называется Soft Lock в Cyberarms Intrusion Detection and Defense Software (IDDS) 🙂
А дальше, для особо «ретивых», включается Hard Lock, то сть IP уже не удаляется из списка заблокированных в Windows Firewall.

Так же хотел использовать для данных целей IDDS. Но он к сожалению никак не реагирует на попытки подбора пароля. Есть подозрение что IDDS ищет в журнале события на английском языке, в то время как у меня сервер на русском. Или версия сервера устаревшая. Использую еще 2008 R2.
Не могли бы Вы поделиться своим опытом настроили IDDS. Или толковым мануалом

Была такая хорошая штука как EvlWatcher, но более не разрабатывается, увы

Подскажите, если в журнале Security замечены попытки брутфорса, но не регистрируется удаленный IP. Поле пустое. Как защищаться в таком случае?

Аудит доступа включен? События с отказом в доступе с EventID 4652 в журнале есть? Покажите, что в них содержится. Вожмноу вас там фигурируют имена удаленных хостов.

это всё хорошо, но что делать ддя защиты от постоянно обнаруживаемых уязвимостях в протоколе RDP, когда для взлома используют другие методы, помимо грубого подбора? для своих клиентов мы давно практикуем доступ извне исключительно через VPN…

Обновляться. 80-90% эксплойтов создано после выхода патча на уязвимость. А 100% гарантии не даст никто и ничто.

Это защита от придурков, конечно же. От школьников-студентов которым попался скрипт и база для перебора «стандартных» логинов-паролей, которые настроили такие же школьники-студенты без мозгов. Отшибание на входе, по IP, попросту разгружет сам RDP и систему авторизации. Я подобный «контингент» отрезаю на уровне железного
fierwall , а с другими уязвимостями, боремся\ соответствующими методами.

VPN — единственно правильный вариант защиты от подбора паролей через RDP. Если совсем никак не получается реализовать VPN — ставить блокировку учетной записи при неправильном вводе пароля, например 5 раз на 30 минут — помогает, хотя это и не полноценное решение.

Почему не сделать такой функционал «на интернет-шлюзе с Linux» и сразу на все проброшенные порты, например?
Там это всё как-бы штатный функционал…

А зачем (Лялих) Linux? В игрушки поиграться? :—) Если уж делать полноценно, то на FreeBSD 🙂 Но статья не об этом, если вы не заметили. 🙂

Ок, готов посмотреть на Ваше архитектурное решение, когда linux аналзирует access логи с Windows и блокирует доступ в FW в зависимости от успешности аутентфикации по RDP.
Почему-то кажется, что это будет тот еще костыль.

И еще добавлю. Авторизация через Linux в AD/ Просто не делал никогда. Ввиду нецелесообразности. Вот FreeBSD, да. Да и то если заказчик ну очень попросит.

V согласен с тем, что руководство, как правило, идет по пути наименьшего сопротивления, особенно в малом бизнесе. Нанимать отдельно линуксоида, для реализации? Нет. Брать на время фрилансера, ну может быть. Но учитывая и зависимость от него в дальнейшем. А им оно надо?

По моему опыту, линуксоиды не очень тянут в Windows, а как не крути, офисы рботают на Windows/Office на 99.9% Поэтому нужно два админа. Один из которых линуксоид, … который слабо окупается.

Есть отличная и уже бесплатная программа

Делает ровно тоже самое — набмивает Windows Firewall блокированными IP
Работает не только с RDP, но и может отслеживать:
-FTP
— TLS/SSL
— RRAS — Routing and Remote Access
— Kerberos pre-authentication
— AD Credential Validation
— Windows Base
— FileMaker
— SMTP
— SQL Server

Хотя, в качестве пособия по PS, статья годная 🙂

Не PS, конечно же, а VisualBasic, который ходит в логи 🙂

Это все хорошо, но какого черта вообще рдп смотрит туда где могут подбирать пароль?

А как вы себе, «иначе» (не глядя) представляете авторизацию на RDP?
А «дятлы», которые долбятся с брутфорсом, всегда были, есть и будут.
Особенно сейчас. Все вокруг «кул хацкеры», насмотревшись видосов на YouTube и начитавших «хацкерских» форумов. Возрастная категория, этих придурков, от 12 до 20 лет.

скажу за Евгения, хоть и не принято встревать: можно (многие, как и я, скажут «нужно») делать доступ по RDP через VPN подключение, клиент vpn всегда подключен к серверу, но трафик туда не завёрнут, клиент rdp подключается по локальному адресу, часто отключают доступ ко всему, кроме ip сервера терминалов при подключении, т.е. доступ к ресурсам внутренней сети возможен только внутри RDP сессии, это всё обычные практики

«Как надо» и без вас понятно. 🙂

Была рассмотрена вполне конкретная ситуация.
Как я написал выше, это «пособие по VB и анализу лог-файлов и работе с Windows firewall.

Мне приходилось отказываться «сделать через VPN» потому что я устал
объяснять «топеам» — «почему не работает?» и из какого места растут руки у их детей-вундеркиндов. И по сто рах, снова и снова,
перенастраивать их ноутбуки.

RDP выставлять в интернет это плохо, но не все готовы себе разворачивать VPN или RD Web Access. По крайней мере в малом бизнесе не все готовы себе даже лицензию на Windows Server купить. Поэтому такая семы будет сплошь и рядом.
И я не говорю, что RDP из интернета это правильно. Статья это пример анализа логов и реагирования на события на файерволе из PowerShell.

Используем RDPGuard, работает нормально. Ну а скрипт однозначно мастхэв

Не эксперт по powershell, но у меня скрипт не работает.
Что такое foreach ($ip in $iparr)? $iparr нету ж такой переменной..
Для себе переделал в такой:
$Last_n_Hours = [DateTime]::Now.AddHours(-2)
$badRDPlogons = Get-EventLog -LogName ‘Security’ -after $Last_n_Hours -InstanceId 4625 | ? <$_.Message -match ‘logon type:\s+(3)\s’>| Select-Object @ >
$getip = $badRDPlogons | group-object -property IpAddress | where <$_.Count -gt 3>| Select -property Name
$log = «D:\blocked_ip_rdp.txt»
$current_ips = (Get-NetFirewallRule -DisplayName «BlockRDP» | Get-NetFirewallAddressFilter ).RemoteAddress -split(‘,’)
#смотрим нету ли такого ip уже заблоченого
$ip = $getip | where <$getip.Name.Length -gt 1 -and !($current_ips -contains $getip.Name) >
$ip|% <
$current_ips += $ip.name
(Get-Date).ToString() + ‘ ‘ + $ip.name + ‘ IP заблокирован за ‘ + ($badRDPlogons | where <$_.IpAddress -eq $ip.name>).count + ‘ попыток за 2 часа’>> $log # запись события блокировки IP адреса в лог файл
>
Set-NetFirewallRule -DisplayName «BlockRDP» -RemoteAddress $current_ips

Да, была ошибка в скрипте. Поправил.
За ваш вариант спасибо )

Спасибо, работает. Только для русской версии ОС надо кодировку 1251 (а то у меня не работало, и никак не мог понять почему). Сделал вариант с автоматическим выбором языка. Ну и добавил настройку порта.

# Кодировка — Windows 1251, если ОС русской версии
# номер порта RDP
$RDPPort = «45678»
# Сначала создадим на компьютере правило брандмауэра, которое блокирует входящее RDP подключение с определённых IP адресов:
# В дальнейшем в это правило мы будем добавлять IP адреса, с которых фиксируется попытки подбора паролей по RDP.
$RDPRule = Get-NetFirewallRule -DisplayName «Block RDP Attack»
if ($RDPRule -eq $null) < New-NetFirewallRule -DisplayName "Block RDP Attack" –RemoteAddress 1.1.1.1 -Direction Inbound -Protocol TCP –LocalPort $RDPPort -Action Block >
# можете запускать скрипт PowerShell при появлении события 4625 в журнале, таким образом вы будете более быстро реагировать на атаку подбора пароля по RDP.
$Last_n_Hours = [DateTime]::Now.AddHours(-2)
$Log = «C:\Windows\Block-RDP-Attack.log»
$OSLang = (Get-WmiObject Win32_OperatingSystem).OSLanguage
switch ($OSLang) <
1049 < $badRDPlogons = Get-EventLog -LogName 'Security' -after $Last_n_Hours -InstanceId 4625 | ? < $_.Message -match 'Тип входа:\s+(3)\s' >| Select-Object @ > >
1033 < $badRDPlogons = Get-EventLog -LogName 'Security' -after $Last_n_Hours -InstanceId 4625 | ? < $_.Message -match 'logon type:\s+(3)\s' >| Select-Object @ > >
>
$getip = $badRDPlogons | group-object -property IpAddress | where < $_.Count -gt 10 >| Select -property Name
$current_ips = (Get-NetFirewallRule -DisplayName «Block RDP Attack» | Get-NetFirewallAddressFilter ).RemoteAddress -split (‘,’)
# смотрим нет ли такого IP среди заблокированных
$ip = $getip | where < $getip.Name.Length -gt 1 -and !($current_ips -contains $getip.Name) >
$ip | % <
$current_ips += $ip.name
(Get-Date).ToString() + ‘ ‘ + $ip.name + ‘ IP заблокирован за ‘ + ($badRDPlogons | where < $_.IpAddress -eq $ip.name >).count + ‘ попыток за 2 часа.’ >> $Log
>
Set-NetFirewallRule -DisplayName «Block RDP Attack» -RemoteAddress $current_ips

Доступ снаружи — ТОЛЬКО по VPN, никаких пробросов портов + блокировка учетных записей при неправильном вводе паролей более 5 раз на 30 минут.

Какие вы категоричные. Всякие ситуации бывают, по статье есть что сказать?

Вопрос в том, что адреса, с которых идут атаки, меняются в очень широком диапазоне — я пробовал их анализировать, так что сама идея блокировки по адресам — это лечение последствий, а не болезни. Закрыть саму идею проброса RDP и запускать пользователей только по VPN.

Я хотел б посмотреть на вас, как вы будете поддержывать работу RDP через VPN для +500 пользователей(онлайн

150), с разношерстной техникой, за NAT-ами. Что б все стабильно работало, что б у пользователя на компьютере интернет не пропадал и не ходил через vpn канал, и т. д.

Смена порта RDP уже отсекает в большенстве случаев все попытки мамкиных хакеров. На остальное как раз нужет такой скрипт для подстраховки, ну и + в домене контроль сложности пароля, блокировка неудачного входа, +установка обновлений, антивирус, software restriction policies никто не отменял

Как вариант при таком количестве — реализовать VPN сервер аппаратно на сетевом оборудовании, и про всё остальное не забывать. Проброс портов — не лучшее решение, только для небольших сетей.

Ну и вообще отредактированный отдебаженный скрипт, работающий на Windows 2012R2:
$Last_n_Hours = [DateTime]::Now.AddHours(-2)
$log = «C:\Security\blocked_ip_rdp.txt»
$badRDPlogons = Get-EventLog -LogName ‘Security’ -after $Last_n_Hours -InstanceId 4625 | ? <$_.Message -match 'Тип входа:\s+(3)\s'>| Select-Object @ >
$getip = $badRDPlogons | group-object -property IpAddress | where <$_.Count -gt 5>| Select -property Name
#$getip>$log
$current_ips = (Get-NetFirewallRule -DisplayName «BlockRDPBruteForce» | Get-NetFirewallAddressFilter ).RemoteAddress -split(«,»)
foreach ($ip in $getip)
<
if ($ip.name -and $ip.name -ne «-» -and !($current_ips -contains $ip.Name)) <
$current_ips += $ip.name
# Write-Output $ip.name
(Get-Date).ToString() + ‘ ‘ + $ip.name + ‘ IP заблокирован за ‘ + ($badRDPlogons | where <$_.IpAddress -eq $ip.name>).count + ‘ попыток за 2 часа’>> $log # запись события блокировки IP адреса в лог файл
>
>
#Write-Output «———————————»
#Write-Output $current_ips
Set-NetFirewallRule -DisplayName «BlockRDPBruteForce» -RemoteAddress $current_ips

Вывод в терминале после первого выполнения:
C:\Security>powershell .\block_ip_rdp.ps1
37.29.118.68
168.228.182.73
186.91.168.99
185.81.152.124
———————————
1.1.1.1
37.29.118.68
168.228.182.73
186.91.168.99
185.81.152.124

Вывод в терминале после второго выполнения:
C:\Security>powershell .\block_ip_rdp.ps1
———————————
1.1.1.1
37.29.118.68
168.228.182.73
186.91.168.99
185.81.152.124

Как я понял, это скрипт для русской версии Windows Server, где в событии 4625 вместо «logon type» пишется «Тип входа»

Спасибо! Как раз зашёл запостить свой вариант. Оказалось он такой же как у вас ))
Топикстартеру спасибо за направление мысли

А у меня не пошел. Матерится вот тут

PS C:\Windows\system32> $current_ips = (Get-NetFirewallRule -DisplayName «BlockRDPBruteForce» | Get-NetFirewallAddr
lter ).RemoteAddress -split(«,»)
Get-NetFirewallRule : No MSFT_NetFirewallRule objects found with property ‘DisplayName’ equal to ‘BlockRDPBruteForc
Verify the value of the property and retry.
At line:1 char:17
+ $current_ips = (Get-NetFirewallRule -DisplayName «BlockRDPBruteForce» | Get-NetF …
+

+ CategoryInfo : ObjectNotFound: (BlockRDPBruteForce:String) [Get-NetFirewallRule], CimJobException
+ FullyQualifiedErrorId : CmdletizationQuery_NotFound_DisplayName,Get-NetFirewallRule

Вы не создали правило BlockRDPBruteForce:

New-NetFirewallRule -DisplayName «BlockRDPBruteForce» –RemoteAddress 1.1.1.1 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Block

Подскажите, плиз, если в логах безопасности не видно IP того, кто пытается подключится?

Какая версия Windows, язык?
Вручную события по коду удалось найти? Что в них вообще есть? Пришлите содержимое.

WinServer 2012 RU, события в журнале есть, но вот IP можно увидеть только при успешной авторизации, в противном случае видно только логин, под которым пытались залогиниться, IP не видно.

4625
0
0
12544
0
0x8010000000000000

0xc000006d
%%2313
0xc0000064
3
NtLmSsp
NTLM

4625
0
0
12544
0
0x8010000000000000

0xc000006d
%%2313
0xc0000064
3
NtLmSsp
NTLM

0xc000006d
%%2313
0xc0000064
3
NtLmSsp
NTLM

SubjectUserSid S-1-0-0
SubjectUserName —
SubjectDomainName —
SubjectLogonId 0x0
TargetUserSid S-1-0-0
TargetUserName VANAF
TargetDomainName
Status 0xc000006d
FailureReason %%2313
SubStatus 0xc0000064
LogonType 3
LogonProcessName NtLmSsp
AuthenticationPackageName NTLM
WorkstationName
TransmittedServices —
LmPackageName —
KeyLength 0
ProcessId 0x0
ProcessName —
IpAddress —
IpPort —

Хотел XML вставить, а он его как теги HTML воспринимает, по удаляйте лишнее плиз

Подскажите, плиз, если в логах безопасности не видно IP того, кто пытается подключится?
Это очень актуально….. блокировка по открытому IP уже не актуально, те кто этим занимаются давно скрывают эту информацию как быть в таком случае.
Вот таких подборов бесконечно много…… :

Учетной записи не удалось выполнить вход в систему
Субъект:
ИД безопасности: NULL SID
Имя учетной записи: —
Домен учетной записи: —
Код входа: 0x0
Тип входа: 3
Учетная запись, которой не удалось выполнить вход:
ИД безопасности: NULL SID
Имя учетной записи: BUHGALTER
Домен учетной записи:
Сведения об ошибке:
Причина ошибки: Неизвестное имя пользователя или неверный пароль.
Состояние: 0xc000006d
Подсостояние: 0xc0000064
Сведения о процессе:
Идентификатор процесса вызывающей стороны: 0x0
Имя процесса вызывающей стороны: —
Сведения о сети:
Имя рабочей станции:
Сетевой адрес источника: —
Порт источника: —
Сведения о проверке подлинности:
Процесс входа: NtLmSsp
Пакет проверки подлинности: NTLM
Промежуточные службы: —
Имя пакета (только NTLM): —
Длина ключа: 0
Данное событие возникает при неудачной попытке входа. Оно регистрируется на компьютере, попытка доступа к которому была выполнена.
Поля «Субъект» указывают на учетную запись локальной системы, запросившую вход. Обычно это служба, например, служба «Сервер», или локальный процесс, такой как Winlogon.exe или Services.exe.
В поле «Тип входа» указан тип выполненного входа. Наиболее распространенными являются типы 2 (интерактивный) и 3 (сетевой).
В полях «Сведения о процессе» указано, какая учетная запись и процесс в системе выполнили запрос на вход.
Поля «Сведения о сети» указывают на источник запроса на удаленный вход. Имя рабочей станции доступно не всегда, и в некоторых случаях это поле может оставаться незаполненным.
Поля сведений о проверке подлинности содержат подробные данные о конкретном запросе на вход.
— В поле «Промежуточные службы» указано, какие промежуточные службы участвовали в данном запросе на вход.
— Поле «Имя пакета» указывает на подпротокол, использованный с протоколами NTLM.
— Поле «Длина ключа» содержит длину созданного ключа сеанса. Это поле может иметь значение «0», если ключ сеанса не запрашивался.

Ещё раз — закрыть RDP снаружи, и пусть подбирают до потери пульса, доступ исключительно через VPN.

Отключите LM и NTLM входы через политику. Оставьте только NTLMv2
Локальная политика безопасности -> Локальные политики -> Параметры безопасности -> Сетевая безопасность: ограничения NTLM: входящий трафик NTLM -> Запретить все учетные записи
Смотрите здесь еще:
https://winitpro.ru/index.php/2019/03/13/otklyuchenie-ntlm-autentifikacii-v-domene-ad/

На входе linux в минимальной конфигурации и hashlimit на new соединения. Всё.

Спасибо за статью! выполнил, скрипты но у меня ничего не появилось (добавилось только правило в брандмауэре ). Windows Server2019RU

Скрипт в статье для Eng версии windows. См. в комментах рабочий скрипт по блокировке IP в RU версии. Также можете для начала проверить, что у вас в журнале Безопасность появляются события с кодом 4625.

Есть такая крутая программка RDP Defender (бесплатная). Блокирует подборщиков с помощью стандартного файрвола. Есть белый список. Можно указать кол-во неудачных попыток ввода пароля.

К сожалению, он бессилен, если дятел скрыл свой iP.

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

Защита от подбора пароля делается средствами системы за минуту — зачем для этого программа? Белый список можно и нужно сделать на раутере/прокси, естественно, с перенаправлением на нестандартный порт — что крутого в программе?

Yaromax, Вы про какой метод?

Количество идиотов-пионеров, пытающихся всякими кул-хацкерными» программами «пробить RDP» растет непрерывно. Замена стандартного порта 3389 на лругой, помогает, но только от совсем уж «клинических недо-хаЦкеров».

Есть большой и длительный опыт использования подобной блокировки. Из опыта, примерно через год, Windows начинал сильно тормозить. Причина — переполненное правило Windows Firewall

Поэтому способ хорош, но лишь как «промежуточный».

Я делаю так. Собираю это правило Windows Firewall примерно неделю, а потом, скриптом (или как вам удобнее), переношу IP адреса в Black List железного роутера.

Какие кул хацкеры о чем вы говорите любой публичный IP используемый на предприятии проходит последовательные переборы портов определяет какие сервисы на каком порту и затем ведется перебор по всем сервисам. После блокировки зловредных IP он тут же меняется.
Есть наверное смысл брать IP отсюда https://www.abuseipdb.com/ и сразу их добавлять в основной файрвол. Но не все а первую 1000 с наивысшим рейтингом. Потому что есть минусы как у всех подобных сервисов.

приветствую всех! Спасибо за статью, очень актуально. server 2016 en с русской локализацией. сработал скрипт только от Владимир 23.11.2019

ip уже в блокирующем правиле, но продолжается сыпаться лог 4625.
Переключаемся на использование NTLMv2 —
выполнил

Подскажите плиз, куда копать?

Учетной записи не удалось выполнить вход в систему.

Субъект:
ИД безопасности: NULL SID
Имя учетной записи: —
Домен учетной записи: —
Код входа: 0x0

Учетная запись, которой не удалось выполнить вход:
ИД безопасности: NULL SID
Имя учетной записи: administrator
Домен учетной записи:

Сведения об ошибке:
Причина ошибки: Неизвестное имя пользователя или неверный пароль.
Состояние: 0xC000006D
Подсостояние: 0xC0000064

Сведения о процессе:
Идентификатор процесса вызывающей стороны: 0x0
Имя процесса вызывающей стороны: —

Сведения о сети:
Имя рабочей станции: —
Сетевой адрес источника: 182.69.101.242
Порт источника: 56349

Сведения о проверке подлинности:
Процесс входа: NtLmSsp
Пакет проверки подлинности: NTLM
Промежуточные службы: —
Имя пакета (только NTLM): —
Длина ключа: 0

У меня rdp порт открыт только разрешённому списку ip, там десяток адресов. С других адресов зайти не могу. Это было даже до скрипта. Почему тогда виндоус позволяет себя бомбить? или у меня это подпор не по rdp происходит?

Сетевой адрес источника: 182.69.101.242 — заблокировать на прокси или раутере.

эти адреса обрабатывает скрипт, добавляет их в черный список. вопрос в другом: почему есть эти логи\попытки входа, если у меня закрыт рдп порт(открыт только для своих)? и значит ли этот лог, что пытаются войти через рдп? может как-то можно закрыть даже возможность этих входов?

Это хорошо, когда так можно сделать.
А если сотрудники на удаленке, в командировке когда IP «плавает»?
Пробовал сделать подключение через VPN, но … дома у сотрудников такой «зоопарк», что пришлось отказаться от этой, правильной идеи.
Да и тяжко объяснять каждому и настраивать. Напомню, компьютеры домашние.
В итоге тем, кто постоянно ездит в командировки, купил и настроил ноуты, остальные ходят просто на RDP.

Здравствуйте.
При создании задания в планировщике Windows Server 2019 через указанный скриптn такая ошибка

Register-ScheduledTask : XML-код задачи содержит значение в неправильном формате или за пределами допустимого диапазона.
(8,42):Duration:P99999999DT23H59M59S
строка:6 знак:1
+ Register-ScheduledTask -TaskName «BlockRDPBruteForce_PS» -Trigger $Tr …
+

+ CategoryInfo : NotSpecified: (PS_ScheduledTask:Root/Microsoft/…S_ScheduledTask) [Register-ScheduledTask], CimExcept
ion
+ FullyQualifiedErrorId : HRESULT 0x80041318,Register-ScheduledTask

Что это может значить? На Windows Server 2016 такого не было

В ручную создать задание получилось, но не понятно, почему на скрипт ошибка

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Windows server 2012 r2 журнал событий
  • Windows server 2012 r2 x64 rus msdn
  • Windows server 2012 r2 x64 dvd 2707946
  • Windows server 2012 r2 work folders
  • Windows server 2012 r2 vl что значит vl