Как написать osint бота

Время на прочтение
15 мин

Количество просмотров 33K

Протокол Telegram известен своей доступностью и открытостью. У него есть множество публичных реализаций: tdlib/td, rubenlagus/TelegramApi, vysheng/tg, LonamiWebs/Telethon и другие. Однако, даже имея в распоряжении столь богатый инструментарий и объемную документацию (https://core.telegram.org/api), решить прикладную задачу, собрав из многообразия методов API нужную цепочку – не так-то просто. Сможет, например, “неподготовленный ум“ сходу догадаться, как решить прикладную задачу а-ля “поиск по номеру в Telegram“? — Скорее всего, придется потратить какое-то время на изучение API.

Официальный клиент Telegram содержит в себе массу API-цепочек, реализующих определенные пользовательские сценарии. Если подумать, взаимодействие на основе сценариев — наиболее удобный и предпочтительный способ, поэтому мы решили пойти по пути упрощения взаимодействия с Telegram на основе реализации библиотеки сценариев. Так как наша деятельность тесно связана с направлением OSINT, то в первую очередь мы решили реализовать ряд OSINT-сценариев, применимых в сети Telegram, о которых и хотим рассказать в этой статье.

Для решения задач OSINT мы еще давно начали работу над собственным клиентом для сети Telegram, который в последствии трансформировался в расширяемую библиотеку сценариев — telegram-osint-lib.

Почему пришлось делать собственный клиент?

Мы разрабатываем программные системы для сбора данных из открытых источников. Об одном из наших сервисов — Nuga — мы уже как-то рассказывали ранее.

Здесь и далее под “клиентом” подразумевается не графическое приложение, а “бот” (не путать с внутренним функционалом Telegram), управляемый из консоли, который решает определенную прикладную задачу в рамках сети Telegram с помощью предоставляемого API.

На момент первичной реализации клиента (~конец 2018 года) сторонние библиотеки-клиенты Telegram, которые мы рассматривали, обновлялись нерегулярно и не соответствовали требованиям из документации по протоколу, которая обновлялась с большой задержкой (полгода и более), как и официальные клиенты.

Часто в новоиспеченных версиях официальных клиентов можно было наблюдать кардинальные отличия от официальной документации, что сеяло зерна конспирологических сомнений. Например, API Layer 105 (выпущенный с огромным скачком от последней версии 23) наконец-то рассказал нам об опциональных полях и всех недостающих типах данных, устранив тем самым все подозрения на гипотетические закладки. Сейчас с этим стало лучше, документация обновлена, хотя некоторые детали все равно приходится определять экспериментально.

Сценарийная направленность

Занимаясь достаточно долгое время развитием собственного клиента, клиент оброс множеством оберток над группами API-вызовов. Стало понятно, что как простой набор API вызовов к Telegram он нас не особо интересует — в пределах сети Telegram гораздо интереснее выполнять комплексные операции, задействующие сразу множество API-вызовов. Таким образом был осуществлен переход от API-направленности к сценарийной направленности клиента.

Сценарий в telegram-osint-lib – это “черный ящик”, реализованный в виде последовательности API-вызовов, позволяющей достичь определенной конечной цели (output) на основе входных параметров (input). Аргументы представляют из себя понятные сущности окружающего мира (например, ключевое слово для поиска). В результате использования аргументов внутри черного ящика на выходе получается запрошенная информация (например, сообщения с указанным ключевым словом). Вся рутина по взаимодействию с API Telegram при этом инкапсулирована в реализации сценария. Сценарии могут сочетаться друг с другом, формируя более комплексные сценарии.

Концепция сценария была разработана в процессе решения задач внутри компании, однако, схожие понятия встречаются много где, например, в литературе по анализу требований — Scenario-based modeling and its applications — т.е идея “scenario-based“ сама по себе, конечно же, не нова.

Детали реализации

Библиотека telegram-osint-lib реализована по асинхронной модели и рассчитана на поддержку нескольких одновременных соединений (пример). Изначально при реализации мы следовали следующим принципам:

  • fail fast: при работе с проприетарным протоколом (пусть и имеющим более-менее открытую документацию) необходимо реагировать на изменения оперативно

  • conformity: библиотечная реализация максимально соответствует существующим клиентам и учитывает ограничения, заложенные в протокол

  • testability: код должен быть доступен для тестирования, а именно: быть декомпозирован, иметь низкую связность

На этапе дизайна архитектуры библиотеки, были выделены следующие уровни абстракции (от низкого к высокому):

  1. Уровень Telegram API (TL nodes);

  2. Уровень клиента, содержащего набор нужных методов API для выполнения класса операций

  3. Уровень сценария, комбинируемого с соседями по уровню

  4. Уровень интерфейса пользователя (скрипт, вызывающий сценарии)

Так как клиент реализован по асинхронной модели, каждый вызов возвращает результат не напрямую, а через callback. Такой подход к реализации позволяет обрабатывать асинхронные ответы (что предусмотрено протоколом Telegram) и держать в одном потоке множество соединений.

Поддержка мультиверсионности схемы данных

Как известно, Telegram протокол описан в виде схемы на языке TL. Однако, на той же странице, мы можем получить схему и в формате JSON (которая на практике оказывается более применимой). В схеме два основных блока: constructors и methods. Первый описывает структуры данных, которые принимает на вход или возвращает Telegram сервер, а второй — описание методов: спецификацию типов входных параметров и тип ответа.

Несмотря на то, что сейчас протокол на сайте регулярно обновляется (в процессе написания статьи вышла новая версия TL-Schema 108, а за ней и 109), наблюдать за дельтой изменений между версиями по прежнему необходимо, для чего используется небольшой сниппет, принимающий на вход два json файла и выдающий на выходе конструкторы/методы, которые есть во втором файле, но нет в первом. На текущий момент в официальном API описано более 1100 дескрипторов (конструкторов/методов). Пользуясь такой json схемой нетрудно составить или декодировать любое сообщение.

Поддержка клиента, поддерживающего разные версии протокола, требует определенных плясок с бубном: недостаточно просто взять последнюю версию схемы с сайта. Надо поддерживать еще и старые сообщения (в обновлениях протокола бывает как удаление, так и модификация сообщений). Поэтому в нашей спецификации каждый слой (layer) мы сохраняем отдельно, чтобы прослеживать историю обновлений и чтобы бот-клиент, у которого, например, накопилась очередь сообщений на стороне сервера по старой версии протокола, мог корректно их обработать.

OSINT на примере некоторых сценариев

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

Пойдем от простого к сложному и попробуем разобрать некоторые из существующих сценариев на примере реальных кейсов. Для более удобного взаимодействия со сценариями библиотека telegram-osint-lib была завернута в Docker:

docker build -t telegram-osint-lib . 
docker run -d -t --name tg-osint-lib telegram-osint-lib

Преамбула: Генерируем бота-клиента

Перед тем как запустить содержимое Docker-контейнера и получить о пользователе первые данные, нам понадобится “зайти” в сеть Telegram. Для входа в сеть библиотека использует ботов (о которых уже было упомянуто выше), от имени которых производятся все действия.

Для генерации бота нам потребуется сценарий регистрации, реализующий связку auth.sendCode → auth.signIn → auth.signUp:

docker exec -i tg-osint-lib php examples/registration.php
Number: 790612***31
SMS code: 123123

На выходе получаем бота, готового к задачам OpenSource Intelligence:

AuthKey: 790612***31:aabbccdd...

Этот ключ(AuthKey) будет использоваться во всех дальнейших примерах следующим образом:

docker exec --env BOT=... -i tg-osint-lib php ...

Ниже в примерах, для краткости, бот будет указываться так: --env BOT=...

Собираем сведения о владельце номера

Начать мы решили с простого сценария — поиска пользователя Telegram по номеру телефона. Данный сценарий довольно очевидный и доступный для рядовых пользователей, однако его массовое применение несколько затруднительно “из коробки“.

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

  1. Ник (который многие пользователей могут использовать и в других местах)

  2. Фото

  3. Общие чаты

  4. Имя/Фамилия

  5. “О себе”

  6. Последнее время пребывания в Telegram

  7. Предпочтительный язык

Этой информации уже достаточно для составления начального профиля владельца номера. Мы будем использовать сценарий из telegram-osint-lib, который будет получать на входе список телефонных номеров, пробегать по ним и запрашивать для каждого номера соответствующий аккаунт на сервере Telegram. Если аккаунт есть, мы получаем его данные. Если же аккаунт не найден, сохраняем номер телефона в отдельный список, которые будет обрабатываться в дальнейшем вручную.

Запускаем сценарий на группе номеров:

docker exec --env BOT=... -i tg-osint-lib php examples/parseNumbers.php 7985****294,7985****977,7986****777,7986****252,7988****417,7999****169,7999****869,7999****053,7999****364,7999****916,7999****475,7999****959,7985****025,7985****343,7989****207,7916****668,7926****802 > numbersInfo.txt

Всю основную работу в недрах библиотеки выполняет метод InfoClient::getInfoByPhone(), использующий связку API вызовов import_contacts->get_user_full->delete_contacts->get_user_full. А обработка результатов происходит в функции обратного вызова, которой в параметрах передаётся модель с данными пользователя. Если у пользователя установлено фото профиля, изображение будет загружено в папку со скриптом примера, а в поле Photo будет указано имя файла.

Следим за присутствием пользователя

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

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

Запускаем уже другой сценарий на группе номеров и наблюдаем за ними некоторое время:

docker exec --env BOT=... -i tg-osint-lib php examples/monitorNumbers.php 97155******9,...,798*****777 presence_map.txt

На выходе сценария мы получим ASCII-карту (где “+“ — состояние online в секунду времени) взаимоприсутствия интересующих пользователей в сети. Из карты видно, что вероятность активного общения между пользователями 2,4,5,9 более вероятна, чем между всеми остальными:

Откуда HackerNews черпает свои новости?

В Telegram популярны каналы новостного типа — рассылающие анонсы новостей, статей и прочих тематических постов. Но многие ли обращают внимание, откуда популярные каналы черпают информацию?

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

В библиотеке реализовано два похожих метода для работы с сообщениями групп: InfoClient::getChannelLinks() и InfoClient::getChannelMessages(). Работают они практически одинаково, за исключением того, что первый метод фильтрует сообщения и отбирает только те, в которых были размещены ссылки.

Попробуем собрать все ссылки за последние несколько месяцев с целью определить основные источники информации канала:

docker exec --env BOT=... -i tg-osint-lib php examples/parseChannelLinks.php https://t.me/HNews "2019-12-01 00:00:00"

Спустя некоторое время сценарий соберет статистику по доменам и на выходе мы увидим примерно следующие результаты:

Итого, получили источники по убыванию частотности:

  1. habr.com (45%)

  2. xakep.ru (44%)

  3. threatpost.com (11%)

  4. остальное (<1%)

Теперь тот, кто подписан на HackerNews, Xakep.ru и Habrahabr может задуматься, а не подписан ли он на что-то лишнее?

Самый большой болтун

Кроме анализа информационных источников группы, немалый интерес может представлять выборка самых активных участников тематической группы. Не секрет, что 20% участников группы производят 80% активности этой группы. Получив такую информацию, можно определить наиболее приоритетных для группы людей и наладить контакт именно с ними.

Определять топ самых активных участников проще всего на промежутке времени или по числу последних сообщений (например, по последним 1000 сообщений). Собрать информацию о частоте сообщений участников группы нам поможет метод API messages.getHistory, используемый сценарием с другим целевым предназначением (сбор сообщений в группе), но кастомизируемый внешними инструментами. Запускаем очередной сценарий на одной из популярных групп с пост-фильтрацией средствами командной строки:

docker exec --env BOT=... -i tg-osint-lib php parseGroupMessages.php https://t.me/vityapelevin -- 1570207168 1580207168 --info 
  head -n 2000 | 
  ggrep -oP 'from [a-zA-Z0-9_]+ at' | 
  sort | uniq -c | sort -r -n -k1 | awk '{print $1 " " $3 }' | 
  head -n10

Что на выходе позволяет получить самых больших болтунов группы:

355 289336351
237 710806664
226 Yuliya04
216 735896305
187 Retrovertigodor
187 971662085
175 Mahmud_Abas
141 VwVwVoid
94 nikol_pelevina
85 kotenok_gaff

Общие интересы

Как можно расширить информацию о человеке, имея на руках его сетевой профиль, связанный с номером? Одной из примечательных функций Telegram является групповое тематическое общение. Все существующие чаты можно условно классифицировать по интересам (которых суммарно будет несколько сотен) и из каждого класса интересов выбрать несколько самых популярных чатов для поиска в них интересующего пользователя.

Ядром сценария, определяющего “карту интересов” пользователя, будет API-метод get_common_chats, возвращающий список чатов, которые являются общими для бота и пользователя из наших контактов.
Итоговый алгоритм определения интересов пользователя будет следующим:

  1. Добавить пользователя к себе в контакты

  2. Подписать бота на множество популярных чатов, используя join_channel

  3. Получить информацию об общих с пользователем чатах, с помощью get_common_chats

  4. Сопоставить общие чаты с классами интересов

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

docker exec --env BOT=... -i tg-osint-lib php examples/commonChats.php 7926****802

Изучая исходник примененного сценария можно обратить внимание на то, как происходит комбинирование простых сценариев в более сложные:

public function getCommonChats(?callable $callback = null)
{
    $client = new UserContactsScenario([$this->phone], function (UserInfoModel $user) use ($callback) {
        $this->infoClient->getCommonChats($user->id, $user->accessHash, 100, 0, function (AnonymousMessage $message) use ($callback) {
            if (!Chats::isIt($message)) return;
            $updates = new Chats($message);

            foreach ($updates->getChats() as $chat) {
                $this->commonChats[] = strtolower($chat->username);
            }
            ...
        });
    });
    $client->startActions(false);
}

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

Извлечение сообщений пользователя из публичных чатов и каналов

Продолжаем дальше искать новые источники открытой информации в Telegram. Какую информацию о пользователе мы смогли извлечь на данный момент:

  1. Номер → Профиль пользователя

  2. Профиль пользователя → Общие каналы с пользователем

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

   3.  Общие каналы с пользователем → Сообщения пользователя в канале

Для этого нам поможет сценарий извлечения сообщений группы. В его основе лежит API-метод messages.getHistory. Для примера, выгрузим последние сообщения уже известного нам пользователя a_averyanova_m:

docker exec --env BOT=... -i tg-osint-lib php parseGroupMessages.php https://t.me/phuketrusa a_averyanova_m --info | head -n10 
30.01.2020 13:26:17 | parseGroupMessages.php: starting group resolver for username: phuketrusa
30.01.2020 13:26:18 | TelegramOSINTScenarioGroupMessagesScenario: resolved user a_averyanova_m to 272425703
30.01.2020 13:26:19 | TelegramOSINTScenarioGroupMessagesScenario: got message 'Учиться мопед водить ?))))  \ Ну приеду , проверю информацию )' from a_averyanova_m at 2020-01-30 12:25:48
30.01.2020 13:26:19 | TelegramOSINTScenarioGroupMessagesScenario: loading more messages, starting with 26451
30.01.2020 13:26:20 | TelegramOSINTScenarioGroupMessagesScenario: loading more messages, starting with 26332
30.01.2020 13:26:21 | TelegramOSINTScenarioGroupMessagesScenario: loading more messages, starting with 26219
30.01.2020 13:26:22 | TelegramOSINTScenarioGroupMessagesScenario: got message 'Я так поняла , тут вариантов не много, или ты катаешься без прав (наши тут с кат.авто не прокатят) и лишаешься страховки (если вдруг что)+платить штраф 500-1000бат, или идёшь и получаешь права в Тае, по времени это пару дней (когда как) и по деньгам явно дешевле, чем на лапу давать) мы по прилету , будем делать их на месте' from a_averyanova_m at 2020-01-29 14:38:40
30.01.2020 13:26:22 | TelegramOSINTScenarioGroupMessagesScenario: loading more messages, starting with 26099
30.01.2020 13:26:22 | TelegramOSINTScenarioGroupMessagesScenario: got message 'Спасибо' from a_averyanova_m at 2020-01-29 10:55:06
30.01.2020 13:26:22 | TelegramOSINTScenarioGroupMessagesScenario: got message 'Добрый день , еду на 2 месяца в Тай, кто какую страховку делал , при условии того, что буду ездить на байке без открытой категории. \ И ещё , слышала, что можно открыть категорию ( получить их права) на месте , кто этим занимался, платить каждый раз по 1000бат тоже не самый классный вариант' from a_averyanova_m at 2020-01-29 10:09:10

Помимо возможностей пост-фильтрации, есть возможность выборки по диапазону дат. Пример фильтра (~с 04.10.2019 до 27.01.2020):

docker exec --env BOT=... -i tg-osint-lib php parseGroupMessages.php https://t.me/vityapelevin -- 1570207168 1580207168 --info | grep сновидения

28.01.2020 10:45:22 | TelegramOSINTScenarioGroupMessagesScenario: got message 'Да, там про всякие сверхвозможности, в искусстве сновидения вроде' from 735896305 at 2020-01-27 21:02:01

На этом этапе проведем небольшую ретроспективу собранных данных по одному из исходных номеров:

  1. Первым шагом в разделе “Собираем сведения о владельце номера“ мы сопоставили профиль пользователя a_averyanova_m с реальным человеком, владеющим номером 7926****802

  2. Далее в разделе “Общие интересы“ определили возможные интересы человека на основе анализа общих групп (путешествия)

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

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

Гео-разведка

Использование гео-позиции открывает интересные возможности для сбора информации, однако сама по себе гео-разведка является одним из тех направлений OSINT, разрушительный эффект от которых очевиден разработчикам по умолчанию и который они всяческими методами пытаются снижать. Разработчики Telegram здесь не стали исключением и так же постарались минимизировать возможные утечки, связанные с гео-локацией. В итоге весь потенциал направления сузился до нескольких API-методов: geochats.getLocated и contacts.getLocated, но и их в некоторых случаях может хватить для извлечения дополнительной информации о пользователе — например, где он чаще всего появляется в городе?

Завершающий сценарий, который мы рассмотрим в этой статье, позволяет определять потенциальные “места обитания” пользователя на определенной локации на основе поля гео-точек. В основе сценария будет лежать API-метод contacts.getLocated, который возвращает гео-чаты и контакты, находящиеся в определенном радиусе (эмпирическая оценка ~1 километр) от заданной гео-точки. Метод возвращает структуру Updates, благодаря которой мы можем реализовать мониторинг изменений в отслеживаемой группе пользователей.

Запускаем сценарий на поле из двух точек для конкретного пользователя:

docker exec --env BOT=... -i tg-osint-lib php geoSearch.php 55.753930,37.615714,55.756390,37.661931 b00k1ng 30 --info
...
29.01.2020 16:00:06 | TelegramOSINTScenarioGeoSearchScenario: found group 'Эдвард юил' near (55.753930, 37.615714)
29.01.2020 16:00:06 | TelegramOSINTScenarioGroupMembersScenario: searching chat 1404414249 participants for b00k1ng
29.01.2020 16:00:06 | TelegramOSINTScenarioGeoSearchScenario: found group 'Френдовская' near (55.753930, 37.615714)
29.01.2020 16:00:06 | TelegramOSINTScenarioGroupMembersScenario: searching chat 1404180655 participants for b00k1ng
29.01.2020 16:00:06 | TelegramOSINTScenarioGroupMembersScenario: chat 1211826903 contains user 883904218 with username b00k1ng

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

Внутри сценарий, также как и некоторые другие, из рассмотренных выше, организован по принципу композируемости: сам сценарий GeoSearchScenario, по сути, выполняет один запрос, а дальнейшая работа по проверке участников делегируется сценарию GroupMembersScenario:

$groupHandler = function (GeoChannelModel $model) use (&$generator, &$finders, $username) {
    $membersFinder = new GroupMembersScenario(
        $model->getGroupId(),
        null,
        $generator,
        100,
        $username
    );

    $membersFinder->startActions(false);
    $finders[] = $membersFinder;
};

$search = new GeoSearchScenario($points, $groupHandler, $generator, $limit);
$search->startActions();

Заключение

В этой статье на примере библиотеки сценариев telegram-osint-lib мы разобрали ряд сценариев OSINT-направленности в сети Telegram. Как можно было заметить, разобранные “утечки“ OSINT являются издержками исходных бизнес-требований к функционалу, а потому не могут быть устранены легко. Наверное, это одна из тех причин, по которой направление разведки по открытым источникам будет существовать постоянно в том или ином виде — это что-то вроде шума в электронных цепях, к которому все уже давно привыкли: ослабить эффект возможно, но устранить полностью экономически невыгодно.

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

Мы рассмотрели ряд примеров, работающих автономно, без какого-либо “состояния” (State), однако добавление к сценариям состояния (до чего у нас пока не дошли руки), позволит вытворять еще более интересные штуки в сфере OSINT. Например обнаруженная в августе 2018 года “уязвимость“, позволяющая определять номер телефона по никнейму пользователя была не уязвимостью, а ничем иным, как OSINT-сценарием с наличием состояния: кто-то начал массово искать пользователей по номеру телефона, собирая базу данных (State) вида “пользователь->номер“, исходя из структуры которой определение телефона по никнейму являлось тривиальной операцией.

В завершение хотелось бы отметить, что Telegram API непрерывно развивается, открывая с каждым API Layer все новые возможности не только для OSINT-исследователя, поэтому любой желающий может присоединиться к разработке библиотеки сценариев и пополнять её новыми сценариями, скрывающими хитросплетения API-вызовов и решающими любые прикладные задачи в сети Telegram.

tgsint-bot

[!!under heavy development!!]

tgsint is a OSINT and pentesting telegram bot written in python.

Installation

Install necessary dependencies via pip
Install necessary dependencies.

pip install -r requirements.txt

Set up tgsint-api.

Configuration

Open .env file and add required keys/tokens…

Create a Telegram bot using @botfather and get your bot token.

Visit Shodan to obtain your API Key.

Change "1234567890|123456789" to your own telegram account id/s or simply remove user filter at the dispatcher if you want your bot to be accessible by everyone.
This part filters messages to allow only those which are from specified user ID(s).

Usage

Execute main.py  

TELEGRAM BOT:
/help to show available commands

Features

  1. Phone number lookup.
  2. Name & Surname lookup.
  3. WHOIS lookup.
  4. Subdomains lookup (uses nmap —script hostmap-crtsh).
  5. Shodan host search (gathers host IP address,CVE data and open ports).
  6. Lookup information on bosnian car licence plates.
  7. Lookup information on croatian car licence plates(tehnical examination and insurance details).
  8. Shodan host geoip lookup.
  9. Nmap scans

tgsint-api serves most of the data for the bot.

Changelog

Check the changelog file

USEFUL NOTES:

In some cases people have their middle name set on their profile page.
Finding them works the same way as for other people , middle name is excluded in the search query.

Contributing

Pull requests are welcome.
If you have a suggestion open an issue with the tag «enhancement».

Legal disclaimer:

Developers assume no liability and are not responsible for any misuse or damage caused by this program.
This program is for educational purposes.

License

MIT

Посмотреть вложение 30754

В данной статье поделюсь с вами Telegram-ботами, которые на раз-два-три предоставляют ценную информацию о запрашиваем объекте в поисках Сиболы.
Это уже неотвратимый факт, что «вся» IT-тусовка резвится в Telegram, а значит «нэтсталкеры» должны были разработать что-то такое интересное для лёгкого и качественного пробива брониобъектов в мессенджере Telegram. И они придумали OSINT-ботов.
Медлю поделиться с вами telegram-ботами, о которых мне известно, а вам/некоторым — нет, радости будут полные «трусы»). Я на это рассчитываю, а иначе…

