Автор Гілка: Схоже, вкрали сервер  (Прочитано 3563 раз)

Відсутній Pablo

  • Дописувач
  • **
  • дописів: 96
  • Карма: +0/-0
  • Погроміст
До сьогодні думав що таке буває лише з офтопіками. Історія хвороби: Позвчора зранку (9 Nov) ранку сервер почав сильно гальмувати. ps сказав, що запущено безліч процесів sshd, запущених від непривілейованого користувача (з простим паролем, так як деякі сервіси використовувались публічно певним колом осіб.) і в своїй сукупості вони споживають 100% процесорного часу. За допомогою iftop виявив, що це DDoS на ssh (схиляюсь до думки, що це розподілена атака на відмову служби тому, що в syslog написано, що sshd постійно падав через помилку сегментації) з мережі 195.18.0.0/16 (згідно iftop). За допомогою iptables мережа урочисто пішла в бан. Згодом посались атаки з мереж 195.19.0.0/16, 195.14.0.0/16, 195.15.0.0/16, які почергово також долучались до попередньої. Коли нестало терпцю, у DROP пішла уся 195/ Оскільки в auth.log небуло жодного натяку на спробу авторизації з тих мереж, брутфорс відпадає (хоча були спроби ввійти з-під кореня з адресу 85.112.126.18, але оскільки пауза між спробами три секунди, то десятизначний пароль, що складається з великих та малих літер, а також цифр той рідіска вгадував би до кінця свого загробного життя). Після бану 195-ї мережі нічого не віщувало лиха. Учора (10 Nov) сервер жив своїм життям без мого нагляду. Сьогодні зранку вирішив звглянути, звично залогінився (авторизація через pam_ldap, openLDAP на цьому ж хості, там заведений юзер з ID 0, практично він і є рутом), і, а своє привелике здивування, побачив папку backdor (створена ввечері 9 листопада "мною" ж) у домашньому каталозі. З переляку попробував встановити, які процеси запущені в системі, але ніякі менеджери процесів не хотіли працювати, жаліючись на відсутність libproc.so.2.0.6. Далі попробував просканувати машину за допомогою chkrootkit, встановленого з репозиторію. Результати були не надто оптимістичні:
uk.p@server:~# chkrootkit
ROOTDIR is `/'
Checking `amd'...                                           not found
Checking `basename'...                                      not infected
Checking `biff'...                                          not found
Checking `chfn'...                                          not infected
Checking `chsh'...                                          not infected
Checking `cron'...                                          not infected
Checking `crontab'...                                       not infected
Checking `date'...                                          not infected
Checking `du'...                                            not infected
Checking `dirname'...                                       not infected
Checking `echo'...                                          not infected
Checking `egrep'...                                         not infected
Checking `env'...                                           not infected
Checking `find'...                                          not infected
Checking `fingerd'...                                       not found
Checking `gpm'...                                           not found
Checking `grep'...                                          not infected
Checking `hdparm'...                                        not found
Checking `su'...                                            not infected
Checking `ifconfig'...                                      INFECTED
Checking `inetd'...                                         /bin/ps: error while loading shared libraries: libproc.so.2.0.6: cannot open shared object file: No such file or directory
not infected
Checking `inetdconf'...                                     not infected
Checking `identd'...                                        not found
Checking `init'...                                          not infected
Checking `killall'...                                       not infected
Checking `ldsopreload'...                                   not infected
Checking `login'...                                         not infected
Checking `ls'...                                            not infected
Checking `lsof'...                                          not infected
Checking `mail'...                                          not infected
Checking `mingetty'...                                      not found
Checking `netstat'...                                       INFECTED
Checking `named'...                                         not infected
Checking `passwd'...                                        not infected
Checking `pidof'...                                         not infected
Checking `pop2'...                                          not found
Checking `pop3'...                                          not found
Checking `ps'...                                            not infected
Checking `pstree'...                                        INFECTED
Checking `rpcinfo'...                                       not infected
Checking `rlogind'...                                       not found
Checking `rshd'...                                          not found
Checking `slogin'...                                        not infected
Checking `sendmail'...                                      not infected
Checking `sshd'...                                          /bin/ps: error while loading shared libraries: libproc.so.2.0.6: cannot open shared object file: No such file or directory
not found
Checking `syslogd'...                                       not tested
Checking `tar'...                                           not infected
Checking `tcpd'...                                          /bin/ps: error while loading shared libraries: libproc.so.2.0.6: cannot open shared object file: No such file or directory
not infected
Checking `tcpdump'...                                       not infected
Checking `top'...                                           INFECTED
Checking `telnetd'...                                       not found
Checking `timed'...                                         not found
Checking `traceroute'...                                    not infected
Checking `vdir'...                                          not infected
Checking `w'...                                             not infected
Checking `write'...                                         not infected
Checking `aliens'...                                        no suspect files
Searching for sniffer's logs, it may take a while...        nothing found
Searching for HiDrootkit's default dir...                   nothing found
Searching for t0rn's default files and dirs...              nothing found
Searching for t0rn's v8 defaults...                         Possible t0rn v8 (or variation) rootkit installed
Searching for Lion Worm default files and dirs...           nothing found
Searching for RSHA's default files and dir...               nothing found
Searching for RH-Sharpe's default files...                  nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
Searching for suspicious files and dirs, it may take a while...
/usr/lib/xulrunner-1.9/.autoreg /usr/lib/libsh/.owned /usr/lib/libsh/.bashrc /usr/lib/libsh/.sniff /usr/lib/libsh/.backup /usr/lib/iceweasel/.autoreg /lib/init/rw/.ramfs
/usr/lib/libsh/.owned /usr/lib/libsh/.sniff /usr/lib/libsh/.backup
Searching for LPD Worm files and dirs...                    nothing found
Searching for Ramen Worm files and dirs...                  nothing found
Searching for Maniac files and dirs...                      nothing found
Searching for RK17 files and dirs...                        nothing found
Searching for Ducoci rootkit...                             nothing found
Searching for Adore Worm...                                 nothing found
Searching for ShitC Worm...                                 nothing found
Searching for Omega Worm...                                 nothing found
Searching for Sadmind/IIS Worm...                           nothing found
Searching for MonKit...                                     nothing found
Searching for Showtee...                                    nothing found
Searching for OpticKit...                                   nothing found
Searching for T.R.K...                                      nothing found
Searching for Mithra...                                     nothing found
Searching for LOC rootkit...                                nothing found
Searching for Romanian rootkit...                           nothing found
Searching for Suckit rootkit...                             nothing found
Searching for Volc rootkit...                               nothing found
Searching for Gold2 rootkit...                              nothing found
Searching for TC2 Worm default files and dirs...            nothing found
Searching for Anonoying rootkit default files and dirs...   nothing found
Searching for ZK rootkit default files and dirs...          nothing found
Searching for ShKit rootkit default files and dirs...       nothing found
Searching for AjaKit rootkit default files and dirs...      nothing found
Searching for zaRwT rootkit default files and dirs...       nothing found
Searching for Madalin rootkit default files...              nothing found
Searching for Fu rootkit default files...                   nothing found
Searching for ESRK rootkit default files...                 nothing found
Searching for rootedoor...                                  nothing found
Searching for ENYELKM rootkit default files...              nothing found
Searching for common ssh-scanners default files...          nothing found
Searching for anomalies in shell history files...           nothing found
Checking `asp'...                                           not infected
Checking `bindshell'...                                     not infected
Checking `lkm'...                                           Usage: ./chkproc [-v] [-v] [-p procps version]
chkproc: nothing detected
chkdirs: nothing detected
Checking `rexedcs'...                                       not found
Checking `sniffer'...                                       lo: not promisc and no packet sniffer sockets
eth1: PACKET SNIFFER(/usr/sbin/bcrelay[2918], /usr/sbin/dhcpd3[3026])
ppp0: PACKET SNIFFER(/usr/sbin/bcrelay[2918])
Checking `w55808'...                                        not infected
Checking `wted'...                                          chkwtmp: nothing deleted
Checking `scalper'...                                       not infected
Checking `slapper'...                                       not infected
Checking `z2'...                                            chklastlog: nothing deleted


