Configuring Linux
Information Security
System administration
Nginx
*nix
Comments 71
+10
Спасибо за статью. Очень интересно было. Только не было раскрыто — как получили root доступ?
0
Ну, если говорят что
почва для взлома была вполне плодородной

очевидно, устаревший софт какой-то торчал. Типа того, что какой-нибудь непатченный вордпресс/DLE/Drupal/Joomla, или дырявый плагин в нем, где можно получить локальный шелл, а потом повысить привилегии через какие-нибудь иные сплоиты.
+2

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


взлом не мог коснуться кода сайта и баз данных.
0
тут может я не очень понимаю, что значит «взлом не мог коснуться кода сайта».
ведь и не трогая код можно добавить какой-нибудь аттач kartinka.jpg.php в форму комментария, и потом выполнить его через /uploads/kartinka.jpg.php
(если конечно там настолько странный софт стоит и права на папки аналогично странные)
+4

В статье подразумевается, что взломан был фронтенд-сервер. Автор пишет также, что доступа с бэкенда к фронтенду не было — даже если бы залились на бэкенд через уязвимое веб-приложение и подняли там привилегии, это не могло бы объяснить, как на фронтенде оказался пересобранный бинарник.

-2

Вполне можно подменить то, что клиент заливает. Админ. Мы ж MitM в обе стороны, причем доверенный посредник.

+4
Надо было им хитрее поступить, скомпилировать такую же версию, а вместо скрытия всего конфига, утаить только свою часть. Но интересно, как же рута получили. Вдруг дыра на сайте, и если даже дыра, бэкенд наверняка от обычного пользователя работает, то есть ещё и права подняли.
0
судя по схеме сервер только с нжинксом, бекенда там нет. то есть вломились через ссш/другой сервис ну или сам нжинкс.
0
auditd хотя бы на систему накатите, проще искать будет изменения
-2

Разве strace не показывает, к каким файлам было обращение? А скомпилированный конфиг было бы видно через strings.

0

Символы ведь совсем необязательно хранить в ascii. Да хотя бы поксорить их могли.

0

Да, я понял уже. Это несложно сделать. Другое странно: запилить такой изящный хак с подменой выдачи, и лопухнуться с версией nginx? Модифицировать ведь все равно какие исходники.
И что хакеры не додумались strip нуть символы, странно как-то.

+4

Скорее всего делали не сами, а взяли готовое решение на специализированных сайтах. Либо купили один раз у кого-то давно и до сих пор используют. Персонально под каждого клиента код править — подороже будет услуга.

+5
Как-то сложно и узкоспециализировано для готового решения. Если уж есть доступ к прокси, и хочется вмешиваться в отдаваемый контент, можно и не заморачиваться в скрытие рабочего конфига. Закодировать замену некоторых символов по некоторым условиям можно и прямо внутри кода nginx. Также (если тут действительно конкуренты замешаны) странно, что данные из формы заказа пилы не дублируются, например, в telegram-контакт конкурента.
+3
очевидно, конфиг был модифицирован в коде nginx, а не получен из файлов
0
Вопрос. Почему Вы не видели этих зловредных включений, когда просматривали конфиги через cat?
Я припоминаю баг в bash-e нескольколетней давности, когда можно было скрыть содержимое скрипта при просмотре в консоли, но деталей не помню, если честно.
+27
вероятно эта часть была впилена в код нжинкса, хранить такой конфиг на диске было бы слишком заметно, + иначе не было бы особого смысла пересобирать
0
Хорошая нетривиальная статья. Я тоже «вполне себе UNIX-пользователь», поэтому читать было интересно)
0
Как сервер могли взломать? Это nginx решето или что-то другое?
+2
nginx — достаточно безопасный и очень стабильный продукт. Да и серьезных багов в нем очень мало. Проблема в 9 случаев из 10 в Wordpress/Joomla/плагинах для них и т.д т.п.
Хакают через дырявые плагины, а потом заливают шелл и уже повышают привилегии.
+2
Я как-то совсем не уверен на 100%, бэкэнды не затронуты, ну стоит оно на другом сервере, но вот по последней ссылке в статье, там есть каменты как минимум, значит есть динамика которая смотрит наружу, соотв возможно злоумышленники сломали бэк и уже с него пролезали на фронт. Как-то организована серая адресация между хостами, значит уже не только http/https их связывает, есть vpn либо это все на одном гипервизоре. Много недосказанного в статье, хочется подробностей )
+1
Позволю себе высказать свое мнение об ситуации. Полностью поддерживаю Ваши слова. Только вот, как сказали ниже, бекенд сайта был на другом хосте. Из-за этого мне история кажется странной. Как чтиво — очень понравилось. Но если на балансере торчали наружу только «обновленные» nginx и ssh, то гораздо целесообразнее было бы ломать именно сайт (поймать момент когда не вовремя обновят какие то плагины или библиотеки, таких мест на веб-сайтах обычно много), а это дало бы доступ до бекенда. И если правда история реальна, то информация о том, каким образом сломали именно фронтенд, мне кажется очень полезной.
0
В данном случае php обрабатывался на других двух серваках-бэкендах. Так что хакнули не через php. Скорей уж через дырявый exim, или любой другой торчащий наружу сервис с известным CVE. А то и вовсе пароль сбрутили(видел такое не раз, грустное зрелище), если к серваку был доступ по SSH по паролю. Ни стоит юзать парольный доступ к сервакам по SSH. Как и старые версии сервисов.
0
Не верно. Видел случаи, когда и с настроенным fail2ban сервак брутили.

