Поиск уязвимостей и следов взлома в Linux
Возможные действия после взлома системы
Перезапуск нежелательного кода после перезагрузки системы ( rc-status, cron )
Прослушивание портов ( netstat, lsof и др. )
Связь с удаленными хостами ( netstat, lsof и др.)
Потребление ресурсов(майнер, спам, ботнет) ( утилита top, ps и др. )
Добавление задач в cron
Модификация файлов ( find, grep и др. )
Поиск
Утилита top для поиск загруженных и подозрительных процессов + опция с, чтобы развернуть дерево процессов
Утилита ps для более подробного анализа процесса + опция -f --forest
ps -f --forest -C test
iotop - покажет использование диска процессамиpidstat -dl 20 - покажет все процессы, которые использовали чтение и запись с интервалом 20 сек
Просмотр установленных соединений:
ss -tupn
Поиск связанных файлов
sudo lsof / | grep virus
Просмотр запущенных служб:
systemctl list-unit-files | grep active
Просмотр содержимого юнитов:
systemctl edit pwnrige.service
#Второй способ:
cat /etc/systemd/system/pwnrige.service
cat /usr/lib/systemd/system/pwnrigl.service
Поиск файлов созданных за последний час:
find /etc/systemd/system/ /usr/lib/systemd/system/ -mtime -1
Просмотр заданий cron для определенного пользователя:
crontab -u root -e
Просмотр содержимого задач cron для всех пользователей:
for user in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $user -l 2>/dev/null | grep -v '^#'; done
Глобальный вариант поиска задач cron во всевозможных директориях:
grep '*' --color /etc/anacrontab /var/spool/cron/crontabs/* /var/spool/cron/* /etc/cron.hourly/* /etc/cron.daily/* /etc/cron.weekly/* /etc/cron.monthly/* /etc/cron.d/* /etc/init.d/down 2>/dev/null
Поиск недавно измененных файлов
find /bin/ -mtime -1 #изменен менее 1 дня назад
Файлы которые были изменены 50 дней назад:
find / -mtime 50
Файлы к которым был получен доступ 50 дней назад:
find / -atime 50
Файлы которые были изменены в промежутке более 50 дней назад и менее 100 дней назад
find / -mtime +50 -mtime -100
Файлы права которых были изменены за последний час:
find / -cmin -60
Файлы которые были модифицированны за последний час:
find / -mmin -60
Файлы доступ которым был предоставлен за последний час
Bash скрипты, которые выполняются автоматически при входе пользоватяля в систему:
/etc/profile
/etc/profile.d/*
~/.bash_profile
~/.bashrc
/etc/bashrc
Следующая команда выведет содержимое данных файлов для всех пользователей системы:
sudo grep --color '.*' /etc/profile /etc/profile.d/* /home/*/.bash_profile /home/*/.bashrc /etc/bashrc /root/.bash_profile /root/.bashrc
Вывод списка всех активных таймеров, которые могут заменить cron:
systemctl list-timers
Устранение
Блокировка, удаление связанных с вредоносным кодом файлов
Удаление добавленных заданий из cron
Блокировка связи с удаленными хостами с помощью iptables
Разблокировка файлов:
chattr -ai filename_use_virus
Удаление посторонних сервисов из служб автозагрузки:
systemctl disable
Убить посторонние процессы с помощью kill
Проверка после перезагрузки - reboot
Источники
Связанные темы
Структура каталогов linux(Debian)
Использование модуля pg_stat_statements в postgresql
Системный каталог в Postgresql
Конфигурация openvpn сервера в Linux Alpine
Управление планировщиком в Postgresql
Программирование на языке Assembler в Linux
Основные команды psql и sql Postgresql
Оптимизация производительности
Команда chattr и lsattr в Linux
Лексическая структура в Postgresql
Базовые понятие о настройках и безопасности в сети
Конфигурация Postgresql-12 для удаленного подключения
Системные каталоги в Postgresql
Саздание сертификатов SSL (TLS) для сайта
Блокировка пользователя в Linux
Мониторинг событий в linux с помощью auditd
Настройка виртуального сервера Nginx
Настройка openvpn сервера в Linux
Использование fail2ban в Linux
Compression and Decompression Nginx
Преодоление разрыва соединения
Мониторинг системы Linix с помощью getconf
Подключение к серверу Postgresql