Jump to content
  • 1
JIABP

Не работает защита от брутфорса веб-интерфейса по HTTPS

Question

Giga 1010, 3.00.B.1.0-0.

Была подобная тема: Защита от брутфорса веб-интерфейса по протоколу HTTPS

Я ввёл 4 раза неверный пароль, лог отрапортовал что забанил меня, потом ввёл верные реквизиты - и авторизация прошла успешно

Скрытый текст

lockout_policy.PNG

 

@Le ecureuil 05.12.2018 писал писал в той же теме:

Цитата

Все вам уже сказали в этой теме.

В 2.11.A.6 была добавлена защита https для старой морды (читай digest / basic авторизации).

При работе с новым Web используется form-based авторизация. Вот для нее для http была сделана защита, для https - не успели. Да и это не настолько критично - боты не умеют нашу form-based auth, и при запросе "GET /" всегда отдается "200 OK", потому пока они ее научатся определять и пытаться подбирать пароль - мы доделаем и https.

В задачах есть, будет сделано.

 

А 31.05.2019 @enpa там же сообщил что:

Цитата

Начиная с версии 3.0 была добавлена поддержка 'lockout-policy' (защита от перебора паролей, брутфорса) для протокола HTTPS. Включено по умолчанию для SSL-сервера. Спасибо @Le ecureuil

Записи попыток подбора паролей в журнале - по аналогии с nginx-сервером (http).

Так же я попробовал дальше ломиться - 7 неверных попыток, на 8-ую я ввёл верные реквизиты и меня так же впустило в веб-интерфейс.

Скрытый текст

lock_pol.PNG.1ce067193ac00fa87c15f2a866973b35.PNG

Таким образом, сейчас, по факту, защита от перебора веб-интерфейса через HTTPS не работает.

При этом огромное спасибо за то, что теперь можно не выставлять веб-интерфейс роутера "наружу" - только это меня и останавливало использовать SSL VPN.

 

Edited by JIABP
  • Thanks 2

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

В итоге под пристальным взором нашли источник проблемы.

Порт действительно блокируется на вход, и сессии все уничтожаются - тут вопросов нет.

Однако web-сервер в таком случае не закрывает соединение, и пытается доотправить данные клиенту (или просто происходит TCP retransmit, что не суть важно).

При этом побочно создается новая _исходящая_ сессия к браузеру, через который он все-таки умудряется пролезать и продолжать работать - из-за HTTP Keepalive сессии у браузера тоже завершаются не мгновенно.

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

Всем спасибо за репорты, в следующих релизах будет исправлено.

 

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

  • Thanks 5
  • Upvote 1

Share this post


Link to post
Share on other sites
  • 0

В чём смысл перебирать пользователей, если "admin" приколочен гвоздями? Введите несколько раз неправильный пароль для admin'а и получите заслуженный бан.

 

Netfilter::Util::BfdManager: "Http": ban remote host 92.241.241.241 for 15 minutes.

 

Share this post


Link to post
Share on other sites
  • 0
37 минут назад, Александр Рыжов сказал:

получите заслуженный бан.

По логу да, бан получил, потом ввёл верный пароль и в веб-морду спокойно пустило.

Скрытый текст

lockpol01.PNG.9a6b7a09d60221ee9d7111c286763d6c.PNG

И у меня больше вопрос к логике работы: в моём понимании, любой перебор должен блокироваться. При этом полностью согласен, что перебирая admin1, admin2 и т.д. успеха особо не добьёшься, но всё равно знание о том, что такой бесполезный вид брутфорса имеет место быть немного напрягает. Это из серии, когда за отличной укреплённой железной дверью творится что-то опасное и вроде есть знание, что и бетон и дверь отличные, но всё равно как-то напрягает.

Edited by JIABP
  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
12 минуты назад, JIABP сказал:

По логу да, бан получил, потом ввёл верный пароль и в веб-морду спокойно пустило.

Почему-то меня не пустило. 15 минут пришлось гулять.

 

12 минуты назад, JIABP сказал:

При этом полностью согласен, что перебирая admin1, admin2 и т.д. успеха особо не добьёшься, но всё равно знание о том, что такой бесполезный вид брутфорса имеет место быть напрягает.

У пользователей admin1, admin2, admin3 был тег http?

Share this post


Link to post
Share on other sites
  • 0
