Начало

Давайте посмотрим, что делает команда в
строке 382:

root@server1:/var/.x/psotnic# ./smbd -a conf conf1

Psotnic C++ edition, version 0.2.5-ipv6 (Jul 17 2005 20:39:49)
Copyright (C) 2003-2005 Grzegorz Rusin

[+] Adding: */10 * * * * cd /var/.x/psotnic; ./smbd conf >/dev/null 2>&1
[+] Adding: */10 * * * * cd /var/.x/psotnic; ./smbd conf1 >/dev/null 2>&1
[+] Added 2 psotnics to cron

Ага! Значит, он добавил себя в cron:

root@server1:/var/.x/psotnic# crontab -l
*/10 * * * * cd /var/.x/psotnic; ./smbd conf >/dev/null 2>&1
*/10 * * * * cd /var/.x/psotnic; ./smbd conf1 >/dev/null 2>&1

К этому времени я убил два враждебных smbd-процесса
и отменил запланированный в cron джоб. Я
поставил tcpdump на другой машине и запустил
два процесса вручную:

root@server1:~# cd /var/.x/psotnic; ./smbd conf
Psotnic C++ edition, version 0.2.5-ipv6 (Jul 17 2005 20:39:49)
Copyright (C) 2003-2005 Grzegorz Rusin

[*] Acting as LEAF
[+] Config loaded
[+] Going into background [pid: 5724]
root@server1:/var/.x/psotnic# ./smbd conf1

Psotnic C++ edition, version 0.2.5-ipv6 (Jul 17 2005 20:39:49)
Copyright (C) 2003-2005 Grzegorz Rusin

[*] Acting as LEAF
[+] Config loaded
[+] Going into background [pid: 5727]
root@server1:/var/.x/psotnic#

Эти два процесса показывались при помощи
ps, так что, вероятно, именно поэтому
нападающий переименовал их в smbd:

root@server1:/var/.x/psotnic# ps axuw | grep smb
root 3799 0.0 0.4 8592 2156 ? S 11:00 0:00 /usr/sbin/smbd -D
root 3808 0.0 0.1 8592 896 ? S 11:00 0:00 /usr/sbin/smbd -D
root 5724 0.0 0.1 1648 772 pts/2 S 12:47 0:00 ./smbd conf
root 5727 0.0 0.1 1640 764 pts/2 S 12:47 0:00 ./smbd conf1

Первые два — это реальные samba, два вторых — это
irc-бот. Давайте посмотрим, что они делают при
помощи strace:

root@server1:~# strace -p 5727
...
connect(3, {sa_family=AF_INET, sin_port=htons(9714), sin_addr=inet_addr("83.18.74.235")},
16) = -1 EINPROGRESS (Operation now in progress)
...
connect(4, {sa_family=AF_INET, sin_port=htons(6667), sin_addr=inet_addr("195.159.0.92")},
16) = -1 EINPROGRESS (Operation now in progress)

Видно, что бот пытается соединиться с
адресом 83.18.74.235 по порту 9714 и адресом 195.159.0.92
по порту 6667 (стандартный порт для irc-cthdthf)^

root@server1:~# dig +short -x 83.18.74.235
manhattan.na.pl.
root@server1:~# dig +short -x 195.159.0.92
ircnet.irc.powertech.no.

Еще один польский хост. Второй IP-адрес,
ircnet.irc.powertech.no, принадлежит широко известной
в Норвегии irc-сети.

Используя tcpdump, я разобрал один из потоков
к серверу irc.powertech.no. Ниже видно, как smbd
коннектится к каналу #aik:

:irc.powertech.no 001 578PAB9NB :Welcome to the Internet Relay Network
578PAB9NB!~op@ti231210a080-3666.bb.online.no
:irc.powertech.no 002 578PAB9NB :Your host is irc.powertech.no, running version
2.11.1p1

