Kali Linux
55.1K subscribers
1.29K photos
102 videos
13 files
1.26K links
@linux_kal наш чат

По всем вопросам- @workakkk

@ai_machinelearning_big_data - машинное обучение

@itchannels_telegram - 🔥 главные ресурсы для хакера

@programming_books_it - бесплатные it книги

@pythonl -🐍

РКН: clck.ru/3Fmszy

#VRHSZ
Download Telegram
🧠 Задача для продвинутых Linux-админов: "Сломанный сервис, который живет вне systemd"

📌 Условие:
У вас есть продакшн‑сервер (Debian/Ubuntu), на котором внезапно начала "умирать" часть бэкенда. Логи в /var/log ничего не показывают, systemctl уверяет, что все сервисы активны. Но один внутренний микросервис processord исчезает каждые 5–10 минут и появляется снова. Пользователи жалуются на случайные 502.

🔎 Что известно:
• В ps aux вы иногда видите processord, а иногда нет
• В journalctl — тишина
• В systemctl list-units — такого юнита нет
• При netstat -tulpen видно, что processord слушает порт 9090, но ненадолго
• Cron выглядит чисто (`crontab -l`, `/etc/cron.*`)
sshd_config, .bashrc, .profile не тронуты
/etc/init.d/, /etc/rc.local не содержат вызовов processord
• В /tmp появляется временный скрипт с нечитаемым именем

🧩 Вопросы:
1. Где может прятаться запуск processord, если systemd его не знает?
2. Как отследить, кто запускает процесс?
3. Почему процесс "исчезает" и кто его убивает?
4. Как бы вы автоматизировали его отслеживание без полной остановки сервера?

Разбор и подход к решению:

Шаг 1: Кто его запускает?
Возможные подозреваемые:
- atd — отложенные задачи (проверь `atq`)
- watch, while true, tmux, screen, nohup, disown
- systemd --user (запуск в user-сессии, а не через root)
- ~/.config/systemd/user/ или ~/.config/autostart/
- Unit мог быть удалён, но процесс остался под другим shell'ом

📌 Используй:

auditctl -a exit,always -F arch=b64 -S execve
ausearch -x /usr/bin/processord


inotifywait -mr /tmp /etc /home -e create,open,exec


Шаг 2: Кто его убивает?
Варианты:


OOM-killer (dmesg | grep -i 'killed process')

Сторонняя логика (скрипт мониторинга или autorestart в user‑cron)

ulimit, timeout, или trap внутри родительского скрипта

Нечестный cronjob: проверь /etc/cron.d/, run-parts, anacron и т.д.

📌 Используй:


strace -ff -p $(pidof processord) -o trace.log


или


ps -o ppid= -p $(pidof processord) | xargs pstree -s


Шаг 3: Автоматизация расследования
• Поставь auditd, логируй все execve вызовы
• Используй systemtap или bpftrace для live-трассировки
• Пример:

bpftrace -e 'tracepoint:syscalls:sys_enter_execve { printf("%s %s\n", comm, str(args->argv[0])); }'


💡 Бонус:

Спроси себя — что если процесс стартует... внутри контейнера или chroot? Или через сторонний бинарник типа supervisord, установленный в /opt?

🧩 Вывод:
Это задача не просто про systemd, а про целостное понимание всей экосистемы процессов в Linux. Уверен, вы найдёте processord. Но вот как вы его найдёте — и покажет ваш уровень.
👍3117🔥4👎3
🛠️ Как реализовать AI-инспектора активности Linux-системы — пошагово

Хочешь построить умный CLI-инструмент, который следит за процессами, сетью и файлами, а потом объясняет их поведение с помощью ИИ? Вот краткий MVP-проект, который ты можешь собрать за выходные.

🔧 1. Сканируем активные процессы


import psutil

def scan_processes():
suspicious = []
for proc in psutil.process_iter(['pid', 'name', 'exe', 'cmdline']):
try:
path = proc.info['exe'] or ''
if '/tmp' in path or 'sh' in proc.info['name']:
suspicious.append(proc.info)
except psutil.AccessDenied:
continue
return suspicious

📡 2. Смотрим, кто слушает порты

import socket

def get_open_ports():
return [conn.laddr.port for conn in psutil.net_connections() if conn.status == 'LISTEN']


🗂 3. Следим за странными изменениями в /tmp


from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class TmpWatcher(FileSystemEventHandler):
def on_created(self, event):
print(f"[!] Создан файл в /tmp: {event.src_path}")


🧠 4. Спрашиваем у ИИ — что это значит


import openai

