Пожалуйста, обратите внимание, что пользователь заблокирован
У меня есть разработка на php и node js для исследования gmail, делалась для одной из нашумевшей организаций, которая потом развалилась из-за токсичности.
Я недавно занимался этой темой, приложение выкладывать не стал, там код поменялся, гугл стал хитрее, но ход мысли не поменялся.
Что хотелось бы выяснить - точный шифр пакетов гугла, возможность "выкусывания" пакетов, отвечающих за информирование гугла о неестественных способах создания аккаунта.
Рекомендуется для людей не стеснённых в средствах, приблизительный расчёт ~ 1 год.
Полный отчёт дам в личку.
30.10.2021
Служебная записка
Задание
Требуется создать систему регистрации почтовых аккаунтов на серверах Gmail, AOL, Yahoo, GMH с возможностью рассылки почтовых сообщений с эмуляцией действий человека.
Выполнение работ
Дан сервер *.
В директории /home/dad/puppeteer создана система для общего управления регистрацией и манипуляцией почтовых аккаунтов на основе puppeteer.
В файле gmail.js (запускается в консоли так: node gmail.js) создан скрипт автоматической регистрации почтового аккаунта на сервере Gmail, основанный на телефонах, полученных из API сайта *. Этот скрипт учитывает состояние кук, создаёт временные задержки, имитируя действия человека.
Также применяются все виды ввода данных, включая движения мышью и нажатия на клавиши, что иллюстрируется на приведённых скриншотах, созданных puppeteer’ом.
Рис.1 Вставлен номер телефона
Рис.2 Вставлен месяц рождения
Рис.3 Вставлен день рождения
Рис.4 Вставлен год рождения
Рис.5 Вставлен пол
Рис.6 После нажатия кнопки Next
Рис.7 После нажатия кнопки Yes, I’m in
Рис.8 Финал, аккаунт создан (личные данные генерируются API сайта *)
Аккаунт создаётся, но при попытке войти в него выдаётся сообщение, что аккаунт создан программой, "Вы можете попытаться его восстановить, подав соответствующую заявку".
Рис.9 Аккаунт заблокирован
Один аккаунт я так почти восстановил, но попросили ввести номер телефона, а он не сохраняется.
В статье Detecting Headless Chrome разбирается случай, когда, якобы, можно сделать “безголовый” Хром невидимым. Я проверил, это оказалось не так.
Рис.10 Отдача скрипта (из статьи) до проверки
Рис.11 Отдача скрипта (из статьи) после проверки
Я списался с автором статьи, мы поработали вместе немного над этим вопросом, потом он, видимо, испугался и перестал отвечать.
Для решения этой задачи - устранения проблемы с обнаружением puppeteer'а, в директории /var/www/clients/client1/web2/web была создана с помощью фреймворка Yii2 система анализа трафика, который был записан между сервером и внешними устройствами в процессе создания почтового аккаунта. Также был записан поток трафика в течение 8 часов без никаких взаимодействий с сервером Gmail. Это было сделано для того, чтобы сравнить внешние серверы, которые появляются при взаимодействии с Gmail. Для этого была создана система по адресу *, где представлены логи трафика, упомянутые выше.
Под названием пункта меню Simple IP compare представлена таблица из 192 тысяч пакетов за 8 часов.
Рис.12
Под названием пункта меню Gmail IPs представлена таблица из 9725 пакетов трафика, записанных при взаимодействии с серверами Gmail.
Рис.13
В таблице IP difference, состоящая из 9264 записей, представлен трафик как разница между первыми двумя таблицами.
Рис.14
В таблице Grouped difference представлены 54 записи, представляющие собой домены и адреса внешних серверов, с которыми взаимодействует наш сервер во время работы с Gmail.
Рис.15
В пункте меню Detailed difference представлены 9724 пакета трафика во время работы с серверами Gmail, преобразованные из формата .json и записанные в 352 поля. Это очень подробные данные, автоматизировано разнесённые по разным полям для скрупулёзного анализа.
Рис.16
Описание моделей и методов консольных классов
Модели
Созданы по классическому принципу “толстая модель, тонкий контроллер”.
Модель Simple
Метод getImport()
Производит с помощью метода getFilesNames() импортирование файлов csv, находящихся в базовой директории. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii simple.
Модель Gmail
Делает то же самое с трафиком взаимодействия с сервером Gmail, записанным консольной утилитой tshark и преобразованным в формат csv, записан в базовую директорию. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii gmail.
Модель Difference
Метод getDifference()
Создан для вычисления разницы между восьмичасовым трафиком и трафиком взаимодействия с сервером Gmail. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii difference.
Метод getFilesNames()
Предназначен для создания списка файлов, находящихся в базовой территории, имеющих расширение csv.
Метод getJson()
Предназначен для сбора наименований, размеров и значений всех полей пакетов трафика. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii difference/json.
Метод allFields()
Принимает как параметры: объект, представляющий из себя отдельный пакет трафика и параметр для обозначения факта события - брать ли и возвращать ли значения данных этого пакета или нет.
Метод allFields() возвращает все поля объектов, рекурсивно вложенных друг в друга в отдельном пакете трафика.
Метод getStructure()
Предназначен для создания массива всех полей всех пакетов трафика, их типа, размера и наименования. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii difference/structure.
Метод getRequest()
На основе метода getStructure() создаёт текстовую строку, представляющую из себя запрос к базе данных для создания таблицы БД detailed. Ограничительными параметрами для этой таблицы являются - размер поля пакета трафика больше 0, замена всех точек и дефисов на знак подчёркивания в наименовании поля таблицы базы данных, замена всех полей VARCHAR с размером больше 1kB на тип поля LONGTEXT для предотвращения переполнения длины строки. На выходе метода getRequest() получаем строку, записываемую в файл request.sql, в базовую директорию модели Difference. Таким образом, были преодолены ограничения базы данных MySQL. Запускается метод из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii difference/request.
Модель Detailed
Метод getField()
Предназначен для заполнения таблицы БД detailed данными подробного трафика, записанного в файл gmail.packets.json с преобразованием наименования полей пакета трафика в наименование полей таблицы БД путём замены знаков "дефис" и "точка" на знак подчёркивания “_”. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii detailed.
Результат представлен на скриншоте phpmyadmin Рис.17.
Заключение
Таким образом, преодолены ограничения базы данных, появилась возможность производить множественные серии экспериментов для выяснения точного содержимого пакетов и их дешифрации, отправляемых при регистрации не только аккаунта Gmail, а также и других почтовых сервисов.
Ввиду экстремальной ценности развития этого вектора атаки на почтовые серверы, ибо это практически “золотое дно” для спама, прошу рассмотреть возможность присвоить этому направлению работ статус научно-исследовательской лаборатории с расширением количества штатных единиц до трёх работников и увеличением ежемесячного бюджета до пяти тысяч долларов (я, как ответственный за эту тему $3000, дешифровщик пакетов $1000 и специалист по искусственному интеллекту $1000). Повторюсь - при наличии возможности и желания. Без такого наличия я по-прежнему буду с удовольствием рыть эту жутко интересную тему в одиночестве, но хотелось бы ускорить получение результата.
Я недавно занимался этой темой, приложение выкладывать не стал, там код поменялся, гугл стал хитрее, но ход мысли не поменялся.
Что хотелось бы выяснить - точный шифр пакетов гугла, возможность "выкусывания" пакетов, отвечающих за информирование гугла о неестественных способах создания аккаунта.
Рекомендуется для людей не стеснённых в средствах, приблизительный расчёт ~ 1 год.
Полный отчёт дам в личку.
30.10.2021
Служебная записка
Задание
Требуется создать систему регистрации почтовых аккаунтов на серверах Gmail, AOL, Yahoo, GMH с возможностью рассылки почтовых сообщений с эмуляцией действий человека.
Выполнение работ
Дан сервер *.
В директории /home/dad/puppeteer создана система для общего управления регистрацией и манипуляцией почтовых аккаунтов на основе puppeteer.
В файле gmail.js (запускается в консоли так: node gmail.js) создан скрипт автоматической регистрации почтового аккаунта на сервере Gmail, основанный на телефонах, полученных из API сайта *. Этот скрипт учитывает состояние кук, создаёт временные задержки, имитируя действия человека.
Также применяются все виды ввода данных, включая движения мышью и нажатия на клавиши, что иллюстрируется на приведённых скриншотах, созданных puppeteer’ом.
Рис.1 Вставлен номер телефона
Рис.2 Вставлен месяц рождения
Рис.3 Вставлен день рождения
Рис.4 Вставлен год рождения
Рис.5 Вставлен пол
Рис.6 После нажатия кнопки Next
Рис.7 После нажатия кнопки Yes, I’m in
Рис.8 Финал, аккаунт создан (личные данные генерируются API сайта *)
Аккаунт создаётся, но при попытке войти в него выдаётся сообщение, что аккаунт создан программой, "Вы можете попытаться его восстановить, подав соответствующую заявку".
Рис.9 Аккаунт заблокирован
Один аккаунт я так почти восстановил, но попросили ввести номер телефона, а он не сохраняется.
В статье Detecting Headless Chrome разбирается случай, когда, якобы, можно сделать “безголовый” Хром невидимым. Я проверил, это оказалось не так.
Рис.10 Отдача скрипта (из статьи) до проверки
Рис.11 Отдача скрипта (из статьи) после проверки
Я списался с автором статьи, мы поработали вместе немного над этим вопросом, потом он, видимо, испугался и перестал отвечать.
Для решения этой задачи - устранения проблемы с обнаружением puppeteer'а, в директории /var/www/clients/client1/web2/web была создана с помощью фреймворка Yii2 система анализа трафика, который был записан между сервером и внешними устройствами в процессе создания почтового аккаунта. Также был записан поток трафика в течение 8 часов без никаких взаимодействий с сервером Gmail. Это было сделано для того, чтобы сравнить внешние серверы, которые появляются при взаимодействии с Gmail. Для этого была создана система по адресу *, где представлены логи трафика, упомянутые выше.
Под названием пункта меню Simple IP compare представлена таблица из 192 тысяч пакетов за 8 часов.
Рис.12
Под названием пункта меню Gmail IPs представлена таблица из 9725 пакетов трафика, записанных при взаимодействии с серверами Gmail.
Рис.13
В таблице IP difference, состоящая из 9264 записей, представлен трафик как разница между первыми двумя таблицами.
Рис.14
В таблице Grouped difference представлены 54 записи, представляющие собой домены и адреса внешних серверов, с которыми взаимодействует наш сервер во время работы с Gmail.
Рис.15
В пункте меню Detailed difference представлены 9724 пакета трафика во время работы с серверами Gmail, преобразованные из формата .json и записанные в 352 поля. Это очень подробные данные, автоматизировано разнесённые по разным полям для скрупулёзного анализа.
Рис.16
Описание моделей и методов консольных классов
Модели
Созданы по классическому принципу “толстая модель, тонкий контроллер”.
Модель Simple
Метод getImport()
Производит с помощью метода getFilesNames() импортирование файлов csv, находящихся в базовой директории. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii simple.
Модель Gmail
Делает то же самое с трафиком взаимодействия с сервером Gmail, записанным консольной утилитой tshark и преобразованным в формат csv, записан в базовую директорию. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii gmail.
Модель Difference
Метод getDifference()
Создан для вычисления разницы между восьмичасовым трафиком и трафиком взаимодействия с сервером Gmail. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii difference.
Метод getFilesNames()
Предназначен для создания списка файлов, находящихся в базовой территории, имеющих расширение csv.
Метод getJson()
Предназначен для сбора наименований, размеров и значений всех полей пакетов трафика. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii difference/json.
Метод allFields()
Принимает как параметры: объект, представляющий из себя отдельный пакет трафика и параметр для обозначения факта события - брать ли и возвращать ли значения данных этого пакета или нет.
Метод allFields() возвращает все поля объектов, рекурсивно вложенных друг в друга в отдельном пакете трафика.
Метод getStructure()
Предназначен для создания массива всех полей всех пакетов трафика, их типа, размера и наименования. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii difference/structure.
Метод getRequest()
На основе метода getStructure() создаёт текстовую строку, представляющую из себя запрос к базе данных для создания таблицы БД detailed. Ограничительными параметрами для этой таблицы являются - размер поля пакета трафика больше 0, замена всех точек и дефисов на знак подчёркивания в наименовании поля таблицы базы данных, замена всех полей VARCHAR с размером больше 1kB на тип поля LONGTEXT для предотвращения переполнения длины строки. На выходе метода getRequest() получаем строку, записываемую в файл request.sql, в базовую директорию модели Difference. Таким образом, были преодолены ограничения базы данных MySQL. Запускается метод из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii difference/request.
Модель Detailed
Метод getField()
Предназначен для заполнения таблицы БД detailed данными подробного трафика, записанного в файл gmail.packets.json с преобразованием наименования полей пакета трафика в наименование полей таблицы БД путём замены знаков "дефис" и "точка" на знак подчёркивания “_”. Запускается из консоли в базовой директории консольных моделей /var/www/clients/client1/web2/web командой ./yii detailed.
Результат представлен на скриншоте phpmyadmin Рис.17.
Заключение
Таким образом, преодолены ограничения базы данных, появилась возможность производить множественные серии экспериментов для выяснения точного содержимого пакетов и их дешифрации, отправляемых при регистрации не только аккаунта Gmail, а также и других почтовых сервисов.
Ввиду экстремальной ценности развития этого вектора атаки на почтовые серверы, ибо это практически “золотое дно” для спама, прошу рассмотреть возможность присвоить этому направлению работ статус научно-исследовательской лаборатории с расширением количества штатных единиц до трёх работников и увеличением ежемесячного бюджета до пяти тысяч долларов (я, как ответственный за эту тему $3000, дешифровщик пакетов $1000 и специалист по искусственному интеллекту $1000). Повторюсь - при наличии возможности и желания. Без такого наличия я по-прежнему буду с удовольствием рыть эту жутко интересную тему в одиночестве, но хотелось бы ускорить получение результата.
Последнее редактирование: