LINUX.ORG.RU
решено ФорумAdmin

первая помощь при взломе домашнего сервера

 , ,


1

2

доброго времени суток,

ломанули мой домашний сервер. получив рут-доступ: поудаляли всякого (выкрали кой-чего). Что можно попытаться определить по горячим следам, чтобы выявить дыру в безопасности?

сервер на openSuse 12.3. Находится за домашним роутером. На него были проброшены порты: 80, 22 (без стучания по портам), 21, 5900-5907 (внц), 21027 (сервер TF2). Файрвол работал. мой уровень как админа довольно никудышный - просто осознал необходимость домашнего сервера, запустил - работает (понемногу обростая возложенными функциями).

система после взлома не очень рабочая (часть системных файлов потёрта).

ранее ещё заметил, что в скрипте запуска игрового (тф2) сервера были странные команды на изменения атрибутов:

chmod -R 777 /var/log/
chmod -R 777 /etc/apache2/
chmod -R 777 /root/ >/dev/null
chmod -R 777 /home/dimic/ >/dev/null
chmod 777 /etc/shadow >/dev/null
chmod 777 /etc/shadow >/dev/null
зачем менять атрибуты таким образом, если уже был рут-доступ? Или возможно модифицировать скрипт запуска из запущенного ним приложения?


ранее ещё заметил, что в скрипте запуска игрового (тф2) сервера были странные команды на изменения атрибутов:

Ранее это до взлома или после? Скрипт запуска тф2 с какого нибудь левого сайта взял?
Перечисленные команды открывают доступ на чтение/запись/запуск для указанных файлов, например в /etc/shadow хранятся пароли пользователей.

зачем менять атрибуты таким образом, если уже был рут-доступ?

Видимо не было рут доступа. Был доступ на редактирование файла запуска тф2(или ты сам его залил) и при этом тф2 у тебя запускается с правами рута что позволило выполнить команды. Возможно в самом тф2 где нибудь дырка.

Чтобы защититься от подобного рекомендую для каждой задачи (тф2, майнкрафт, контерстрайк...) создавать своего пользователя и запускать эти задачи из под этих пользователей, а не из под рута.

TDrive ★★★★★ ()

Или возможно модифицировать скрипт запуска из запущенного ним приложения?

Приложению пофиг скрипт запуска это или обычный файл. Если в самом приложении есть возможность(дырка) редактировать файлы и у пользователя от которого запущено приложение достаточно прав на редактирование файла, то почему нет.

TDrive ★★★★★ ()
Ответ на: комментарий от TDrive

ого! про шедов не знал :/

«ранее» это до полного взлома. пару дней до этого я заметил некоторые странности но не понял что случилось. Сперва просто баловались - выключали сервер игры (но это можно сделать из самой игры без влезания на линукс машину).

основы атрибутов доступа я знаю. шелл-скрипт был доступен на запись только админом. игра запускалась под обыным юзером. скрипт правильный (с оф. сайта). кроме самого тф2 ещё установлено куча плагинов к нему (но их модерируют)

dimic ()
Ответ на: комментарий от dimic

игра запускалась под обыным юзером

Скрипт запуска игры запускается из под рута, иначе перечисленные команды не сработали бы. И видимо есть доступ на редактирование скрипта запуска от обычного пользователя.

TDrive ★★★★★ ()
Ответ на: комментарий от TDrive

запускать эти задачи из под этих пользователей, а не из под рута

скрипт находился в init.d и стартовал от рута, но в нём:

su $SRCDS_USER --login --command="screen -d -m -S \"$NAME\" \"$DAEMON\" \"$PARAMS\"

получается, работал тф2 серер под юзером, но стартовал рутом..

как праильно запускать от пользователя (чтобы автоматом как мускуль или апач при старте) ?

dimic ()
Ответ на: комментарий от dimic

Запускается правильно. Значит у этого скрипта были установлены права на запись любым пользователем. Либо они действительно напихали в него команд уже имея рут доступ, по непонятным причинам.

TDrive ★★★★★ ()
Последнее исправление: TDrive (всего исправлений: 1)

Смотри логи все того что торчало в интеренет, bash history, и тд

Erfinder ()
Ответ на: комментарий от dimic

как праильно запускать от пользователя (чтобы автоматом как мускуль или апач при старте) ?