Подбирали пароли с помощью ботнета, с одного IP пробовали несколько паролей, затем его банил fail2ban на время, в это время шли попытки подбора с других IP, их банило, но со временем разбанивало предыдущие IP, и так по кругу. Когда времени у атакующих вагон и маленькая тележка, пароль у root не сложный, и пул вовлечённых в ботнет IP огромен — брут пароля это всего лишь вопрос времени.

Поэтому лучше пароль не юзать, если юзать то для отдельно созданного пользователя, не для root, брутить и пароль и логин уже куда сложнее. А по хорошему нужно использовать комплексный подход: ключи, разрешения в межсетевом экране для нужных IP и подсетей(или хотя-бы регионов) на подключение к ssh, а также port knoсking в случаях, когда нужен доступ к серваку с не доверенного IP или сетки…
0

В 99% случаев это все нафиг не нужно. Достаточно вообще отключить рутовый вход и входить под непривилегированным юзером, после чего делать su. Ботнет любого размера становится бесполезен, сбрутить пароль не зная логина становится невозможным, даже без fail2ban (но с ним всё же лучше).

0
Опять таки, всё это звучит верно, если не вдаваться в детали. А на практике очень часто если пользователь не root, то toor, admin, administrator или ещё что-то подобное(вроде admin777 и других таких же уродливых логинов). Видел китайские ботнеты, которые юзают словарь с наиболее популярными логинами, и довольно успешно находят нужный в не малом % случаев. Создаёте такого юзера — создавайте с абсолютно случайным именем(закончилась фантазия, так pwgen в помощь), а иначе можно сильно обломаться однажды.

Если злоумышленникам удастся попасть на сервак от обычного юзера, будут уже с него пароль root брутить, а то и эксплоит заюзают(привет старым VPS-кам на давно EOL версиях Debina/Ubuntu/Centos). А иногда и без root можно столько беды натворить(майнеров позапускать, ddos-ить кого-то, IP сервака в блэклисты загнать запустив вредоноса), что мало не покажется.

Ну и fail2ban — это в нашем мире необходимость, если сервер светит в белую сеть.

И да, безопасности много не бывает. На практике, обычно даже у очень крутых контор безопасники за чем-то, да не углядели. А значит рано или поздно будет утечка данных, или их серваки просто красиво поимеют… Считайте что чёрные шляпы содействуют прогрессу :) Без них админы бы вообще расслабились, и толком ничего не настраивали для обеспечения мало-мальски приличного уровня безопасности.
+2
Интересно было бы узнать, у вашего друга этот сайт мониторился в Яндекс.Вебмастере или Google Search Console?
Просто такая абракадабра из букв могла бы рассматриваться как нарушение или даже критическое нарушение, могло бы отображаться какое-то предупреждение в этих инструментах…
+28
это СЕО статья для сайта о пилах, на который ссылка в самом конце — а вся история просто придумана ;)
+8
Может и не совсем придумана, но ссылка не просто так )) Сразу не обратил внимание на ссылки…
По крайней мере в Яндексе и Google по запросу «site:opilah.com» в сниппетах и кэше я не нашел страниц с подмененными буквами a и o. Могло, конечно, много времени пройти уже и кэш обновился…
0
А там не должно их быть в любом случае, исходя из
Определяются User-Agent'ы yandex/google:

