[Перевод] Конференция DEFCON 20. Как поиметь плохих парней (и мафию) с помощью JavaScript ботнета. Часть 1

Я рад представить сегодняшнюю тему «Как поиметь плохих парней и мафию, используя JavaScript ботнет». Сначала я хочу представить себя и мою страну — я Чема Алонсо, работаю в маленькой компании под названием Informatica64. Я также занимаюсь безопасностью Microsoft и живу в Испании.

ecl4cza0e-58qpypb8pn4oe8sy0.jpeg

Если вы ещё не были в Испании, то обязательно должны её посетить, здесь есть множество мест, заслуживающих внимания. Это Мадрид, город, который никогда не спит, вы видите его на первом слайде, он меньше, чем Нью-Йорк. Это Барселона со своим удивительным храмом Святого Семейства, и, конечно же, Памплона, где люди убегают от разъярённых быков. Здесь всего одно правило: если ты пьян, не беги! А так всё просто: вы просто должны бежать быстрее, чем бык.

Если вам нравятся особые праздники, то вот битва томатов Томатина. Я не уверен насчёт истории этого обычая, но вам всего лишь требуется кидаться помидорами, и это довольно интересно. Да, такова Испания!

Давайте начнём нашу тему. Она довольно проста: создайте ботнет, и всё. Кто из вас подумывал о том, чтобы создать ботнет? А кто его реально создал? Так, понятно, только я. Идея создания ботнета довольно интересна, но я ленивый человек. Я из Испании, поэтому это нормально. Кроме того, у нас нет денег, у нас не было «дня зеро», мы не ФБР или АНБ, которые могут бесплатно пользоваться сетями, и мы не Google, Apple или Microsoft, чьё оборудование существует по всему миру.

Я хочу показать вам увеличенную картинку на экране — это изобретение испанцев, они сидят в бассейне и подключили электронику через удлинитель, который плавает благодаря одетым на него резиновым тапочкам.

zdbucxxxei5gaienfd3xqzzja0y.jpeg

Эта прекрасная иллюстрация того, как мы в Испании пользуемся разными вещами. Мы, испанцы, действуем по-своему, не так, как другие. Итак, идея создания ботнета довольно проста — давайте их всех заразим! Очень простая идея, которую мы хотели воплотить в ботнете — чтобы участвующие в нём компьютеры захотели сами себя заразить.

usrld2kroem7juiq7xynfcgvl68.jpeg

Если подумать, это довольно распространённая в интернете тема. Индустрия вредоносного программного обеспечения широко распространилась за последние 5–10 лет с помощью мошеннических антивирусов и трюков социальной инженерии, так почему бы ботнету не сделать подобный трюк?

prlrvbyhlc3axxce-t-19fhljhm.jpeg

В основе ботнета заключена идея атаки «человек посередине» с использованием перехвата сообщений между клиентом и сервером. Достаточно захватить канал, и мы получаем тотальный контроль. Можно использовать различные сценарии сетевого захвата: ARP-спуфинг, мошеннический DHCP в сетях с поддержкой IPv4 или IPv6, спуфинг ICMPv6, атака SLAAC, спуфинг DNS и так далее.

Мы опубликовали новый инструмент для атак «человек посередине» под названием Evil FOCA, один клик — и всё готово. И конечно, если вы можете настроить DNS, то можете совершить атаку «человек посередине».

Существуют сложности, потому что вам приходится иметь дело с большим количеством интернет-провайдеров и большим количеством сетей. Одним из наиболее используемых приёмов несколько лет назад стал способ «человек в браузере», это некое расширение технологии атаки «человек посередине».

В течение длительного времени русская хакерская школа успешно использовала этот приём при помощи Internet Explorer 6 с известным плагином Browser Helper Objects (BHO), компонентом Active X, который позволял открывать файлы, изначально предназначающиеся только для браузера. Они создавали вредоносные программы, маскирующиеся под BHO. Это позволяло получить доступ ко всем данным, перехватывать вводимые с клавиатуры пароли и коды, в первую очередь для соединений между банковскими учреждениями. Поэтому этот банковский троян стали называть «Русские в моём браузере IE».

ptzb217wsf9424mqdfqzfbulmfs.jpeg

Это очень распространённый способ атаки путём конфигурирования специального троянского XML-файла, простой, но отлично работающий.

Итак, нам нужно было написать такой код, который бы не обнаруживался антивирусными системами, но мы решили, что для нас это очень сложно. Поэтому мы решили использовать так называемый «отравленный кэш браузера», или атаку способом «JavaScript посередине» и назвали её «человек во вкладке». Идея довольно простая.

dyq6wcyz2se2m40m3fbxqnjvbl4.jpeg

