Найти следы взлома AlmaLinux-сервера

baltun

Администратор
Сообщения
10.873
Реакции
2.584
Баллы
2.003
Если вы подозреваете, что ваш сервер мог быть взломан и хотите найти на сервере следы взломщика, то эта статья поможет вам провести первичную проверку сервера. Эта инструкция поможет обнаружить злоумышленника, если он не получил root доступа или не смог "замести" следы.

Проверяем историю входа пользователей ОС (показать последние 20 входов)
Код:
last -20

Смотрим, кто, когда и с какого IP заходил и пытаемся понять, есть ли взломщик. Вход одного пользователя с разных IP может быть признаком взлома. Чтобы посмотреть все входы конкретного пользователя, нужно выполнить (user нужно заменить на имя пользователя)
Код:
last user

Для каждого пользователя смотрим файл ~/.ssh/authorized_keys и убеждаемся, что в них нет чужих ключей.
Для каждого пользователя смотрим историю команд и ищем что-то подозрительное (перейти в конец истории: Shift + G)
Код:
history | less

На другом сервере с Linux устанавливаем, уважаемую взломщиками, утилиту nmap и сканируем открытые порты
Код:
nmap xxx.xxx.xxx.xxx
В результате получаем, например, так
Код:
Starting Nmap 7.80 ( https://nmap.org ) at 2021-02-19 22:05 +06
Nmap scan report for site.ru (000.000.000.000)
Host is up (0.087s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https
Убеждаемся, что не открыто «лишних» портов, через которые можно повторно взломать сервер. Под «лишними» понимаются открытые порты, которые не нужны для целей сервера. filtered означает, что nmap не может определить, является ли порт открытым или закрытым.
Открытые порты можно посмотреть и на самом проверяемом сервере, выполнив (ss улучшенный аналог netstat)
Код:
sudo ss -tulpn
Смотрим открытые для внешнего обращения порты.

Ищем файлы в системных каталогах, содержимое или атрибуты которых изменялись за последние дни. Например, ищем в каталоге /etc за последние 10 дней и показываем подробную информацию колонками
Код:
sudo find /etc -type f -ctime -10 -exec ls -ltc '{}' + | column -t | less

Можно искать файлы в диапазоне дат (от и до). Например, ищем файлы, измененные не раньше 10 дней, но не позднее 7 дней, результат записываем в файл changed.txt
Код:
find /etc -type f -ctime +7 -ctime -10 -exec ls -ltc '{}' + > changed.txt

Подробнее об атрибутах файла можно посмотреть командой stat
Код:
stat /etc/nginx/nginx.conf
 
Назад
Верх Низ