При сборке OpenSSH с двумя свежими версиями liblzma (5.6.0 и 5.6.1) можно получить себе веселый бэкдор в сервак.
Передаю привет роллинг релизам и советую бежать всем админам проверять версии софта
https://opennet.ru/60877/
UPD: пишут, что openssh не везде линукетяся с liblzma.
В общем, смотрите у себя в дистрибутивах.
Проверяем версию liblzma:
Если меньше 5.6.0 - всё +- норм, если больше - обновляйтесь (откатывайтесь)
Проверяем, собран ли sshd с liblzma:
UPDx3: похоже, это не важно.
Автор ресерча пишет, что
UPDx4: у меня к сожалению нет пока живой системы, где можно посмотреть на уязвимый сетап.
Похоже, что проверка через ldd всё же имеет смысл)
UPDx2: ещё пишут, что автор бэкдора уже два года пишет патчи для xz, и кроме того, вовлечен в разработку ещё нескольких проектов, в том числе связанных с xz.
Так что веселье только начинается ;)
Передаю привет роллинг релизам и советую бежать всем админам проверять версии софта
https://opennet.ru/60877/
UPD: пишут, что openssh не везде линукетяся с liblzma.
В общем, смотрите у себя в дистрибутивах.
Проверяем версию liblzma:
lzma --version.Если меньше 5.6.0 - всё +- норм, если больше - обновляйтесь (откатывайтесь)
Проверяем, собран ли sshd с liblzma:
ldd $(command -v sshd) | grep lzmaАвтор ресерча пишет, что
Openssh does not directly use liblzma. However debian and several other
distributions patch openssh to support systemd notification, and libsystemd
does depend on lzma.
UPDx4: у меня к сожалению нет пока живой системы, где можно посмотреть на уязвимый сетап.
Похоже, что проверка через ldd всё же имеет смысл)
UPDx2: ещё пишут, что автор бэкдора уже два года пишет патчи для xz, и кроме того, вовлечен в разработку ещё нескольких проектов, в том числе связанных с xz.
Так что веселье только начинается ;)
www.opennet.ru
В библиотеке xz/liblzma выявлен бэкдор, организующий вход через sshd
В пакете XZ Utils, включающем библиотеку liblzma и утилиты для работы со сжатыми данными в формате ".xz", выявлен бэкдор (CVE-2024-3094), позволяющий перехватывать и модифицировать данные, обрабатываемые приложениями, связанными с библиотекой liblzma. Основной…
😁6😱3🤯2😢2👏1🤔1🎉1🌚1
Очень простой вопрос от санитара для senior-программистов на C:
Что выведет следующая программа?
(перед голосованием не читайте комменты, а то так не интересно))
Что выведет следующая программа?
#include <string.h>;
#include <stdio.h>;
int main() {
printf("%d\n", strlen("\x01c"));
}
cc test.c && ./a.out(перед голосованием не читайте комменты, а то так не интересно))
🔥6
Забавный неожиданный факт особенность, которую я обнаружил в механизме работы WSL2:
Скорее всего, generic user второго весла с ней не столкнётся, ведь он связан с использованием больше двух дистрибутивов одновременно, однако! на это может повлиять, например, установка официального Docker Desktop (никогда так не делайте, это ужасный софт).
Так вот: все "дистрибутивы" второго весла запускаются на одном и том же ядре Linux'а, в одной и той же виртуальный машине, и изолируются друг от друга через линуксовые неймспейсы.
Я, если честно, раньше думал, что они в разных VMках крутят, аннет.
У этой особенности есть особенность:
Изоляция не полная.
Некоторые неймспейсы между дистрибутиво-контейнерами шерятся, и иногда это может привести к странным результатам.
Среди таких общих неймспейсов - сетевой.
Все контейнеры имеют одинаковый набор сетевых интерфейсов, и для внешнего мира выглядят, как одна ВМка.
Отсюда могут вылезти неожиданные проблемы с пробросом портов в том же докере - пакет на определенный порт должен попасть в какой-то один из контейнеров.
В моем же случае я немного офигел, когда обнаружил tun-адаптер yggdrasil в системе, куда я не ставил ygg.
Подробней можно почитать вот в этом ответе на stackexchange.
Скорее всего, generic user второго весла с ней не столкнётся, ведь он связан с использованием больше двух дистрибутивов одновременно, однако! на это может повлиять, например, установка официального Docker Desktop (никогда так не делайте, это ужасный софт).
Так вот: все "дистрибутивы" второго весла запускаются на одном и том же ядре Linux'а, в одной и той же виртуальный машине, и изолируются друг от друга через линуксовые неймспейсы.
Я, если честно, раньше думал, что они в разных VMках крутят, аннет.
У этой особенности есть особенность:
Изоляция не полная.
Некоторые неймспейсы между дистрибутиво-контейнерами шерятся, и иногда это может привести к странным результатам.
Среди таких общих неймспейсов - сетевой.
Все контейнеры имеют одинаковый набор сетевых интерфейсов, и для внешнего мира выглядят, как одна ВМка.
Отсюда могут вылезти неожиданные проблемы с пробросом портов в том же докере - пакет на определенный порт должен попасть в какой-то один из контейнеров.
В моем же случае я немного офигел, когда обнаружил tun-адаптер yggdrasil в системе, куда я не ставил ygg.
Подробней можно почитать вот в этом ответе на stackexchange.
Super User
WSL2 two separate Centos distributions have same eth0 inet address
Using Windows Subsystem for Linux 2, I want to run two separate instances of Centos 7, but when I do this both instances have the same eth0 inet address. Here's what I did...
I created a base Cento...
I created a base Cento...
🤯13💩6😁4👍2
.рубик
Забавный неожиданный факт особенность, которую я обнаружил в механизме работы WSL2: Скорее всего, generic user второго весла с ней не столкнётся, ведь он связан с использованием больше двух дистрибутивов одновременно, однако! на это может повлиять, например…
В комментариях не сдержались: https://xn--r1a.website/dotrubic/231?comment=73295
🔥25😁9💯4👏3👍1
Сидел я сегодня такой, развлекался с Nix'ом и внезапно обнаружил, что конструкции вида
Краткая справка: Шебанг (shebang) - это конструкция вида
Была придумана, чтобы не писать руками
Когда функциональность уровня ядра ведет себя как-то неправильно, первое и логичное решение... пойти копаться в сорцах этого самого ядра.
Спасибо эплу, некоторым лицензиям, и неизвестному самаритянину (насколько я знаю, это неофициальное зеркало) - у нас есть код XNU (ядро MacOS) на гитхабе.
Непродолжительные поиски действительно привели меня к строке, в которой определяется условие конец шебанга, где концом строки считается либо
Окей, теперь я знаю, что у меня нет шизофрении(на самом деле есть), и это действительно ядро ведет себя так странно.
Встает следующий вопрос: а почему оно так себя ведет?
Если посмотреть на путь к файлу
Так возможно это не у apple что-то с головой, а они просто бэкпортировали какое-то странное изменение из ядра *BSD? (Да, XNU основан во многом на BSD)
Быстро пробежавшись по старым *BSD ядрам (4.3BSD, FreeBSD версий 2-3) я ничего полезного не нашел, там этой особенности не было.
Дальше я решил вернуться обратно к blame'у сорцов XNU. К сожалению, текстов коммитов нет (разве что где-то в недрах Apple), поэтому остается довольствовать описаниями версий, в которых что-то меняли.
Таким образом я узнал, что это добавили в XNU-517.
Быстрый гуглеж по XNU-517 shebang наконец-то привел меня к цели всего поста: шедевральной страничке https://www.in-ulm.de/~mascheck/various/shebang/, содержащей огромный и очень информативный текст (я не шучу, сходите сами почитайте!) про историю шебангов.
Конкретно про обработку второй
Как оказалось, я смотрел слишком ранние версии FreeBSD - это действительно внесли именно в ней, в 4.0 ветке, а потом убрали в 6.0.
XNU бэкпортировали это к себе, но так и не убрали, только рефакторя код год за годом (стало кстати объективно лучше, тоже забавное наблюдение).
Итак. Изначальной причиной появления такого способа обработки
Рекомендация в документации к perl'у писать шебанг следующим образом:
чтобы избегать каких-то странных кроссплатформенных проблем (да, утилиту
Зайдите ещё в комменты, там есть парочка мемов, которые не влезли в пост =)
nix shell nixpkgs#hello -c bash в шебанге и Linux и MacOS отрабатывают совершенно по-разному.Краткая справка: Шебанг (shebang) - это конструкция вида
#!interpreter [args] (#! обязателен), расположенная строго в начале файла, и говорящая операционной системе запустить interpreter [args] [original file] [original args].Была придумана, чтобы не писать руками
python script.py, а сделать ./script.py, условный.Когда функциональность уровня ядра ведет себя как-то неправильно, первое и логичное решение... пойти копаться в сорцах этого самого ядра.
Спасибо эплу, некоторым лицензиям, и неизвестному самаритянину (насколько я знаю, это неофициальное зеркало) - у нас есть код XNU (ядро MacOS) на гитхабе.
Непродолжительные поиски действительно привели меня к строке, в которой определяется условие конец шебанга, где концом строки считается либо
#, либо \n.Окей, теперь я знаю, что у меня нет шизофрении
Встает следующий вопрос: а почему оно так себя ведет?
Если посмотреть на путь к файлу
kern_exec.c, можно увидеть, что он начинается с папки bsd. Так возможно это не у apple что-то с головой, а они просто бэкпортировали какое-то странное изменение из ядра *BSD? (Да, XNU основан во многом на BSD)
Быстро пробежавшись по старым *BSD ядрам (4.3BSD, FreeBSD версий 2-3) я ничего полезного не нашел, там этой особенности не было.
Дальше я решил вернуться обратно к blame'у сорцов XNU. К сожалению, текстов коммитов нет (разве что где-то в недрах Apple), поэтому остается довольствовать описаниями версий, в которых что-то меняли.
Таким образом я узнал, что это добавили в XNU-517.
Быстрый гуглеж по XNU-517 shebang наконец-то привел меня к цели всего поста: шедевральной страничке https://www.in-ulm.de/~mascheck/various/shebang/, содержащей огромный и очень информативный текст (я не шучу, сходите сами почитайте!) про историю шебангов.
Конкретно про обработку второй
# - тут.Как оказалось, я смотрел слишком ранние версии FreeBSD - это действительно внесли именно в ней, в 4.0 ветке, а потом убрали в 6.0.
XNU бэкпортировали это к себе, но так и не убрали, только рефакторя код год за годом (стало кстати объективно лучше, тоже забавное наблюдение).
Итак. Изначальной причиной появления такого способа обработки
# в шебангах была...Рекомендация в документации к perl'у писать шебанг следующим образом:
#!/bin/sh -- # -*- perl -*- -p
чтобы избегать каких-то странных кроссплатформенных проблем (да, утилиту
env тогда ещё не придумали).Зайдите ещё в комменты, там есть парочка мемов, которые не влезли в пост =)
❤🔥15👍8🤯4❤1😁1
Тут на гитхабе разворачивается очередная дРаМа.
Если вкратце: есть в экосистеме питона такой проект,
Это такие батарейки для
Либа старая, ещё от 2.7 питона.
В какой-то момент пришел некий товарищ
На этот проект завязалась ещё несколько проектов, и вот 31 января какой-то чувак обнаружил, чтопотерял забыл про лицензию - у оригинального проекта это LGPL, а у товарища - почему-то MIT.
Там оно недельку поварилось, и
Три дня назад какой-то ещё чувак это внезапно обнаружил и поднял бучу - у нас в репах дистрибутивов лежит пакет с проблемами с лицензированием - а это нехорошо.
В конце концов это привело к тому, что
Это, внезапно, вызвало массовые разломы сборки разного произвольного софта, люди пошли набегать в оригинальный issue, связанный с проблемами лицензирования, и там началось неистовое бомбометание.
Собственно, за ним сейчас можно наблюдать практически в прямом эфире.
Если вкратце: есть в экосистеме питона такой проект,
nose. Это такие батарейки для
unittest либы из стандартного питона, упрощающие написание тестов. Либа старая, ещё от 2.7 питона.
В какой-то момент пришел некий товарищ
mdmintz, утащил 2/3 кода nose, назвал это pynose, поменял лицензию и выложил на гитхаб.На этот проект завязалась ещё несколько проектов, и вот 31 января какой-то чувак обнаружил, что
mdmintz, когда утаскивал код Там оно недельку поварилось, и
mdmintz закрыл issue.Три дня назад какой-то ещё чувак это внезапно обнаружил и поднял бучу - у нас в репах дистрибутивов лежит пакет с проблемами с лицензированием - а это нехорошо.
В конце концов это привело к тому, что
pynose начали выпиливать из дистрибутивов, в частности, из nix'а (bleeding edge, все дела ;)).Это, внезапно, вызвало массовые разломы сборки разного произвольного софта, люди пошли набегать в оригинальный issue, связанный с проблемами лицензирования, и там началось неистовое бомбометание.
Собственно, за ним сейчас можно наблюдать практически в прямом эфире.
GitHub
Wrong license · Issue #16 · mdmintz/pynose
It seems like your package is claiming the wrong license: The original nose implementation is subject to LGPL-2.1-only as far as I can see (https://github.com/nose-devs/nose/blob/master/lgpl.txt), ...
🤯15😁12🤡6👏5👍4❤1
В конце августа мы сделали силами нашей команды CTF для Островка!, а потом вместе с @greg0r0 сходили по этому поводу на подкаст к двум Иванам.
Я раньше в подкастах никогда не участвовал, было немного непривычно, но очень бодро.
Прикольно, в общем, как-нибудь стоит повторить)
В яме его послушать можно тут (если яндекс не алё, есть mave со ссылками на все остальные стриминги)
Я раньше в подкастах никогда не участвовал, было немного непривычно, но очень бодро.
Прикольно, в общем, как-нибудь стоит повторить)
В яме его послушать можно тут (если яндекс не алё, есть mave со ссылками на все остальные стриминги)
Telegram
Ostrovok! Tech
В конце августа ко дню рождения Островка мы организовали внутренний CTF (Capture The Flag) для наших разработчиков, чтобы разнообразить повседневные задачи, а заодно научиться чему-то новому в кибербезопасности.
Сюжет CTF был необычным — с крабами и чайками…
Сюжет CTF был необычным — с крабами и чайками…
🔥8👍3❤🔥1💩1🤡1
У меня тут произошел инцидент: какой-то хмырь скопировал мой профиль и стучался к людям в личку с просьбой скинуть денег)
Люди адекватные - поэтому налюбилово обнаружили и сразу же сказали мне, но мало ли какая у него база, так что на всякий случай хочу предупредить по каналу с наибольшим охватом, что вот такой персонаж может написать - и это буду не я)
Скрин свежий на момент написания поста, до этого у него ещё юзерка была, похожая на мою.
Чел даже премиумом заморочился, поразительно.
Люди адекватные - поэтому налюбилово обнаружили и сразу же сказали мне, но мало ли какая у него база, так что на всякий случай хочу предупредить по каналу с наибольшим охватом, что вот такой персонаж может написать - и это буду не я)
Скрин свежий на момент написания поста, до этого у него ещё юзерка была, похожая на мою.
Чел даже премиумом заморочился, поразительно.
🤯21😁5🐳4❤1👍1👎1
Your friendly telegram changelog here!
Дуров опять придумал всратую херню! Повод выйти из сумрака...
А именно, в телегу добавили "Сообщества".
Это как папки, тольконе папки не надо добавляться в каждый из каналов, чтобы читать его.
А ещё туда можно запихать ботов и чаты)
Людей, кажется, нельзя.
Наресерченные за полчаса факты:
1. Если снести все каналы внутри сообщества, само сообщество не удаляется.
2. Баны в сообществах не работают, кажется )))
3. Для добавления канала в сообщества надо быть подписанным на любой из каналов, которые уже есть в сообществе.
4. На TDesktop единственный способ узнать все сообщества, которые ты видишь - это попытаться в них добавить что-нибудь свое
5. По дефолту стоит галочка "кто угодно может добавлять каналы в сообщества", если её не снять, сообщество быстро превратится в мусорку)
6. С папками работает супервсрато.
7. Пока нельзя добавлять в сообщества каналы на 10к+ людей
8. Реджект заявки канала в сообщество нигде никак не отображается
9. При подаче заявки канала в сообщество видно, кто её подал, прям полноценным аккаунтом! Деанон!! Но это если стоит галка на одобрение. Если не стоит, вроде бы нет, но в tdlib где-то может быть прикопано.
10. Если попытаться добавить канал в сообщество второй раз, телега высрет CHANNEL_ALREADY_LINKED и дезинтегрирует заявку
11. На iOS клиент пишет, что добавление приватного канала это некомильфо, мол он приватный
12. Но при этом, если его всё же добавить, участники сообщества могут зайти в канал _мимо_ _любых_ инвайт ссылок. Они просто появятся в канале. Логов не будет))
13. Если добавить бота, администратор автоматом откроет с ним диалог со смешным сообщением "%AdminName% добавил группу в сообщество %name%". Полудеанон, из UI аккаунт не тыкается, что там в mtproto непонятно пока. У старых юзеров бота это сообщение не появляется.
14. Если, будучи овнером, добавить канал в сообщество, выйти из канала, а потом каким-то образом обратно до него добраться (через другой канал, например) - в него можно зайти назад и остаться овнером
Дуров опять придумал всратую херню! Повод выйти из сумрака...
А именно, в телегу добавили "Сообщества".
Это как папки, только
А ещё туда можно запихать ботов и чаты)
Людей, кажется, нельзя.
Наресерченные за полчаса факты:
1. Если снести все каналы внутри сообщества, само сообщество не удаляется.
2. Баны в сообществах не работают, кажется )))
3. Для добавления канала в сообщества надо быть подписанным на любой из каналов, которые уже есть в сообществе.
4. На TDesktop единственный способ узнать все сообщества, которые ты видишь - это попытаться в них добавить что-нибудь свое
5. По дефолту стоит галочка "кто угодно может добавлять каналы в сообщества", если её не снять, сообщество быстро превратится в мусорку)
6. С папками работает супервсрато.
7. Пока нельзя добавлять в сообщества каналы на 10к+ людей
8. Реджект заявки канала в сообщество нигде никак не отображается
9. При подаче заявки канала в сообщество видно, кто её подал, прям полноценным аккаунтом! Деанон!! Но это если стоит галка на одобрение. Если не стоит, вроде бы нет, но в tdlib где-то может быть прикопано.
10. Если попытаться добавить канал в сообщество второй раз, телега высрет CHANNEL_ALREADY_LINKED и дезинтегрирует заявку
11. На iOS клиент пишет, что добавление приватного канала это некомильфо, мол он приватный
12. Но при этом, если его всё же добавить, участники сообщества могут зайти в канал _мимо_ _любых_ инвайт ссылок. Они просто появятся в канале. Логов не будет))
13. Если добавить бота, администратор автоматом откроет с ним диалог со смешным сообщением "%AdminName% добавил группу в сообщество %name%". Полудеанон, из UI аккаунт не тыкается, что там в mtproto непонятно пока. У старых юзеров бота это сообщение не появляется.
14. Если, будучи овнером, добавить канал в сообщество, выйти из канала, а потом каким-то образом обратно до него добраться (через другой канал, например) - в него можно зайти назад и остаться овнером
🔥15❤7🤯7🤔1💩1
Поучаствовал в этом году в составлении хак-квеста для проходки на ZeroNights)
Залетайте порешать, тасочка на веб, должна быть прикольной!
Залетайте порешать, тасочка на веб, должна быть прикольной!
Telegram
ZeroNights
📟 HackQuest 2026| Шестой день
Yaxoo!
Таск подготовлен @dotrubic
My friend at Yaxoo claims he can be trusted to protect the company’s most valuable assets — especially its corporate flag, which is judging by the price must be made of pure gold and company…
Yaxoo!
Таск подготовлен @dotrubic
My friend at Yaxoo claims he can be trusted to protect the company’s most valuable assets — especially its corporate flag, which is judging by the price must be made of pure gold and company…
🔥16👍4