.рубик
905 subscribers
68 photos
63 links
Канал о всяком, от CTF до разработки OC с примесью кеков от @Rubikoid

Чат - https://t.me/joinchat/3KSEUg7bfqE0N2Ey
Мета: t.me/dotrubic_meta
Мемы: t.me/dotrubic_memes
Бложик: t.me/dotrubic_thoughts
Download Telegram
Forwarded from Rubikoid
люди пользуются гитом
Forwarded from Rubikoid
я пользуюсь CTRL+Z и ОЧЕНЬ большим размером оперативки для вскода
Forwarded from Maxim Anfinogenov
Разобрал док от планшета.
Ну асер, ну что за фигня.

Зачем брать несущий винт и запихивать его в кусок пластмассы?
Если что - этот винт - один из трех, через которые передается половина массы планшета на докстанцию (их чуть выше видно, винт и пазы для еще двух).

Ну есть у вас железка, прикрепите на неё, зачем крепить на пластмассу ;(
Люди, никто случайно не знает, есть ли какие-то тулы под андройд, которые поднимают локальную system-wide проксю?
Если еще и патчить пакетики позволяют - вообще круто.

Просто на винде я сделал приложуху, состоящую из прокси, которая себя в систему прописывает, и обертка над этой проксей, патчащая http на лету.

Интересно, можно ли хотя бы часть с проксей для начала сделать на андройде.
Ночные спойлеры из ккс
Forwarded from Rubikoid
давайте запихнем яру в ядро
>Пишу драйвер для ps/2 клавы
>Сижу на описании того, как эта хрень работает на osdev.

Очень забавляет эта строка в описании списка команд, которые можно напихнать в клаву
столбцы, по порядку -
cmd byte | args | meaning | response

можно просто сидеть и орать друг на друга RESEND RESEND RESEND
Внезапно наткнулся на то, что gcc (кросскомпиль под i686, если что, под другими не проверял) почему-то кладет глобальную переменную, инициализируемую нулем - в .bss.
То есть где-то в файле пишем int x = 0; и получаем x в бсс
Если инициализировать чем-то кроме нуля, например int x = 1;, то уже кладется в .data и все нормально.

Чяднт?
Forwarded from Gregor Zaitseff
мама-мама, а у нас есть ооп дома?

да, сынок


ооп дома:
структуры с указателями на структуры с указателями на функции
Forwarded from Rubikoid
11 чаек-криптографов из 10 банок принглс
В общем, попросили написать, как поднимать цтфд, чтобы не обосраться.
Описал свой опыт с последней kksctf open, у нас вроде борда работала достаточно адекватно.
Forwarded from Rubikoid
По теме поднятия цтфд.

Это по большей части относится к версии либо 2.2.0, 2.1.5, либо что там было в мастере примерно на время декабря, я уже если честно не помню.

Момент 0: не раздавать статику питоном, т.е. использовать нжинкс, апач или что вашей душе угодно). Питон под напором желающих получить статику помирает и уходит в мир иной.

Момент 0.5: не стоит использовать дев-сервер фласка, а какой-нибудь wsgi-сервак, типа gunicorn или uwsgi. Опять же, дев-сервак - такая себе вещь в плане производительности. Про отключение дебагрежимов, дебаглогов и всего этого даже не говорю.

Мы юзали gunicorn, примерно так, gunicorn --log-level=warn --bind=unix:/tmp/.sock_openkksctf -w 4 "CTFd:create_app()" -t 4 -D --access-logfile ./access.log --error-logfile ./error.log, -w и -t - параметры, отвечающие за число воркеров и тредов в этих воркерах, подбирай исходя из мощности сервака (число логических ядер).
Ну и в нжинксе просто proxy_pass, гайдов, как это сделать - море, в том числе на вики ctfd.

Момент первый: Вот тут лежит файлик, отвечающий за рассылку ивентов. Это одна из фичей цтфд, однако зачастую она никому нафиг не сдалась.
Плюс она генерит зависшие TCP-стримы, которые кладут сервак.
Я отключал тупо вырезанием кода, но вот судя по гитхабу в 2.3.0 добавили возможность вырубить это через конфиг.

Плюс, если используешь SQLite (я её в больших проектах не люблю, но есть люди, умеющие ей хорошо делать), надо правильно настраивать, чтобы она в диск не упиралась. Я просто поставил постгрес и не парился, он отрабатывает достаточно хорошо.
Forwarded from Rubikoid
Если по таскам - все, где может быть RCE, LFI, fork/zip/etc бомбы - запихивать от греха подальше в докер с лимитами по памяти, числу pid'ов (с этим аккуратно, перед цтфкой надо проверить, что при обычном решении того же пывна через сокат, сокат сможет форкнуться при большом наплыве народа).
Что будет, если не перезапускать десктоп телеги неделями (спойлер: ничего хорошего).

