原文出处: lars strand 译文出处: freebuf



然后,他创建了两个配置文件.文件中包含irc服务器和需要加入的频道.配置文件是加密过的,而且明文的配置文件被删掉了.

1
2
3
4
5
6
7
8
371 viconf
372 viconf1
....
378 ./smbd-c conf
379 ./smbd-c conf1
380 ./smbdconf
381 ./smbdconf1
382 ./smbd-a conf conf1

让我们执行一下382这条命令,看看会发生什么.

1
2
3
4
5
6
7
8
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; ./smbdconf >/dev/null2>&1
[+] Adding: */10* * * * cd/var/.x/psotnic; ./smbdconf1 >/dev/null2>&1
[+] Added 2 psotnics to cron

哇!它添加了cron定时任务.赶紧看一看:

1
2
3
root@server1:/var/.x/psotnic# crontab -l
*/10* * * * cd/var/.x/psotnic; ./smbdconf >/dev/null2>&1
*/10* * * * cd/var/.x/psotnic; ./smbdconf1 >/dev/null2>&1

接下来,我杀掉这两个恶意的smbd进程,禁用cron任务.在另一个shell中运行了tcpdump,然后手动启动了这两个irc-bot进程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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”命令(后门替换过的)可以看到这两个进程.这也是为什么入侵者需要通过改名字来隐藏进程.

1
2
3
4
5
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/2S 12:47 0:00 ./smbdconf
root 5727 0.0 0.1 1640 764 pts/2S 12:47 0:00 ./smbdconf1

最开始两个是真正的samba进程,后面两个是irc-bot,让我们用”strace”命令来看看它做了什么:

1
2
3
4
5
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 inprogress)
...
connect(4, {sa_family=AF_INET, sin_port=htons(6667), sin_addr=inet_addr("195.159.0.92")}, 16) = -1 EINPROGRESS (Operation now inprogress)

可以看到它尝试连接ip 83.18.74.235的9714端口和195.159.0.92的6667端口:

1
2
3
4
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.另外一个ip,”ircnet.irc.powertech.no”是”irc.powertech.nof”的别名.是挪威一个著名的irc服务器.

tcpdump抓到了连接irc服务器的流量.正如下面的内容显示,它连接到了”irc.powertech.no”,加入了”#aik”频道.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
: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.
这些仅仅是加入#aik频道,并开始监听该频道所有成员的一些原始网络流量.我决定自己进入这个频道看看.令我惊讶的是不需要任何密码我就进来了.
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

我发现我朋友的服务器使用的昵称是”578PQB9NB”,还有一些其他的服务器也在这里.这些僵尸服务器应该是正在等待着我们的入侵者加入频道发布命令.或者他已经潜藏在这里了.我注意到,所有的昵称都有一个后缀”\*-GTW”,只有一个没有:

1
2
3
4
5
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/]

这是唯一一个加入了多个频道的昵称.我猜我已经找到这个入侵者了,除非这是一个故意迷惑的诱饵.(恩,这个入侵者真的真么笨!!这么容易就找到了!?).我决定等几天看看有木有什么有趣的事情发生.这个域名解析到了:

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

根据RIPE的数据,这个ip属于Vienna University计算机中心,我发了一封邮件询问关于这个域名的信息,他们几个小时后会我了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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 whichconnected 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, inthe long run, definitely help me getting
rid of the NAT boxes insetups like that, but right now, we will
have to makedowith what we have.
> Please investigate the host inquestion. Perhaps is this a
> compromised host on your network acting as a jumpstation for
Sure, and even ina NATed environment, this is still possible.
Btw, you did a great job inanalysing the compromised machine!
I'll letyou know when I have either further questions or any
interesting results.
Cheers,
Alexander Talos
- --
IT-Security, Universitaet Wien, ACOnet CERT
T: +43-1-4277-14351 M: +43-664-60277-14351

看起来我不够幸运.

接下来我曾尝试连接irc频道里其他僵尸主机的 54098端口,可惜都失败了.看来其他的僵尸主机的后门可能使用的是别的端口.

连接到”83.18.74.235″的流量看起来很混乱.只好再次用strace命令:

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

跟预期的一样,有很多输出,其中一个是它尝试启动”BitchX”,这是一个irc客户端.但是失败了,因为BitchX没有安装:

1
2
3
4
[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

下面的截图是tcpdump抓到流量的一部分:

一次服务器被入侵后的分析(2)_入侵分析

这仅仅是两个假的smbd进程中的一个.另外一个也连到了两个irc服务器,一个是波兰这个,另外一个是”irc.hitos.no”,位于挪威的特罗姆斯郡.

入侵者除了这些,还运行了一个叫”hide”的脚本来清除日志:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@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

那么这个入侵者为什么还要把”/var/log/”目录全删除了呢,是不相信这个工具么?还是他特别害怕?

可以看到这个服务器被入侵了,安装了后门而且加入了僵尸网咯.但是入侵者犯了几个错误导致他可能被侦查到:

1, 忘记清除”.bash_history”文件

2, “/var/log”目录下所有文件都删除了.导致某些程序无法启动.很容易被发现.

3, 修改了root的密码.又是一个愚蠢的行为.永远不要修改root密码,这个必然会引起管理员的注意.

4, irc的频道没有密码保护.虽然即使有密码,我们也可以抓包分析出来.

5, 入侵者平时就在僵尸网络的频道闲逛?如果是这样的话那他已经暴露了.

当然还有几个遗留的问题:

1,”ssh ftp@62.101.251.166″ 这个命令是干嘛的.是入侵者不小心敲错了么还是有其他的目的?

1
2
$ dig+short -x 62.101.251.166
cA6FB653E.dhcp.bluecom.no.

2,跟83.18.74.235(manhattan.na.pl)的通讯内容是什么?

3,最重要的问题是他一开始是如何或得下系统的权限的?这个服务器运行的是Ubuntu 6.06 LTS,打了最新的补丁.可能入侵的途径:

*猜测root密码,不幸的是这个密码是强密码*

*未知的exploit*

*某个用户在已经被攻陷的主机上登录这台服务器.入侵者嗅探到了密码.*