8 минут назад, Александр Рыжов сказал:

Почему-то меня не пустило. 15 минут пришлось гулять.

Чуть позже запишу видео, благо с iPhone это относительно легко сделать.

8 минут назад, Александр Рыжов сказал:

У пользователей admin1, admin2, admin3 был тег http?

Таких пользователей в системе нет вообще. Выдуманные пользователи.

Share this post


Link to post
Share on other sites
  • 0

После срабатывания бана меняется поведение окна логона.

Меня больше это привлекло. В идеале так быть не должно.

Share this post


Link to post
Share on other sites
  • 0

Создал новое доменное имя, создал пользователя с правами на доступ к веб-конфигуратору и несколько раз неправильно вводил разные пароли к одной и той же учётной записи. Получил бан в журнале:
 

Скрытый текст

Июн 23 16:01:49 ndm Core::Scgi::Auth: authentication failed for user user99.
Июн 23 16:02:13 ndm Core::Syslog: last message repeated 3 times.
Июн 23 16:02:13 ndm Netfilter::Util::Conntrack: flushed 3 IPv4 connections for 195.206.107.220.
Июн 23 16:02:13 ndm Netfilter::Util::BfdManager: "Http": ban remote host 195.206.107.220 for 60 minutes.
Июн 23 16:02:19 ndm Core::Scgi::Auth: authentication failed for user user99.
Июн 23 16:02:27 ndm Core::Scgi::Auth: opened session I**************S for user user99.

 

После чего ввёл корректный пароль и успешно авторизовался.

Видео доступно по ссылке: https://youtu.be/mGryE5YM3y8

 

Edited by JIABP

Share this post


Link to post
Share on other sites
  • 0

В версии 3.1 Alpha 4 наблюдается тоже самое.

Share this post


Link to post
Share on other sites
  • 0
1 час назад, Le ecureuil сказал:

Это direct или через облако?

direct

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
В 23.06.2019 в 13:56, Александр Рыжов сказал:

Почему-то меня не пустило. 15 минут пришлось гулять.

Бан есть.

Но есть косяк веб интерфейса. Когда получен бан по ip. С этого ip зайти нельзя.

Но.. Если до этого была открыта веб страница с мордой кенетика можно перебирать пароль до посинения и пофиг на бан.

Как проверить. Заходим на ip кенетика. Открывается веб морда кенетика. Вводим пару раз неверный пароль и получаем в логах бан по ip. Но с этой оставшееся открытой странице можно и дальше перебирать пароли и даже зайти под своим паролем. Кенетик продолжает успешно общаться с этой страницей.

А вот если во время бана перезагрузить страницу или повторно попытаться зайти на веб морду кенетика. То страница не откроется так как ip в бане.

п.с еще мне не понятно почему логи такие калечные. И это еще преуменьшил их значение. Даже если указать в конфиге

ip http log aut

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

К примеру, у меня в старом роутере раз в день был заход с филиппинского ip и была однократная ежедневная попытка бота подобрать пароль. Я в логах это увидел и забанил этот ip.

В этом кенетике я так не сделаю. В логах ip его не засветится.

Share this post


Link to post
Share on other sites
  • 0

Вот приведу вам пример,  как такая защита работает на gpon терминале Huawei

При неверном вводе пароля страница перезагружается (самим браузером) и появляется надпись

1.jpg.d07a4d87604b6439a1ece284771c78c0.jpg

При трехкратном неверном вводе (страница каждый раз перезагружается принудительно)

Появляется подпись с обратным отсчетам времени. И поля ввода логина и пароля становятся не активными.

2.jpg.1424cc13d97e359e7a29496fd56f9198.jpg

Даже если зайти повторно с забаненного ip, получаем эту надпись с банном и отсчетам времени.

Share this post


Link to post
Share on other sites
  • 0
2 часа назад, Gim12 сказал:

Бан есть.

Но есть косяк веб интерфейса. Когда получен бан по ip. С этого ip зайти нельзя.

Но.. Если до этого была открыта веб страница с мордой кенетика можно перебирать пароль до посинения и пофиг на бан.

