Создаём временную RAM-директорию — быстрые файлы без лишней записи на SSD/HDD!
Иногда нужно быстрое временное хранилище: сборка проекта, кэш, распаковка архивов, временные логи или обработка больших файлов. В Linux для этого можно использовать
Создаём директорию:
Монтируем
Что происходит:
Теперь всё, что записывается в
Например:
И работаешь как с обычной директорией:
Практический пример: временная сборка большого frontend/backend-проекта или работа с временными файлами:
Некоторые инструменты используют
Для pip можно отдельно вынести кэш и временные файлы в RAM:
Проверить, что
Пример:
Когда работа закончена — отмонтировать:
А также важно помнить: данные исчезают после reboot; tmpfs использует RAM и при необходимости может использовать swap; не стоит хранить там что-то важное; размер можно менять через size=; после umount директория останется, но данные tmpfs исчезнут.
🔥 Очень полезно для временных операций, где важна скорость и не нужно постоянное хранение данных.
🚪 Linux Ready | #практика
Иногда нужно быстрое временное хранилище: сборка проекта, кэш, распаковка архивов, временные логи или обработка больших файлов. В Linux для этого можно использовать
tmpfs — файловую систему в памяти (RAM, при необходимости — с использованием swap).Создаём директорию:
sudo mkdir -p /mnt/ramdisk
Монтируем
tmpfs:sudo mount -t tmpfs -o size=2G tmpfs /mnt/ramdisk
Что происходит:
tmpfs создаёт файловую систему в памяти; size=2G — максимальный лимит, а не сразу занятая RAM; память выделяется по мере записи файлов; /mnt/ramdisk — директория монтирования.Теперь всё, что записывается в
/mnt/ramdisk, хранится в памяти и обычно значительно снижает количество записей на SSD/HDD.Например:
cd /mnt/ramdisk
И работаешь как с обычной директорией:
cp big-archive.tar.gz /mnt/ramdisk
tar -xf big-archive.tar.gz
Практический пример: временная сборка большого frontend/backend-проекта или работа с временными файлами:
TMPDIR=/mnt/ramdisk npm run build
Некоторые инструменты используют
TMPDIR для временных файлов, что может ускорить операции.Для pip можно отдельно вынести кэш и временные файлы в RAM:
TMPDIR=/mnt/ramdisk \
PIP_CACHE_DIR=/mnt/ramdisk/pip-cache \
pip install -r requirements.txt
Проверить, что
tmpfs смонтирован:df -h
Пример:
tmpfs 2.0G 120M 1.9G 6% /mnt/ramdisk
Когда работа закончена — отмонтировать:
sudo umount /mnt/ramdisk
А также важно помнить: данные исчезают после reboot; tmpfs использует RAM и при необходимости может использовать swap; не стоит хранить там что-то важное; размер можно менять через size=; после umount директория останется, но данные tmpfs исчезнут.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
AI-сервис, который помогает превращать заметки, PDF, статьи, видео и другие материалы в карточки для обучения и квизы. Нейросеть автоматически выделяет главное, генерирует вопросы и помогает быстрее запоминать информацию с помощью повторения и интерактивного формата обучения.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍4🔥2
Знали, что можно добавлять timestamp к любому выводу terminal pipeline без изменения приложения и логгера?
Во многих CLI-утилитах, shell-скриптах и legacy-сервисах отсутствуют временные метки, из-за чего сложно анализировать задержки, интервалы выполнения и последовательность событий.
Утилита
Теперь каждая строка получает точное время:
Это особенно полезно при отладке конвейеров команд, shell-автоматизации, CI-логов, docker-контейнеров и
Можно использовать свой формат времени:
Или измерять интервалы между событиями:
Иногда программы буферизуют вывод — тогда поможет:
🔥 Приём кажется небольшим, но на практике сильно упрощает анализ поведения систем и CLI-инструментов без внедрения полноценного логгирования.
🚪 Linux Ready | #совет
Во многих CLI-утилитах, shell-скриптах и legacy-сервисах отсутствуют временные метки, из-за чего сложно анализировать задержки, интервалы выполнения и последовательность событий.
Утилита
ts из пакета moreutils добавляет timestamp к каждой строке stdin в реальном времени:$ tail -f app.log | ts '%Y-%m-%d %H:%M:%S'
Теперь каждая строка получает точное время:
2026-05-22 18:41:03 request started
2026-05-22 18:41:07 request finished
Это особенно полезно при отладке конвейеров команд, shell-автоматизации, CI-логов, docker-контейнеров и
long-running процессов, где нельзя быстро изменить сам источник логов.Можно использовать свой формат времени:
$ tail -f app.log | ts '[%H:%M:%S]'
Или измерять интервалы между событиями:
$ ping 1.1.1.1 | ts -i
Иногда программы буферизуют вывод — тогда поможет:
$ stdbuf -oL -eL some-command | ts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤3👍2
Даже самый хороший сканер может выдавать ложные срабатывания, пропускать уязвимости или создавать лишнюю нагрузку на систему, если перед запуском не проверить параметры запросов, аутентификацию, ограничения и точки входа.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤7🔥6
А вы знали, что через strace можно подсмотреть, какие файлы на самом деле читает закрытый бинарник?
Когда проприетарный софт или подозрительный малварь-скрипт валятся с ошибкой без нормальных логов, не обязательно ковырять их в декомпиляторе.
Утилита strace перехватывает системные вызовы приложения к ядру Linux, позволяя моментально увидеть, к каким скрытым конфигам, библиотекам или сетевым сокетам пытается достучаться бинарник в процессе работы.
Запуск утилиты с фильтром по системным вызовам открытия файлов:
Выведет на экран абсолютные пути всех файлов, которые программа пытается прочитать или создать.
Отслеживание активности уже запущенного в системе процесса по его идентификатору (PID):
Позволяет в реальном времени шпионить за файловой активностью работающего демона или веб-сервера.
🔥 Чтобы не тонуть в огромном потоке системных логов в терминале, сбросьте весь вывод strace в отдельный текстовый файл для удобного анализа с помощью флага
➡️ Hacking Ready | #совет
Когда проприетарный софт или подозрительный малварь-скрипт валятся с ошибкой без нормальных логов, не обязательно ковырять их в декомпиляторе.
Утилита strace перехватывает системные вызовы приложения к ядру Linux, позволяя моментально увидеть, к каким скрытым конфигам, библиотекам или сетевым сокетам пытается достучаться бинарник в процессе работы.
Запуск утилиты с фильтром по системным вызовам открытия файлов:
strace -e trace=open,openat ./unknown_cli
Выведет на экран абсолютные пути всех файлов, которые программа пытается прочитать или создать.
Отслеживание активности уже запущенного в системе процесса по его идентификатору (PID):
sudo strace -p 1234 -e trace=file
Позволяет в реальном времени шпионить за файловой активностью работающего демона или веб-сервера.
🔥 Чтобы не тонуть в огромном потоке системных логов в терминале, сбросьте весь вывод strace в отдельный текстовый файл для удобного анализа с помощью флага
-o output.txt.➡️ Hacking Ready | #совет
🔥8👍5❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Это ресурс, где собраны вопросы и практические сценарии по DevOps, разбитые по ключевым темам: Docker, Kubernetes, CI/CD, облака, безопасность, мониторинг и др. Формат построен как тренажёр, можно проходить вопросы по категориям. Отдельно выделяются реальные сценарии, где разбираются проблемы и их решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤝5❤4
Слышали, что Bash умеет выводить set -x не в терминал, а в отдельный log-файл?
Обычно при debugging shell-скриптов используют
В Bash существует специальная переменная
Теперь debugging не ломает основной вывод программы:
Все
Это особенно полезно в автоматизации, CI/CD, deploy-скриптах, где важно сохранить чистый вывод программы, но при этом иметь полную трассировку выполнения для отладки.
После завершения debugging дескриптор корректно закрывается:
🔥 Механизм работает внутри Bash и использует обычные файловые дескрипторы оболочки без внешних утилит.
🚪 Linux Ready | #совет
Обычно при debugging shell-скриптов используют
set -x, но весь trace смешивается с обычным stdout/stderr и быстро делает вывод неудобным для чтения.В Bash существует специальная переменная
BASH_XTRACEFD, которая перенаправляет xtrace в отдельный файловый дескриптор:$ exec {FD}>>debug.log
$ export BASH_XTRACEFD=$FDТеперь debugging не ломает основной вывод программы:
$ bash -x ./deploy.sh
Все
trace-команды уходят только в debug.log, а stdout/stderr продолжают работать как обычно.Это особенно полезно в автоматизации, CI/CD, deploy-скриптах, где важно сохранить чистый вывод программы, но при этом иметь полную трассировку выполнения для отладки.
После завершения debugging дескриптор корректно закрывается:
$ set +x
$ exec {FD}>&-
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7👍5
Например, > перенаправляет вывод команды в файл, 2> — ошибки, а 2>&1 объединяет STDOUT и STDERR.
На картинке — основные файловые дескрипторы (STDIN, STDOUT, STDERR), примеры перенаправлений и другое.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤4👍2
Настройка coredump в Linux — диагностика падений процессов!
Когда Linux-процесс аварийно завершается (например, SIGSEGV / Segmentation fault, SIGABRT и др.), система может сохранить снимок памяти процесса — core dump.
Без dump-файла обычно остаётся только сам факт падения и запись в логах. Core dump позволяет открыть состояние процесса в
Проверка текущего лимита на создание dump:
Если вывод 0 — сохранение core dump отключено для текущей shell/session.
Временное включение:
Это работает только для процессов, запущенных из текущей shell-сессии. После logout или reboot настройка пропадёт.
Для systemd-сервисов одного ulimit недостаточно — лимит нужно задавать в unit-файле:
После изменения unit-файла:
Теперь проверяем, как именно система сохраняет dump-файлы:
Параметр
Пример прямого сохранения dump в файл:
Где:
Создадим каталог для dump-файлов и настроим сохранение:
Чтобы настройка сохранилась после reboot:
Добавляем:
Применяем конфигурацию:
Пример аварийного завершения процесса:
После падения появится dump-файл:
Теперь можно открыть dump через
Посмотреть стек вызовов:
Для полноценного анализа бинарь желательно собирать с debug symbols (
На большинстве современных systemd-дистрибутивов dump часто обрабатывается через systemd-coredump, а не сохраняется напрямую через
Посмотреть список crash:
Получить информацию по dump:
Открыть dump сразу в
Вместо
Это особенно важно в проде, где dump может занимать гигабайты и быстро заполнять диск.
🔥 Core dump — один из базовых механизмов low-level диагностики Linux-приложений, backend-сервисов и анализа падений в продакшен.
🚪 Linux Ready | #практика
Когда Linux-процесс аварийно завершается (например, SIGSEGV / Segmentation fault, SIGABRT и др.), система может сохранить снимок памяти процесса — core dump.
Без dump-файла обычно остаётся только сам факт падения и запись в логах. Core dump позволяет открыть состояние процесса в
gdb, получить stack trace, посмотреть память, регистры, потоки и локализовать причину уже после завершения процесса.Проверка текущего лимита на создание dump:
ulimit -c
Если вывод 0 — сохранение core dump отключено для текущей shell/session.
Временное включение:
ulimit -c unlimited
Это работает только для процессов, запущенных из текущей shell-сессии. После logout или reboot настройка пропадёт.
Для systemd-сервисов одного ulimit недостаточно — лимит нужно задавать в unit-файле:
[Service]
LimitCORE=infinity
После изменения unit-файла:
sudo systemctl daemon-reload
sudo systemctl restart app.service
Теперь проверяем, как именно система сохраняет dump-файлы:
cat /proc/sys/kernel/core_pattern
Параметр
core_pattern определяет обработчик и путь сохранения dump. Если значение начинается с |, dump передаётся внешнему обработчику, например systemd-coredump.Пример прямого сохранения dump в файл:
/core.%e.%p.%t
Где:
%e — имя процесса; %p — PID процесса; %t — UNIX timestampСоздадим каталог для dump-файлов и настроим сохранение:
sudo mkdir -p /var/crash
sudo chmod 1777 /var/crash
sudo sysctl -w kernel.core_pattern=/var/crash/core.%e.%p.%t
1777 используется как простой демо вариант для тестов и локальной диагностики. В продакшен обычно делают более жёсткие права доступа и отдельно контролируют доступ к dump-файлам, поскольку они могут содержать чувствительные данные процесса.Чтобы настройка сохранилась после reboot:
sudo nano /etc/sysctl.d/99-coredump.conf
Добавляем:
kernel.core_pattern=/var/crash/core.%e.%p.%t
Применяем конфигурацию:
sudo sysctl --system
Пример аварийного завершения процесса:
./app
Segmentation fault (core dumped)
После падения появится dump-файл:
/var/crash/core.app.18422.1715962012
Теперь можно открыть dump через
gdb:gdb ./app /var/crash/core.app.18422.1715962012
Посмотреть стек вызовов:
(gdb) bt
Для полноценного анализа бинарь желательно собирать с debug symbols (
-g) без stripping.На большинстве современных systemd-дистрибутивов dump часто обрабатывается через systemd-coredump, а не сохраняется напрямую через
core_pattern.Посмотреть список crash:
coredumpctl list
Получить информацию по dump:
coredumpctl info PID
Открыть dump сразу в
gdb:coredumpctl debug PID
Вместо
PID можно использовать имя процесса, путь к бинарю и другие фильтры coredumpctl. Также важно помнить, что systemd-coredump отдельно управляет хранением dump-файлов через coredump.conf: Storage, ProcessSizeMax, ExternalSizeMax, MaxUse, KeepFree.Это особенно важно в проде, где dump может занимать гигабайты и быстро заполнять диск.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥2
Например, SSH сначала согласовывает версии и алгоритмы шифрования, затем выполняет обмен ключами и только после этого открывает безопасную сессию для передачи команд и данных.
На картинке — полный цикл работы SSH: от TCP-подключения до шифрования команд и проверки ключей клиента.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍5🔥2
Учимся искать то, что скрыто
Только в 2025 году в сеть утекло 767 миллионов записей с данными россиян. Информации - море, но 95% людей не умеют искать ничего сложнее базовых запросов.
Выдают базу Давид (8 лет в пентесте, Red Team EC-Council) и Анар (9 лет в анализе киберугроз).
Разбираем продвинутые техники: скрытые возможности Google Dorks, правильный пробив людей и компаний, работа с обратным поиском. В конце - живая практика мини-расследования.
Учимся не просто гуглить, а собирать разрозненные куски в единую картину. Вытаскиваем метаданные, строим связи (люди/домены/аккаунты), вычисляем фейки и упаковываем всё это в полноценное досье.
Регистрируйтесь сейчас - сразу после входа закинем вам в телеграм подробную карту OSINT-инструментов, чтобы не потеряться!
ПОДРОБНЕЕ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👎3👍1
Хотите одной командой найти все пустые пароли в системных учетных записях?
Забытые аккаунты без паролей или случайно созданные тестовые пользователи — это критическая уязвимость, которая позволяет злоумышленнику мгновенно подключиться по
Вывод списка всех пользователей, у которых поле хеша пароля полностью отсутствует:
Если команда вернула имена пользователей, значит, эти аккаунты прямо сейчас открыты для входа без пароля.
Проверка наличия учетных записей, у которых вместо пароля установлен символ
Эти спецсимволы, напротив, показывают, что учетная запись надежно заблокирована для прямой авторизации.
🔥 Чтобы быстро заблокировать опасный пустой аккаунт (например,
➡️ Hacking Ready | #совет
Забытые аккаунты без паролей или случайно созданные тестовые пользователи — это критическая уязвимость, которая позволяет злоумышленнику мгновенно подключиться по
SSH или получить локальный шелл в системе. Быстрый аудит защищенного файла /etc/shadow с помощью текстового процессора awk позволяет за секунду отсеять безопасные учетки от скрытых дыр в вашей безопасности.Вывод списка всех пользователей, у которых поле хеша пароля полностью отсутствует:
sudo awk -F: '($2 == "") {print $1}' /etc/shadowЕсли команда вернула имена пользователей, значит, эти аккаунты прямо сейчас открыты для входа без пароля.
Проверка наличия учетных записей, у которых вместо пароля установлен символ
* или !:sudo awk -F: '($2 ~ /^[*!]/) {print $1}' /etc/shadowЭти спецсимволы, напротив, показывают, что учетная запись надежно заблокирована для прямой авторизации.
🔥 Чтобы быстро заблокировать опасный пустой аккаунт (например,
testuser), выполните команду sudo passwd -l testuser, которая добавит знак восклицания перед хешем.➡️ Hacking Ready | #совет
❤6👍4🔥4
В этой статье:
• Разбирается, как red team палится ещё до цели — по шумным сканерам, VPN, User-Agent и другим мелким, но очень заметным следам;
• Показано, на какие артефакты обращает внимание защита: Sysmon, метаданные файлов, командные строки и нестандартные пути запуска;
• Разобраны реальные ошибки атакующих, из которых полезно учиться не только пентестеру, но и тем, кто строит детект и реагирование.🔊 Продолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥2
Интересный факт: простой файл security.txt позволяет этичным хакерам легально сообщать вам о дырах в безопасности!
Когда белый хакер находит критическую уязвимость на вашем сайте, он часто сталкивается с проблемой: кому об этом сообщить, чтобы данные не попали в паблик, а его самого не обвинили во взломе.
Текстовый стандарт
Создание стандартного файла с контактами и ссылкой на вашу политику разглашения (Vulnerability Disclosure Policy):
Этот конфиг указывает исследователям безопасный email и
Правильное размещение файла на вашем веб-сервере для автоматического парсинга сканерами:
По стандарту RFC 9116 файл должен быть доступен строго по пути /.well-known/security.txt.
🔥 Чтобы автоматизировать генерацию и не забыть важные поля (например, дату истечения актуальности Expires), используйте официальный веб-конструктор на сайте
➡️ Hacking Ready | #совет
Когда белый хакер находит критическую уязвимость на вашем сайте, он часто сталкивается с проблемой: кому об этом сообщить, чтобы данные не попали в паблик, а его самого не обвинили во взломе.
Текстовый стандарт
security.txt размещается в корне сайта и служит официальной визитной карточкой, четко описывая легальные каналы связи, контакты и правила Bug Bounty компании.Создание стандартного файла с контактами и ссылкой на вашу политику разглашения (Vulnerability Disclosure Policy):
# Разместите этот текст в файле security.txt
Contact: mailto:security@yourdomain.com
Encryption: https://yourdomain.com/pgp-key.txt
Acknowledgements: https://yourdomain.com/hall-of-fame.html
Этот конфиг указывает исследователям безопасный email и
PGP-ключ для зашифрованной отправки отчетов.Правильное размещение файла на вашем веб-сервере для автоматического парсинга сканерами:
sudo mkdir -p /var/www/html/.well-known/ && sudo mv security.txt /var/www/html/.well-known/
По стандарту RFC 9116 файл должен быть доступен строго по пути /.well-known/security.txt.
🔥 Чтобы автоматизировать генерацию и не забыть важные поля (например, дату истечения актуальности Expires), используйте официальный веб-конструктор на сайте
securitytxt.org.➡️ Hacking Ready | #совет
👍6❤4🔥2
Даже если основная аутентификация реализована правильно, злоумышленник может получить доступ к аккаунту через слабый механизм восстановления пароля. Часто именно этот процесс становится самым уязвимым звеном системы.
На схеме — пошаговый чек-лист для оценки механизма восстановления доступа без доступа к исходному коду: от сбора информации и поиска типовых ошибок до проверки защитных механизмов и признаков надёжной реализации.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥7👍3🤝2
В Linux можно безопасно перезаписывать файл результатом команды, которая этот же файл читает!
Многие хотя бы раз пытались сделать что-то вроде:
И получали пустой файл.
Проблема в том, что shell открывает файл на запись ещё до запуска
Для таких случаев существует
Сначала
Точно так же можно фильтровать логи или конфигурации без временных файлов:
Или выполнять цепочки преобразований над одним и тем же файлом:
🔥 Это позволяет безопасно изменять файл, не создавая временные копии и не рискуя случайно потерять данные.
🚪 Linux Ready | #совет
Многие хотя бы раз пытались сделать что-то вроде:
$ sort users.txt > users.txt
И получали пустой файл.
Проблема в том, что shell открывает файл на запись ещё до запуска
sort, поэтому содержимое уничтожается раньше, чем команда успевает его прочитать.Для таких случаев существует
sponge из пакета moreutils:$ sort users.txt | sponge users.txt
Сначала
sponge полностью считывает входной поток в память, а затем открывает файл и записывает результат.Точно так же можно фильтровать логи или конфигурации без временных файлов:
$ grep -v debug app.log | sponge app.log
Или выполнять цепочки преобразований над одним и тем же файлом:
$ sed 's/localhost/db.local/' config.ini | sponge config.ini
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤5👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Удобный каталог команд для Linux, Unix и macOS, где собраны готовые решения на Bash для самых разных задач: работа с файлами, сетью, процессами, логами, безопасностью и администрированием серверов. Каждая команда сопровождается пояснением.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤6🔥3
Один из базовых этапов при внутреннем пентесте — понять, какие устройства в сети и на каких ОС они работают. Это помогает выявить потенциально уязвимые цели и подобрать эксплойты под конкретные платформы.
В этом посте:
• Сканируем подсеть с помощью Nmap, чтобы найти активные хосты.
• Используем ключ -O для анализа сетевого стека и определения ОС.
• При необходимости включаем --osscan-guess, чтобы повысить шансы на распознавание.
• Узнаём не только ОС, но и MAC-адрес, порты, производителя устройства.
OS-фингерпринтинг — полезная техника при аудите инфраструктуры, разведке перед атакой или построении карты сети.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤3👍2