Як видно, все, чим би можна було лічити заразу вже хворе. Також домашня тека користувача, від імені якого працював публічний VNC сервер, знищена, очевидно замітали сліди. В auth.log також згадується, що від імені публічного користувача здійснювався вхід близько 8 години вечора 9 жовтня (до рута доступ отримали після десятої) з ІР 213.233.92.76, згідно whois це румунський vodafone.
Сервер - Debian Lenny 5.02 stable. працюючі сервіси - Apache2, vsftpd,openLDAP,samba, postfix/dovecot. Як же жити далі? :'( І як, власне, захищатись від руткітів? Варіант закрити публічний доступ не варіант.
« Змінено: 2009-11-12 14:07:15 від RPasha »
Тихіше їдеш -дальше будеш...
від місця призначення

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: Схоже, вкрали сервер
« Відповідей #1 : 2009-11-12 14:27:11 »
ммм... повісьте sshd на нестандартний порт, і буде вам щастя.

в найгіршому випадку забаньте в hosts.deny всі IP на ssh, а в hosts.allow поставте тільки довірені ІР. це залізний метод, хоч і, якщо у вас не статичний ІР, незручний.

А, іще в мережі є повно скриптів, що дозволяють банити всі ІР з певної країни.
« Змінено: 2009-11-12 14:29:11 від noddeat »
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: Схоже, вкрали сервер
« Відповідей #2 : 2009-11-12 14:32:45 »
іще цікава порада Володимира Лісівки:
http://linux.org.ua/cgi-bin/yabb/YaBB.pl?num=1146938538
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній coirius

  • Кореспондент
  • ***
  • дописів: 175
  • Карма: +0/-0
  • ArchLinux