def explain_event(event_text):
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": f"Объясни, может ли это быть вредоносным:\n{event_text}"}],
temperature=0.2,
)
return response['choices'][0]['message']['content']


🎨 5. Красивый вывод через rich


from rich.console import Console
console = Console()

def report(process):
text = f"Подозрительный процесс: {process['name']} — {process['exe']}"
console.print(f"[bold red]⚠️ {text}[/bold red]")
explanation = explain_event(text)
console.print(f"[green]→ {explanation}[/green]")

🏁 Как собрать всё вместе:

Запускаем scan_processes() в цикле каждые 10 секунд

Параллельно запускаем Observer на /tmp

Все события — в очередь, LLM отвечает, rich выводит

📦 Расширения для продвинутых:
• Telegram-уведомления при критических событиях
• Локальный режим с LLM через Ollama или LM Studio
• Export в JSON/CSV/Prometheus

💡 Итог: у тебя будет терминальное приложение, которое в реальном времени отслеживает поведение Linux-системы и объясняет его как человек, но при этом всё на Python.

@linuxkalii

#python #linux #sysadmin #ai #infosec #terminaltools #weekendbuild
👍3922🔥18👎2
🕵️ Представлен Tails 6.17 — теперь ещё более компактный дистрибутив для анонимного пользования.

Обновлённая версия ОС для приватного серфинга стала легче благодаря оптимизации образа — разработчики удалили дублирующий микрокод процессора, сохранив при этом весь функционал. Как и прежде, дистрибутив автоматически направляет весь трафик через Tor и блокирует любые прямые соединения.

В новой версии также можно подсмотреть введённый пароль на экране блокировки, что удобно при использовании сложных комбинаций. Обновлённые Tor Browser 14.5.4 и uBlock Origin 1.62.0 обеспечивают безопасный и чистый от рекламы веб-сёрфинг.

🔗 Ссылка - *клик*

@linuxkalii
👍3214🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
🧠 Команда Linux, о которой знают не все: `ss -npi`

Когда netstat устарел, многие перешли на ss — но используют его поверхностно.
А зря: ss может буквально показать какой процесс держит сокет, какие TCP-флаги установлены, и какие пакеты ждут в очереди.

📌 Пример:

ss -npi state established


🔍 Что делает:
- -n — не резолвит имена хостов (быстрее)
- -p — показывает, какой процесс использует соединение
- -i — выводит внутреннюю информацию о сокете: RTT, TCP-флаги, буферы и пр.

🛠 Используйте, чтобы:
- выследить висящие соединения с высоким RTT
- диагностировать сетевые затыки без tcpdump
- увидеть, почему соединение «живое», но не работает

🔥 Бонус:

ss -nti '( dport = :443 )'

Позволяет фильтровать по порту и видеть TCP-интерналы только для HTTPS.

📎 Альтернатива тяжелым снифферам вроде Wireshark и lsof в продакшене.

💡 Используйте ss -npi для быстрой диагностики проблем на уровне TCP — без лишнего шума.
🔥32👍1811😁2
🧠 Linux: заморозка процесса без SIGSTOP

Обычно чтобы «заморозить» процесс, мы шлём ему SIGSTOP, но есть способ *поставить его на паузу без сигнала* и без потери контроля:


# Приостановить выполнение команды, удерживая её в foreground через SIGTSTP
sleep 9999
^Z # (Ctrl+Z) — ставит в фон и останавливает

# А теперь хитрость: "fg" + "Ctrl+Z" снова — это цикл управления процессом вручную

# Но можно сделать изолированную паузу через cgroups:
cgcreate -g freezer:/pause
cgclassify -g freezer:/pause <PID>
echo FROZEN > /sys/fs/cgroup/freezer/pause/freezer.state


🔥 Процесс «замораживается» полностью: 0% CPU, не отвечает на запросы, но не убивается, не выгружается из памяти и можно *в любой момент разморозить*:


echo THAWED > /sys/fs/cgroup/freezer/pause/freezer.state


📦 Используется в Kubernetes, Docker и systemd — а теперь можешь и ты 😉


@linuxkalii
👍2211🔥5😁1
🔅 SockTail — простой способ получить SOCKS5-прокси через вашу Tailscale-сеть

Что делает:
- Подключает текущее устройство к вашему Tailnet (частной сети Tailscale)
- Сразу разворачивает локальный SOCKS5-прокси на localhost:1080

Для чего это нужно:
- Безопасный доступ к внутренним сервисам и приложениям в вашей Tailnet
- Быстрая настройка прокси без VPN-клиентов и сложных конфигов
- Удобно для разработчиков, red team-инженеров и тестирования сетевой безопасности