Как проверить. Заходим на ip кенетика. Открывается веб морда кенетика. Вводим пару раз неверный пароль и получаем в логах бан по ip. Но с этой оставшееся открытой странице можно и дальше перебирать пароли и даже зайти под своим паролем. Кенетик продолжает успешно общаться с этой страницей.

 А вот если во время бана перезагрузить страницу или повторно попытаться зайти на веб морду кенетика. То страница не откроется так как ip в бане.

 п.с еще мне не понятно почему логи такие калечные. И это еще преуменьшил их значение. Даже если указать в конфиге


ip http log aut

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

К примеру, у меня в старом роутере раз в день был заход с филиппинского ip и была однократная ежедневная попытка бота подобрать пароль. Я в логах это увидел и забанил этот ip.

В этом кенетике я так не сделаю. В логах ip его не засветится.

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

Проверял это неоднократно, и не вижу вашей ситуации.

Не могли бы вы прислать видео с захватом экрана + self-test после всех манипуляций, когда вы пробуете скажем 10 раз неправильный логин/пароль,  а вам роутер продолжает отвечать?

Это будет куда конструктивнее.

Share this post


Link to post
Share on other sites
  • 0
38 минут назад, Le ecureuil сказал:

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

Проверял это неоднократно, и не вижу вашей ситуации.

Не могли бы вы прислать видео с захватом экрана + self-test после всех манипуляций, когда вы пробуете скажем 10 раз неправильный логин/пароль,  а вам роутер продолжает отвечать?

Это будет куда конструктивнее.

 Не знаю какими браузерами вы пробовали, но у меня на мобилки стоит доподобная опера а в компе мозила и сессии никакие они не завершают.

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

Июн 22 09:13:30
ndm
Core::Scgi::Auth: authentication failed for user admin.
Июн 22 09:13:37
ndm
Core::Syslog: last message repeated 2 times.
Июн 22 09:13:37
ndm
Netfilter::Util::Conntrack: flushed 2 IPv4 connections for *.*.228.254.
Июн 22 09:13:37
ndm
Netfilter::Util::BfdManager: "Http": ban remote host *.*.228.254 for 60 minutes.
Июн 22 09:13:44
ndm
Core::Scgi::Auth: authentication failed for user admin.
Июн 22 09:13:59
ndm
Core::Syslog: last message repeated 2 times.
Июн 22 09:14:08
ndm
Core::Scgi::AuthPool: cleanup: 2 -> 1.
Июн 22 09:14:54
ndm
Core::Scgi::Auth: authentication failed for user admin.
Июн 22 09:15:03
ndm
Core::Scgi::AuthPool: cleanup: 2 -> 1.
Июн 22 09:15:19
ndm
Core::Scgi::Auth: authentication failed for user admin.
Июн 22 09:15:28
ndm
Core::Scgi::AuthPool: cleanup: 2 -> 1. 

Видите по логу я получил бан по ip. Но в открытой странице браузера продолжаю дальше подбирать пароль и кенетик отвечает. Хотя мой ip как бы забанен на 60 минут.

 

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, Gim12 сказал:

Хотя мой ip как бы забанен на 60 минут.

Подключение прямое или через облако?

Share this post


Link to post
Share on other sites
  • 0
9 минут назад, sergeyk сказал:

Подключение прямое или через облако? 

Не понял что имеется ввиду.

Заходил на свой белый ip и тестировал.

Если имеются ввиду настройки KeenDNS то там стоит прямой доступ. Хотя там без разницы что указать при белом ip, что облако что прямой доступ. Доступ вебморде все равно доступен становится по ip при установленной галке Разрешить доступ из Интернета

Edited by Gim12

Share this post


Link to post
Share on other sites
  • 0
4 минуты назад, Gim12 сказал:

Заходил на свой белый ip и тестировал.

Пробовали на 3.01.A.4.0-0?

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, sergeyk сказал:

Пробовали на 3.01.A.4.0-0? 

Нет. Пробовал на 3.0

А что стоит попробовать?

Share this post


Link to post
Share on other sites
  • 0
Только что, Gim12 сказал:

А что стоит попробовать?

Определенно.

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, Gim12 сказал:

Нет. Пробовал на 3.0

Если будет воспроизводиться, нужен self-test с 3.01.A.4.0-0, снятый в момент, когда попытки авторизации не блокируются, хотя должны.

Share this post


Link to post
Share on other sites
  • 0
26 минут назад, sergeyk сказал:

Определенно.

Где ее скачать. По команде

components list delta
components commit