Re: Схоже, вкрали сервер
« Відповідей #3 : 2009-11-12 14:55:30 »
Якщо маєте фізичний доступ до серверу, можна зробити бекап документів і все заново перевстановити, хоча документи напевно теж інфіковані.

Praporshic

  • Гість
Re: Схоже, вкрали сервер
« Відповідей #4 : 2009-11-12 15:40:24 »
Якщо маєте фізичний доступ до серверу, можна зробити бекап документів і все заново перевстановити, хоча документи напевно теж інфіковані.
З цими порадами, де-кому треба на winfaq.

Відсутній Pablo

  • Дописувач
  • **
  • дописів: 96
  • Карма: +0/-0
  • Погроміст
Re: Схоже, вкрали сервер
« Відповідей #5 : 2009-11-12 16:51:51 »
Якщо маєте фізичний доступ до серверу, можна зробити бекап документів і все заново перевстановити, хоча документи напевно теж інфіковані.
Дякую, ви щонайменше на добу продовжили моє життя.

Поради про ssh дійсно корисні, але мене зараз цікавить яким чином можна захиститись від експлойтів. Майже впевнений, що першою жертвою був непривілейований користувач, який і виконав руткіт, так як жодної ознаки входу з чужиш ІР від рута немає, або вони знищені. Все встановлено з офіційного репозиторію. На даний момент з домашнього каталогу тека rootkit невідомо куди пропала, отже сервером керує ще хтось крім мене. В логах все чисто. Як діяти? За годину-дві буду мати фізичний доступ до машини, проте переставляти систему неохота.

P.S. Добрі люди радили подружитись з Snort, воно дійсно ефективне?
« Змінено: 2009-11-12 16:53:51 від RPasha »
Тихіше їдеш -дальше будеш...
від місця призначення

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Схоже, вкрали сервер
« Відповідей #6 : 2009-11-12 17:01:05 »
Не знаю, воно у мене висіло (доки машина не зламалася), жерло 128 мегабайтів пам'яті з 256, й регулярно репортило про те, що я монтую nfs. Про інші протоколи нічого не казало (були ще ssh, vpn, http, dns, dhcp та ntp). Або я не вмію його готувати, або все дійсно так добре (що теж не дивно, бо це локальна мережа :).