Как это работает:
- Один исполняемый файл без внешних зависимостей
- Использует встроенный клиент tsnet для подключения к Tailnet
- Аутентификация через токен (можно встроить в бинарник или передать при запуске)
- После закрытия процесса все следы на диске автоматически удаляются

Репозиторий: https://github.com/Yeeb1/SockTail

@linuxkalii
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍9🔥3
⚙️ Продвинутый трюк в Linux: извлечение пароля из закрытого `sudo`

Один раз ввёл sudo — и хочешь достать пароль из кеша? Не получится. Но можно сделать почти невозможное — выполнить команду от имени `sudo`, не вводя пароль заново, *используя сокет `sudo`*:


sudo -v # обновим кеш
SUDO_ASKPASS=/bin/false sudo -A ls 2>/dev/null # 💡 обманем sudo, не вводя пароль


А теперь жёстче:


sudo -n true || echo "🔐 Sudo истек, пароль нужен"


🔍 А что делает `-n`?
Флаг -n означает "non-interactive" — sudo не будет спрашивать пароль. Вместо этого просто выйдет с ошибкой. Это удобно в CI/CD, cron-скриптах и других автоматизациях.

👾 Бонус: хочешь узнать, сколько осталось до истечения `sudo`-сессии?


sudo -n true && echo "Осталось $(($(stat -c %Y ~/.sudo_as_admin_successful)+15*60 - $(date +%s))) секунд"


Кеш по умолчанию живёт 15 минут. Зная это — ты можешь грамотно автоматизировать действия с правами суперпользователя без риска застрять на вводе пароля.


📌 @linuxkalii
🤯3014🔥14🥰3👍1
🛠️ Подборка для тех, кто копает глубже — Awesome Blackhat Tools

Репозиторий с сотнями инструментов, которые используют исследователи, реверс-инженеры, пентестеры и хакеры по всему миру.

🔍 Внутри:
• Снифферы, эксплойты, генераторы payload’ов
• Инструменты для социальной инженерии, сетевого анализа и обхода защиты
• Автоматизация атак, OSINT, и даже машинное обучение для offensive-задач

⚠️ Только в образовательных целях.
🔗 https://github.com/UCYBERS/Awesome-Blackhat-Tools

Изучай, чтобы защищать — или хотя бы понимать, с чем имеешь дело.
18👍10🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Полезная команда: `fuser` — кто занял порт или файл?

Хочешь узнать, какой процесс держит порт или блокирует файл? Не нужен lsof, просто:


fuser -vn tcp 8000


→ покажет PID, кто занял порт 8000.

Проверка файла:


fuser /var/log/syslog


Убить все процессы, использующие /mnt/usb:


fuser -km /mnt/usb


🚀 Быстро. Просто. Работает там, где lsof молчит.
43👍15🔥5🥰1
⚡️ Почему лучшие разработчики всегда на шаг впереди?

Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.

ИИ: t.iss.one/ai_machinelearning_big_data
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Мл собес t.iss.one/machinelearning_interview
C++ t.iss.one/cpluspluc
Docker: t.iss.one/DevopsDocker
Хакинг: t.iss.one/linux_read
МЛ: t.iss.one/machinelearning_ru
Devops: t.iss.one/DevOPSitsec
Data Science: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_ci
Java: t.iss.one/java_library
Базы данных: t.iss.one/sqlhub
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Golang: t.iss.one/Golang_google
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
ИИ: t.iss.one/vistehno
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
Разработка игр: https://t.iss.one/gamedev
Физика: t.iss.one/fizmat
SQL: t.iss.one/databases_tg

Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno

🖥 Chatgpt для кода в тг: @Chatgpturbobot

📕Ит-книги: https://t.iss.one/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.iss.one/addlist/_zyy_jQ_QUsyM2Vi

Подпишись, чтобы всегда знать, куда двигаться дальше!
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍5🔥3👎2🥰1
🕸️ Chat4Data — расширение, которое превращает веб-скрапинг в диалог

Вместо кода и настроек — просто говоришь, что хочешь, и AI собирает структурированные данные с сайта.

Что умеет Chat4Data:

🔹 Собирает данные “на слух”
Опиши нужную таблицу или список — AI сам найдёт, распарсит и вставит в таблицу. Не нравится результат? Переспроси. Без кода, без боли.

🔹 Обходит все страницы сам
Автоматически кликает “Следующая”, грузит подгружаемые списки и собирает всё — без твоего участия.

🔹 Запускается за 3 клика
AI сам определяет, какие данные ценные, предлагает их — тебе остаётся только подтвердить. Быстро, как в Telegram-боте.

