Построение интерактивных карт камер, принтеров, твитов и фотографий

Скрипт ꓘamerka 2.0 aka FIST (Flickr, Instagram, Shodan, Twitter) создаёт интерактивные карты с иконками и всплывающими окнами, содержащими расширенную информацию. Это могут быть карты камер, карты принтеров, карты твитов и фотографий для интересующих координат.

Применений этому может быть множество: поиск камер и изображений в интересующем вас месте, наблюдение за мнениями и изображениями в определённых районах и прочее.

Построение карт камер определённой местности

Для этой функциональности используются: Shodan API, GeoPy и библиотека Folium.

Shodan позволяет нам найти любое устройство в заданном месте на основе долготы, широты и радиуса, за это отвечает фильтр «geo». Далее добавлен фильтр «device» для отображения только веб-камер. Вся команда выглядит так: «geo:37.235,-115.811111,5 device:webcam».

Благодаря Geopy вы можете осуществлять поиск по адресу или конкретному зданию. Кроме того, он измеряет расстояние между камерой и начальной целью.

Folium — удивительная библиотека ГИС (географическая информационная система) с множеством удобных опций, и она выглядит действительно круто Результаты Shodan передаются в Folium для создания карты с маркерами, относящимися к каждой веб-камере. Маркеры имеют два цвета — красный означает, что камера, вероятно, имеет какую-то форму аутентификации и не возвращает код 200 OK, а зелёный цвет говорит, что она открыта, или отображает некоторую панель входа.

Более того, маркеры сгруппированы, если их много в одном месте. После нажатия на любой из них, отображается информация, такая как IP, модель и расстояние.

Правительственные здания

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

Вы можете искать по адресу:

kamerka.py –address 'White House' --radius 2

В последних версиях ꓘamerka были добавлены принтеры: зелёный значок означает открытый доступ, а красный — отклик, отличный от 200. Также теперь если камера содержит снимок экрана, он также будет добавлен во всплывающее окно.

python kamerka.py --lat 45.504 --lon -73.5747 --camera --printer

Карта принтеров и камер:

Для использования модуля Shodan необходимо иметь платную подписку.

Теперь осталось найти камеры, которые будут показывать, как печатают принтеры — и будет совсем хорошо.

Flickr

Flickr — одна из платформ для обмена фотографиями, она в большей степени про красивые виды и изобразительные произведения.

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

python kamerka.py --lat 42.9708746 --lon -71.1272902 --flickr

Пример Flickr фото с геолокацией:

Instagram

Не получилось зарегистрировать приложение в официальном API Instagram, который затем позволяет осуществлять поиск по координатам, но найден другой способ с помощью неофициального API, более подробно, что изменить и как использовать его на github.

Процесс поиска фотографий в этом API не очень точен, сначала он ищет известные места, а затем показывает фотографию с этого адреса.

Получены первые 5 новейших фотографий каждого объекта. В менее людных городах места могут быть дальше, чем в заданном радиусе.

Помните прошлую статью и камеры возле секретного склада Amazon от свалки Wikileaks? Оказывается, рядом есть пара интересных фотографий.

python kamerka.py --lat xx,x --lon yy,y --instagram

Фото из Instagram возле «секретного» склада Amazon:

Twitter

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

Первые 10 страниц ищутся, и каждая страница содержит 100 возможных твитов с геолокацией. Если в твите есть изображение, значок Twitter на карте становится зелёным. Твиты могут содержать фотографии, даже если во всплывающем окне нет изображения. Это потому, что люди добавляют ссылку на свою фотографию в Instagram, поэтому стоит проверить полный твит, который находится в конце каждого всплывающего окна.

python kamerka.py --lat -35.2826088 --lon 149.1231722 --twitter

Твиты в Канберре:

Всё вместе

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

Рекомендуется открывать картинки в новом окне для лучшей видимости.

Oakland:

Майами:

Путешествие по незащищённым устройствам IoT с помощью Kamerka: RTSP и MQTT