апач и mysql сами меняют своего пользователя после запуска, им права рута нужны чтобы например открыть на прослушивание порты с номерами ниже 1000, они только из под рута открываются.

TDrive ★★★★★ ()
Последнее исправление: TDrive (всего исправлений: 1)

Если гуглить «SRCDS exploit», то вроде как получается, что можно модифицировать файлы. Видимо, вы оставили права на запись всем в это злосчастный скрипт, туда дописали нужные команды, после рестарта сервера были изменены права на файлы и взломщик дописал что нужно в /etc/shadow и зашёл по ssh.

Переставляйте всё заново. Внимательно смотрите на права всех создаваемых вами файлов/скриптов. В suse, вроде, был apparmour, включите его для демонов, торчащих в инет. Уберите ssh со стандартного порта.

mky ★★★★★ ()

+ Используйте сложные пароли. В /etc/ssh/sshd_config пропишите доступ только тем кому это действительно нужно

AllowUsers admin1 admin2 Запретите заходить под рутом PermitRootLogin no

black_13 ()

Где можно скачать такой скрипт?

invokercd ★★★★ ()
Ответ на: комментарий от black_13

+ повесить на другой порт и добавить правила в iptables или тем ж fail2ban ограничивать число попыток.

ritsufag ★★★★★ ()

TDrive
спасибо за быстрое реагирование и советы

Erfinder
логов нету, всё зачистили за собой. в том числе бинарники многие.

mky
спасибо за наводку. SourceMod должен содержать некий набор безопасности ..надо разобраться

black_13
а можно вобще запретить логин (удалённый?) юзеру? но чтобы он при этом мог запустить свой сервис?

invokercd
вот пример скрипта

Jurik_Phys

chmod -R 777 /root/

Где раздают подобные сервера TF2?

почему эта команда всех веселит? :)
Это я сам себе такой выдал (или я не понял вопроса). Сначала сделал файлопомойку. Потом добавлял новые задачи, вникая лишь до уровня «чтобы работало». Но вот добрые люди учуяв мою беспечность и некомпетентность решили меня смотивировать на образовние.

dimic ()
Ответ на: комментарий от dimic

Права доступа 777 - это запись, чтение, вход в каталог для _любого_ пользователя.

Jurik_Phys ★★★★★ ()

первая помощь при взломе домашнего сервера

Делаем снапшот и запускаем в виртуальной машине. Саму систему полностью заново ставим на сервер.

ktulhu666 ☆☆☆ ()
Ответ на: комментарий от RedEyedMan3

Возможно это глумливый школьник.

anonymous ()
Ответ на: комментарий от anonymous

Да хоть под пользователем пускай, будто школота сплойты не нагуглит.

Так может вообще пароли нигде не ставить, всеравно эксплойт нагуглят.

TDrive ★★★★★ ()
Ответ на: комментарий от dimic

Конечно можно

Для вашей апликухи/сервиса создайте отдельного юзера, а для админских нужд отдельного. В AllowUsers пропишите только админский аккаунт. Пароль на админа конский. Можно и по ключу настроить авторизацию. Много чего можно, тот же фаервол настроить.

black_13 ()
Ответ на: комментарий от black_13

black_13

+ Используйте сложные пароли. В /etc/ssh/sshd_config пропишите доступ только тем кому это действительно нужно

AllowUsers admin1 admin2 Запретите заходить под рутом PermitRootLogin no

вот задумался как лучше.. я настроил доступ по ссш через ключи. И захожу сразу рутом.

Если сделаю вход с ключом для другого юзера и при необходимости зарутиться буду передавать текстом рутовый пароль, то это будет менее безопасно?

dimic ()
Ответ на: комментарий от dimic

Да. Лучше вообще запретить руту логин

PermitRootLogin no

И в AllowUsers добавить своего пользователя

AllowUsers yourUser
ritsufag ★★★★★ ()

На него были проброшены порты: 22

ССЗБ

в скрипте запуска игрового (тф2) сервера

chmod -R 777

TF2 Linux скачать бесплатно без SMS?

я настроил доступ по ссш через ключи. И захожу сразу рутом

ССЗБ^2

PermitRootLogin no
Заходи под пользователем и юзай sudo.

Valkeru ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.