Преимущества ботов:

  • Удобство, скорость получаемой анализируемой информации по горячим следам — высокая;
  • Простота интерфейса, все в одном приложении Telegram (ничего разучивать не нужно) ввел номер/почту/ip/… получил «сектор-приз»;
  • Отсутствие требования прохождение капчи;
  • Отсутствие необходимости вкл.Tor и идти в Даркнет к БД;
  • Отсутствие регистрации на специализированных сайтах;
  • Крутизна. Много качественной/полезной получаемой информации.

Нейтральная политика ботов:

  • Некоторые боты могут работать в демо-режиме, предоставляемый функционал просит $.

Недостатки Ботов:

  • Боты принадлежат хозяевам/разработчикам/киберпанкам, а значит могут отваливаться/глохнуть/сдохнуть;
  • Собирать вводимую пользователем информацию;
  • По направлению указательного пальца г-а Дурова боты могут исчезнуть в забвенье.

Пошла раздача

@egrul_bot


Данный бот пробивает Конторы/ИП. По вводу ФИО/Фирмы предоставляет ИНН объекта; учредителей бизнеса/партнеров и отчет налоговую декларацию. И наоборот: поиск по ИНН выдаст ФИО/конторы. БД сами понимаете откуда.
Ограничений бота – нет.
Скрин не прикладываю, много замазывать нужно.