MQTT (Message Queue Telemetric Transport) — это служба, которая широко используется для управления устройствами IoT (Internet of Things). Вы можете найти его в разных местах: офисах, университетах или даже электростанциях.

Например, она использовалась в датчиках, обменивающихся данными с брокером через спутниковую связь, через временные dial-up соединения с поставщиками медицинских услуг, а также в ряде сценариев домашней автоматизации и небольших устройств.

RTSP (Real-Time Streaming Protocol — протокол потоковой передачи в реальном времени), как следует из названия, обеспечивает передачу в реальном времени с IP-камеры, включая звук. Основным вариантом использования RTSP является независимость с возможностью его внедрения непосредственно в ваше приложение. Это означает, что если поток недостаточно защищён, кто-то может его взломать. Большинство этих устройств являются камерами наблюдения, и вы можете встретить их возле или внутри зданий, которые требуют дополнительной безопасности.

https://marcoramilli.com/2016/09/20/internet-of-broken-things-threats-are-changing-so-are-we/

MQTT (Message Queue Telemetric Transport)

MQTT очень известен из-за отсутствия безопасности, статья от 2016 года подтверждает, что даже в то время это была проблема. Он основан на протоколе M2M (Machine to Machine, т. е. машина-машина) и работает через порт 1883.

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

Пример панели инструментов для устройств MQTT:

Кроме того, некоторые панели дают вам полный доступ к каждому датчику, что означает, что вы можете контролировать всё здание.


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

MQTT устройства возле Сакраменто:

Без надлежащей защиты каждый может подключиться к устройству и подписаться на каждую тему, именно так работает MQTT. Список доступных тем отображается после нажатия на одно из открытых устройств.

Существует множество бесплатных инструментов для управления транспортными устройствами телеметрии в очереди сообщений, одним из самых известных является mqtt-spy, Mosquito MQTT и MQTT.fx. Когда злоумышленник начинает подписываться на определённую тему, он получает взамен данные. Информация зависит от использования, это может быть влажность воздуха, местоположение телефона или команда питания в Area51.

Интерфейс MQTT.fx:

Real-Time Streaming Protocol (Потоковый протокол реального времени)

Еще одна служба, которую можно использовать для слежки за людьми и зданиями, - это RTSP. Обычно он работает через порт 554 (иногда 8554) и поддерживает VHS-подобные команды: PLAY, TEARDOWN, RECORD, SETUP или PAUSE. Вместе с транспортным протоколом в реальном времени (RTP) и протоколом управления в реальном времени (RTCP) они создают команду для доставки мультимедиа.

Камеры с потоковым протоколом в реальном времени в Копенгагене:

Векторы атаки остаются такими же, как и для остальных типичных HTTP-камер, т.е. слабые/стандартные учётные данные или отсутствие аутентификации. Чтобы на самом деле получить поток, злоумышленнику нужен известный или подобранный брут-форсом путь к видео, вы можете найти полный список здесь. Уже есть скрипт Nmap для обнаружения путей RTSP и более продвинутые инструменты, такие как cameraradar. Самый простой способ воспроизвести поток — это проигрыватель VLC.

Если вы установите рекурсивный режим, дополнительные порты будут показаны на карте. Очень полезно определить, запущено ли больше сервисов, чаще всего это другое устройство IoT со специальной панелью мониторинга. Довольно часто случается, что MQTT и RTSP работают на одном и том же хосте, что открывает много новых возможностей для шпионажа.

Пример потока RTSP:

Более простое управление

Для любого урбанизированного места в мире есть много результатов, и трудно отследить все открытые устройства, их порты и потенциальные уязвимости. Прямо сейчас, ꓘamerka поддерживает вывод Elasticsearch, и с помощью Kibana вы можете создавать потрясающие визуализации и информационные панели. Он включает в себя порты, продукты, уязвимости, типы устройств, ASN и многое другое. Если вам нужно управлять открытыми устройствами на определённой территории, такими как города или устройства ICS в стране, это идеальный, элегантный и самый простой способ сделать это.