🔹 Не тратит токены на скрапинг
Анализ страницы — на AI, но сами данные забираются без токенов. В бета-версии дают 1 миллион токенов на другие задачи.

🔹 Скоро: скрапинг подстраниц, интерактив, интеграции...

📎 https://chat4data.ai

#ai #scraping #automation #nocode #tools
10🔥9👍4👎2
This media is not supported in your browser
VIEW IN TELEGRAM
🕵️‍♂️ Отслеживаем скрытые DNS-запросы — даже внутри контейнеров

Иногда процессы в системе делают DNS-запросы напрямую через connect() — в обход resolv.conf, без dig, без nslookup.
Особенно это актуально в контейнерах, sandbox-средах и CI/CD, где обычные инструменты вроде tcpdump могут не помочь.

Решение — использовать auditd, чтобы отслеживать системные вызовы на уровне ядра.
Вот как это сделать:



# Ловим исходящие соединения к порту 53 (DNS)
auditctl -a always,exit -F arch=b64 -S connect -F dir=out -F a2=0x35000000

🕵️‍♂️ Auditd: DNS под колпаком

Что даёт:
– Показывает PID, пользователя и бинарник, сделавший запрос
– Работает в любых namespace'ах и chroot'ах
– Независим от прокси, фаерволов и прочих слоёв
– Можно собирать статистику, логировать, триггерить алерты

Незаменимая штука, если вы ищете, кто именно "шепчется наружу", особенно в защищённых или изолированных окружениях.

https://www.youtube.com/shorts/Bl2CgMzWvvU

📌 @linuxkalii
👍205🔥3😁2
🐚 Bash 5.3 — большое обновление любимой оболочки

Спустя 3 года после релиза Bash 5.2 представлена новая версия — GNU Bash 5.3, и в ней много интересного:

🔧 Новая командная подстановка
Теперь можно выполнить команду *внутри текущей оболочки*, сохранив результат в переменную REPLY:

${| echo hello; } # REPLY=hello


🧠 Поддержка стандарта C23
Код обновлён под новый стандарт C23. Это означает отказ от старых K&R-компиляторов.

🔍 Поиск без учёта регистра в Readline 8.3
Теперь можно включить опцию set completion-ignore-case on для автозаполнения и поиска в истории.

📁 GLOBSORT: управление сортировкой автодополнения
Новая переменная окружения GLOBSORT позволяет настраивать сортировку файлов при завершении (по имени, размеру, дате и др).

📜 Новые опции:

read -E — подключение Readline при вводе.

compgen -V myvar — сохранить список завершений в переменную.

source -p ./scripts — задать путь для поиска скриптов.

🐛 Исправления и улучшения

- Улучшены сообщения об ошибках и подсказки.

- Поддержка нескольких сопроцессов (MULTIPLE_COPROCS).

- Улучшена обработка сигналов, trap, wait, bind и др.

- Расширенные POSIX-совместимые возможности.

📥 Как установить
Скачать можно с официального gnu.org или в репозиториях большинства дистрибутивов.

🔥 Это крупнейшее обновление Bash за последние годы — особенно для тех, кто пишет сложные shell-скрипты.

📌 Подробнее

📌 @linuxkalii
🔥1513👍8🎉2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Как узнать, кто последний редактировал любой файл в Linux — даже если это не git

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

Вот как включить отслеживание изменений для конкретного файла:



# Включаем слежение за изменениями файла
auditctl -w /etc/nginx/nginx.conf -p w -k nginx_watch

# Потом можно посмотреть, кто и когда его правил:
ausearch -k nginx_watch


🧠 Кто редактировал файл — точно и с логами

📌 Работает с любыми файлами: конфиги, скрипты, ключи
📌 Видно: кто, когда, чем, с каким PID
📌 Отлично для отладки, расследований, CI/CD и безопасных систем

Идеальный инструмент, если "что-то сломалось, но никто ничего не трогал.

Видео

@linuxkalii
30👍29🔥10😁2😱1
⚡️ Cовет дня Linux: быстрое повторное использование аргумента

В терминале Bash есть удобный трюк: !$ вставляет последний аргумент предыдущей команды.

Пример:


mkdir new_folder
cd !$


🔁 !$ → подставит new_folder, не нужно печатать дважды.


Полезно, если:
— работаешь с длинными путями
— устанавливаешь и сразу запускаешь что-то
— копируешь, а потом переходишь в каталог

@linuxkalii
👍36🔥1612
🐫 Вышел новый релиз 5.42 легендарного языка Perl с экспериментальными фичами. После года разработки вышел очередной ежегодный релиз Perl, сохраняющий баланс между современными возможностями и обратной совместимостью. Главные новинки — операторы all/any для работы со списками и улучшенная система методов классов с автоматическими writer'ами.