@get_kontakt_bot
Бот пробивает номер мобильного телефона. Как записан запрашиваемый контакт в разных телефонных книжках ваших товарищей/подруг/коллег. Это аналог двух GP-приложений. Преимущества очевидные: не нужно регаться в БД/вводить свой телефон для пробива «белых ходоков». С помощью этого чудо-бота взял флаг в недавнем CTF-квесте «Конкурентная разведка 2019».
Пока функционал бота бесплатный, но бот обещает суицид-атаку в случае отсутствия донатов.

Посмотреть вложение 30755

@mailsearchbot
По запросу пробива e-mail бот выдает открытый «password» от ящика. Очень огромная/крутая БД (в даркнете висит давно, пишут 1,5млрд учёток, год актуальности ~<2014г.). Я об этой БД писал уже где-то на форуме. ИХМО, удобно составлять/вычислять персональные чарсеты с помощью, например, JTR. Функционал бесплатный.

Посмотреть вложение 30756

@getfb_bot
По запрашиваемому номеру телефона выдает ссылку на личность в Фэйсбуке. Функционал бесплатный.

Посмотреть вложение 30757

@buzzim_alerts_bot
Поисковая система по платформе Telegram. Ищет упоминания ников/каналов в чатах статьях. Присутствует функция оповещения, если что-то где-то всплывёт. Например, можно посмотреть какие каналы разнесли твои посты с Хабра, проверить ник юзера, где он еще трепался (не забывайте часто менять или на… убрать ваш ник в Tg). Скрина нет – много замазывать. Функционал бесплатный.