Как установить ꓘamerka (kamerka)

Для установки ꓘamerka (kamerka) выполните команды:

git clone https://github.com/woj-ciech/kamerka
cd kamerka/
sudo pip3 install -r requirements.txt
python3 ./kamerka.py -h

Требования:

Данные API нужно указать в исходном коде файла kamerka.py:

###API keys and credentials
#Shodan
SHODAN_API_KEY = ''

#Instagram
INSTAGRAM_USER = "+"
INSTAGRAM_PASSWORD = ""

#Flickr
FLICKR_API_KEY = ''
FLICKR_SECRET_API_KEY = ""

#Twitter
TWITTER_ACCESS_TOKEN = ""
TWITTER_ACCESS_TOKEN_SECRET = ""
TWITTER_CONSUMER_KEY = ""
TWITTER_CONSUMER_SECRET = ""

#Google Street View
GOOGLE_STREET_VIEW_API_KEY = ""

Для использования модуля Instagram, вам нужно добавить дополнительный метод в файл InstagramAPI.py. Для этого откройте файл InstagramAPI.py:

gedit /usr/local/lib/python3.7/dist-packages/InstagramAPI/InstagramAPI.py

и ПЕРЕД строкой

def getLocationFeed(self, locationId, maxid=''):

Вставьте строки:

def geosearchLocation(self, lat, lon):
        return self.SendRequest('location_search/?latitude=' + str(lat)+'&longitude='+str(lon)+'&rank_token=' + self.rank_token)

Сохраните и закройте файл.

Как пользоваться ꓘamerka

Использование:

kamerka.py [-h] [--lat LAT] [--lon LON] [--radius РАДИУС] [--dark]
                  [--twitter] [--camera] [--flickr] [--instagram] [--printer]
                  [--country COUNTRY] [--rtsp] [--mqtt] [--open]
                  [--first FIRST] [--last LAST] [--recursive]
                  [--elasticsearch] [--host HOST] [--port ПОРТ]

Опции ꓘamerka:

Опциональные аргументы:
  -h, --help         показать справку и выйти
  --radius RADIUS    Радиус в км (По умолчанию 3)
  --dark             Тёмная тема
  --twitter          Модуль Twitter
  --camera           Модуль камер
  --flickr           Модуль Flickr
  --instagram        Модуль Instagram
  --printer          Модуль принтеров
  --country СТРАНА  Поиск Industrial Control Systems для страны. Короткие коды для стран: US,IL,RU
  --rtsp             Модуль Real Time Streaming Protocol
  --mqtt             Модуль Message Queuing Telemetry Transport
  --open             Показывать только открытые устройства
  --first FIRST      Первая страница
  --last LAST        Последняя страница
  --recursive        Рекурсивный режим
  --elasticsearch    Сохранить в ElasticSearch (работает только в рекурсивном режиме)
  --host HOST        Хост Elasticsearch
  --port PORT        Порт Elasticsearch

Обязательные аргументы:
  --lat LAT          Широта
  --lon LON          Долгота

Примеры ꓘamerka

Включение модулей Twitter, Камера, Принтеры и поиск по широте 37.235 и долготе 115.811111:

python kamerka.py --lat "37.235 --lon 115.811111" --dark --twitter --camera --printer

Поис Industrial Control Systems для страны RU:

python kamerka.py --country RU

Поис Industrial Control Systems для страны PL:

python kamerka.py --country PL

Поис Industrial Control Systems для страны CH:

python kamerka.py --country CH

python kamerka.py --lat 37.8368723 --lon -122.2645793 --camera --flickr --instagram --twitter --printer --first 1 --last 1

Тёмный режим (Dark mode):

Заключение

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

Источники

Рекомендуется Вам:

Добавить комментарий

Ваш e-mail не будет опубликован.