baltun
Администратор
- Сообщения
- 12.282
- Реакции
- 3.082
- Баллы
- 1.833
Если вы подозреваете, что ваш сервер мог быть взломан и хотите найти на сервере следы взломщика, то эта статья поможет вам провести первичную проверку сервера. Эта инструкция поможет обнаружить злоумышленника, если он не получил root доступа или не смог "замести" следы.
Проверяем историю входа пользователей ОС (показать последние 20 входов)
Смотрим, кто, когда и с какого IP заходил и пытаемся понять, есть ли взломщик. Вход одного пользователя с разных IP может быть признаком взлома. Чтобы посмотреть все входы конкретного пользователя, нужно выполнить (user нужно заменить на имя пользователя)
Для каждого пользователя смотрим файл ~/.ssh/authorized_keys и убеждаемся, что в них нет чужих ключей.
Для каждого пользователя смотрим историю команд и ищем что-то подозрительное (перейти в конец истории: Shift + G)
На другом сервере с Linux устанавливаем, уважаемую взломщиками, утилиту nmap и сканируем открытые порты
В результате получаем, например, так
Убеждаемся, что не открыто «лишних» портов, через которые можно повторно взломать сервер. Под «лишними» понимаются открытые порты, которые не нужны для целей сервера. filtered означает, что nmap не может определить, является ли порт открытым или закрытым.
Открытые порты можно посмотреть и на самом проверяемом сервере, выполнив (ss улучшенный аналог netstat)
Смотрим открытые для внешнего обращения порты.
Ищем файлы в системных каталогах, содержимое или атрибуты которых изменялись за последние дни. Например, ищем в каталоге /etc за последние 10 дней и показываем подробную информацию колонками
Можно искать файлы в диапазоне дат (от и до). Например, ищем файлы, измененные не раньше 10 дней, но не позднее 7 дней, результат записываем в файл changed.txt
Подробнее об атрибутах файла можно посмотреть командой stat
Проверяем историю входа пользователей ОС (показать последние 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
Открытые порты можно посмотреть и на самом проверяемом сервере, выполнив (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