:578PAB9NB!~op@ti231210a080-3666.bb.online.no JOIN :#aik
:irc.powertech.no 353 578PAB9NB @ #aik :578PAB9NB kknd raider brandyz jpi conf
xerkoz IpaL vvo
:irc.powertech.no 366 578PAB9NB #aik :End of NAMES list.
:irc.powertech.no 352 578PAB9NB #aik ~op ti231210a080-3666.bb.online.no
irc.powertech.no 578PAB9NB G :0 op - GTW
:irc.powertech.no 352 578PAB9NB #aik ~kknd ti231210a080-3666.bb.online.no
irc.hitos.no kknd H :2 kknd - GTW
:irc.powertech.no 352 578PAB9NB #aik ~raider mobitech-70.max-bc.spb.ru *.dotsrc.org
raider G :4 raider - GTW
:irc.powertech.no 352 578PAB9NB #aik ~brandyz mobitech-70.max-bc.spb.ru *.dotsrc.org
brandyz G :4 brandyz - GTW
:irc.powertech.no 352 578PAB9NB #aik ~jpi p3124-ipad309sasajima.aichi.ocn.ne.jp
*.jp jpi G :8 jpi - GTW
:irc.powertech.no 352 578PAB9NB #aik ~conf p3124-ipad309sasajima.aichi.ocn.ne.jp
*.jp conf G :7 conf - GTW
:irc.powertech.no 352 578PAB9NB #aik ~xerkoz
p3124-ipad309sasajima.aichi.ocn.ne.jp *.jp xerkoz H :7 xerkoz - GTW
:irc.powertech.no 352 578PAB9NB #aik lm campus19.panorama.sth.ac.at *.at IpaL H
:5 .LaPi.9@.IRCNet..
:irc.powertech.no 352 578PAB9NB #aik ~vvo ppp86-7.intelcom.sm *.tiscali.it vvo H
:6 vvo - GTW
:irc.powertech.no 315 578PAB9NB #aik :End of WHO list.

Это типичный сетевой трафик irc-сессии,
присоединения к каналу #aik и вывода списка
всех присутствующих на канале. Я решил
присоединиться к каналу под ником viper42. К
моему удивлению, у меня даже не спросили
пароля! Еще одна ошибка нашего взломщика:

