Привет, Хабровчане!
Решил написать небольшую заметку о моем личном опыте взаимодействия с багбаунти программой Минцифры РФ. На самом деле у меня наберется много интересных историй так или иначе связанных с багбаунти, но некоторые из них являются особо примечательными. Об одной из них и пойдет речь в данной статье.
Для начала немного расскажу о себе. Опыт в ИБ у меня обширный и разнообразный. В данной сфере я уже чуть более 13 лет. Поработал на многих участках кибербеза, начиная от так называемого «папирсека» (специалист, отвечающий за подготовку всех необходимых документов по ИБ) до application security инженера. Работал и в органах государственной власти, и в компаниях с государственным участием и в чистой коммерции. В общем небольшое представление об ИБ имею.

И вот, буквально пару лет назад, занесла меня нелегкая на тропу этих ваших багбаунтей. Сначала ничего не было понятно, но пот��хоньку втянулся.
Как я нашел уязвимость
На хабре очень много классных статей, с описанием по-настоящему крутых, технически сложных уязвимостей. Например вот эта. У начинающего багхантера, читающего подобные статьи, может сложиться впечатление, что найти критическую уязвимость, это что-то вроде полета в космос - настолько все сложно и непонятно. На самом деле, очень многие критические уязвимости могут оказаться совершенно простыми как в поиске, так и в эксплуации. Найденная мною уязвимость, а если быть точнее мисконфигурация, живой тому пример. Собственно к уязвимости.
В один из дней сидел я и прокрастинировал за ноутбуком. Дабы немного развеять скуку решил я в очередной раз поискать уязвимости в программе Минцифры РФ. В этой программе достаточно обширный скоуп, представленный различными государственными информационными системами, такими как Госуслуги, ЕСИА (Единая система идентификации и аутентификации) и т.д. Одной из особенностей данной программы является то, что искать здесь можно не только по FQDN, но и по диапазонам IP адресов.
Ковырять веб было дико лень, хотелось, что называется, по-быстрому сорвать низковисящих фруктов. Итак, берем в качестве инструментов: терминал, nmap и telnet. Да, да, этого нам будет вполне достаточно. Никаких секретных эксплоитов АНБ в этот раз не понадобится.
Из правил программы берем диапазон IP адресов для исследования. Далее запускаем nmap с требуемыми параметрами nmap -sV 192.168.1.0/24 и идем наливать себе чай/кофе, пока наша утилита перебирает айпишник за ай��ишником, порт за портом.
Итак, nmap отработал. В выводе я увидел несколько хостов и информацию об их портах. На первый взгляд ничего необычного: 21, 80, 443, 445. Но на одном из хостов меня заинтересовал открытый порт 2067. Nmap определил данный порт как Cisco Management Port. С цисками у меня особого опыта взаимодействия не было, поэтому единственное, что мне пришло в голову - это тупо стукнуть телнетом в этот порт. Вводим telnet 192.168.1.1 2067, терминал на секунду подвисает и... бах - я лицезрею следующую картину:

Наспех загуглил еще пару команд. Проверяем - все работает.

На этом моменте я решил остановиться. На всякий случай сделал запись экрана с воспроизведением уявзимости и принялся за отчет.
Триаж
Довольный собой, быстренько описал все детали в отчете. На тот момент я даже представить не мог, как можно зафакапить триаж (для тех кто не знает, триаж - это процесс воспроизведения и оценки уязвимости со стороны заказчика и/или площадки) такого очевидного отчета.
Итак, отчет отправлен. Пошло мучительное ожидание. Хотя в целом я и привык по 2-3 месяца ждать триажа от представителей Минцифры, но в душе у меня теплилась надежда, что такую уязвимость рассмотрят чуть побыстрее. Все таки сервис является государственной информационной системой, и торчать голым задом в Интернет еще никому не шло на пользу.
Триаж данной уязвимости состоял из двух этапов. Сперва отчет триажит первая линия - это работники самой багбаунти площадки, на которой размещена программа поиска уязвимостей. После успешного первичного триажа, к рассмотрению отчета приступают триажеры Минцифры. Проходит 4 дня, я захожу в отчет, а там, как говорится, "даже конь не валялся". Ну т.е. вообще ноль, ни ответа, ни привета. Я немного негодую, так как не понимаю в чем сложность скопировать и вставить в терминал одну команду и нажать Enter. На всякий случай сам проделываю эту процедуру, ну вдруг реально где-то есть подвох, и бах, telnet соединение ��е устанавливается. Еще раз перепроверяю ip и порт. Нет, нет, все правильно - ошибки быть не может. Запуск telnet - снова connection timeout. В голову стали закрадываться нехорошие мысли. Натравливаю nmap на этот хост - мои худшие опасения подтвердились. Порт закрыли.

