Далее Роберт послал модифицированную версию приложения helpdesk на Интернет-сервер, заменив им оригинальную версию. Подобно тому, как некоторые люди любят привозить марки, открытки или спичечные коробки с видами тех мест, где они побывали, хакеры иногда хранят не только полученную добычу, но и тексты программ, которые они использовали в своей работе. У Роберта до сих пор хранится текст той программы в двоичном скомпилированном виде.
Поскольку он работал из дома (дело рискованное, если вы только сознательно не хотите попасться), то свою «новую и улучшенную» версию приложения helpdesk он загружал через целую цепь промежуточных прокси-серверов (это серверы, работающие посредниками между компьютером пользователя и компьютером, в который он стремится проникнуть). Если пользователь делает запрос о ресурсе с компьютера «А» , этот запрос направляется на прокси-сервер, который в свою очередь делает запрос и получает ответ от компьютера «А», а потом уже переправляет его клиенту.
Прокси-серверы обычно используются для доступа к ресурсам Интернета из-за межсетевого экрана. Роберт повысил степень своей безопасности, используя несколько прокси-серверов, расположенных в различных частях мира, чтобы снизить вероятность быть пойманным. Так называемые «открытые прокси-серверы» обычно используются для того, чтобы замаскировать место, откуда исходит кибератака.
При помощи модифицированной версии приложения helpdesk, загруженного на компьютер и запущенного, Роберт соединился с сайтом-мишенью, использующим Интернет-браузер. Когда перед ним появилась входная форма с запросом имени пользователя и пароля, он запустил атаку SQL injection, как и планировал. В нормальном режиме, после того как пользователь введет свои имя и пароль — скажем, «davids» и «zl8M296q» — приложение использует эти входные данные для того, чтобы сгенерировать такую SQL-команду:
select record from users where user = 'davids' and password = 'z18M296q'
Если поле пользователя и поле пароля будут соответствовать информации в базе данных, тогда пользователя пускают в систему. Таким образом, все должно работать в нормальном режиме. А вот как проходила атака Роберта SQL-injection: в разделе для имени пользователя он написал — " or where password like "%
Для пароля он ввел аналогичную строку
" or where password like "%
Приложение использует эти входы и генерирует такую SQL-ко-манду:
select record from users where user = " or where password like '%' and password = "or where password like '%'
Элемент строки or where password like % говорит SQL принять запись, если пароль что угодно ( " % " — это пустышка). Обнаружив, что пароль удовлетворяет этому дикому условию, приложение впускает Роберта, как вполне законного пользователя, как если бы он ввел данные о законной авторизации. Система впускает его и связывает с данными первого пользователя в базе данных, которым обычно бывает администратор. Так и оказалось в нашем конкретном случае. Роберт не только вошел в систему, но и получил привилегии администратора.
Отсюда он получил возможность увидеть переписку всех сотрудников или авторизованных пользователей после успешного входа в систему. Просмотрев несколько таких посланий, он извлек из них информацию о номерах телефонов dial-up для соединения с сетью, а также адреса гиперлинков для добавления и удаления пользователей из внутренней защищенной сети. Компания использовала VPN-сервер Microsoft, который настраивается таким образом, что сотрудники используют их имена и пароли для Windows, чтобы войти в него. Поскольку Роберт находился в приложении helpdesk с привилегией администратора, он получил возможность добавлять пользователей в VPN-группу и изменять их пароли для компьютеров, работающих в ОС Windows.
Дело продвигалось не быстро. Несмотря на то, что он находился в приложении с привилегиями администратора, это ни на шаг не приблизило его к кодам программы. Следующей целью Роберта стала попытка получить доступ к их внутренней сети через настройки VPN.
В качестве проверки, через меню helpdesk он попытался изменить пароль одного из «спящих» аккаунтов (в этом случае его активность было труднее заметить сразу) и добавить его в группу администратора. Он выяснил, как устроена V P N и «попробовал команду VPNin. Все было хорошо, но работало медленно».
«Я проник внутрь примерно в час ночи. Поскольку я находился в Австралии, разница во времени играла мне на руку, в Америке был час ночи, а в Австралии — разгар рабочего дня. Я хотел войти в сеть, когда там наверняка никого нет, и не хотел, чтобы кто-нибудь зашел и заметил меня. Может быть, у них надо было писать отчет о каждом таком случае. Я хотел быть спокоен».
Читать дальше