В новой версии команда разработчиков почти отказалась от удаления устаревшего синтаксиса, вместо этого добавив явное отключение таких возможностей. А также появился возврат умного сопоставления (~~) и switch, которые ранее считались deprecated.

🔗 Ссылка - *клик*

@linuxkalii
🔥159👍7👎1
🔓 ИИ-бот для найма в McDonald’s взломан — админы использовали пароль "123456"

Хакеры получили доступ к рекрутинговому боту Olivia от Paradox AI, который используется в системе McHire для проведения первичных интервью. Причина? Тривиальный пароль администратора — 123456.

🧾 В результате утекли данные 64 миллионов соискателей: имена, email, телефоны и даже ответы на собеседования.

🤖 Olivia — это AI-рекрутер, который общается с кандидатами и помогает автоматизировать найм в McDonald’s. Теперь же он стал примером, как не надо защищать корпоративные ИИ-системы.

📉 Урок: неважно, насколько умён ваш ИИ — если безопасность на уровне "123456", долго он не проживёт.

К — кибербезопасность. И к здравому смыслу.

@linuxkalii
🔥35😁269👍7🥰1
🦅 MongoDB представила Kingfisher — инструмент для оценки производительности AI-запросов к базам данных

Kingfisher — это open-source фреймворк, который помогает разработчикам анализировать, как AI-модели взаимодействуют с MongoDB или другими источниками данных.

🔍 Что умеет:
- Генерировать и запускать естественно-языковые запросы к базе через LLM
- Сравнивать разные подходы к генерации и верификации запросов
- Измерять точность, скорость и релевантность выдачи
- Поддерживает разные схемы данных и шаблоны диалогов

📦 Используется:
- Для оценки качества AI-агентов, которые обращаются к базам
- Для настройки моделей, работающих с реальными данными

🛠 Под капотом:
- Поддержка собственного DSL
- Интеграции с OpenAI, Azure, Anthropic
- Расширяемая архитектура: можно подключать свои модели и пайплайны

🔗 Репозиторий: https://github.com/mongodb/kingfisher

Если вы строите LLM-агентов, которые работают с базами — Kingfisher сэкономит вам недели на тестах и экспериментах.

@linuxkalii
16🔥8👍6🥰2
⚡️ Шпаргалка по скобкам в Bash — для тех, кто путается между `[]`, `{}`, `$( )` и остальными

На одной картинке — все популярные скобки и окружения в Bash:
$(), {}, [], $(( )), ${}, () и [[ ]].

Когда и зачем использовать:
- условия и проверки
- подстановки значений
- арифметика
- группировка команд
- модификация переменных

Минимум теории — максимум пользы, чтобы больше не гадать, какие скобки ставить.

@linuxkalii
🔥32👍107
🧠 Продвинутый совет по Linux: динамический контроль лимитов ulimit на лету

Когда запускаешь ресурсоёмкие процессы (например, компиляцию, docker-контейнеры или нагрузочное тестирование), может внезапно ударить лимит ulimit на число открытых файлов.

🔧 Вместо перезапуска сессию, можно *временно изменить лимит* прямо из shell-скрипта или командной строки, не трогая глобальные настройки:


ulimit -n 1048576


Или так — для конкретного процесса:


bash -c 'ulimit -n 1048576; exec your_command'

🎯 А теперь магия — чтобы повысить лимит до системного предела, проверь сначала максимальное значение:


cat /proc/sys/fs/file-max

А затем отредактируй:


sudo sysctl -w fs.file-max=2097152

🛡️ Важно: чтобы всё это сохранялось после перезагрузки — пропиши в /etc/security/limits.conf и /etc/sysctl.conf.


@linuxkalii
👍158🔥5🥰1
🕵️‍♂️ Собрание Shodan Dorks — must-have для всех, кто занимается кибербезопасностью, ресерчем или просто любит искать уязвимые девайсы в интернете:

Этот репозиторий содержит огромное количество заранее подготовленных запросов (dorks) для — поисковика, который индексирует всё, что подключено к интернету: камеры, роутеры, сервера, SCADA-системы и даже холодильники.

Что есть в коллекции:
- камеры наблюдения с открытым доступом
- панели администрирования IoT-устройств
- Telnet, FTP, RDP, SNMP-интерфейсы
- устройства с дефолтными логинами
- принтеры, VoIP, базы данных и многое другое

🔥 Подойдёт для тестов на проникновение . Но помните: всё в образовательных целях.

👉 Репозиторий: https://github.com/dootss/shodan-dorks

@linuxkalii
24👍5🤔1