Пишу в саппорт площадки и объясняю ситуацию. После этого триажеры площадки пробуют воспроизвести уязвимость и у них она, естественно, не воспроизводится. Почему 4 дня не могли потриажить наилегчайшую уязвимость? Пусть этот вопрос останется на совести площадки. Казалось бы все, финита ля комедия. Вот так просто можно закрыть уязвимость после получения отчета, а потом сказать что никакой уязвимости и не было, а багхантеру все это приснилось в пьяном угаре. Можно так сделать? Можно. Сможет ли добиться багхантер справедливости? Не сможет. Багхантер — самая незащищенная сторона в этих отношениях. Но об этом позже.
Нет, рано еще сдаваться. У меня же есть видео. В наш век ИИ-технологий, доказательство достаточно сомнительное, но тем не менее. Вытаскиваю свой последний козырь и прикрепляю в комментарии к отчету. Ваш ход, Минцифры.
Проходит жалких 3 недели ожидания и Минцифры наконец снизошло до комментария. Для максимальной объективности выкладываю цитату целиком, корректируя лишь название сервиса.
Добрый день, <redacted>! К сожалению, нам не удается воспроизвести поведение, продемонстрированное Вами в данном отчете. Смеем Вас заверить, что никаких изменений, до момента изучения Вашей активности (а именно 24.10.2024) с нашей стороны в отношении данного Маршрутизатора не было произведено. Не могли бы вы предоставить информацию о том, что предшествовало данному поведению? Возможно вы использовали какую-либо известную уязвимость, эксплойт применимый к данным версиям Cisco? Дополнительно просим вас сообщить ваш текущий внешний IP-адрес, для возможности поиска вашего подключения в логах устройства. Согласно представленным материалам, вам посчастливилось воспользоваться багом платформы, которая позволила получить доступ не к самому роутеру, а модулю расширения. К сожалению, на текущий момент, мы не можем оценить представленный вами отчет, так как он находится вне скоупа программы: "<redacted>". Однако мы ожидаем от вас дополнительную информацию, для возможности углубленного изучения и возможного пересмотра критичности. С уважением, Команда безопасности Минцифры.
Вот такие чудеса. Измений никаких не было, а порт закрылся. Наверное ветром захлопнуло. Верим? Я поверил. А еще, согласно приведенной цитате, мне просто повезло воспользоваться каким-то багом какой-то платформы. На месте Минцифры, я бы не удосуживал себя таким длинным сообщением, а просто бы прикрепил видео вроде этого.
Скрытый текст
На тот момент, я почему-то поверил, что чуваки действительно хотят разобраться. Накатал целую простыню в ответ, со всем деталями, ip-адресами, явками и паролями. Однако, как показало время, тот комментарий Минцифры был первым и последним в данном отчете. Уязвимость до сих пор, "технически", находится в процессе триажа. Отчет висит незакрытым больше года. Но, я думаю, про него просто забыли. После этой статьи, возможно, вспомнят и поставят статус "Не является уязвимостью".
Заключение
Как я уже писал выше, багхантер в России является абсолютно незащищенным. Ну т.е. багхантера можно просто тупо кинуть, вот прям взять и не заплатить за валидную уязвимость. Что он сделает? Пожалуется в суд? Договора нет никакого, ни с кем. Пожалуется площадке? Площадке зачастую выгоднее занять сторону вендора, потому что именно от вендора площадка и получает деньги. Ну отвалится один багхантер, на его место еще два придут. Никто этого не заметит. А вот если крупный вендор уйдет, это уже финансовые потери.
Однако это не значит, что багхантерам надо терпеть всю эту несправедливость. Да, у нас нет никаких рычагов воздействия, кроме бойкота обнаглевшего вендора. Наша сила в том, что они нуждаются в нас, не меньше, чем мы в них. У багхантеров сформировано пусть небольшое, но сильное комьюнити с прочными горизонтальными связями. Не бойтесь отстаивать свои права, не бойтесь вступать в спор с вендором или площадкой, не бойтесь предавать гласности факты откровенного кидалова со стороны вендоров. Багхантерам пора начать диктовать свои правила.
BONUS
Для тех кто дочитал до конца, бонус в виде ответа Минцифры, который я получил на свой запрос через Госуслуги. Без комментариев.
Скрытый текст

UPD. 1
Много комментов в духе "а могли бы посадить", "скажи спасибо, что не посадили" и т.д. Ну камон, почему меня должны сажать за это? Багбаунти - это когда заказчик сам просит найти у него уязвимости в обмен на денежное вознаграждение. Это как если бы вы оказали легальные услуги по договору, заказчик бы вас кинул и вы такие: "Фуф, черт с ней с оплатой, хорошо хоть не посадили".
Чему в следующий раз радоваться будем? Тому, что за просмотр ютуба всего 3 года дали, а могли бы расстрелять?