LINUX.ORG.RU

Словил руткит


3

8

Hi All!

Сегодня обнаружил на сервере (шлюз с контролем доступа) чужой процесс sfewfesfs. Нашёл файл, отправил на анализ — оказалось руткит.

Есть два вопроса:
1. Как он попал на сервер-шлюз с динамическим IP и без открытых портов? Внутрь сети открытые порты есть.
2. Какие есть программы для обнаружения подобного вторжения? Как не печально, кажется, мне нужен антивирус...

P.S. чуть не забыл: Slackware Linux 3.2.13

★★★★★

Тебе нужны:

1. Мозги

2. rkhunter

3. PaX

4. Песочницы для сетевых демонов (Grsecurity/RBAC, SELinux, etc). Gentoo Hardened хорошо подходит.

5. Проверка на наличие слабых паролей, а лучше всё перевести на ключи.

PreciousProtection ()

netstat -tulepn на той слаквари покажите

anonymous ()

Позволите несколько уточняющих вопросов? Спасибо.

1) Как звать зловреда по версии анализатора?
Поиск по названию способен дать описание метода заражения.

2) Какова версия Slackware (версия ядра 3.2.13 говорит только о самосборном ядре, но не о версии дистрибутива).
Если что, cat /etc/slackware-version

3) Удалось ли процессу получить root-а или запущен от обычного пользователя?

4) Устанавливались ли своевременно обновления безопасности?
Десяток последних установленных пакетов:

ls -lt /var/log/packages | head

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

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

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

Просто, все прогнали rkhunter. А теперь сидят и лог просматривают...

ephecaff ()

Внутрь сети открытые порты есть.

Замечательно: ты сам знаешь ответ на свой вопрос. Внутренняя сеть не должна быть более доверенной, чем внешняя.

мне нужен антивирус

На твою винду внутри сети? Да, это серьёзно уменьшит шансы попадания руткита на шлюз. Но почему в ОП-посте нет её версии?

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

Что в этом удивительного? Угрозы везде одинаковые, в ~100% случаев виноват человеческий фактор.

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

2 All первый раз за 5 лет использования подобной конфигурации проблемы. Хотя и раньше не спешил ставить обновления. Видимо, технологии шагнули вперёд. Есть ещё 2 аналогичных сервера, они пока чистые, но теперь придётся побеспокоится.

2 PreciousProtection:

1. Не жалуюсь.

2, 3. Спасибо, посмотрю.

4. Посмотрю, хотя выглядит как крупный калибр для мелких задач.

5. Пароли были слабые в расчёте на то, что закрыты порты. Вообще странно, если взломан ssh, то зачем руткит? Он же палится, а ssh итак есть.

netstat -tulepn на той слаквари покажите

# netstat -tulepn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name   
tcp        0      0 0.0.0.0:10000           0.0.0.0:*               LISTEN      0          8930       2653/perl           
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN      0          7593       1940/inetd          
tcp        0      0 192.168.2.22:53         0.0.0.0:*               LISTEN      0          8236       1949/named          
tcp        0      0 192.168.1.22:53         0.0.0.0:*               LISTEN      0          8234       1949/named          
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          7604       1946/sshd           
tcp        0      0 127.0.0.1:10808         0.0.0.0:*               LISTEN      0          753598     27221/sfewfesfsh    
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      0          7609       1949/named          
tcp        0      0 0.0.0.0:37              0.0.0.0:*               LISTEN      0          7590       1940/inetd          
tcp        0      0 192.168.1.22:777        0.0.0.0:*               LISTEN      0          8140       2541/darkstat       
tcp        0      0 :::80                   :::*                    LISTEN      0          8831       2513/httpd          
tcp        0      0 ::1:953                 :::*                    LISTEN      0          7610       1949/named          
udp        0      0 0.0.0.0:512             0.0.0.0:*                           0          7592       1940/inetd          
udp        0      0 0.0.0.0:37              0.0.0.0:*                           0          7591       1940/inetd          
udp        0      0 192.168.2.22:53         0.0.0.0:*                           0          8235       1949/named          
udp        0      0 192.168.1.22:53         0.0.0.0:*                           0          8233       1949/named          
udp        0      0 0.0.0.0:10000           0.0.0.0:*                           0          8931       2653/perl 

tcp 0 0 127.0.0.1:10808 0.0.0.0:* LISTEN 0 753598 27221/sfewfesfsh

Это руткит.

bormant>Позволите несколько уточняющих вопросов? Спасибо.

1. Backdoor.Linux.Ganiw.a или TROJ_GEN.F47V0411