Память течет, какие-то ивенты в (судя по всему) бесконечный цикл упали
kks выехал решать ctf'ки
Когда решил рендерить шрифты на видеокарте, а потом отвалился драйвер
Тут поинтересовались, смог бы я объяснить рядовому работяге, например строителю, азы своей предметной области.

Вообще не вопрос. <Эстеты -- в сад, тут для рядовых строителей, а не для вас>

Итак:

ОСНОВНЫЕ ПОНЯТИЯ ИБ ДЛЯ ГУМАНИТАРИЕВ РАБОЧЕГО КЛАССА

Вы пытаетесь пройти на стройку и представляетесь вахтёру своим именем, после чего проходите внутрь. Это идентификация.

Перед тем, как пройти внутрь, вы вынуждены показать вахтёру свой паспорт. Это аутентификация.

Вы вынуждены показать одному вахтёру свой паспорт, а второму по памяти назвать его серию, номер и вспомнить, что находится на странице с номером, похожим на Кенни. Это двухэтапная аутентификация.

Вахтёр требует не только паспорт, но и водительское удостоверение. Это двухфакторная аутентификация.

Какой-то пидарас наебал вахтёра, показав ему чужие документы. Это подделка учётных данных.

Вахтёр в курсе, что его наебали, но вынужден пропустить, т.к. документы подлинные. Это имперсонация.

Вахтёр выдаёт вам на шею бейдж с персональным идентификатором. Это сессионный токен.

Вы показываете этот бейдж при входе в любую дверь. Это авторизация.

Какой-то пидарас спиздил чужой бейдж и везде его показывает. Это угон сессии.

Он же подложил вахтёру копию бейджа со своим идентификатором и дождался, пока тот не отдаст его вам. Это фиксация сессии.

Вы потоптались по только что налитому полу, не оставив в нём следов и никто кроме вас не знает, что это вообще случилось. Это приватность.

Вы потоптались по только что налитому полу, оставили в нём следы, но никто не знает, какой пидарас это сделал. Это анонимность.

Вахтёр записал в журнал дату и время вашего прихода и ухода. Это журналирование.

Вахтёр ходит за вами по пятам и записывает вообще все ваши действия. Это ретроспектируемое журналирование.

Вахтер сделал запись в журнал, что пару дней назад к ним на стройку устроился какой-то стрёмный работник с такой же фамилией, что и у вас. Это корелляция событий.

Вахтёр в ходе корелляции событий периодически жмёт кнопку, после чего начинает орать сирена, мигать красные лампочки, а весь персонал съёбывает по подвалам, откладывая кирпичи. Это SIEM.

Прораб за это наконец-таки набил вахтёру ебало. Это актуализация правил корелляции событий SIEM.

На стройке вам на голову может упасть кирпич. Это угроза.

Кирпич весит килограмм и ещё пол кирпича, ускорение свободного падения 9,80665 м/с², солнце в зените, а кирпичи могут находиться на любом из отстроенных этажей <плюс все вытекающие из этого расчёты>. Это модель угроз.

Какой-то мужик в шляпе рассказывает вам, как правильно строить модель угроз. Это Лукацкий.

Какой-то пидарас может сбросить вам кирпич на голову с верхнего этажа. Это атака.

Для этого он пройдёт на стройку, поднимется на самый верхний этаж, возьмёт в руки кирпич, прицелится и сбросит его вниз. Это эксплоит.

Ваша голова не предназначена для попадания в неё кирпича с заданным весом и ускорением. Это уязвимость.

Вы убираете со стройки все кирпичи, исключаете наличие на ней каких-то пидарасов и, на всякий случай, ещё и верхних этажей. Это защищённость.

Вы надеваете каску, чтобы хоть как-то снизить последствия попадания кирпича. Это безопасность.

У вас в правилах безопаности предписано всем носить каски, вы получили за них пушкинскую премию от регуляторов, но персонал как ходил без касок, так и продолжает ходить. Это бумажная безопасность.

Какой-то пидарас пробрался на стройку, залез на верхние этажи, убил кирпичом прораба и теперь радостно требует заплатить ему за это вознаграждение. Это багхантер.

Прораб пока ещё жив, тот пидарас кидается кирпичами во все стороны, а вахтёр уже заебался нажимать на красную кнопку. Это багхантер с анализатором защищённости.

Вы нанимаете двух прорабов, чтобы в случае смерти одного из них, работы не прекращались. Это формальная отказоустойчивость.

Вы нанимаете столько прорабов, сколько у вас кирпичей на стройке плюс ещё один. Это фактическая отказоустойчивость.

Вы покупаете устройство, кидающееся кирпичами во все стороны, на манер мячиков для тенниса. Это DAST.