Исключаются служебные страницы wordpress:

И для тех, кто попал под оба вышеперечисленных условия
...
+2
Вполне возможно, и да, это круто!
Стройматериалы, походу реально сверхконкурентная ниша,
если там делают такие взломы, или даже если для получения ссылки, пишутся такие статьи.
0
Более того, могут анализироваться цены с сайтов магазинов-конкурентов для того, чтобы вовремя выставить более привлекательную цену в собственном магазине. Об этом была статья на хабре.
UFO landed and left these words here
0
Я тоже очень склоняюсь к этому варианту. Ниже немного рассуждений по этому поводу. IMHO так сказать.
«Дружище я там слышал про Хабраэффект (а может и нет никакого друга?) — это же огромный траффик, некоторые из них задержатся после перехода — это плюсик к пользовательским факторам, тем более давай ссылку назовем не просто „Сайт-жертва“, а „О пилах, бензопилах и электропилах“ — как никак, а увесистая ссылочка с трастового домена с нужным анкором».

то комменты напишут непотребные и шлют абузы на хостинг и в РКН

Здесь еще интереснее. Открыл из выдачи гугла странички, что гугл предлагает из site:opilah.com — и ни в одной статье не было ни одного комментария. Совпадение? Не думаю.
Ну и интересно было бы посмотреть статистику из гугл аналитики/яндекс метрики, как сайт «падал» из ТОПа поисковиков — а то выглядит как красивый детективный опус о поисках мальчика, а был ли мальчик?
Но СЕО статья о пилах с такой задумкой на Хабре — это next level play
0
Вряд ли им это поможет. Поисковики уже давно научились определять контекст ссылки. Иными словами, размещать ссылку на рыболовный магазин на форуме о женском здоровье совершенно бесполезно :)
0
Помню, как лет 8 назад скачал кусок кода на C# с кириллическими о (не всеми, а 50/50 где-то) с какого-то сайта типа super-best-referaty.ru. Долго скомпилировать не мог, но все же нашлась проблема
Долго ломал голову, зачем это сделано
1) троллинг коллег-программистов, типа читать-читай, а писать код — свою голову имей)
2) достижение уникальности контента для сео
3) взят кусок кода из курсовой, которую готовили для прохождения системы антиплагиат
теперь еще один вариант появился)
+2
Это ещё цветочки, а могут всякие управляющие символы нафигачить.
Типа пробела нулевой ширины «a​b» — в кавычках 3 символа. Или типа Right to left mark (не хочу тут экспериментировать )). Была кстати, такая атака с подменой расширений файлов типа picturexe.gif примерно так (на самом деле файл был picturfig.exe)
Поисковик такие «слова» тоже наверное забракует. А визуально вообще незаметно будет.
+12
Белые IP бакендов известны только двум пользователям
и всем script kiddies, занимающимся их последовательным перебором
+1

Ну чисто технически — адреса могут быть и IPv6. Да и никто не запрешает настроить файрволл на бекендах так, чтобы они молчали в тряпочку для всех, кроме фронта.

-2
Я правильно понимаю, что перебор может вестись именно с фронта и тогда эта настройка файрволла не будет иметь смысла?
+3

С фронта не нужно ничего перебирать, он уже шлет трафик на бэки, достаточно глянуть нетстат или ss, или конфиги nginx.
У бэкендов вообще не должно быть публичных адресов, по-хорошему. Что, конечно, не избавляет от настройки фаерволла на них.