@krnshowtimebot
Бот позволяет проверить ip в блэк-листе РКН. Бот вроде сдох, но может очнется.

Посмотреть вложение 30758

@AvinfoBot
Бот, который по вводу мобильного телефона выдаст номер машины/марку, а также ссылку и все объявления на Avito.ru. В демо-режиме бесплатно доступно несколько таких поисков/отчетов. Ценник за функционал приличный, некоторые хитрожопые юзеры только ради этого бота сбрасывают свой аккаунт в Telegram, чтобы бесплатно пробивать своих жертв (бесконечное удаление/регистрация учетки на один и тот же номер телефона). БД Avito – или проданная или сдёрнутая, в любом случае хочется дать им в Авито по ИБ.

Посмотреть вложение 30759

@HowToFind_bot
Бот разведчик. Подскажет секреты/приемы OSINT. Аналог что-то вроде этого.

Посмотреть вложение 30760

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

Библиографическое описание:


Дворцов, Н. В. Разработка Telegram-бота для поиска ПО / Н. В. Дворцов, Д. И. Травин. — Текст : непосредственный // Молодой ученый. — 2022. — № 51 (446). — С. 11-14. — URL: https://moluch.ru/archive/446/98115/ (дата обращения: 04.03.2023).





Ключевые слова:



