none
атака на открытый RDP порт, и способы противодействия RRS feed

  • Вопрос

  • День добрый, некоторое время назад пользователи стали жаловаться что учетная запись заблокирована, начал смотреть в чем причина и выяснил что с этих адресов:

    176.36.205.248
    5.53.119.250
    194.44.230.32
    93.178.218.5
    188.0.134.161
    94.127.179.183
    148.251.1.195
    195.64.149.45
    195.66.203.102
    217.24.161.33
    185.55.105.70
    93.178.218.5
    185.176.221.49
    кто-то с периодичностью несколько раз в секунду подбирает имена пользователей и паролей, если пользователя угадали то через несколько подборов пароля учетка блокируется(так настроена политика).

    Я в планировщике настроил оповещение по событию 140 источник RemoteDesktopServices-RdpCoreTS

    выполняется вот такой файл:

    @type c:\log\RDPError06.log
    echo %errorlevel%
    if %errorlevel%==0 goto RDPError07
    echo %date% %time% >c:\log\RDPError06.log
    Goto RDPErrorEnd

    :RDPError07
    @type c:\log\RDPError07.log
    echo %errorlevel%
    if %errorlevel%==0 goto RDPError08
    echo %date% %time% >c:\log\RDPError07.log
    Goto RDPErrorEnd

    :RDPError08
    @type c:\log\RDPError08.log
    echo %errorlevel%
    if %errorlevel%==0 goto RDPError09
    echo %date% %time% >c:\log\RDPError08.log
    Goto RDPErrorEnd

    :RDPError09
    @type c:\log\RDPError09.log
    echo %errorlevel%
    if %errorlevel%==0 goto RDPError10
    echo %date% %time% >c:\log\RDPError09.log
    Goto RDPErrorEnd

    :RDPError10
    @type c:\log\RDPError10.log
    echo %errorlevel%
    if %errorlevel%==0 goto RDPErrorEnd
    echo %date% %time% >c:\log\RDPError10.log
    cd C:\Log\MailAlert\
    C:\Log\MailAlert\MailAlert.exe -s "RDP attack" -b "RDP attack"
    type c:\log\RDPError*.log >c:\log\RDPError_%date%.txt
    Del c:\log\RDPError*.log /Q
    Goto RDPErrorEnd

    :RDPErrorEnd
    @echo end

    Но это максимум на что меня хватило, написал минут за 15 чтоб как то отслеживать атаки, при получении почты я захожу на сервер и вручную добавляю IP в блокировку на встроенном файерволе системы!

    вопрос: подскажите как можно автоматически собирать статистику IP адресов из логов, и можно ли по собранной статистике автоматически добавлять IP в блокировку в файервол?

    PS? в качестве альтернативы, может есть способ как автоматически блокировать IP адреса например на microtik? для микротика я честно не представляю как отличить атакующий IP от рабочего, но может кто подскажет

    1 октября 2019 г. 14:17

