LINUXKALII Telegram 1489
🧩 Задача для Linux-администраторов: "Исчезающий процесс"

📖 Описание задачи

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

Особенности:

- Бинарный файл процесса каждый раз появляется в разной директории внутри /tmp.
- Имя процесса каждый раз разное (например, a1b2c3, `d4e5f6`).
- При запуске процесс слушает TCP-порт на случайном высоком порту (>=1024).
- Порт каждый раз динамически выбирается и кодируется в base64, чтобы затруднить прямую идентификацию.
- Бинарный файл зашифрован и расшифровывается процессом в оперативной памяти перед запуском.
- После удаления файла и убийства процесса через 10 минут процесс появляется снова.

📝 Ваша задача:

1. Определить источник "реинкарнации" процесса.
2. Найти механизм автозапуска и зашифрованного хранения бинарника.
3. Остановить автоматический запуск навсегда без перезагрузки системы.
4. Задокументировать шаги поиска и устранения проблемы.

🕵️ Решение (разбор шаг за шагом)

1️⃣ Найти процесс и порт

Поскольку порт зашифрован (base64), стандартный ss или netstat покажут только открытый порт, но не под каким именем он должен быть:


ss -tulpn | grep LISTEN


Запоминаем PID и порт. Чтобы проверить порт в base64:


echo <порт> | base64


(найденный зашифрованный порт в коде процесса может совпадать)

2️⃣ Посмотреть открытые файлы и дескрипторы

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


lsof -p <pid>


Смотрим дескрипторы /tmp/, /dev/shm/, /proc/self/fd/.

Если исполняемый файл удалён, но процесс его держит открытым, можно восстановить его через /proc/<pid>/exe:


cp /proc/<pid>/exe ./restored_binary


3️⃣ Отследить родителя процесса

Проверим родительский процесс:


ps -o pid,ppid,cmd -p <pid>
pstree -p <ppid>


➡️ Нужно понять, кто создаёт зашифрованный бинарник и запускает процесс.

4️⃣ Отследить создание файла в /tmp

Используем auditd или inotifywait, чтобы зафиксировать момент создания:


auditctl -w /tmp -p wa
ausearch -f /tmp


или


inotifywait -m /tmp


Когда файл создастся → смотрим, какой процесс его записал:


lsof | grep /tmp/<имя_файла>


5️⃣ Проверить автозагрузку

Проверяем cron:


crontab -l
cat /etc/crontab
ls -l /etc/cron.*


Проверяем systemd:


systemctl list-timers --all
systemctl list-units --type=service
systemctl list-units --type=timer


Проверяем init.d, rc.local, profile.d:


ls -l /etc/init.d/
cat /etc/rc.local
ls -l /etc/profile.d/


6️⃣ Проанализировать процесс запуска

Раз шифрование происходит в памяти:

- Проверяем аргументы запуска процесса через ps aux
- Используем strace для перехвата системных вызовов:


strace -f -p <pid>


- Проверяем, не использует ли процесс memfd_create, shm_open, mmap (бинарник в памяти):


lsof -p <pid> | grep memfd


📝 Возможное объяснение

- Основной процесс шифрует бинарник и хранит его (например, в `/etc/.hidden/enc.bin`).
- Через cron job или systemd timer каждые 10 минут запускается дешифровщик, который:
- Расшифровывает бинарник в /tmp
- Запускает процесс
- Запущенный процесс открывает порт, шифрует его номер (base64) и выводит только в своих аргументах/переменных окружения.
- Процесс удаляет бинарник сразу после запуска, оставляя только дескриптор в памяти.

Как остановить навсегда (без перезагрузки):

1. Найти и остановить родительский процесс (watchdog/дешифровщик):


kill -9 <pid>


2. Удалить механизм автозапуска:

- Удалить запись из cron.
- systemctl disable <название_сервиса>
- Удалить файлы-инициаторы из /etc/systemd/system/, /etc/init.d/, /etc/rc.d/.

3. Найти и удалить зашифрованный бинарник:


find / -type f -name '*.bin' -exec file {} \; | grep 'data'


или поиск по дате изменения:


find / -type f -mtime -1


4. Очистить /tmp, /dev/shm, /run от временных файлов.



tgoop.com/linuxkalii/1489
Create:
Last Update:

🧩 Задача для Linux-администраторов: "Исчезающий процесс"

📖 Описание задачи

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

Особенности:

- Бинарный файл процесса каждый раз появляется в разной директории внутри /tmp.
- Имя процесса каждый раз разное (например, a1b2c3, `d4e5f6`).
- При запуске процесс слушает TCP-порт на случайном высоком порту (>=1024).
- Порт каждый раз динамически выбирается и кодируется в base64, чтобы затруднить прямую идентификацию.
- Бинарный файл зашифрован и расшифровывается процессом в оперативной памяти перед запуском.
- После удаления файла и убийства процесса через 10 минут процесс появляется снова.