Если вы не в состоянии контролировать весь браузер, то можно запустить JavaScript в одной пользовательской вкладке, при этом вы сможете проделать множество вещей. Вы сможете получить доступ к коду, модифицировать HTML, получить доступ к полям форм, вы можете управлять вкладкой и так далее.

Особенностями атаки «JavaScript посередине» являются:

  • не постоянное использование — очистка кэша означает удаление инфицированного содержимого;
  • кэшированный контент существует до истечения срока использования,
    хакер может удалённо внедрять JavaScript;
  • получение доступа к кукиз типа HTTP-only, доступа к HTML-коду, адресам URL, к исполнению кода.


Существует очень известный проект — фреймворк эксплойтов браузера BEEF. Он позволяет проделывать множество интересных вещей, например, вставлять маленький кусочек кода JavaScript в браузер пользователя, чтобы отравить кэш.

t_skfp7tqvxzmvrwfvi1b7wc7ti.jpeg

Проблема заключается в том, что нам нужно сконфигурировать его в интернете, что довольно сложно, если нужно заразить множество сетевых ботов. Так что наша идея была более простой — создать ботнет JavaScript при помощи Scratch.

Исходя из идеи среды, которая конкретно заражает файл JavaScript, мы в первую очередь решили, что лучшим способом создания ботнета будет, если боты осуществят принцип «proprio motu», то есть «по собственной инициативе», не используя «человека посередине», а используя самих пользователей. Мы решили сосредоточиться на сети TOR и прокси-серверах, используемых в Интернете.

tmmi7kwyfxcgp4zxgbbkgfjdccw.jpeg

Идея этой сети проста — если вы последний на линии, то можете получить доступ ко всему контенту, перехватывая все соединения.

Для ее реализации мы собрали машину, которая была «человеком посередине», и зарегистрировали её как узел TOR и как анонимный прокси сервер, и в обоих случаях проработали какое-то время. Тем не менее, мы должны сказать, что наша вредоносная активность в качестве узла TOR была обнаружена, что привело к игнорированию нашего IP-адреса.

rqgegaabugvg_l7la6un6dtq6pm.jpeg

Для реабилитации нам предложили пройти тесты, создать тестовую сессию и так далее, что показалось нам слишком сложным, ведь мы же испанцы. Поэтому следующей вещью, которую мы сделали, было создание собственного прокси сервера. Это достаточно просто, потому что прокси имеет не такую большую инфраструктуру, как TOR, это всего лишь автономный сервер, к которому пытаются присоединится пользователи.

v74-9zheu22g7v6o4twvl6swhd4.jpeg

Мы изучили в интернете все руководства по анонимного прокси-сервера и поняли, что это готовая схема «человек посередине». Создав прокси-сервер, через который люди пытаются соединится с интернетом, мы получили возможность собирать все данные и инфицировать все браузеры.
Первое, что мы сделали, это арендовали прокси-сервер в интернете. Конечно, мы подумали о его функциях, нам не нужен был «игрушечный» сервер с Pirate Bay или Amazon, мы помнили про Wikileaks, но нам не нужен был и мегамощный сервер. И ещё мы решили, что лучше пусть он находится в стране, где нет законов. Мы решили арендовать сервер в Афганистане, Иране, Казахстане или в Испании (аплодисменты и смех в зале).

После того, как мы арендовали сервер, мы принялись его настраивать. Это должен был быть простой сервер на основе Apache и SQUID прокси. Далее при помощи этого сервера мы собирались инфицировать все файлы JavaScript одним маленьким кусочком кода, занимающим всего пару строк.

li_pbap7yxjupg7sszqjalukxny.jpeg

Как только пользователь подсоединялся к нашему серверу, мы заходили на сайт и получали страницу ответа, которая содержала файл JavaScript. Мы возвращали пользователю практически оригинал JavaScript, добавив в него всего 2 строчки «полезной нагрузки». При этом мы не хотели использовать такую известную в интернете вещь, как BEEF, а просто вставляли две строчки кода во все файлы JavaScript, которые проходили через наш прокси-сервер.

Всё, что нам нужно было сделать, показано на следующем слайде.

kkvkh9r_tn5qucnpp8hkhov5x9y.jpeg

Мы сконфигурировали «полезную нагрузку» в нашем SQUID прокси и удалили в файле-конфигураторе Apache-сервера политику истечения срока действия, потому что после того, как JavaScript инфицировал браузер, эта «инфекция» должна была остаться там навсегда.

Далее мы создали собственно скрипт, показанный на следующем слайде, который заражает файлы JavaScript.

lhddkkgntkira5xm4agrx0sarlm.jpeg