0
Что посоветовал другу — в безопасности? Ведь коварные дядьки/тётьки наврятли остановятся…
0
Гораздо интересней, как отыскать этих дяденек и отомстить/подать в суд…
Ведь явно конкуренты на местном рынке.
-2
В сфере стройматериалов практически везде конкуренция весьма живенькая. И методы борьбы с конкурентами торговцы стройматериалами, как и застройщики, частенько юзают на грани, и даже за гранью местного законодательства. Вот только поймать конкурента за руку не так просто: они же не с домашнего IP сервак ломали :) Да и ломал человек, которому скорей всего заплатили анонимно битками, и он даже не в курсе, кто его нанял. Не думаю, что топикстартер сможет довести подобное дело до суда.
+3
Как это про торт еще никто не написал? / sarcasm

Сильно жду продолжения с расследованием проникновения, нахождением исполнителя и заказчика и соответствующими последствиями.

+17
С учётом того, что ребята занимаются бензопилами, последствия могут быть достаточно болезненными.
0
Интересно, хоть и ссылка на бензопилы, но идея очень интересная. А есть какие-нибудь онлайн сервисы по определению наличия русских/латинских букв в тексте?
0
Погуглил «проверка на русские символы онлайн» — полно. На английские думаю тоже найдутся…
0
Могут еще вместо латинских и кириллических букв подсовывать вообще всякие Unicode-символы, визуально почти не отличимые от них.

Напрашивается, кстати, идея плагина для систем веб-мониторинга, проверяющая, что сайт отдает контент без подозрительных символов, да.
-1
Можно делать снапшоты страниц и сверять их, показывая дифф.
+4

Сайт конечно далеко не некоммерческий обзорник, а вполне коммерческая SEO помойка, но статья познавательная! :)

0
Познавательная статья. Особенно если вспомнить недавнюю историю со взломом баз РЖД. Вот что бывает, когда защита информации делается не профессионально и используется абы какое, часто устаревшее ПО.
0
Это старый прием. У меня такая же история была с модом Фотограф на Сталкер. Во многих скриптах буквы а, с, е вместо латинских были русские, и имена файлов тоже, часть латинскими и где то русская. Как будто кто то не хотел чтоб в эту игру можно было играть за рубежом. И так как у меня стоял чисто английский виндовс, и даже для DOS программ не было кодировки, скрипты есесьно не нашли файлы, а в логах появились надписи типа «can't find file l?rg?gun». И я по мере прохождения мода при каждом вылете заглядывал в лог, исправлял скрипт и переименовывал файл. Потому что было интересно чем кончится… )) Но как так можно перепутать — для меня загадка. Если специально — это не иначе как какой то терроризм, и если бы не вопросики в логах, я бы не понял в чем проблема.
-2
Если так заменены буквы, то запросы на страницы от описанных агентов должны получить код 404. И их количество в access.log должно увеличиться.
Вы меня навели на мысль, на сайтах в имеющейся статистике логов акцентировать внимание на этом факте.
0
Не, здесь русские буквы заменяются на английские, а они не участвуют в самой разметке, так что с чего бы 404 выдавать?
0
Спасибо. Уже понял. Подменяет всё содержимое, не только заголовки.
+1
Чтобы вовремя найти такое надо регулярно загружать страницу из сервера c нужным userAgent и находить на странице ожидаемый текст — но это же автоматическое тестирование, а на него почему-то большинство забивает.
0
Что-то подобное было у моей бурной молодости, когда я работал «опером» в IT отделе.
Был у нас доступ к безе Госкомстата — реестр зарегистрированных фирм на территории РФ. Как-то подходят ко мне и говорят: «Найди данные на фирму N». Я ищу и ничего не нахожу. Спрашиваю: «Фирма липовая?» — «Нет» — отвечают — «Точно фирма должна быть». Потратил дня два, пока не нашел по подстроке (часть названия выдавала слишком большой объем данных). Начал разбираться, почему не находил по полному названию, и выяснил, что в названии фирмы русская буква 'а', была заменена на английскую 'а'.
Была ли это ошибка оператора Госкомстата или ??? Лихие 90-е.
-4
> Белые IP бакендов известны только двум пользователям, которым Михаил всецело доверяет.
Nat — это не безопасность; как и «секретный» белый IP. Как занавеску вместо двери поставить.
В криптографии принцип Керкгоффса есть на эту тему.
Only those users with full accounts are able to leave comments., please.