2. Slackware 13.37.0 вообще-то current, но обновляю не слишком часто.

3. Да, процесс запущен от суперпользователя.

4. Нет, не устанавливались. Шлюз же. Никаких сервисов наружу. Теперь, видимо, буду пунктуальней.

# ls -lt /var/log/packages | head
итого 16348
-rw-r--r-- 1 root root    3454 авг.  26  2012 p7zip-9.20.1-i486-1sl
-rw-r--r-- 1 root root   87332 авг.  10  2012 squid-3.1.20-i486-20120810r10470
-rw-r--r-- 1 root root    6405 июля  14  2012 bsd-games-2.13-i486-12
-rw-r--r-- 1 root root    1031 июля  14  2012 xxgdb-1.12-i486-3
-rw-r--r-- 1 root root     963 июля  14  2012 xv-3.10a-i486-6
-rw-r--r-- 1 root root   25047 июля  14  2012 xscreensaver-5.15-i486-2
-rw-r--r-- 1 root root   11491 июля  14  2012 xsane-0.998-i486-1
-rw-r--r-- 1 root root   10705 июля  14  2012 xpdf-3.02pl6-i486-3
-rw-r--r-- 1 root root    9567 июля  14  2012 xpaint-2.8.16-i486-1
Чёрт, спалился, что не почистил ненужные пакеты! И, да, сквид не работает. Уже несколько месяцев как выключен.

fractaler ★★★★★ ()
Последнее исправление: fractaler (всего исправлений: 2)
Ответ на: комментарий от x3al

Замечательно: ты сам знаешь ответ на свой вопрос. Внутренняя сеть не должна быть более доверенной, чем внешняя.

Понял уже...

На твою винду внутри сети? Да, это серьёзно уменьшит шансы попадания руткита на шлюз. Но почему в ОП-посте нет её версии?

Ну-ну, не надо грязи. Нет у меня винды. А у пользователей — зоопарк, но тут я бессилен.

fractaler ★★★★★ ()

а чем у тебя порты были закрыты? iptables? Покажи правила. Вдруг ты думал, что они у тебя были закрыты, а на самом деле нет :P

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

Slackware 13.37.0 вообще-то current

Правильно понимаю, что 14.07.2012 был поставлен тогдашний -current, который в то время представлял из себя выпущенную 25.04.2011 Slackware-13.37 на полпути к выпущенной 26.09.2012 Slackware-14.0? И после той даты не поставлено ни одного обновления безопасности...

Тут было много вырезано самоцензурой и дальше будет немного оффтопика.

Смело. Особенно после записи в ChangeLog.txt от 13.07.2012 о том, что настало время кое-что поломать:
+--------------------------+
Fri Jul 13 23:14:15 UTC 2012
It's Friday the 13th, and Mercury is going into retrograde... seems like the perfect time to break things! A few notes are in order here... first, we've switched to using openssl-1.0.1c, which changes the major number for the crypto and ssl libraries from .0 to .1, meaning everything linked with the previous version of openssl will need to be recompiled. The lib{crypto,ssl}.so.0 libraries were backed up into aaa_elflibs, but this only means that binaries linked with those libraries will start, not that SSL will continue to work for them. The hashing format in /etc/ssl/certs/ has changed, so any programs linking to the old libraries will not be able to use them.
Next, Java has gone away due to licensing restrictions... Finally, these changes have broken Xfce as it exists in -current at the moment, but I'll try to do something about that soon. Thanks to Robby Workman and Eric Hameleers for lots of help on these updates!

Обрезав ChangeLog.txt от 14.0 по дате установки,
grep -Fc '(* Security fix *)'
138
и пусть из этих 138 обновлений много про Mozilla Firefox/Thunderbird/Seamonkey, но были заплатки и для существенных проблем.
Это к тому, что на боевой неклиентской машине экспериментировать с -current вредно, обновлять -current сложнее: нужно обязательно руками отслеживать все «Added» «Removed» в ChangeLog.txt, плюс есть риск, что очередное обновление что-то поломает.
В отличие от стабильного выпуска:
slackpkg update; slackpkg upgrade-all
которые подтянут обновления из /patches/packages, причем в конфиге можно обязать ставить обновления без запроса (в этом случае нужно не забыть отключить автообновление ядер и модулей, внеся их в черный список).

bormant ★★★★★ ()

Секурный шлюз: OpenBSD или Alpine Linux
Всякие chroot/jail для каждого демона и минимум софта

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

http://pastebin.com/HcPNeHgm
PPP0_IP=$(ifconfig $PPP0_IFACE | grep inet | cut -f2 -d ':' | cut -f1 -d ' ')

