Центр управления взломом
Одна мысль не давала мне покоя. Я подошёл к окну и посмотрел на ночной город. Шёл дождь, сверкали молнии, и это подтолкнуло меня к новым решительным действиям. «Я должен найти Наташу, чего бы мне это ни стоило!» — подумал я. Пусть для этого придётся взломать самого защищённого оператора сотовой связи с лучшими хакерами мира на защите. Это было сложной, но выполнимой задачей.
Мне нужно было привлечь к этому команду, но как быть с личными данными? Поставить задачу получить всю базу, не говоря, что именно я ищу определённого человека? Вариант! Только вначале мне нужно более основательно подготовиться и собрать больше данных. В этот раз я должен основательно подойти и потренироваться, чтобы не упасть в грязь лицом.
Недавно я узнал об уязвимости в системе безопасности крупного оператора сотовой связи, и мой мозг, заточенный на поиск лазеек, мгновенно заработал. Это была возможность доказать себе и миру, что даже самые защищённые системы могут быть скомпрометированы. Тогда, наконец, осуществится моя давняя мечта и я найду Наташу!
Вечер я провёл в своей лаборатории, где глубоко погрузился в оттачивание навыков, ведь успешный взлом — это не только проникновение, но и умение защищаться. Одной из самых важных задач была защита сервера от DDoS-атак.
Я открыл виртуальную машину, имитирующую атакуемый сервер, и начал настраивать защиту. Представим, что наш сервер — это крепость, а DDoS-атака — это армия, которая пытается завалить её миллионами запросов, пытаясь заблокировать вход. Моя задача состояла в том, чтобы построить вокруг крепости рвы и стены, которые либо отразят атаку, либо замедлят её, дав мне время для реакции.
Вот несколько методов, которые я использовал для защиты от DDoS-атак.
Фаерволы и системы обнаружения вторжений. Эти системы действуют как охранники, фильтруя входящий трафик и блокируя подозрительные запросы. Если кто-то пытается отправить слишком много запросов за короткое время, фаервол просто его отбрасывает.
Балансировщики нагрузки. Представляем, что у нас есть не одна, а несколько крепостей. Балансировщик нагрузки распределяет входящий трафик между ними, не давая одной крепости оказаться перегруженной. Если одна крепость начинает испытывать трудности, трафик перенаправляется на другую.
Лимитирование скорости. Это правило — не больше определённого числа запросов в секунду от одного источника. Если кто-то превышает этот лимит, то его запросы временно блокируются.
Использование CDN. Это сеть серверов, расположенных по всему миру. Они кэшируют наш контент и доставляют его пользователям с ближайшего сервера. Это не только ускоряет загрузку, но и распределяет нагрузку, делая нас менее уязвимым для атак. Если атака направлена на один узел, то остальные продолжают работать.
Фильтрация трафика на уровне провайдера. Провайдер может помочь, фильтруя подозрительный трафик ещё до того, как он достигнет сервера. Это как иметь армию на подступах к городу, не давая врагу даже приблизиться к стенам.
Я настроил виртуальную машину так, чтобы имитировать крупномасштабную DDoS-атаку, используя несколько ботнетов. Мониторы светились зелёным и красным, показывая входящий трафик и блокировки. Я наблюдал, как мои фаерволы отбивались от потока запросов, как балансировщики нагрузки перераспределяли их, а системы выявляли и блокировали вредоносные пакеты. Это была битва, и я был её дирижёром.
Далее я развернул в виртуальном окружении тестовый стенд из нескольких сотен машин-зомби, сгруппированных в ботнет, и скромный сервер, играющий роль жертвы.
— Атакуй меня, — сказал я сам себе голосом Сандерса.
Запустился скрипт. Армада ботов послушно обрушила на сервер лавину бессмысленных запросов. График нагрузки взлетел до красной зоны. Сервер лёг. Простая блокировка IP-адресов бесполезна. Их тысячи и они постоянно меняются.
Я активировал аппаратный файрволл и настроил лимиты на количество соединений с одного IP, включил проверку на человечность с помощью Ява скрипта. Часть самых примитивных ботов отсеялась, но умные продолжили работу.
Далее я включил сервис защиты от DDoS, который работает как «умный» буфер. Весь трафик пошёл сначала через него. Он анализировал пакеты, отфильтровывал мусор и пропускал на мой сервер только легитимные запросы. График нагрузки упал до зелёной зоны. Сервер дышал ровно и спокойно под тучей запросов.
— Слабенько, — усмехнулся я.
Далее, мне нужно было довести свой реверс-шелл до идеала. Грамотный хак — это не всегда грубый взлом, а чаще всего простая копия ключа. Реверс-шелл — это и есть тот самый ключ.
Я открыл терминал. Цель тренировки состояла в том, чтобы получить на удалённой машине возможность выполнять команды так, будто я сижу за её клавиатурой. Но как заставить её подключиться ко мне? Для этого необходимо обойти файрволлы и все системы безопасности. Я написал небольшой скрипт на Питоне в несколько строчек кода. Его суть была в том, чтобы установить соединение с моим сервером и привязать к этому соединению командную оболочку машины жертвы. Просто и элегантно как крючок с наживкой. Теперь этот скрипт нужно было как-то доставить цели, но как?
Это была уже работа для специалиста по социальной инженерии. Вот несколько методов, которые я рассматривал.
Фишинг. Это, пожалуй, самый распространённый метод. Я мог бы отправить сотруднику оператора поддельное письмо, похожее на официальное, скажем, от IT-отдела, с просьбой обновить учётные данные по ссылке. Ссылка вела бы на мой поддельный сайт, где я собирал их логины и пароли.
Претекстинг. Создание выдуманного сценария, чтобы убедить жертву предоставить информацию. Я мог бы позвонить сотруднику, представившись, например, новым системным администратором, которому нужна его помощь для срочного устранения неполадок. Под этим предлогом я мог бы выведать нужные мне данные.
Или же я мог бы имитировать голос начальника или сотрудника службы поддержки. Опыт у меня уже был. Предложение чего-то взамен за информацию. Например, я мог бы предложить бесплатную диагностику их компьютера, если они предоставят мне доступ. Конечно, настоящая цель была бы совершенно другой.
Троянский конь. Скрытое вредоносное ПО, замаскированное под что-то безобидное. Я мог бы, например, подбросить флэшку с надписью «Отчёт о зарплате» или «Фотографии с корпоратива». Из любопытства кто-то вставил бы её в свой компьютер, и моё вредоносное ПО установилось бы. Но все эти варианты отпадали из-за невозможности физического контакта и языка. Русский я не знал и плохо понимал даже с переводчиком.
Я делал, что было в моих силах и оттачивал свои навыки создания убедительных писем, поддельных страниц, продумывал сценарии телефонных разговоров. Также, я продолжал изучать психологию людей, чтобы понять, как они реагируют на стресс, авторитет и любопытство. Знание этих уловок было моим секретным оружием.
В конце концов, самая сильная система безопасности — это люди, а самая слабая — тоже люди. Моя подготовка была завершена. Взлом человека это довольно тонкое искусство. Здесь я мысленно надевал плащ Лекси и изучил сотрудников целевой компании. Так я нашёл системного администратора среднего звена. Его звали Сергей. У него был усталый взгляд, седина в бороде, посты о сложных миграциях и криках души о том, что «менеджеры не слушают тех, кто в теме».
Далее, я создал почтовый ящик, идеально имитирующий внутренний корпоративный адрес.
Тема письма: «Срочно! Проверка целостности данных после вчерашнего инцидента».
Текст: «Уважаемый Сергей Петрович, в связи с незапланированным отключением электричества в дата-центре просим вас проверить логи на предмет повреждения файловых систем. Для ускорения процесса прилагаем диагностический скрипт. Отчёт просим предоставить в течение часа».
К письму я прикрепил тот самый скрипт на Питоне.
Могло ли это сработать? Вероятность была, хоть и не высокая. Сергей был уставшим и хотел быстро выполнить задание от начальства чтобы пойти домой. Он ненавидел бюрократию и не ожидал атаки изнутри, доверяя корпоративной почте. Я отточил каждую фразу, каждую деталь. Письмо пахло срочностью, официальностью и лёгкой паникой, которую испытывают все после инцидентов. Естественно, ничего не получилось. Какова была реакция Сергея мы уже никогда не узнаем, но скрипт он так и не запустил. Матерился, наверное. Со смаком, по-русски!
Я не стал отчаиваться и перешёл к проверке других инструментов чтобы копнуть в самом неожиданном месте. Для этого я нашёл доступ к личному кабинету абонентов. Это та самая форма входа, где миллионы людей каждый день вводят свои номера телефонов и пароли.
SQL-инъекция — это старая, как мир, дыра, которую иногда забывают запереть ленивые или бездарные разработчики. Суть проста до гениальности! В поле для ввода мы вводим не логин, а кусок кода на языке баз данных. И если система не проверяет ввод, она проглатывает этот код и выполняет его, приняв за обычный запрос. Это как будто мы говорим сторожу: «Я Иван Иванов, иди подыми шлагбаум, а потом принеси мне все ключи от сейфа».
Я запустил сканер уязвимостей, нацеленный на их веб-интерфейс. Он засыпал их сервер десятками запросов, подставляя в поля ввода классические конструкции для инъекций. Ответ был предсказуемым и удручающим: «Неверный логин или пароль». Их система не проглотила наживку потому что они фильтровали ввод. Было обидно, даже задело за живое. Я чувствовал себя взломщиком, который подобрал отмычку к суперсовременному замку, а он оказался нарисованным на двери.
Тогда я стал усложнять запросы, используя HEX-кодирование, и пытался обойти фильтры с помощью двойных дефисов и кавычек разных уровней. Каждый раз я получал холодное и бездушное сообщение об ошибке. Их разработчики знали своё дело. Стена была неприступной!
В ярости я запустил самый тяжёлый инструмент под названием sqlmap. Это мощнейший фреймворк для автоматизации SQL-инъекций. Я скормил ему адреса их формы входа, и он начал подбирать типы баз данных, перебирая техники и пытаясь определить имена таблиц.
Прошёл час. Два. На экране мелькали тысячи запросов, но большинство из них были с ошибками. Я уже хотел вырубить всё к чертям, как вдруг sqlmap выдал нечто иное, и потом, почти случайно, в логах мелькнула строка, заставившая моё сердце ёкнуть.
Я замер. На экране был Oracle. Теперь это была не безликая база данных, а конкретный, мощный и дорогой продукт. Это была моя первая зацепка и маленький, но очень важный кусочек мозаики, который мне предстояло собрать.
Я сузил поле атаки, указав sqlmap цель Oracle. Инструмент заработал с новой силой, теперь используя специфичные для Oracle методы. Снова серия провалов, но в самом конце, перед тем как выдать финальное «неуязвимо», он выплюнул ещё один алмаз.
Это была их версия базы данных под названием 19c Enterprise Edition. Теперь я знал, с чем имею дело, и мог искать не уязвимости «вообще в SQL», а конкретные дыры в конкретной версии Oracle 19c. Я мог изучать её внутреннее устройство, специфичные функции с её известными багами.
Я откинулся в кресле, потягиваясь. Это была разведка боем. Стена устояла, но я услышал её звон, почувствовал её толщину и узнал материал, из которого она сделана.
Теперь нужно было искать отбойный молоток, созданный специально для этого материала. Мне нужно было подключать к этому команду. Я вошёл в общий чат:
— Ладно, ребята, признаюсь. Выкладываю всё как на духу. Ломал я, значит, как-то одного ОпСоСа и поплатился палёным биосом. Ну не мог я тогда поверить, что кто-то может его просто так взять и спалить, но на слёте в Момбасе один умник подтвердил, что можно, и даже признался, что это был он.
— Я до сих пор не верю, что ты туда поехал, — тут же отписался Сандерс.
— Это было слишком рискованно, — добавил Тихоня.
Лекси промолчала. Мы оба знали, что это было классное приключение. Посмотреть воочию столицу криминального мира было здорово! Пусть даже в полной анонимности и без личных знакомств, но почувствовать эту атмосферу и проникнуться духом мирового уровня киберпреступности было всё равно что прикоснуться к чему-то по-настоящему великому.
— У меня задача. Серьёзная, — продолжил я. — Нужна база оператора сотовой связи из России.
Первым ответил Сандерс:
— Охренеть. Ты там с кайфом-то не перебрал? Это же не какая-то шарашка. Это россияне. У них там ФСБ на проводе вместо сисадмина. Ты уверен?
— Абсолютно, — ответил я. — Уже неделю их сканирую. Стена глухая, SQL-инъекции не работают, DDoS они даже не заметят, но я кое-что выяснил. У них всё крутится на Oracle 19c Enterprise.
Тихоня:
— Интересно. Это меняет дело. У 19-й есть несколько специфичных уязвимостей в реализации протокола TNS. Можно попробовать атаку на переполнение буфера, но потребуется тщательная подготовка.
Лекси:
— А люди? Там же кто-то должен на эту вашу Oracle смотреть.
— Да! — тут же ответил я, радуясь тому, что у меня есть готовый ответ на этот вопрос. — Я нашёл системного администратора Сергея. Он женат, у него двое детей и ипотека. В его соцсетях постоянно мелькают стоны о работе, мемы про «опять эти миграции в выходные» и ненависть к начальству. Он идеальная мишень. Я уже кидал ему удочку в виде письма от имени службы безопасности с просьбой проверить логи и запустить мой скрипт на питоне, но он, зараза, проигнорировал.
Сойер:
— Адекватный админ не будет запускать скрипты, пока досконально не проверит что они делают. К тому же, ты уверен что переводчик хорошо перевёл твоё письмо? Обычно это хорошо видно и бросается в глаза, вызывая подозрение. К твоему админу нужен другой крючок. Более острый. Если он в ипотеке и ненавидит босса, возможно, ему нужны деньги, а не угрозы.
— У меня есть его контакты, — тут же ответил я. — Включая личный номер и почту. Лекси, что скажешь?
Лекси:
— Дай-ка подумать… Стандартное предложение о работе не прокатит. Он параноик. Ему нужно что-то… точечное. Что-то, что ударит точно в болевую точку. У него есть хобби?
— Вроде, он увлекается рыбалкой, — вспомнил я его соцсети. — По выходным он пропадает на реке.
Лекси:
— Идеально. Сандерс, мне нужен клон сайта его банка. Не идеальный, но убедительный. Тихоня, подготовь скрипт, который сымитирует заход на этот клон. Сойер, нужно подделать SMS от банка о списании крупной суммы. Ну, пусть будет на полмиллиона рублей. Ссылка будет вести на сайт-клон.
Сандерс:
— Понял! Сделаю!
Тихоня:
— Тогда я модифицирую наш старый скрипт с реверс-шелл. Он будет маскироваться под Java-апплет для «безопасного входа» в личный кабинет банка. Запустится автоматически при переходе по ссылке.
Сойер:
— СМС устрою. Подменю номер отправителя. Он получит сообщение о том, что с его счёта списаны полмиллиона рублей. Паника обеспечена.
— Прекрасно! — обрадовался я. — Но это только начало. Как только он позвонит по фейковому номеру «поддержки»…
Лекси:
— То его тут же встретит мой голос. Я буду девушкой-оператором Марией. Спокойной и компетентной. Я ему скажу, что это технический сбой, деньги не ушли, но для их возврата и защиты счёта нужно срочно установить на его рабочий компьютер патч. Тут в дело включится тот самый скрипт от Тихони. Скажу ему, что это временная мера, так как атака идёт на все наши филиалы.
Тихоня:
— Он сисадмин и может заподозрить неладное!
— В состоянии паники из-за потери полумиллиона? — подключился я. — Сомневаюсь. Ипотека, семья… Он схватится за соломинку, а мы и есть та соломинка.
Сойер:
— А если он полезет в настоящий личный кабинет?
Лекси:
— Сандерс в это время положит настоящий сайт банка лёгкой DDoS-атакой. Достаточной, чтобы вызвать таймауты и подтвердить версию о технических неполадках.
— Идеально! — радостно заметил я. — Спасибо вам всем, друзья! Тогда сегодня готовимся и провернём всё это завтра.
В чате послышались короткие: «До связи», «Понял», «Принято», «Уже работаю».