программа, программное обеспечение, OSINT, обработчик событий, бот, поиск.


Кто владеет информацией, тот владеет миром.

Натан Майер Ротшильд (1777–1836), немецкий бизнесмен

Студенческая жизнь айтишника требует не столько большого количества программного обеспечения, сколько оперативный доступ к нему. Конечно, большую часть потребностей способен удовлетворить вуз, но из-за сложившийся политической ситуации студенты вынуждены пользоваться многими программами только в университете ввиду того, что удаленный доступ также работал на компонентах недружественных к РФ стран.

Разумеется, можно просто потратить чуть больше времени на прямой поиск в интернете нужной программы (OSINT, open-source intelligence, разведка на основе открытых данных), но часто это отнимает немалый объем времени и ставит риск поражения вашего компьютера вредоносным ПО.

Мы же как студенты информационной безопасности решили разработать собственную систему по обмену программным обеспечением. Система представляет из себя бота для Telegram, html-страницу, по которой программа осуществляет парсинг (принятое в информатике определение синтаксического анализа) и систему хранения данных, в нашем случае программ.

Первым делом наша команда провела анкетирование, в котором мы искали ответ на вопрос «А нужна ли такая система?».

Вопросы анкеты.

Рис. 1. Вопросы анкеты.

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

Эти данные мы учли при разработке бота. Он должен быть быстрым, безопасным, охватывать максимальное число программ и не требовать специальной настройки. Поэтому нами и был выбран Telegram в качестве платформы для осуществления работы модели «пользователь-СХД».

Таблица с результатами анкетирования

Рис. 2. Таблица с результатами анкетирования

Для разработки программы мы выбрали язык Python 3.8.6. Его синтаксис и функции наиболее удобны для обработки требуемых параметров. Основным двигателем бота выступила библиотека telebot.

Первоначально нами рассматривалась библиотека aiogram из-за встроенных возможностей оплаты через привязку карты и безопасную транзакцию внутри самого Telegram. Но в ходе начальных этапов тестирования было принято решение отказаться от нее из-за сложностей с монтажом платежной системы и конфликта с нашей html-библиотекой, а также проблем с быстродействием при массовой нагрузке.

Сбои в работе aiogram возникли при 28 подключениях, а у telebot — 40.

Рис. 3. Сбои в работе aiogram возникли при 28 подключениях, а у telebot — 40.

Весь функционал бота реализуется по средствам двух обработчиков событий: message_handler(commands= [‘start’]) — реализует обработку приветствий (/start — начало общения) и обработку четырехкнопочной клавиатуры, которая служит для осуществления навигации внутри бота; message_handler(content_types= [‘text’]) — реализует обработку текстовых обращений к боту и нажатия на кнопки.

Для создания клавиатуры используется метод ReplayKeyboardMarkup. Для создания клавиш — KeyboardButton

Рис. 4. Для создания клавиатуры используется метод ReplayKeyboardMarkup. Для создания клавиш — KeyboardButton

Строки 29–30 содержат в себе обработчик событий и советующую функцию

Рис. 5. Строки 29–30 содержат в себе обработчик событий и советующую функцию

В боте также присутствует система оплаты, которая на данном этапе реализована через считывание и проверку ботом никнейма пользователя Telegram. То есть пользователь оплачивает подписку и модератор в течение 24 часов с момента оплаты открывает доступ к функциям системы. В дальнейшем данную схему планируется дорабатывать.

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

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

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

Теперь же перейдем к части, касающейся обратной связи.

Как и было сказано выше, в нашей программе для поиска используется парсинг данных с html-страницы.

Парсинг состоит из трех этапов:

  1. Поиск
  2. Извлечение
  3. Сохранение

Для реализации поиска мы использовали библиотеки beautifulsoup4, requests и pandas.

Первым этапом формируется get-запрос по структуре r = requests.get(‘ссылка’). Далее при помощи аргумента text получаем весь html-код нашей страницы.

Теперь при помощи ограничения параметров добиваемся получения ссылок на программу в зависимости от введенного названия. Каждая ссылка содержит свой уникальный id:

Рис. 6

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

Основные термины (генерируются автоматически): OSINT, обработчик событий, программа, программное обеспечение, бот, нужная программа, поиск.

Ключевые слова

программное обеспечение,

программа,

поиск,

OSINT,

обработчик событий,

бот

программа, программное обеспечение, OSINT, обработчик событий, бот, поиск

Похожие статьи

Применение инструментов OSINT для выявления уязвимостей…

Данная тенденция стала наиболее актуальной с применением инструментов OSINT.

Инструменты OSINT не являются программами взлома, а лишь вспомогательным дополнением к

Платформа OSINT Framework не является полноценным инструментом поиска, но она

Данные события возникают на системном и сетевом уровнях, носят нежелательный характер и…

Применение инструментов OSINT для повышения безопасности…

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

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

Создание программы для сканирования уязвимостей…

Рис. 4. Модель взаимодействия программы. Механизм сканирования выполняет соединение с сервером через ссылку, предоставленную пользователем через параметр, анализируя входные параметры, чтобы найти соответствующий механизм сканирования (или атакующего).

Системы сбора информации в аспекте кибербезопасности

Он поддерживает специфические для платформы источники, такие как журнал событий

обеспечивающее централизованное управление журналами и являющееся программным обеспечением для мониторинга сети.

– Система должна иметь автоматизацию способов поиска угроз.

– Агент — небольшая программа, работающая на удаленной конечной точке.

Интернет-угрозы и способы защиты от них | Статья в журнале…

Троянская программа (также — троян, троянский конь) — вредоносная программа, распространяемая людьми…Чаще всего бот в составе ботнета является программой, скрытно устанавливаемой на…В нужный момент по команде владельца ботнета такая программа активизируется и…- ᐧРегулярно выполняйте обновления программного обеспечения.

Использование чат-ботов в различных сферах повседневной жизни

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

Современные системы автоматизированного динамического…

Вредоносные программы являются одной из самых серьезных угроз компьютерной

Под вредоносными программами можно понимать специальный класс программного

из гостевой системы и передаче управления гипервизору (возникновение событий, приводящих к VMExit).