У меня появился пункт отладочная версия. Но версию отладочную почему то предлагает 2.15.C.4.0-1

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, Gim12 сказал:

По команде

components list draft
components commit

 

Share this post


Link to post
Share on other sites
  • 0

K-II на релизе 2.15.C.4.0-1 с белым, клиент удаленный на FF 67.0.4, проба по доступу к роутеру : прямой а потом облако

Скрытый текст

На клиенте admin с левым паролем, более 5 раз, потом admin2/пароль пару раз, потом admin и нормальный пароль, прямлй доступ 

[I] Jun 26 13:00:28 ndm: Netfilter::Util::BfdManager: "Http": ban remote host Клиент_удаленный_хх.хх.хх.24 for 15 minutes.
...
[I] Jun 26 13:04:39 ndm: Dns::Manager: added static record for "хххххх.keenetic.хххх", address 78.47.125.180.
[I] Jun 26 13:04:39 ndm: Ndns::Client: get-update completed.
[I] Jun 26 13:04:40 ndm: Http::Manager: security level unchanged.
[I] Jun 26 13:04:40 ndm: Core::ConfigurationSaver: saving configuration...
[I] Jun 26 13:04:44 ndm: Core::ConfigurationSaver: configuration saved.
[I] Jun 26 13:05:57 ndm: Netfilter::Util::Conntrack: flushed 1 IPv6 connections for хххх::хххх:хххх:хххх:хххх].
Смена IP на удаленном клиенте и смена доступа серез - облако
[I] Jun 26 13:07:45 ndm: Netfilter::Util::Conntrack: flushed 9 IPv4 connections for Клиент_удаленный_хх.хх.хх.157.
[I] Jun 26 13:07:45 ndm: Netfilter::Util::BfdManager: "Http": ban remote host Клиент_удаленный_хх.хх.хх.157 for 15 minutes.


Запись - Conntrack - flushed - для 9 - IPv4
"Netfilter::Util::Conntrack: flushed 9 IPv4 connections for Клиент_удаленный_хх.хх.хх.157"

 

На облаке еще раз

После 5 раз ввода неверного пароля при верном имени FF вообще перестал опускать шторку "по неверному паролю" (проверка на 6раз  и 7 раз). Далее делаем исправление в FF верное имя и пароль и опять проба тут на 3 раз опустил шторку про "неверное" дальнейшее нажатие "войти" как говориться в ответ тишина.

Скрытый текст

[I] Jun 26 13:15:28 ndm: Netfilter::Util::BfdManager: "Http": unban remote host Клиент_удаленный_хх.хх.хх.24.
....
[I] Jun 26 13:22:45 ndm: Netfilter::Util::BfdManager: "Http": unban remote host Клиент_удаленный_хх.хх.хх.157.
...
[I] Jun 26 13:24:04 ndm: Netfilter::Util::Conntrack: flushed 7 IPv4 connections for Клиент_удаленный_хх.хх.хх.232
[I] Jun 26 13:24:04 ndm: Netfilter::Util::BfdManager: "Http": ban remote host Клиент_удаленный_хх.хх.хх.232 for 15 minutes.

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
6 минут назад, sergeyk сказал:

components list draft
components commit

 

Вопрос снимается. Нужно было оказывается сначала перейти на бету.

Счас затестим

Share this post


Link to post
Share on other sites
  • 0
2 часа назад, sergeyk сказал:

Пробовали на 3.01.A.4.0-0?

Попробовал. Девайс в подписи. Браузер FF 60.7.2 esr

Итак, работает это через пень колоду.

 
Июн 26 14:32:38
ndm
Core::Scgi::Auth: authentication failed for user admin.
Июн 26 14:32:58
ndm
Core::Syslog: last message repeated 3 times.
Июн 26 14:32:58
ndm
Netfilter::Util::Conntrack: flushed 1 IPv4 connections for *.15.77.
Июн 26 14:32:58
ndm
Netfilter::Util::BfdManager: "Http": ban remote host *.15.77 for 60 minutes.
Июн 26 14:33:04
ndm
Core::Scgi::Auth: authentication failed for user admin.
Июн 26 14:36:24
ndm
Core::Syslog: last message repeated 40 times.
Июн 26 14:36:38
ndm
Core::Scgi::AuthPool: cleanup: 1 -> 0.
Июн 26 14:36:54
ndm
Core::Scgi::Auth: authentication failed for user admin.
Июн 26 14:37:08
ndm
Core::Syslog: last message repeated 3 times.
Июн 26 14:37:19
ndm
Core::Scgi::AuthPool: cleanup: 1 -> 0.
Получается такая штука. Бан я получил в 14:33 Но до 14:37 продолжал подбирать пароль. Попыток таких по логу было 40 штук, а то и более. Вбивал пока не надоело. Полностью по вебу морды получил блок в 14:37 За это время попыток 100 мог бы набить легко.
 
 
 
  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
