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

Руткиты на ubuntu


0

1

Добрый день! никогда не думал, что это реально. Попала в мои руки зараженая машина с linode.com. Что делать не знаю. Симптомы изначально были такие: сегфолты в разных местах, login не работает. Примонтировал live-cd и чрутнулся, откатился до версии без обновлений, утилиты перестали падать, но сегфолты продолжаются. Обновляю coreutils, upstart - размеры фалов меняются, стоит в заруткированный раздел chrootнуться. RKHunter пестрит такими сообщениями:

[22:45:53] Warning: The file properties have changed:
[22:45:53]          File: /bin/chmod
[22:45:53]          Current file modification time: 1314729953 (30-Aug-2011 22:45:53)
[22:45:53]          Stored file modification time : 1314727256 (30-Aug-2011 22:00:56)
Это все из coreutils, upstart и grep, gzip и все стандартные утилиты Что делается в таких случаях, подскажите дельным осветом?

★★

Наиболее радикально переустановка

pylin ★★★★★
()

Скачать из репозитория пакеты и вручную поставить их в заражённую систему при помощи dpkg --root=/path/to/mountpoint/ ?

А ещё можно воспользоваться debsums. Может быть, ругань rkhunter'а в приведённом примере относится только к переустановке пакета?

AITap ★★★★★
()

Если не интересует расследование путей компрометирования, то лучше всего переустановка с бэкапом важных данных. Но если хочется повозиться и если есть некий не базовый уровень квалификации (чтобы сервак не завалить в процессе воостановления), то я делал бы так (только воостановление, без расследования):
1) перевесить ssh на любой другой произвольный порт. Перезайти по ssh на уже новый порт;
2) Разрешить через iptables в цепочке INPUT принимать соединения только на этот порт. Цепочку FORWARD просто явно запретить всю (iptables -I FORWARD 1 -j DROP)
3) Запретить в iptables в цепочке OUTPUT любые соединения со статусом NEW. Вообще, в OUTPUT можно ещё UDP и ICMP запретить; а для TCP оставить только наш ssh со статусом ESTABLISHED.
4) Посмотреть netstat на предмет странных или просто левых ранее открытых коннектов. Обрубить лишнее.

После этого можно потиху открывать iptables в OUTPUT на известные хосты (например, 53/udp на 8.8.8.8, 80/tcp на зеркала репозитория и т.д.). При этом правила прописывать таким образом, чтобы после перегрузки они автоматом применились бы сами (зависит от дистра. В общем случае в /etc/rc.d/rc.local) Потом воостановить по зависимостям пакеты: ядро, init, coreutils, ssh-server, bash, sed, gawk, perl, RKHunter. Поубирать из автостарта по возможности всё, кроме sshd, потом ребут. После ребута чрут в live-cd, посмотреть список модулей ядра и список процессов. минимизировать количество модулей ядра и процессов до минимального количества, достаточного для продолжения работы. Запустить RKHunter. На всё файлы, которые он будет ругаться, запускать воостановление пакетов. Потом ещё один ребут и ещё раз RKHunter прогнать на всякий; проанализировать опять netstat. Потом воостановление сервисов в автозапуске, уборка наших правил iptables, воостановление sshd на прежнем порту (можно не воостанавливать: пусть висит на другом дальше), и снова ребут - чтобы убедиться, что всё воостановлено правильно в автозапуске и сервак поднимается как надо.

Повторюсь: нужна ненулевая квалификация, чтобы это всё сделать на ремотном серваке. Шанс положить сервак и потерять над ним контроль очень высок. Проще сбекапиться и дёрнуть службу техподдержки, чтобы они перенакатили операционку.

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

Я вытащил все данные, и переустановил все. Но еще бы рекомендовал проверить все текстовые файлы на наличие r57 вебшела, если apache стоит.

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

По идее так и поступил, спасибо.
Все было банально в crontab'e сидел на установку irc бот, который косил под bash

vadv ★★
() автор топика

Как такое вообще возможно? Т.е заражённая система сама как-то руткит скачала и запустила? O_o

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

1. В системе был пользователь test, сейчас он удален
2. От его id были созданы файлы, которые были указаны в cron'e рута

Видимо как то так ;)

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

В общем об этом ботике стало известно, т.к. он подменял coreutils, su, killall - на свои которые были скомпилены под другую версию libc6, из-за чего они сегфолились и переводили систему в нерабочее состояние.

vadv ★★
() автор топика

Переустановка и только она. Всё равно точно не узнаешь какие бэкдуры есть и когда они проявятся.

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