Все ответы

  • Как вариант, смена порта 3389 на нестандартный?!
    1 октября 2019 г. 14:37
  • порт далеко не стандартный, более того их несколько так как снаружи один IP а внутри несколько RDP серверов.
    1 октября 2019 г. 14:44
  • если пользователя угадали то через несколько подборов пароля учетка блокируется(так настроена политика)

    у Вас что имена пользователей вроде Buh1? Если у Вас логины имя.фамилия и их угадывают - значит Вас кто-то целенаправлено ломает. 99% вариант защиты - убрать RDP сервер за VPN.
    • Предложено в качестве ответа AnahaymModerator 13 октября 2019 г. 19:42
    1 октября 2019 г. 15:16
    Модератор
  • последний была заблокирована учетка sklad2, ломают целенаправленно но не конкретно один адрес а вообще, обслуживаю несколько организаций в городе, у некоторых есть RDP и пойманные IP адреса это адреса пойманные на разных серверах разных организаций не связанных между собой, в разных организациях атакующие IP адреса совпадают, собственно адреса собраны за последние пол года, спасает то что есть политика блокировки учетки при подборе пароля, сделал оповещение, вношу ip в блокировку вручную, просто хотелось бы это автоматизировать так или иначе, по этому и спросил помощи:

    предполагаю что надо писать скрипт используя powershell, первым делом отслеживать событие 140 из RDPCore, обрабатывать текст ошибки из нее выделять IP адрес, собирать IP в отдельный файл, добавлять полученные IP в блокировку firewall, примерно так, собственно хотел узнать может у кого уже есть готовое решение, а если нет то может есть опыт обработки логов, как из существующего файла со списком адресов сделать блокировку в firewall я догадываюсь. не хватает некоторых промежуточных решений!

    Если убрать за VPN где гарантия что не начнут подбирать пароли для VPN?


    • Изменено Kislov-EA 1 октября 2019 г. 15:49
    1 октября 2019 г. 15:41
  • добавлять ip до безконечности в блоклист задача решаемая но не оптимальная. всплывает на данном ресурсе +-2 раза в год

    если вам интересен именно вариант с фаерволами то можете посмотреть в сторону белых списков ведь изветных адресов будет всяко меньше чем не известных + можете настроить только безопасные подключения где будет проходить авторизация машины перед авторизацией пользователя

    или как говорил Anahaym настроить vpn с сертификатами и отходить от практики с пробросом портов


    The opinion expressed by me is not an official position of Microsoft

    1 октября 2019 г. 15:49
    Модератор
  • начать можно с этого (если имя лога правильно):

    Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-RDPCore/Operational";id=140}

    покажите скрин ошибки в XML формате. Так же можно анализировать логи безопасности

    1 октября 2019 г. 15:50
    Модератор
  • - System

      - Provider

       [ Name]  Microsoft-Windows-RemoteDesktopServices-RdpCoreTS
       [ Guid]  {1139C61B-B549-4251-8ED3-27250A1EDEC8}

       EventID 140

       Version 0

       Level 3

       Task 4

       Opcode 14

       Keywords 0x4000000000000000

      - TimeCreated

       [ SystemTime]  2019-10-01T10:00:26.167033100Z

       EventRecordID 30497663

      - Correlation

       [ ActivityID]  {F4206F72-C837-454D-BB41-C40BA8A30000}

      - Execution

       [ ProcessID]  1480
       [ ThreadID]  112

       Channel Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational

       Computer ъххххххх
      - Security

       [ UserID]  S-1-5-20


    - EventData

      IPString 185.176.221.49

    в этом формате есть отдельный пункт IPString, не знал, удобно, но я все равно пока не знаю как это обрабатывать, но теперь буду знать в какую сторону копать! Спасибо!

                  
    • Изменено Kislov-EA 1 октября 2019 г. 16:10
    1 октября 2019 г. 16:09
  • я предполагал сделать что то вроде стека из адресов по времени, блокировать последние несколько за пол года например, делать портянку из блокированных адресов не вижу смысла они все меняются...
    1 октября 2019 г. 16:15
  • попробуйте вот это:

    Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational";id=140} | Foreach { $event = [xml]$_.ToXml() if($event) {$IPString = $event.Event.EventData.IPString } $IPString }

    1 октября 2019 г. 16:34
    Модератор
  • PS? в качестве альтернативы, может есть способ как автоматически блокировать IP адреса например на microtik? для микротика я честно не представляю как отличить атакующий IP от рабочего, но может кто подскажет

    Звучит конечно дико, но можно попытать счастье позвонив местное подразделение ФСБ и поинтересоваться за СОПКу

    http://www.tadviser.ru/index.php/Статья:Государственная_система_обнаружения,_предупреждения_и_ликвидации_последствий_компьютерных_атак_(ГосСОПКА)#.C2.AB.D0.98.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B7.D0.B0.D1.89.D0.B8.D1.82.D0.B0.C2.BB_.D0.BF.D0.BE.D0.BB.D1.83.D1.87.D0.B8.D0.BB.D0.B0_.D0.BF.D1.80.D0.B0.D0.B2.D0.BE_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D0.BD.D1.8F.D1.82.D1.8C_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B8_.D1.86.D0.B5.D0.BD.D1.82.D1.80.D0.B0_.D0.93.D0.BE.D1.81.D0.A1.D0.9E.D0.9F.D0.9A.D0.90_.D0.B4.D0.BB.D1.8F_.D0.B3.D0.BE.D1.81.D0.BE.D1.80.D0.B3.D0.B0.D0.BD.D0.BE.D0.B2.2C_.D1.8E.D1.80.D0.BB.D0.B8.D1.86_.D0.B8_.D0.98.D0.9F_.D0.A0.D0.BE.D1.81.D1.81.D0.B8.D0.B8

    если что-то покупать, то наверное вот это:

    https://www.lektorium.tv/sites/lektorium.tv/files/additional_files/1331667948_13623_29_02_2012_firewall_sspt-2_funct_novopashenniy.pdf

    (сспт-2)

    Точно не скажу куда нажать, но такую простую атаку должен роспознать и пресечь, если будет в режиме автомтическом стоять. Лучше уточнить у производителя.


    1 октября 2019 г. 19:58
  • Можно ещё рассмотреть варианты:

    1. Для чего подключаются via RDP? Если используются какие-либо внутренние web-приложения, то их можно будет опубликовать via ADFS/WAP с преаутентификацией, и в этом случае при подборе УЗ не будет блокироваться, а все попытки подбора вы сможете найти в логах ADFS.

    2. Для подключений RDP настроить шлюз, и разрешить подключения только с определенных адресов (вероятно это адреса домашних провайдеров юзеров), все остальные адреса - запретить.

    3. Использовать другие средства для доступа снаружи к внутренним ресурсам компании, например Azure Application Proxy или VPN с 2-х факторной аутентификацией.


    2 октября 2019 г. 6:00
  • С учетом того что приходится обслуживать несколько организаций в городе как представителю ИТ аутсорсинговой компании, естественно там где это возможно мы используем те методы которые максимально безопасны, но организаций много и техника и ПО у них разные, проблема наблюдается у разных клиентов, именно по этому пытаемся сделать нечто универсальное, более того для старых серверов 2003/2008 адреса просто вносятся вручную по данным полученным в другом месте, пытаемся сделать эдакое местячковое решение со списком адресов которое необходимо предварительно выявлять и блокировать для всех клиентов потенциально подверженным атакам, не все системы имеют возможность использовать современные методы аутентификации, где из за бюджета, где из за особенности системы, по этому есть задумка использовать нечто универсальное, будут системы которые выявляют атакующие адреса, а будут системы которые используя данный список из облака например, будут блокировать эти адреса, уж firewall есть в любой системе. Именно по этому нужен механизм выявления атакующих IP адресов, а уж как потом этот список будет обрабатываться на конечной точке, и вообще будет ли он нужен, будем решать индивидуально...

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

    Спасибо за варианты! мы используем стараемся использовать разные приемлемые варианты в защите систем, но не всегда мы можем влиять на смену ПО и/или оборудование наших клиентов, но их все равно так или иначе надо защищать.

    2 октября 2019 г. 6:12
  • Задайте вопрос своим клиентам - что дороже: данные или роутер с поддержкой VPN?
    2 октября 2019 г. 6:21
    Модератор
  • знаю одних оутсорсеров, которые активно пользуют платный тимвьюер, по-моему лицензии у них куплены каким-то пакетом, а для пользователей цена включена в стоимость обслуживания. не буду фантазировать, т.к. давно с ними уже не общался. а если уж защищать по настоящему, то это немного другая история со спец оборудованием и другие деньги. 
    2 октября 2019 г. 7:11