17:43 -!- viper42 [~viper42@trinity.gnist.org] has joined #aik
17:43 [Users #aik]
17:43 [ 578PAB9NL] [ conf] [ jpi ] [ raider ] [ vvo ]
17:43 [ brandyz ] [ IpaL] [ kknd] [ viper42] [ xerkoz]
17:43 -!- Irssi: #aik: Total of 10 nicks [0 ops, 0 halfops, 0 voices, 10 normal]
17:43 -!- Irssi: Join to #aik was synced in 1 secs

Я нашел машину моего друга под ником 578PAB9NB
и несколько других компьютеров. Вероятно,
эти зомби висели на канале в ожидании
команд хозяина, а может он уже был среди них.
Все присутствующие имели GTW в конце ника,
кроме одного:

17:45 [powertech] -!- IpaL [lm@campus19.panorama.sth.ac.at]
17:45 [powertech] -!- ircname : LaPi@IRCNet
17:45 [powertech] -!- channels : #relaks #ping @#seks #aik @#ogame.pl
#pingwinaria #hattrick #trade #admin @#!sh
17:45 [powertech] -!- server : *.at [\o\ \o/ /o/]

К тому же, это был лишь один ник, который
висел больше чем на одном канале. Полагаю,
что я нашел моего взломщика, если только это
не болванка (я еще раз задался вопросом — как
человек может быть настолько глупым?). Я
ошивался на канале в течении нескольких
дней в ожидании интересных событий. Хост
вероятного хакера ресолвился так:

$ dig +short campus19.panorama.sth.ac.at
193.170.51.84

По данным RIPE,
адрес принадлежал Венскому университету,
его компьютерному центру. Я попросил
админов присмотреться к хосту, и спустя пару
часов получил ответ:

From: Alexander Talos via RT
To: larstra@ifi.uio.no
Subject: Cracker at campus19.panorama.sth.ac.at (193.170.51.84) 
[ACOnet CERT #38603]
Date: Fri, 18 May 2007 18:22:43 +0200 (CEST)
Reply-To: cert@aco.net

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hej!

On Fri May 18 14:45:03 2007, larstra@ifi.uio.no wrote:

> I have been tracking down cracker which connected from
> campus19.panorama.sth.ac.at (193.170.51.84). The user, which

Ouch. panorama.sth.ac.at is a dormitory with about 4k rooms all
behind a NAT gateway - it will be very hard to get hold of the
miscreant.

This incident will, in the long run, definitely help me getting
rid of the NAT boxes in setups like that, but right now, we will
have to make do with what we have.

> Please investigate the host in question. Perhaps is this a
> compromised host on your network acting as a jumpstation for

Sure, and even in a NATed environment, this is still possible.

Btw, you did a great job in analysing the compromised machine!

I'll let you know when I have either further questions or any
interesting results.

Cheers,

Alexander Talos

- --
IT-Security, Universitaet Wien, ACOnet CERT
<URL:http://www.univie.ac.at/ZID/security/>
T: +43-1-4277-14351 M: +43-664-60277-14351

Боюсь тут удача отвернулась от меня —
адрес принадлежа гейту с NAT-ом, который
обслуживал общежитие с более чем 4 тысячами
помещений…

Я попытался залогиниться к
инфицированным хостам по ssh, но на них
дефолтный порт (54098) не был открыт. Вероятно,
они использовали другой в ssh-бекдоре.

Пора вернуться к первому адресу, 83.18.74.235:

root@server1:/var/.x/psotnic# strace -f ./smbd conf1 &> /root/dump.strace

Выдача была достаточно большой, среди
прочего я заметил попытку запустить irc-клиент
BitchX:

[pid 7537] execve("/bin/sh", ["sh", "-c",
"BitchX -v 2> /dev/null"]

Что не удалось, так как такого клиента
установлено не было:

[pid 7537] write(2, "sh: ", 4) = 4
[pid 7537] write(2, "BitchX: not found", 17) = 17
[pid 7537] write(2, "n", 1) = 1
[pid 7537] close(2) = 0

Вы можете посмотреть на куски трафика
ниже:

Это был один из smbd-процессов. Другой
коннектился к тому же польскому сайту, но
вместо irc.powertech.no он использовал irc.hitos.no. Там
сидели все те же зомби, так что я ходил по
кругу.

Что еще делал хакер, так это запускал hide
для чистки записей в различный log-файлах:

server1:/usr/lib/libsh# ./hide +
Linux Hider v2.0 by mave
enhanced by me!
[+] [Shkupi Logcleaner] Removing + from the logs........ .
[+] /var/log/messages ... [done]
[+] /var/run/utmp ... [done]
[+] /var/log/lastlog ... [done]
[+] /var/log/wtmp ... [done]

* m i s s i o n a c c o m p l i s h e d *

p.h.e.e.r S.H.c.r.e.w

server1:/usr/lib/libsh#

Так зачем же он еще очистил /var/log/? Он не
доверял этой утилите? Запаниковал? Боюсь,
это останется неизвестным.

Так или иначе, но хост был взломан, на нем
установлен бекдор. Атакующий сделал
несколько ошибок, позволивших его
обнаружить:

  • Забыл очистить .bash_history
  • Удалил все в /var/log/, что нарушило работу
    сервера и было достаточно глупо.
  • Изменил root-пароль. Это сразу же
    привлекло внимание системного
    администратора.
  • Не защитил паролем свой IRC-канал.
  • Сидел на одном канале со своими зомби,
    что позволило его вычислить.

Главным же вопросом для меня остается,
как произошло первое проникновение в
систему. Использовался правильно патченный
Ubuntu 6.06 LTS (i386), так что либо использовался
неизвестный публике эксплоит, либо он
атаковал наш сервер с другого хоста,
перехватив пароль администратора…

Оригинал: Holliday
cracking

Оставить мнение

Check Also

Скрытая сила пробела. Эксплуатируем критическую уязвимость в Apache Tomcat

В этой статье мы поговорим о баге в Apache Tomcat, популярнейшем веб-сервере для сайтов на…