Подключись сам и выполни:
top -b -n1 | head -20
Проверь wsystemd:
# Посмотреть полный путь
ls -la /proc/4012757/exe
cat /proc/4012757/cmdline | tr '\0' ' '
# Откуда запущен
ls -la /proc/4012757/cwd
# Когда создан
stat /proc/4012757
# Убить
kill -9 4012757
Скорее всего сервер был скомпрометирован. После убийства процесса проверь:
# Как он запускается (cron, systemd service, rc.local)
crontab -l
crontab -u root -l
find /etc/systemd/system -name "*wsystem*"
find / -name "wsystemd" 2>/dev/null
Это майнер. Удаляй:
# Остановить
kill -9 4012757
# Посмотреть что внутри
file /usr/sbin/wsystemd
strings /usr/sbin/wsystemd | grep -iE "pool|stratum|mining|xmr|monero" | head -10
# Проверить как он автозапускается
grep -r "wsystemd" /etc/systemd/system/ /lib/systemd/system/ /etc/init.d/ /etc/crontab /var/spool/cron/ 2>/dev/null
crontab -l -u root 2>/dev/null | grep wsystemd
# Удалить
rm -f /usr/sbin/wsystemd
# Проверить нет ли ещё подозрительного
find /usr/sbin /usr/bin /tmp /var/tmp -newer /usr/sbin/wsystemd -type f 2>/dev/null
После этого проверь как попали на сервер:
# Последние логины
last -20
# SSH авторизованные ключи
cat /root/.ssh/authorized_keys
cat /home/ubuntu/.ssh/authorized_keys
# Открытые порты
ss -tlnp
wtmp — файл логов входов в систему (/var/log/wtmp). Эта строка значит что лог-файл был создан (или обрезан) 15 июля 2020 — с тех пор ни разу не ротировался.
Если last -20 показал только эту строку и больше ничего — значит записи логинов были удалены злоумышленником:
# Проверить размер
ls -la /var/log/wtmp
# Проверить auth лог
cat /var/log/auth.log | grep "Accepted" | tail -20
# Если auth.log тоже пуст — логи зачистили
ls -la /var/log/auth.log*
Это типичное поведение после взлома — стирают логи чтобы скрыть следы.
# Отредактировать sshd_config
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
sed -i 's/^#\?ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^#\?UsePAM.*/UsePAM no/' /etc/ssh/sshd_config
# Проверить
grep -E "^(PasswordAuth|PermitRoot|Challenge|UsePAM)" /etc/ssh/sshd_config
# Перезапустить (НЕ закрывай текущую сессию пока не проверишь)
systemctl restart sshd
Перед рестартом убедись что твой ключ в authorized_keys:
cat /home/ubuntu/.ssh/authorized_keys
Потом в отдельном терминале проверь что можешь войти:
ssh ubuntu@142.44.137.162 -i ~/.ssh/flc
Только после успешного входа закрывай старую сессию.
# Пользователи с shell (могут логиниться)
grep -v "nologin\|false\|sync\|halt\|shutdown" /etc/passwd
# Пользователи с UID 0 (root-права) — должен быть только root
awk -F: '$3 == 0 {print}' /etc/passwd
# Пользователи в группе sudo
getent group sudo
# Кто сейчас залогинен
w
# Все authorized_keys на сервере
find / -name "authorized_keys" -exec echo "=== {} ===" \; -exec cat {} \; 2>/dev/null
sudo : x : 27 : ubuntu
│ │ │ └── пользователь ubuntu в группе sudo
│ │ └─────── GID 27
│ └─────────── пароль в /etc/shadow (заглушка)
└────────────────── имя группы