При поиске вредоносного программного обеспечения методом обнаружения изменений…

Аналитический обзор методов обнаружения вредоносных…

Проекты. Меню. Поиск.

В данной статье произведен обзор и анализ методов обнаружения вредоносных программ.

Существует большинство методов обнаружения вредоносных программных средств, для

обнаружения вторжения кодируют данные об атаках и правила импликации «если… то», а также подтверждают их, обращаясь к контрольным записям событий.

Анализ методов обнаружения вредоносных программ

Выделены и рассмотрены основные методы обнаружения вредоносных программ.

При этом, классическое сканирование предполагает поиск вредоносных программ по их

При поиске вредоносного программного обеспечения методом обнаружения изменений

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

Похожие статьи

Применение инструментов OSINT для выявления уязвимостей…

Данная тенденция стала наиболее актуальной с применением инструментов OSINT.

Инструменты OSINT не являются программами взлома, а лишь вспомогательным дополнением к

Платформа OSINT Framework не является полноценным инструментом поиска, но она

Данные события возникают на системном и сетевом уровнях, носят нежелательный характер и…

Применение инструментов OSINT для повышения безопасности…

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

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

Создание программы для сканирования уязвимостей…

Рис. 4. Модель взаимодействия программы. Механизм сканирования выполняет соединение с сервером через ссылку, предоставленную пользователем через параметр, анализируя входные параметры, чтобы найти соответствующий механизм сканирования (или атакующего).

Системы сбора информации в аспекте кибербезопасности

Он поддерживает специфические для платформы источники, такие как журнал событий

обеспечивающее централизованное управление журналами и являющееся программным обеспечением для мониторинга сети.

– Система должна иметь автоматизацию способов поиска угроз.

– Агент — небольшая программа, работающая на удаленной конечной точке.

Интернет-угрозы и способы защиты от них | Статья в журнале…

Троянская программа (также — троян, троянский конь) — вредоносная программа, распространяемая людьми…Чаще всего бот в составе ботнета является программой, скрытно устанавливаемой на…В нужный момент по команде владельца ботнета такая программа активизируется и…- ᐧРегулярно выполняйте обновления программного обеспечения.

Использование чат-ботов в различных сферах повседневной жизни

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

Современные системы автоматизированного динамического…

Вредоносные программы являются одной из самых серьезных угроз компьютерной

Под вредоносными программами можно понимать специальный класс программного

из гостевой системы и передаче управления гипервизору (возникновение событий, приводящих к VMExit).

При поиске вредоносного программного обеспечения методом обнаружения изменений…

Аналитический обзор методов обнаружения вредоносных…

Проекты. Меню. Поиск.

В данной статье произведен обзор и анализ методов обнаружения вредоносных программ.

Существует большинство методов обнаружения вредоносных программных средств, для

обнаружения вторжения кодируют данные об атаках и правила импликации «если… то», а также подтверждают их, обращаясь к контрольным записям событий.

Анализ методов обнаружения вредоносных программ

Выделены и рассмотрены основные методы обнаружения вредоносных программ.

При этом, классическое сканирование предполагает поиск вредоносных программ по их

При поиске вредоносного программного обеспечения методом обнаружения изменений

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

В этой статье будет рассмотрено, как при помощи OSINT и адреса электронной почты узнать, какие сайты посещает пользователь.

Автор: Behrouz Mansoori

В этой статье будет рассмотрено, как при помощи OSINT и адреса электронной почты узнать, какие сайты посещает пользователь.

Для тех, кто не знаком с этой концепцией, поясню, что технология OSINT расшифровывается как Open-Source INTelligence (разведка на основе открытых источников) и в основном представляет собой сбор публично доступной информации в интернете для последующего анализа. С другой стороны, поведенческие характеристики описывают деятельность пользователя, в том числе и перечень посещаемых сайтов. Например, так: «Боб – женатый юрист и использует Dropbox, LinkedIn и Facebook. Также у Боба есть учетная запись в Gmail».

Проблемы безопасности электронной почты

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

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

Ситуация

Ответ сервера

Электронная почта не хранится в базе приложения

Учетная запись с такой электронной почтой не найдена

Электронная почта хранится в базе данных, но пароль неверный

Пароль неверный, попробуйте снова

Вышеуказанные примеры позволяют определить, зарегистрирован ли пользователь в системе. Однако не каждое потенциально уязвимое приложение выдает такие ответы. Иногда, информация утекает во время отсылки браузеру статусного HTTP-кода, отличного от 200, или перенаправления на другую страницу, на которой можно извлечь нужные сведения.

Почему эти уязвимости встречаются в приложениях?

Основная причина заключается в желании архитекторов сделать систему более удобной, плюс, в некоторой степени, влияние крупных игроков, таких как Microsoft или Google, которые задают современные тренды в проектировании и написании приложений.

Сервис

Ситуация

Ответ сервера

Outlook

Несуществующий пользователь

Такой учетной записи не существует

Gmail

Несуществующий пользователь

Невозможно найти вашу учетную запись

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

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

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

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

· Пользовательские учетные записи потенциально могут быть получены при помощи брутфорса.

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

· OSINT может использоваться для выяснения персональной информации на сайтах, где зарегистрирован пользователь.

Как решить проблему?

С точки зрения разработчика ответ сервера должен быть таким, чтобы не было понятно, что произошло, как показано в таблице ниже.

Ситуация

Ответ сервера

Несуществующая электронная почта

Предоставленные учетные данные не корректны

Существующая почта с неправильным паролем

Предоставленные учетные данные не корректны

Twitter – один из примеров, где было пожертвовано частью удобствами пользователей ради безопасности:

Сервис

Ситуация

Ответ сервера

Twitter

Несуществующий пользователь

Введенная электронная почта и пароль не совпадают ни с одной нашей записью

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

OSINT в контексте электронной почты

Начиная с небольших веб-приложений, написанных на PHP, JavaScript или Python, и заканчивая широко известными сайтами по всему миру, включая ERP и CRM системы с открытым исходным кодом, существует масса случаев утечек электронных адресов из баз данных.

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

Автоматический OSINT в связке с DataSploit

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

Ниже показан перечень команд для установки DataSploit:

git clone https://github.com/datasploit/datasploit /etc/datasploit

cd /etc/datasploit/

pip install -r requirements.txt

mv config_sample.py config.py

Если установка завершилась успешно, в консоли будет выведено следующее сообщение:

python datasploit.py

True

Для запуска потребуется нужно указать цель или файл.

Формат команды: datasploit.py [-h] [-i SINGLE_TARGET] [-f FILE_TARGET] [-a] [-q] [-o OUTPUT]

Возможные аргументы:

Аргумент

Описание

-h, —help

Показать справку и выйти

-i SINGLE_TARGET, —input SINGLE_TARGET

Нужно указать цель

-f FILE_TARGET, —file FILE_TARGET