Если будете переставлять версию выше 13.37, обратите внимание на смену формата вывода ifconfig, приведенная выше строчка работать перестанет, в строке c inet больше нет двоеточия, вместо «inet addr: x.x.x.x» теперь «inet x.x.x.x».

Возможная замена:

PPP0_IP=$(ifconfig $PPP0_IFACE | grep -w inet | awk '{print $2}')

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от fractaler

Backdoor.Linux.Ganiw.a или TROJ_GEN.F47V0411

К сожалению, по этим названиям ничего вменяемого пока не нагуглилось. Не могли бы вы выслать отловленный бинарник почтой на bormant на mail.ru (в архиве с паролем, дабы не был убит антивирусом почтовой системы, с приложением пароля). Заранее спасибо.

PS. Вот интересное чтиво по теме: http://www.linuxquestions.org/questions/slackware-14/my-first-brush-with-linu...

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

sfewfesfsh

Странно, что его так назвали, сразу бросается в глаза.

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

У него есть и более «благозвучные» имена, см.
https://www.virustotal.com/en-gb/ip-address/122.224.50.37/information/

fractaler по просьбе выслать почтой отбой, скачал по ссылке с вышеприведенной страницы.

PS. Кстати, бинарник не пострипаный:

$ file sfewfesfs 
sfewfesfs: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), statically linked, not stripped

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от fractaler

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

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

Правильно понимаю, что 14.07.2012 был поставлен тогдашний -current, который в то время представлял из себя выпущенную 25.04.2011 Slackware-13.37 на полпути к выпущенной 26.09.2012

Slackware-14.0? И после той даты не поставлено ни одного обновления безопасности...

Честно говоря, я и сам удивился, когда посмотрел на даты. Определённо не в 2012 были поставлены последние обновления. Месяца 3 назад всего. Может, дата сбилась. В сентябре 2012 я его только устанавливал.

В отличие от стабильного выпуска:

Уже не помню, почему ставил -current. Наверное, надо вернуть стабильную версию.

Если будете переставлять версию выше 13.37, обратите внимание на смену формата вывода ifconfig

Да, уже наткнулся и переделал.

по просьбе выслать почтой отбой, скачал по ссылке с вышеприведенной страницы.

Это хорошо, а то я вчера вечером всё-таки удалил последнюю копию.

результаты его сканирования:

Так, на память, результат сканирования был другой. Распознан только двумя. Названия выше.

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

а чего такого удивительного в этом событии?

За примерно 5 лет работы с небольшими серверами я впервые встретил действительно работающее вредоносное ПО. Меня это правда удивило.

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

0.0.0.0:10000 0.0.0.0:* LISTEN 0 8930 2653/perl

если это то что я думаю (webmin), то первым делом бы заподозрил его во всех бедах

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

Да, это webmin. Порт наружу закрыт файрволом. Пароль был простой — так что, да, возможно через него. Хотя имя пользователя нестандартное.

Или webmin уже сам по себе подозревается в нечестности?

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

2. rkhunter

/usr/sbin/adduser
/usr/bin/lastlog
/usr/bin/whatis

На свежеустановленной системе отмечены [ Warning ]
Пора беспокоится или как?

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

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

PreciousProtection ()

Slackware Linux 3.2.13

так толсто, что даже тонко.

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

Похоже, я отстал от жизни, раз никого не удивило само событие.

тут такие темы не в новинку. Я привык уже. Правда не припомню, что-бы такие как ты юзали слаку.

PS: признайся, что ты толстый и зелёный.

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

Пора беспокоится или как?

Он же пишет в конце проверки:

All results have been written to the log file: /var/log/rkhunter.log

Читаем журнал по поводу предупреждений:

/usr/sbin/adduser [ Warning ]
Warning: The command '/usr/sbin/adduser' has been replaced by a script: /usr/sbin/adduser: Bourne-Again shell script, ASCII text executable

Для Slackware это норма — свой интерактивный сценарий добавления пользователя. В других дистрибутивах это обычно ссылка на useradd, отсюда и предупреждение.

/usr/bin/ldd [ Warning ]
Warning: The command '/usr/bin/ldd' has been replaced by a script: /usr/bin/ldd: Bourne-Again shell script, ASCII text executable

Смотрим:

$ grep -R /ldd$ /var/log/packages/
/var/log/packages/glibc-solibs-2.17-x86_64-7:usr/bin/ldd
/var/log/packages/glibc-2.17-x86_64-7:usr/bin/ldd
Проверяем подпись пакета, сверяем содержимое файла в пакете и на диске, успокаиваемся.