Мы копировали файлы, добавляли в них скрипт pasarela.js и отсылали эти обновлённые файлы клиентам на IP-адрес с помощью print «http:// ……». Это очень маленький кусочек кода, полный уязвимостей, но он работает. Сам скрипт под названием Pasarela, который копировался во все файлы JavaScript, выглядит так, как показано на следующем слайде. Всё что он делает — это загружает отравленный payload.php с вредоносного сервера и сообщает о своей идентификации, загружая изображения с jsonip.php.

htysnnnm-4stwekclrwnlnv4buu.jpeg

В коде можно было посмотреть, был ли создан элемент или нет. Цель состоит в том, чтобы не запускать pasarela.js более одного раза на одной странице. Поскольку мы как порядочные люди не хотели причинить вред пользователям, мы опубликовали на главной странице сервера следующее обращение ко всем клиентам, которые собирались воспользоваться услугами нашего прокси-сервера.

ufglmme9ii1ypwx7gmoenqio0oi.jpeg

«ВНИМАНИЕ! Этот прокси-сервер используется для исследований в области интернет-безопасности. Все файлы JavaScript будут заражены и все ваши данные будут собраны. Если вы хотите оставаться в безопасности, не используйте этот прокси-сервер. Если вы это делаете, то не посылайте конфиденциальную информацию. Если вы всё-таки решили им пользоваться, учтите, что делаете это на свой страх и риск».

Если вы не хотите потерять свой пароль или свои персональные данные, не пользуйтесь нашим сервером! Это очень хорошая политика безопасности. Более-менее аналогичную политику безопасности используют в армии — вы видите похожее предупреждение на сайте Инженерного корпуса армии США, так что мы поступили вполне законно.

jogew-r0kdd1zjfh-kaux0do7ca.jpeg

Итак, мы опубликовали свой прокси-сервер в интернете и написали, что это открытый прокси, и что каждый может добавить свой прокси в нашу базу данных. Вы видите, что у нас есть вкладки со списками разных прокси, сортировка их по стране, по порту, есть вкладка избранных прокси.

sfesvaroxbuhpvv7m-_oiv30e8s.jpeg

Идея заставить «плохих парней» пользоваться нашим вредоносным прокси-сервером была очень проста: мы зарегистрировали его в одном списке прокси-серверов. Уже давно и во многих сайтах и блогах, рекомендуется использование прокси серверов для получения анонимного IP-адреса, что является общим для многих из нас. Мы выбрали сайт случайным образом и зарегистрировали IP-адрес с портом 31337, чтобы привлечь немного больше внимания.

Эти сайты со списками прокси-серверов выполняют тестирование безопасности новых прокси-серверов, но тест не так сложен, как в сети TOR. На самом деле, дело не в том, зарегистрирован прокси-сервер для проведения тестов или нет, но как только он попадает в такой список протестированных серверов, тут же подключаются сотни сайтов и приложений, которые загружают эти списки без какой-либо проверки безопасности.

Достаточно просто пройти первый тест, например, тест соединения и функциональности, и «магия Интернета» сделает так, что ваш IP-адрес в качестве доверенного появляется на тысячах сайтов, что и произошло с нашим IP-адресом. На следующем слайде показано, что наш мошеннический IP- адрес появился на тысячах сайтов.

0ympeikj175dp7jtotvd9qnmavm.jpeg

Вы видите, что наш IP-адрес появился в выдаче поискового запроса 1110 раз, потому что все прокси-серверы начали копировать самих себя. Потому что если вы разместите свой IP-адрес в списке одного прокси-сервера, все остальные прокси-серверы начинают копировать эти списки. Это весело, потому что однажды это принесёт вам много всякой всячины.

Далее мы создали «полезную нагрузку» для кражи кукиз. Мы не хотели иметь дело с защищёнными кукиз, а использовали только HTTP-кукиз. Мы копировали обычные, незащищённые кукиз и отправляли их в панель управления.

vtkjczb7jwdydqcpnc4_k8wgg2q.jpeg

Мы также использовали небольшую «полезную нагрузку» для добывания полей форм, мы использовали заполненную пользователем информацию и так же посылали её в нашу панель управления.

o9k32xx4wgqa8medbuh7vuvryxk.jpeg

Вот, собственно, и всё — теперь можно было наслаждаться плодами нашего труда. Однажды мы даже смогли мобилизовать 5000 ботов. Проведя анализ соединений, мы установили, что большинство машин нашего ботнета располагались в России, Бразилии, Мексике и Индонезии, где услуги прокси-серверов пользуются большим спросом. Нам не потребовалось платить за это, не нужно было создавать никаких специальных полиморфных вредоносных программ, достаточно было опубликовать в интернете один-единственный IP-адрес сервера. Ну, вы знаете, мы же из Испании.