Нужно указать файл

-a, —active

Активное сканирование

-q, —quiet

Тихое сканирование в автоматическом режиме и принятие стандартных ответов

-o OUTPUT, —output OUTPUT

Нужно указать целевую директорию

Ниже показан пример для сбора информации, касающейся конкретного электронного адреса:

python emailOsint.py bob@genericdomain.org

Результат работы команды:

[-] Skipping Hacked because it is marked as disabled.

—> Finding Paste(s)..

[-] google_cse_key not configured

[-] google_cse_key and google_cse_cx not configured. Skipping paste(s) search.

Please refer to http://datasploit.readthedocs.io/en/latest/apiGeneration/.

—> Searching Scribd Docs

—> Checking breach status in HIBP (@troyhunt)

Pwned at 4 Instances

Title: Adobe

BreachDate: 2013-10-04

PwnCount: 152445165

Description: In October 2013, 153 million Adobe accounts were breached with each containing an internal ID, username, email, <em>encrypted</em> password and a password hint in plain text. The password cryptography was poorly done and <a href=»http://stricture-group.com/files/adobe-top100.txt&quot; target=»_blank» rel=»noopener»>many were quickly resolved back to plain text</a>. The unencrypted hints also <a href=»http://www.troyhunt.com/2013/11/adobe-credentials-and-serious.html&quot; target=»_blank» rel=»noopener»>disclosed much about the passwords</a> adding further to the risk that hundreds of millions of Adobe customers already faced.

DataClasses: Email addresses, Password hints, Passwords, Usernames

Title: Dropbox

BreachDate: 2012-07-01

PwnCount: 68648009

Description: In mid-2012, Dropbox suffered a data breach which exposed the stored credentials of tens of millions of their customers. In August 2016, <a href=»https://motherboard.vice.com/read/dropbox-forces-password-resets-after-user-credentials-exposed&quot; target=»_blank» rel=»noopener»>they forced password resets for customers they believed may be at risk</a>. A large volume of data totalling over 68 million records <a href=»https://motherboard.vice.com/read/hackers-stole-over-60-million-dropbox-accounts&quot; target=»_blank» rel=»noopener»>was subsequently traded online</a> and included email addresses and salted hashes of passwords (half of them SHA1, half of them bcrypt).

DataClasses: Email addresses, Passwords

Title: LinkedIn

BreachDate: 2012-05-05

PwnCount: 164611595

Description: In May 2016, <a href=»https://www.troyhunt.com/observations-and-thoughts-on-the-linkedin-data-breach&quot; target=»_blank» rel=»noopener»>LinkedIn had 164 million email addresses and passwords exposed</a>. Originally hacked in 2012, the data remained out of sight until being offered for sale on a dark market site 4 years later. The passwords in the breach were stored as SHA1 hashes without salt, the vast majority of which were quickly cracked in the days following the release of the data.

DataClasses: Email addresses, Passwords

Title: MySpace

BreachDate: 2008-07-01

PwnCount: 359420698

Description: In approximately 2008, <a href=»http://motherboard.vice.com/read/427-million-myspace-passwords-emails-data-breach&quot; target=»_blank» rel=»noopener»>MySpace suffered a data breach that exposed almost 360 million accounts</a>. In May 2016 the data was offered up for sale on the &quot;Real Deal&quot; dark market website and included email addresses, usernames and SHA1 hashes of the first 10 characters of the password converted to lowercase and stored without a salt. The exact breach date is unknown, but <a href=»https://www.troyhunt.com/dating-the-ginormous-myspace-breach&quot; target=»_blank» rel=»noopener»>analysis of the data suggests it was 8 years before being made public</a>.

DataClasses: Email addresses, Passwords, Usernames

—> Checking Fullcontact..

[-] fullcontact_api not configured

[-] Full-Contact API Key not configured. Skipping Fullcontact Search.

Please refer to http://datasploit.readthedocs.io/en/latest/apiGeneration/.

—> Searching Clearbit

[-] clearbit_apikey not configured

[False, ‘INVALID_API’]

[-] Clearbit API Key not configured. Skipping Clearbit Search.

Please refer to http://datasploit.readthedocs.io/en/latest/apiGeneration/.

—> Basic Email Check(s)..

[-] mailboxlayer_api not configured

[-] mailboxlayer_api not configured

[-] MailBoxLayer_API Key not configured. Skipping basic checks.

Please refer to http://datasploit.readthedocs.io/en/latest/apiGeneration/.

—> Searching Slideshare

—> Searching Whoismind for associated domains

Мы получили очень много информации. При помощи базового запроса выяснилось, что пользователь с электронной почтой bob@genericdomain.org использует Adobe, Dropbox, LinkedIn и MySpace.

Обратите внимание, что для получения информации DataSploit интенсивно использует сторонние сервисы и API. Отчет выше был получен при помощи публичного сервиса haveibeenpwned.com (HIBP), который проверяет, присутствует ли конкретный адрес электронной почте в массиве скомпрометированных данных.

Соответствующая секция в отчете выше:

—> Checking breach status in HIBP (@troyhunt)

Для более детального отчета по другим раздела нужно получить API-ключ у соответствующего провайдера информации, который поддерживает DataSploit:

· https://account.shodan.io/register

· https://www.censys.io/register

· https://dashboard.clearbit.com/signup

· https://hunter.io/users/sign_up

· https://dashboard.fullcontact.com/signup

· https://console.developers.google.com/

· https://www.zoomeye.org/accounts/register

Затем нужно выполнить соответствующие настройки в файле config.py.

Заключение

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

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

Кроме того, мы рассмотрели фреймворк DataSploit, который автоматизирует сбор информации по технологии OSINT. В частности, скрипт emailOsint.py предназначен для сбора информации об электронной почте. Более того, был рассмотрен пример, как легко выяснить сайты, на которых зарегистрирован указанная электронная почта.

OSINT на платформе Telegram & наркогео_чаты Telegram - 1

OSINT на платформе Telegram

В данной статье поделюсь с вами Telegram-ботами, которые на раз-два-три предоставляют ценную информацию о запрашиваем объекте в поисках «Сиболы», а так же упомяну тему гео_чатов.

Это уже неотвратимый факт, что «вся» IT-тусовка резвится в Telegram, а значит «нэтсталкеры» должны были разработать что-то такое интересное для лёгкого и качественного пробива брониобъектов в мессенджере Telegram. И они придумали OSINT-ботов.
Медлю поделиться с вами telegram-ботами, о которых мне известно, а вам/некоторым — нет, для кого-то данная статья — made your day!

Преимущества ботов:

  • Удобство, скорость получаемой анализируемой информации по горячим следам — высокая;
  • Простота интерфейса, все в одном приложении Telegram (ничего разучивать не нужно) ввел номер/почту/ip/… получил «сектор-приз»;
  • Отсутствие требования прохождение капчи;
  • Отсутствие необходимости вкл.Tor и идти в Даркнет к БД;
  • Отсутствие регистрации на специализированных сайтах;
  • Крутизна. Много качественной/полезной получаемой информации.