/usr/bin/whatis [ Warning ]
Warning: The command '/usr/bin/whatis' has been replaced by a script: /usr/bin/whatis: POSIX shell script, ASCII text executable

Поступаем аналогично предыдущему пункту.

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

На свежеустановленной системе отмечены [ Warning ] Пора беспокоится или как?

ты хоть ЭЦП Патрика проверяешь? Или ставишь не глядя?

А вообще, там есть некоторые нестыковки, это нормально. Разбирайся, почему так.

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

PS. Ах да, чуть не забыл, там в журнале есть существенное замечание:

Warning: Checking for prerequisites [ Warning ]
The file of stored file properties (rkhunter.dat) does not exist, and should be created. To do this type in 'rkhunter --propupd'.
Info: The file properties check will still run as there are checks that can be performed without the 'rkhunter.dat' file.

Warning: WARNING! It is the users responsibility to ensure that when the '--propupd' option
is used, all the files on their system are known to be genuine, and installed from a
reliable source. The rkhunter '--check' option will compare the current file properties
against previously stored values, and report if any values differ. However, rkhunter
cannot determine what has caused the change, that is for the user to do.

Не вижу причин его игнорировать.

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

Проверяем подпись пакета, сверяем содержимое файла в пакете и на диске, успокаиваемся.

Спасибо за объяснения. И просто большое спасибо за помощь!

PS. Ах да, чуть не забыл, там в журнале есть существенное замечание:

Да, это я сразу заметил и сделал.

2 emulek

тут такие темы не в новинку. Я привык уже.

Признаюсь, я всё больше новости читаю.

Правда не припомню, что-бы такие как ты юзали слаку.

Что значит такие как я? Такие как я ленивые? Ну так Slack_ware же!

PS: признайся, что ты толстый и зелёный.

Нет, это останется секретом! Я просто настолько ленив, что мне лень осваивать новый дистрибутив <здесь вырезан большой кусок моего личного мнения о некоторых дистрибутивах>. А к Слаке я привык. Хотел попробовать Scientific Linux, но он не завелся на моём стареньком IBM xSeries 346, который стоит как раз для экспериментов. Так что лень снова победила.

ты хоть ЭЦП Патрика проверяешь? Или ставишь не глядя?

Пускай ЭЦП slackpkg проверяет!

А вообще, там есть некоторые нестыковки, это нормально. Разбирайся, почему так.

О да! Нестыковок там гораздо больше. Помнишь MOPSLinux? Я участвовал в его разработке. Мы пытались убрать конфликты из пакетов. Их было больше тысячи. Что любопытно, это не мешает нормально работать. Хотя, конечно, «для продакшена» это не подходит.

fractaler ★★★★★ ()

выложи бинарь куданибудь плз посмотреть охота

oles ()

Сидите на семёрочке максимальной с кучей вареза? Вот вам и ответ - троянчик утащил все ваши putty пароли.

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

Ох, ты! И тут линуксоиды развлекаются. Мониторинг ботнета сторонними наблюдателями — ах ты ж <sensored>, <sensored>, <sensored>!

Спасибо за ссылку, посмеялся.

fractaler ★★★★★ ()

Прикинь, такую же фигню словил сегодня на виртуалке со Слакой :D Виртуалка стояла за NAT с паролем 111 :) На виртуалке был открыт 22 порт, но он не был доступен из Инета, только для внутренней локалке 192.168.1.0/24. Кто залил руткит - хз, виртуалка была онлайн всего 8 часов.

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

На виртуалке был открыт 22 порт, но он не был доступен из Инета, только для внутренней локалке 192.168.1.0/24.

А в сети есть еще какие-нибудь компутеры? Можешь попробовать поднять еще раз, только в этот раз настроив логгирование, ну или хотябы Wireshark/tcpdump запустить.

виртуалка была онлайн всего 8 часов

На моей практике на 22/2222/etc. стучатся каждые 30 минут. Хотя не факт что в твоем случае это именно боты.

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

В сети ещё 2 компа на винде, оба с Comodo. Ещё на одном запущен периодически ретранслятор (не выходной) сети Tor. Подампить было бы интересно, но времени пока нет. Удалить руткит было легко, попал через Opessh 100%. Openssh был последний - без той уязвимости.

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

Ну, вобщем, разобрались - проблема была в засветке в сеть 22 порта, как всегда рас@%@%@йство победило. Вывод: даже на временные виртуалки для тестов не стоит ставить дебильные пароли в надежде на чудо.

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

Линукс шагает в массы. Подбор паролей уже в моде. :)

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