18 минут назад, Gim12 сказал:

Девайс в подписи.

Этого мало. Нужно видеть состояние системы в момент возникновения ошибки, которое есть в self-test.

Share this post


Link to post
Share on other sites
  • 0

Так self-test и видео-то будут? Я тоже могу много что утверждать, вас попросили предоставить документальные свидетельства бага.

Share this post


Link to post
Share on other sites
  • 0

@Le ecureuil я предоставлю сегодня ближе к вечеру. С айфона видео достаточно будет (см. выше аналогичное)? И, конечно же селф-тест снятый в процессе экспериментов.

  • Thanks 2

Share this post


Link to post
Share on other sites
  • 0
40 минут назад, Le ecureuil сказал:

Так self-test и видео-то будут? Я тоже могу много что утверждать, вас попросили предоставить документальные свидетельства бага. 

Записал. Кому предоставить?

  • Thanks 2

Share this post


Link to post
Share on other sites
  • 0

Повторил только в таком ракурсе на клиенте смартфоне

KN1010(PPPoE)--РТ---Интернет-----РТ(4G)смартфон
KN1010(PPPoE)--РТ---Интернет-----MTS(4G)смартфон

Проверка два раза, роутер имеет белый 111.111.230.253 но настроен на облако, доступ со сматра xxxxx.keenetic.pro

1. начало 15:59 на телефоне ввод имя admin пароль не правельный - ввод раз 15 получил

[I] Jun 26 15:58:47 ndm: Netfilter::Util::Conntrack: flushed 25 IPv4 connections for 111.111.230.253.
[I] Jun 26 15:58:47 ndm: Netfilter::Util::BfdManager: "Http": ban remote host 111.111.230.253 for 15 minutes.

Далее следом спустя минуту имя admin и пароль правильный вход в систему - ОК. Далее выход и вход опять с не правильным паролем, потом правильный пароль и заход в систему.

Общий лог и спустя 15мин от начала

Скрытый текст

Jun 26 15:58:47 ndm: Netfilter::Util::Conntrack: flushed 25 IPv4 connections for 111.111.230.253.
Jun 26 15:58:47 ndm: Netfilter::Util::BfdManager: "Http": ban remote host 111.111.230.253 for 15 minutes.

Jun 26 16:15:31 ndm: Netfilter::Util::BfdManager: "Http": unban remote host 111.111.230.253.

 

Chain INPUT (policy DROP 172 packets, 8534 bytes)
 pkts bytes target     prot opt in     out     source               destination         
...
  485 37518 _NDM_BFD_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
...

Chain _NDM_BFD_INPUT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  485 37518 _NDM_TELNET_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  485 37518 _NDM_HTTP_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  485 37518 _NDM_FTP_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  485 37518 _NDM_SSH_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
  485 37518 _NDM_PPTP_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain _NDM_HTTP_INPUT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 match-set _NDM_BFD_Http src return-nomatch ! update-counters ! update-subcounters
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 match-set _NDM_BFD_Http src return-nomatch ! update-counters ! update-subcounters


Chain CLOUD_UDP_SERVICE_NF_CHAIN_ (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  *      *       хх.хх.177.103       111.111.230.253      udp spt:4044 dpt:4043

2. Повтор с оператором МТС аналогичен результат

[I] Jun 26 16:21:12 ndm: Netfilter::Util::Conntrack: flushed 21 IPv4 connections for 111.111.230.253.
[I] Jun 26 16:21:12 ndm: Netfilter::Util::BfdManager: "Http": ban remote host 111.111.230.253 for 15 minutes.
...
[I] Jun 26 16:40:33 ndm: Netfilter::Util::BfdManager: "Http": unban remote host 111.111.230.253.

 

Edited by vasek00
  • Thanks 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...