Нейтральная политика ботов:

  • Некоторые боты могут работать в демо-режиме, предоставляемый функционал просит $.

Недостатки Ботов:

  • Боты принадлежат хозяевам/разработчикам/киберпанкам, а значит могут отваливаться/глохнуть/сдохнуть;
  • Собирать вводимую пользователем информацию;
  • По направлению указательного пальца г-а Дурова боты могут исчезнуть в забвенье.

Раздача

@egrul_bot
Данный бот пробивает Конторы/ИП. По вводу ФИО/Фирмы предоставляет ИНН объекта; учредителей бизнеса/партнеров и отчет налоговую декларацию. И наоборот: поиск по ИНН выдаст ФИО/конторы. БД — ФНС. Ограничений бота – нет.
OSINT на платформе Telegram & наркогео_чаты Telegram - 2

@get_kontakt_bot
Бот пробивает номер мобильного телефона. Как записан запрашиваемый контакт в разных телефонных книжках ваших товарищей/подруг/коллег. Это аналог двух GP-приложений. Преимущества очевидные: не нужно регаться в БД/вводить свой телефон для пробива «белых ходоков». С помощью этого чудо-бота взял флаг в недавнем CTF-квесте «Конкурентная разведка 2019».
Пока функционал бота бесплатный, но бот обещает суицид-атаку в случае отсутствия донатов.
OSINT на платформе Telegram & наркогео_чаты Telegram - 3

@mailsearchbot
По запросу пробива e-mail бот выдает открытый «password» от ящика. Очень огромная/крутая БД (в даркнете висит давно, пишут 1,5млрд учёток, год актуальности ~<2014г.). Удобно составлять/вычислять персональные чарсеты с помощью, например, JTR. Функционал бесплатный. После публикации своей статьи, буквально на следующий день, когда тему подхватили СМИ, бот стал выдавать «pass**» такого вида.
OSINT на платформе Telegram & наркогео_чаты Telegram - 4
Изначальный функционал, pass
OSINT на платформе Telegram & наркогео_чаты Telegram - 5

@getfb_bot
По запрашиваемому номеру телефона выдает ссылку на личность в Фэйсбуке. Функционал бесплатный, а БД небольшая.
OSINT на платформе Telegram & наркогео_чаты Telegram - 6

@buzzim_alerts_bot
Поисковая система по платформе Telegram. Ищет упоминания ников/каналов в чатах статьях. Присутствует функция оповещения, если что-то где-то всплывёт. Например, можно посмотреть какие Telegram каналы и чаты копипастят твои посты с Хабра, проверить ник юзера, где он еще трепался (не забывайте часто менять или на… убрать ваш ник в Tg).
OSINT на платформе Telegram & наркогео_чаты Telegram - 7

@krnshowtimebot
Бот, который чекает ip в блэк-листе РКН
OSINT на платформе Telegram & наркогео_чаты Telegram - 8

@AvinfoBot
Бот, который по вводу мобильного телефона выдаст номер машины/марку, а также ссылку и все объявления на Avito.ru. В демо-режиме бесплатно доступно несколько таких поисков/отчетов. Ценник за функционал «адекватный», некоторые хитро*опые юзеры только ради этого бота сбрасывают свой аккаунт в Telegram, чтобы бесплатно пробивать своих жертв (бесконечное удаление/регистрация учетки на один и тот же номер телефона). БД Avito – или проданная или сдёрнутая, в любом случае хочется дать им в Авито по ИБ.
OSINT на платформе Telegram & наркогео_чаты Telegram - 9

@HowToFind_bot
Бот разведчик. Подскажет секреты/приемы OSINT. Аналог что-то вроде этого
OSINT на платформе Telegram & наркогео_чаты Telegram - 10
(Перепечатка своей статьи).

Наркогео_чаты Telegram

Недавно в мессендежере Telegram появилась функция геочатов. Но PR-вброс такого функционала поступил в сеть заранее таких чатов.
И барыги оживились: повылазили из темных глубин интернета и (ИМХО) подпортили репутацию самого мессенджера — повсюду создали наркогеографию.
Несколько дней назад я отправил десятки репортов/жалоб команде Telegram на такие сообщества, а так же пожаловался волонтерам в ожидании «расстрела», но расстрела не последовало, никто не удосужился перезарядить винтовку уничтожить/забанить подобные канал-чаты.
OSINT на платформе Telegram & наркогео_чаты Telegram - 11

Кстати, с помощью Fake GPS location п.21 можно подделать любоё своё GPS-положение и, например, создать в любой местности наркогео_чат.
OSINT на платформе Telegram & наркогео_чаты Telegram - 12

Вывод: я поделился инфой. И ни в коем случае, не призываю отказаться/заменить от классики OSINT ваших наработок и приёмов добычи информации, смысл статьи в другом, надеюсь вы уловили в чём смысл, чудесного дня!

Автор: ne555

Источник

Казалось бы, Telegram — анонимный мессенджер, и найти реального человека, владеющего аккаунтом, невозможно. Но это не так уж и невозможно, если у вас есть хоть какие-то навыки OSINT.

В данной статье будет подборка инструментов для идентификации владельца Telegram-аккаунта

  1. @UniversalSearchBot — бот, предназначенный для поиска исключительно открытой информации по таким запросам, как: номер телефона, адрес электронной почты, государственный номер автомобиля, имя пользователя, IP-адрес, доменное имя, геолокация, фотография, Telegram ID и ВКонтакте. Прекрасно автоматизирует OSINT.

  2. @QuickOSINT_bot — по Telegram-аккаунту выдает группы, имя, иногда удаленную аватарку. Умеет искать в утечках по номеру и электронной почте
  3. https://telescan-group.ru/ — выдает публичные и приватные группы, в которых когда-либо состоял пользователь, историю смены имен, сообщения пользователя в группах
  4. @telesint_bot — выдает группы, в которых был пользователь
  5. @username_to_id_bot — с помощью этого бота можно узнать ID пользователя

  6. @ibhldr_bot — показывает интересы пользователя на основе каналов, в которых он состоит

  7. @maigret_osint_bot — проверка Username. Maigret проверяет наличие зарегистрированного пользователя с конкретным никнеймом среди 1366 различных сайтов.
  8. @SangMataInfo_bot — показывает историю изменения профиля (Username, имя)
  9. https://telegcrack.com/ — поисковик по Telegraph. Можно найти статьи, которые создавал пользователь

  10. @RegDateBot — покажет примерную дату регистрации аккаунта

Всем этим ресурсам достаточно дать Username или ID аккаунта.

Понравилась статья? Поделить с друзьями:
  • Как написать opinion essay на английском
  • Как написать nvidia письмо
  • Как написать num
  • Как написать msconfig на windows 10
  • Как написать mr beast