Відсутній Pablo

  • Дописувач
  • **
  • дописів: 96
  • Карма: +0/-0
  • Погроміст
Re: Схоже, вкрали сервер
« Відповідей #7 : 2009-11-12 17:05:08 »
Ясно, значить утримаюсь. Думаю ефективніше привязати до PAM сповіщення про всі спроби входу з підозрілих адрес.
Тихіше їдеш -дальше будеш...
від місця призначення

Xev

  • Гість
Re: Схоже, вкрали сервер
« Відповідей #8 : 2009-11-12 17:11:53 »
Майже впевнений, що першою жертвою був непривілейований користувач, який і виконав руткіт, так як жодної ознаки входу з чужиш ІР від рута немає, або вони знищені.
~ і /tmp в noexec, nosuid, nodev?

Рутовий доступ по ssh не заборонено?

Відсутній Pablo

  • Дописувач
  • **
  • дописів: 96
  • Карма: +0/-0
  • Погроміст
Re: Схоже, вкрали сервер
« Відповідей #9 : 2009-11-12 17:26:41 »
Майже впевнений, що першою жертвою був непривілейований користувач, який і виконав руткіт, так як жодної ознаки входу з чужиш ІР від рута немає, або вони знищені.
~ і /tmp в noexec, nosuid, nodev?

/tmp тека на корені, noexec, nosuid, nodev поставити нема як.

Рутовий доступ по ssh не заборонено?

Ні, дозволено. Пароль на рута теж не кверті.
Тихіше їдеш -дальше будеш...
від місця призначення

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: Схоже, вкрали сервер
« Відповідей #10 : 2009-11-12 17:42:13 »
Цитата
Поради про ssh дійсно корисні, але мене зараз цікавить яким чином можна захиститись від експлойтів.
ммм, оновлюватись постійно :)

Цитата
Ні, дозволено. Пароль на рута теж не кверті.
навіщо? :o
взагалі, убунтівський варіант з заблокованим рутом найліпший, імхо. ви принаймні будете знати, хто саме отримав рута.
Цитата
~ і /tmp в noexec, nosuid, nodev?
noexec — це занадто жорстоко. а якщо користувачеві треба щось своє скомпілити, хоч би й свою версію php? не вихід, імхо.
« Змінено: 2009-11-12 17:43:39 від noddeat »
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Xev

  • Гість
Re: Схоже, вкрали сервер
« Відповідей #11 : 2009-11-12 18:23:06 »
/tmp тека на корені, noexec, nosuid, nodev поставити нема як.
tmpfs?

Ні, дозволено.
Це даремно.

noexec — це занадто жорстоко. а якщо користувачеві треба щось своє скомпілити, хоч би й свою версію php? не вихід, імхо.
А навіщо користувачу щось компілювати? Навіщо йому взагалі запускати щось, що не є встановлено в системі? Ясно, що це залежить від конкретних задач, але мені важко придумати таку ситуацію на сервері з "Apache2, vsftpd,openLDAP,samba, postfix/dovecot". Хіба які dev-таски, але такі речі в інтернет ніхто виставляє.

Відсутній Pablo

  • Дописувач
  • **
  • дописів: 96
  • Карма: +0/-0
  • Погроміст
Re: Схоже, вкрали сервер
« Відповідей #12 : 2009-11-16 09:28:13 »
Наразі почав життя з нової сторінки запустив сервер на чистій системі. Що панство скаже на рахунок
Цитата
(авторизація через pam_ldap, openLDAP на цьому ж хості, там заведений юзер з ID 0, практично він і є рутом)


А навіщо користувачу щось компілювати? Навіщо йому взагалі запускати щось, що не є встановлено в системі?
Цілком вірно. Тому й chmod 700 /usr/include.
Тихіше їдеш -дальше будеш...
від місця призначення