📝 Ваша задача:

1. Определить источник "реинкарнации" процесса.
2. Найти механизм автозапуска и зашифрованного хранения бинарника.
3. Остановить автоматический запуск навсегда без перезагрузки системы.
4. Задокументировать шаги поиска и устранения проблемы.

🕵️ Решение (разбор шаг за шагом)

1️⃣ Найти процесс и порт

Поскольку порт зашифрован (base64), стандартный ss или netstat покажут только открытый порт, но не под каким именем он должен быть:


ss -tulpn | grep LISTEN


Запоминаем PID и порт. Чтобы проверить порт в base64:


echo <порт> | base64


(найденный зашифрованный порт в коде процесса может совпадать)

2️⃣ Посмотреть открытые файлы и дескрипторы

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


lsof -p <pid>


Смотрим дескрипторы /tmp/, /dev/shm/, /proc/self/fd/.

Если исполняемый файл удалён, но процесс его держит открытым, можно восстановить его через /proc/<pid>/exe:


cp /proc/<pid>/exe ./restored_binary


3️⃣ Отследить родителя процесса

Проверим родительский процесс:


ps -o pid,ppid,cmd -p <pid>
pstree -p <ppid>


➡️ Нужно понять, кто создаёт зашифрованный бинарник и запускает процесс.

4️⃣ Отследить создание файла в /tmp

Используем auditd или inotifywait, чтобы зафиксировать момент создания:


auditctl -w /tmp -p wa
ausearch -f /tmp


или


inotifywait -m /tmp


Когда файл создастся → смотрим, какой процесс его записал:


lsof | grep /tmp/<имя_файла>


5️⃣ Проверить автозагрузку

Проверяем cron:


crontab -l
cat /etc/crontab
ls -l /etc/cron.*


Проверяем systemd:


systemctl list-timers --all
systemctl list-units --type=service
systemctl list-units --type=timer


Проверяем init.d, rc.local, profile.d:


ls -l /etc/init.d/
cat /etc/rc.local
ls -l /etc/profile.d/


6️⃣ Проанализировать процесс запуска

Раз шифрование происходит в памяти:

- Проверяем аргументы запуска процесса через ps aux
- Используем strace для перехвата системных вызовов:


strace -f -p <pid>


- Проверяем, не использует ли процесс memfd_create, shm_open, mmap (бинарник в памяти):


lsof -p <pid> | grep memfd


📝 Возможное объяснение

- Основной процесс шифрует бинарник и хранит его (например, в `/etc/.hidden/enc.bin`).
- Через cron job или systemd timer каждые 10 минут запускается дешифровщик, который:
- Расшифровывает бинарник в /tmp
- Запускает процесс
- Запущенный процесс открывает порт, шифрует его номер (base64) и выводит только в своих аргументах/переменных окружения.
- Процесс удаляет бинарник сразу после запуска, оставляя только дескриптор в памяти.

Как остановить навсегда (без перезагрузки):

1. Найти и остановить родительский процесс (watchdog/дешифровщик):


kill -9 <pid>


2. Удалить механизм автозапуска:

- Удалить запись из cron.
- systemctl disable <название_сервиса>
- Удалить файлы-инициаторы из /etc/systemd/system/, /etc/init.d/, /etc/rc.d/.

3. Найти и удалить зашифрованный бинарник:


find / -type f -name '*.bin' -exec file {} \; | grep 'data'


или поиск по дате изменения:


find / -type f -mtime -1


4. Очистить /tmp, /dev/shm, /run от временных файлов.

BY Kali Linux


Share with your friend now:
tgoop.com/linuxkalii/1489

View MORE
Open in Telegram


Telegram News

Date: |

The initiatives announced by Perekopsky include monitoring the content in groups. According to the executive, posts identified as lacking context or as containing false information will be flagged as a potential source of disinformation. The content is then forwarded to Telegram's fact-checking channels for analysis and subsequent publication of verified information. “Hey degen, are you stressed? Just let it all out,” he wrote, along with a link to join the group. Judge Hui described Ng as inciting others to “commit a massacre” with three posts teaching people to make “toxic chlorine gas bombs,” target police stations, police quarters and the city’s metro stations. This offence was “rather serious,” the court said. Hui said the time period and nature of some offences “overlapped” and thus their prison terms could be served concurrently. The judge ordered Ng to be jailed for a total of six years and six months. Private channels are only accessible to subscribers and don’t appear in public searches. To join a private channel, you need to receive a link from the owner (administrator). A private channel is an excellent solution for companies and teams. You can also use this type of channel to write down personal notes, reflections, etc. By the way, you can make your private channel public at any moment.
from us


Telegram Kali Linux
FROM American