Forwarded from Ukrainian Cyber Alliance
The Russian internet provider Nodex in St. Petersburg was completely looted and wiped. Data exfiltrated, while the empty equipment without backups was left to them
🔥470👍68👎7🥱3
Forwarded from [ Cyber.Anarchy.Squad ]
Агробізнес під санкціями C.A.S
Нещодавно ми нанесли візит в компанію INFOBIS - розробника платформи "Агросигнал" (учасник проекту "Сколково")
Було ексфільтровано близько 3ТБ інформації, частина з якої (злито +-700гб, під аналіз аудиторії) - стала надбанням нашого суспільства.
А саме:
- Бази даних агросигналу.
- Сурс код проектів.
- Бухгалтерія.
- Особисті дані співробітників (документи, та фото інтимного характеру).
- Інформація про внутрішню інфраструктуру IT компанії "Инфобис".
Сама інфраструктура була частково знищена (виникли невеликі форс-мажорні обставини).
Мова про:
- Робочі станції під управлінням windows.
- Робочі станції під управлінням linux mint.
- Сервери баз данних
- Дев станції для розробки та тесту ПО
- Бекап сервери
Вже близько тижня інфраструктура компанії відключена від інтернету, а девопси бояться вмикати сервери, знаючи що ми до них провернемось (а ми повернемось, повірте).
Дані запаковано в архів з паролем, та розбито на частини по 3гб+.
Пароль на всі архіви: 3.1.19
Посилання на канал з витоком, буде в коментарях до цього посту.
Нещодавно ми нанесли візит в компанію INFOBIS - розробника платформи "Агросигнал" (учасник проекту "Сколково")
Було ексфільтровано близько 3ТБ інформації, частина з якої (злито +-700гб, під аналіз аудиторії) - стала надбанням нашого суспільства.
А саме:
- Бази даних агросигналу.
- Сурс код проектів.
- Бухгалтерія.
- Особисті дані співробітників (документи, та фото інтимного характеру).
- Інформація про внутрішню інфраструктуру IT компанії "Инфобис".
Сама інфраструктура була частково знищена (виникли невеликі форс-мажорні обставини).
Мова про:
- Робочі станції під управлінням windows.
- Робочі станції під управлінням linux mint.
- Сервери баз данних
- Дев станції для розробки та тесту ПО
- Бекап сервери
Вже близько тижня інфраструктура компанії відключена від інтернету, а девопси бояться вмикати сервери, знаючи що ми до них провернемось (а ми повернемось, повірте).
Дані запаковано в архів з паролем, та розбито на частини по 3гб+.
Пароль на всі архіви: 3.1.19
Посилання на канал з витоком, буде в коментарях до цього посту.
👍231🔥147🥱7🤮5👎2
Пиздлявенький мусорячий подебалайчик и киберсквотинг
(трагикомедия в одном бездействии и двух скриншотах)
Я вынужден признать, что с российскими безопасниками нам очень повезло
(трагикомедия в одном бездействии и двух скриншотах)
Я вынужден признать, что с российскими безопасниками нам очень повезло
🔥211👍44🤔3
Разговорился как-то с modexp про API hashing. Это очень старая техника, самое раннее упоминание, которое нашлось - статья LethalMind в 29A#4 за 1999 год. Суть проста, для того чтобы вирус мог что-то сделать ему нужны системные функции, мы их можем просто перечислить по именам: ws2_32.dll - bind, wininet.dll - InternetOpenA, за что тут же зацепятся антивирусы, потому вместо имен можно сохранять контрольные суммы, тоже достаточно уникальные, потому биконы Metasploit и Cobalt палятся со страшной силой. И уже в 2000 году Z0mbie предложил использовать случайные хеш-функции, и сразу проверять их на коллизии.
Даже сейчас, спустя двадцать пять лет эта нехитрая мысль сбивает большую часть детектов. С другой стороны, если бы я был авером, то я бы обратил внимание на то, что так как значение хорошей хеш-функции не отличимо от случайного, то в 99% 32-битных хешей будет от 10 до 22 единичных битов, и дальше можно ловить конструкции ptr = func(c), ptr(...), где 10 <= popcnt(c) <= 22, или искать высокоэнтропийные блоки, если хеши сложены в массив.
Следующая идея, которая пришла в голову уже мне - не хранить хеши, а воспользоваться фильтром Блума, но с ним другая неприятность. Блуму нужно большое количество разных хеш-функций, что тоже палевно. И тут попалось описание хеш-таблицы, которую придумал Вик Высоцкий в начале 60-х: возмем хеш большей разрядности, чем размер таблицы, и после каждого значения сдвинем побитово по кругу. Размер массива и параметры фильтра можно менять в достаточно широких пределах, и массив будет разреженным. Никаких констант в коде, низкая энтропия, полиморфизм как побочный продукт
Даже сейчас, спустя двадцать пять лет эта нехитрая мысль сбивает большую часть детектов. С другой стороны, если бы я был авером, то я бы обратил внимание на то, что так как значение хорошей хеш-функции не отличимо от случайного, то в 99% 32-битных хешей будет от 10 до 22 единичных битов, и дальше можно ловить конструкции ptr = func(c), ptr(...), где 10 <= popcnt(c) <= 22, или искать высокоэнтропийные блоки, если хеши сложены в массив.
Следующая идея, которая пришла в голову уже мне - не хранить хеши, а воспользоваться фильтром Блума, но с ним другая неприятность. Блуму нужно большое количество разных хеш-функций, что тоже палевно. И тут попалось описание хеш-таблицы, которую придумал Вик Высоцкий в начале 60-х: возмем хеш большей разрядности, чем размер таблицы, и после каждого значения сдвинем побитово по кругу. Размер массива и параметры фильтра можно менять в достаточно широких пределах, и массив будет разреженным. Никаких констант в коде, низкая энтропия, полиморфизм как побочный продукт
🔥138🤔78👍55🥱4
В XZ-бэкдоре, которым "Jia Tan" хотел захватить полинтернета, для поиска строк используется trie, и чтобы оно не занимало сильно много места, к каждой вершине привязан битовый массив с единичками для каждой ветки. Но самый простой способ сериализовать дерево - записать его скобочным выражением. А если ветки перед этим перемешать, то получаем полиморфизм в качестве побочного эффекта. Jia хотел скрытности и в файле и в памяти. Как это ни смешно, это ударило по скорости, из-за чего его и спалили. Если бы он вместо распознающего автомата использовал генерирующий, то может быть и не нашли бы. И код заметно проще
👍142🤔65🥱7
Продолжаю развлекаться с различными способами кодирования. Одна из распространенных антивирусных техник - анализ энтропии семпла, если она высокая, то это говорит о том, что контент сжат или зашифрован, после чего антивирус включает эмкляцию, и ждет пока вирус сам не покажет свое розовенькое беззащитное тельце. Тривиальный способ снизить энтропию - закодировать все в base-64, а алфавит перемешать, и она гарантированно снизится с 8 до 6 бит на символ. Скука.
Другая идея, которая давно уже бродила в злонамеренных вирмейкерских головах - сделать компрессию наоборот, разсжать, то что не сжималось. Если надрессировать модель на текст, то и результат будет похож на текст (в той степени как текст видит модель первого порядка). Никто так ничего и не сделал, наверное потому, что саму таблицу частот нужно где-то хранить, а если модель статична, то и результат будет одинаковым, а вирусы любят разнообразие. Значит нужно сгенерировать вектор с вероятностями, с заданной энтропией - \sum p_i * \log p_i
К счастью, в интернетах нашлись люди, которые заинтересовались бесноватой задачей и написали статью "Generating probabilities with a specified entropy", за что господам Свазеку и Вали большое спасибо. Они решают уравнение E = E + p * \log2 p + (1 - p) * (\log(1 - p))) / (1 - p) шаг за шагом, и полученные корни дают диапазон вероятностей. В конце полученные значения масштабируем, чтобы они суммировались в единицу. Используем получившийся симплекс, как таблицу частот для алгоритма Хаффмана, и готово. Чтобы декодировать, получившийся текст нужно сжать. Сама таблица частот (а ее еще можно перемешать) полностью случайна и никакой информации в себе не несет
Другая идея, которая давно уже бродила в злонамеренных вирмейкерских головах - сделать компрессию наоборот, разсжать, то что не сжималось. Если надрессировать модель на текст, то и результат будет похож на текст (в той степени как текст видит модель первого порядка). Никто так ничего и не сделал, наверное потому, что саму таблицу частот нужно где-то хранить, а если модель статична, то и результат будет одинаковым, а вирусы любят разнообразие. Значит нужно сгенерировать вектор с вероятностями, с заданной энтропией - \sum p_i * \log p_i
К счастью, в интернетах нашлись люди, которые заинтересовались бесноватой задачей и написали статью "Generating probabilities with a specified entropy", за что господам Свазеку и Вали большое спасибо. Они решают уравнение E = E + p * \log2 p + (1 - p) * (\log(1 - p))) / (1 - p) шаг за шагом, и полученные корни дают диапазон вероятностей. В конце полученные значения масштабируем, чтобы они суммировались в единицу. Используем получившийся симплекс, как таблицу частот для алгоритма Хаффмана, и готово. Чтобы декодировать, получившийся текст нужно сжать. Сама таблица частот (а ее еще можно перемешать) полностью случайна и никакой информации в себе не несет
🤔123👍57🔥28🥱3