Вопрос заключался в том, кто же пользуется такого рода услугами? Сколько человек в этом зале пользуется услугами прокси-серверов в интернете? Итак, если вы хотите анонимности, используете один прокси-сервер. Если вы хотите ещё больше анонимности, используйте больше, чем один прокси-сервер, так вы сможете заразить больше, чем 1 прокси-сервер (смех в зале).

jkd8jwvf8m4s46buuo938amncfc.jpeg

Идея была в том, что те, кто пользуется такими серверами, несомненно, плохие люди. Например, известная всем мафия скамеров «нигерийского принца».

mskk9xugbkir6ifoateqn8empno.jpeg

Надпись на табличке: «Королевский банк Нигерии». Спамер-скамер: «Я отправил электронные письма всем, кого только смог найти, мой Принц, но никто не хочет помочь вам избавиться от ваших денег».

В первую очередь мы хотели собрать данные плохих людей, которые делают плохие вещи. Итак, нам удалось собрать всю информацию нигерийских скамеров, включая имена пользователей и пароли. Но мы их об этом предупреждали, так что всё законно.

Как только мы получили пароли, мы зашли в почтовые ящики этих людей, и там я нашёл одного из моих любимых спамеров-скамеров, имевшего почтовый ящик royalhotelengland@hotmail.co.uk.

mjbthgkxvmkrbnszjibtgt3viu4.jpeg

Этот парень создал целую спамерскую компанию, чтобы дурить людей, предлагая им сделать специальную визу для получения работы в Великобритании, за это он просил по 275 фунтов. На следующем слайде приведено электронное письмо, в котором он просил денег.

8xyfopdkzerhsqily5yu9gja7vi.jpeg

Оно выглядит совсем как официальное письмо. Конечно, в мире было много разумных людей, которые отвечали ему: «хорошо, но сначала покажите мне эту работу, а потом я пришлю вам деньги». Таким образом, если кто-то из получателей спама подозревал в нём мошенника, он не настаивал и принимался за других клиентов. В конце концов, они посылали ему всю информацию, необходимую для получения визы, все персональные данные — вы можете видеть сканы их документов на следующем слайде.

dhhvehvnr-8zaohedt9td0vbww8.jpeg

kqxfhjcbyzgcl_l2wch0lwklk3g.jpeg

Это и резюме, и страницы паспорта, и фотографии высокого качества для оформления паспорта в Великобритании и даже отпечатки пальцев, требующиеся для получения рабочей визы в Великобритании. Очень много людей отправили ему эти данные, и это самый простой способ кражи конфиденциальной информации, который я встречал в жизни. Если у вас есть такие данные, то вы запросто можете создать своего собственного «мула» для выполнения мошеннических банковских операций.

Еще один из моих любимых аккаунтов в социальной сети, с сайта знакомств — вот этот парень, вернее, вот эта девушка. Скажите честно, ребята — кто из вас думает, что такая девушка станет искать парня для занятий сексом в сети интернет?

jvd1w6sakvn52rhbx8by6dybbje.jpeg

Это с самого начала вызвало у нас большие подозрения, поэтому мы решили раздобыть имя пользователя и пароль от этого профиля. Как видите, эта Axionqueen пишет, что она ищет парня для свиданий или серьёзных отношений, ей около 30 лет и она живёт в Келлере, штат Техас. Но дело в том, что мы обнаружили совсем другой профиль в другой социальной сети, где эта «королева» живёт уже в Окленде в Новой Зеландии, и ей 31 год, и так далее. А затем мы обнаружили ещё и третий профиль той же девушки на сайте PlanetaLove USA, где указано, что она живёт в Линчбурге, штат Вирджиния и интересуется мужчинами от 39 до 60 лет.

hh1j1dp1c_twtb5oqjnvzj9cx7q.jpeg

Нет ли здесь кого-нибудь из Вирджинии, кто встречал бы эту девушку?

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

pb45d2khjiz4s3hracv-tejodgw.jpeg

И тогда мы решили проникнуть в почтовый ящик этого пользователя и ознакомиться с его письмами. Естественно, это был парень, а не девушка.

20:20 мин

Конференция DEFCON 20. Как поиметь плохих парней (и мафию) с помощью JavaScript ботнета. Часть 2


Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5–2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

VPS (KVM) E5–2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до декабря бесплатно при оплате на срок от полугода, заказать можно тут.

Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5–2650v4 128GB DDR4 6×480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5–2650 v4 стоимостью 9000 евро за копейки?

© Habrahabr.ru