论坛: UNIX系统 标题: 一次入侵检测 复制本贴地址    
作者: quest [quest]    版主   登录
今天上班的时候有客户打电话来说root的密码被改了登陆不上去.....

我用普通用户登陆,可以登陆,于是随手把自己前些日子修改的一个exploit放上去运行...#出来了。接着习惯性的动作就是ps -aux 看看都启用了哪些进程。
root         1  0.0  0.1  1368  544 ?        S    Dec16   0:04 init [3] 
root         2  0.0  0.0     0    0 ?        SW   Dec16   0:00 [keventd]
root         3  0.0  0.0     0    0 ?        SW   Dec16   0:00 [kswapd]
root         4  0.0  0.0     0    0 ?        SW   Dec16   0:00 [kreclaimd]
root         5  0.0  0.0     0    0 ?        SW   Dec16   0:00 [bdflush]
root         6  0.0  0.0     0    0 ?        SW   Dec16   0:00 [kupdated]
root         7  0.0  0.0     0    0 ?        SW<  Dec16   0:00 [mdrecoveryd]
root       437  0.0  0.1  1856  724 ?        S    Dec16   0:02 /usr/bin/ssh2d -q
root       589  0.0  0.1  1480  640 ?        S    Dec16   0:00 /usr/sbin/automount --timeout 60 /misc file /etc/auto.misc
root       675  0.0  0.0  1396  484 ?        S    Dec16   0:00 gpm -t ps/2 -m /dev/mouse
root       691  0.0  1.0  9932 5320 ?        S    Dec16   0:00 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
root       703  0.0  0.1  1552  692 ?        S    Dec16   0:00 crond
root       718  0.0  0.1  2128 1020 ?        S    Dec16   0:00 /bin/sh /usr/bin/safe_mysqld --datadir=/var/lib/mysql --pid-file=/var
mysql      751  0.0  0.5 12556 2724 ?        S    Dec16   0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql      769  0.0  0.5 12556 2724 ?        S    Dec16   0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql      770  0.0  0.5 12556 2724 ?        S    Dec16   0:00 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
xfs        777  0.0  0.6  4616 3332 ?        S    Dec16   0:00 xfs -droppriv -daemon
root       803  0.0  0.0  1340  436 tty2     S    Dec16   0:00 /sbin/mingetty tty2
root       804  0.0  0.0  1340  436 tty3     S    Dec16   0:00 /sbin/mingetty tty3
root       805  0.0  0.0  1340  436 tty4     S    Dec16   0:00 /sbin/mingetty tty4
root       807  0.0  0.0  1340  436 tty6     S    Dec16   0:00 /sbin/mingetty tty6
root       824  0.0  0.0  1340  436 tty1     S    Dec16   0:00 /sbin/mingetty tty1
root       826  0.0  0.0  1340  436 tty5     S    Dec16   0:00 /sbin/mingetty tty5
root       832  0.0  0.0  1652  292 ?        S    Dec16   0:00 awk -v progname=/etc/cron.daily/0anacron progname {?????   print prog
root     13546  0.0  0.0  2508  444 ?        S    Dec16   0:00 ps x
root     13547  0.0  0.0  2508  444 ?        S    Dec16   0:00 ps x
root     14552  0.0 31.1 160800 159852 ?     S    Dec16   0:02 minilogd
root      3569  0.0  0.1  2240  980 ?        S    09:24   0:00 xinetd -stayalive -reuse -pidfile /var/run/xinetd.pid
root      4065  0.0  0.1  1716  828 ?        S    10:15   0:00 in.telnetd: 218.17.59.221                                            
root      4066  0.0  0.2  2312 1224 pts/1    S    10:15   0:00 login -- yuserjj         
apache    4458  0.0  1.1 10220 6012 ?        S    12:01   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
apache    4459  0.0  1.1 10304 6084 ?        S    12:01   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
apache    4460  0.0  1.2 10440 6192 ?        S    12:01   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
apache    4461  0.0  1.2 10456 6192 ?        S    12:01   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
mysql     4462  0.0  0.5 12556 2724 ?        S    12:03   0:07 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
apache    4463  0.0  1.1 10208 5996 ?        S    12:05   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
mysql     4464  0.0  0.5 12556 2724 ?        S    12:06   0:07 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
apache    4465  0.0  1.1 10212 6000 ?        S    12:06   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
mysql     4466  0.0  0.5 12556 2724 ?        S    12:06   0:07 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql     4467  0.0  0.5 12556 2724 ?        S    12:06   0:07 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql     4468  0.0  0.5 12556 2724 ?        S    12:06   0:08 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql     4469  0.0  0.5 12556 2724 ?        S    12:07   0:07 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
apache    4472  0.0  1.1 10216 6008 ?        S    12:12   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
apache    4473  0.0  1.1 10216 6004 ?        S    12:12   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
mysql     4474  0.0  0.5 12556 2724 ?        S    12:14   0:07 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql     4475  0.0  0.5 12556 2724 ?        S    12:16   0:08 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
apache    4476  0.0  1.1 10300 6076 ?        S    12:17   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
mysql     4477  0.0  0.5 12556 2724 ?        S    12:18   0:07 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
apache    4480  0.0  1.1 10308 6076 ?        S    12:20   0:01 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
mysql     4481  0.0  0.5 12556 2724 ?        S    12:21   0:06 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
apache    4484  0.0  1.1 10296 6076 ?        S    12:37   0:02 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
mysql     4485  0.0  0.5 12556 2724 ?        S    12:38   0:06 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
apache    4545  0.0  1.2 10464 6196 ?        S    14:01   0:01 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
apache    4546  0.0  1.1 10300 6084 ?        S    14:01   0:01 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
apache    4547  0.0  1.1 10308 6076 ?        S    14:01   0:01 /usr/sbin/httpd -DHAVE_PROXY -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIA
mysql     4548  0.1  0.5 12556 2724 ?        S    14:06   0:04 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql     4549  0.1  0.5 12556 2724 ?        S    14:06   0:04 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql     4550  0.1  0.5 12556 2724 ?        S    14:07   0:03 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
root      4565  0.0  0.2  2100 1252 ?        S    14:42   0:00 /usr/bin/ssh2d -q
root      4659  0.0  0.1  1716  828 ?        S    14:55   0:00 in.telnetd: 218.17.59.221                                            
root      4660  0.0  0.2  2312 1224 pts/2    S    14:55   0:00 login -- yuserjj     


好像没什么错误。以是又netstat -an |grep LISTENING
也很正常,难道...管理员忘了密码(我实在想不通,谁把服务器黑了,会把root的密码改了,有这么大的仇?)。不管了,慢慢看吧。
[root@forum /root]# last
有几个来自mail服务器的登陆,难道是先把mail拿下,然后再把forum拿下。(这是一个论坛服务器,还有一个mail和一个web服务器)。得,稳重起见,先到mail服务器上看个研竟...


这里开始是在mail上工作了...
telnet mail.xxx.com...
....
....
[root@mail /root]#last
.....
.....
naeko    pts/0        200.58.48.69     Sat Dec 14 19:06 - 15:59 (1+20:52)  =>嘿嘿,现形了吧。
naeko这用户有点可疑哦?
[root@mail /root]more /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/var/ftp:
nobody:x:99:99:Nobody:/:
apache:x:48:48:Apache:/var/www:/bin/false
xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/bin/false
rpc:x:32:32:Portmapper RPC user:/:/bin/false
mailnull:x:47:47::/var/spool/mqueue:/dev/null
xng:x:500:500::/home/xng:/bin/bash
mysql:x:501:501::/home/mysql:/bin/bash
alias:x:502:502::/var/qmail/alias:/bin/bash
qmaild:x:503:502::/var/qmail/:/bin/bash
qmaill:x:504:502::/var/qmail/:/bin/bash
qmailp:x:505:502::/var/qmail/:/bin/bash
qmailq:x:506:503::/var/qmail/:/bin/bash
qmailr:x:507:503::/var/qmail/:/bin/bash
qmails:x:508:503::/var/qmail/:/bin/bash
vpopmail:x:509:504::/home/vpopmail:/bin/bash
yjj:x:510:510::/home/yjj:/bin/bash
etel:x:511:505:etel:/home/etel:/bin/sh
naeko:x:0:0::/home/naeko:/bin/bash ==============>我靠,胆子也太大了吧?
[root@mail /root]#
好了好了,越来越明显了...
[root@mail /root]#ps -aux 
bash: /bin/ps: No such file or directory ======>啊?不是吧?
[root@mail /root]#whereis ps
ps: /bin/ps
看来ps是被替换了,但可能程序出错了吧。
得,我们看看他都做了些什么。
[root@mail /root]#passwd naeko ==>先把他的密码改了...不然以后还不知道有啥出现。
[root@mail /root]#su naeko 
passwd:
[root@mail /neako]#more .bash_history
....
....
killall -9 sshd
ls
ftp 195.138.124.35
ftp 193.231.236.42
ls
ftp 213.154.128.147
tar -xzvf emech.tar.gz
tar -xzvf fl00d.tgz
tar -xzvf syn.tgz 
ls
rm -rf emech.tar.gz  lpd
rm -rf  syn.tgz  up2date
rm -rf fl00d.tgz
ls
cd bin
./juno 67.38.105.218
./juno 67.38.105.218 22
./juno 192.168.0.8  22 ======>看到没,果然是从这里冲进去的 192.168.0.22 就是forum Server。
哪哪哪...你看看...来了吧...看来这mail server真的是被列入DDOS肉机之一...
Ok了,确定了是从mail过去了,以后的工作就简单些了,先把mail上的后门、及其他的一些工具给找出来吧...
ps又不能用了,气人.
我从我的机器上cp一个rh7.2的ps上去(这服务器是rh7.1的,N多的补丁没打)。
[root@mail /neako]#ps -aux
....
root      5067  0.0  0.0  1340  436 tty2     S    15:48   0:00 /var/spool/cron/.../sl2 -->这是什么东东,没见过。管他的,把他找出来再说吧
[root@mail /neako]#cd /var/spool/cron
[root@mail /neako]#ls
root
[root@mail /neako]#
啊,不是吧?就这样?
[root@mail /neako]#ls -la
total 28
drwx------    3 root     root         4096 Dec 17 12:45 .
drwxr-xr-x   12 root     root         4096 Dec 14 19:43 ..
drwxr-xr-x    3 root     root         4096 Dec 14 19:09 ..         ------>>看到了没.相信大家都玩过安全焦点的那个黑客游戏的吧?就跟这个一样。
-rw-------    1 root     root        12288 Jul 24  2001 .root.swp  ------>>
-rw-r--r--    1 root     root          147 Sep 17  2001 root
[root@mail /neako]#cd "..  "(后面还有不可见字符)最后的办法就是cd "..然后+tab键,再+"
[root@mail /neako]#ls -la
total 12
drwxr-xr-x    3 root     root         4096 Dec 14 19:09 .
drwx------    3 root     root         4096 Dec 17 12:45 ..
drwxr-xr-x    3 root     root         4096 Dec 14 19:09 ...  ---->还想隐藏起来...
[root@mail /neako]# cd  "..." 藏得真深...
total 32
drwxr-xr-x    3 root     root         4096 Dec 14 19:09 .
drwxr-xr-x    3 root     root         4096 Dec 14 19:09 ..
-rwx------    1 root     root           75 Sep 25  1983 logclear
drwxr-xr-x    7 root     root         4096 Oct 31  2001 m
-rwxr-xr-x    1 root     root         4060 Sep 25  1983 sense
-rwx------    1 root     root         8268 Sep 25  1983 sl2
-rw-r--r--    1 root     root            0 Dec 14 19:09 sni.fer
-rw-r--r--    1 root     root            0 Dec 14 19:09 tcp.log
[root@mail /neako]#
终于现形了....

这里面几乎都是一些用来出的exploit.得,我们看看他是怎么把这台mail拿下的。

看了半天,原来是通过sshd远程溢出...得...这管理员也算做到家了...
再分析我们的forum主机吧.

------------------以下是forum主机-------------------
[root@forum /root]#
其实我总觉得forum的ps有点不对劲,少了点什么呢。又想不起来...我到mail上看看
[root@mail /root]#ps -aux
......
......
root     12747  0.0  0.3  2764  896 pts/0    R    16:01   0:00 /home/test/ps -aux   这是最后一条记录.
看看我们的forum的
[root@forum /root]#ps -aux
...
...
mysql     5155  0.1  0.5 12608 2780 ?        S    16:13   0:01 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql     5156  0.1  0.5 12608 2780 ?        S    16:13   0:01 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
mysql     5159  0.2  0.5 12608 2780 ?        S    16:16   0:01 /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --
看到了没。
正常的ps -aux是会把你最后的一个动作给显示出来的。这个没有,那么...就是说...这个也已经被...
把ps 再copy一个过来就知道了.
[root@forum /root]#ps -aux 
root      5189 64.0  0.1  1440  596 pts/4    R    16:34   0:16 ./superwu 203.172.9.105 21 ===>TNND,还有东东在后台工作..
root      5193  0.0  0.1  2780  880 pts/2    R    16:35   0:00 ./ps -aux ...看到没有,这才是最后的一条进程...
我们再看看super是啥子东东..
[root@forum .. ]# pwd
/root/boom/..   --双一个隐藏目录!
[root@forum .. ]# ./superwu -h
Usage: ./superwu -t <target> [-l user/pass] [-s systype] [-o offset] [-g] [-h] [-x]
         [-m magic_str] [-r ret_addr] [-P padding] [-p pass_addr] [-M dir]
target    : host with any wuftpd
user      : anonymous user
dir       : if not anonymous user, you need to have writable directory
magic_str : magic string (see exploit description)
-g        : enables magic string digging
-x        : enables test mode
pass_addr : pointer to setproctitle argument
ret_addr  : this is pointer to shellcode
systypes: 
  0 - RedHat 6.2 (?) with wuftpd 2.6.0(1) from rpm
  1 - RedHat 6.2 (Zoot) with wuftpd 2.6.0(1) from rpm
  2 - SuSe 6.3 with wuftpd 2.6.0(1) from rpm
  3 - SuSe 6.4 with wuftpd 2.6.0(1) from rpm
  4 - RedHat 6.2 (Zoot) with wuftpd 2.6.0(1) from rpm (test)
  5 - FreeBSD 3.4-STABLE with wuftpd 2.6.0(1) from ports
* 6 - FreeBSD 3.4-STABLE with wuftpd 2.6.0(1) from packages
  7 - FreeBSD 3.4-RELEASE with wuftpd 2.6.0(1) from ports
  8 - FreeBSD 4.0-RELEASE with wuftpd 2.6.0(1) from packages
原来是wu-ftp的一个溢出...
大体的分析就是这样了。
被替换的程序有
ps/netstat/strings/gcc/gdb....等。ps/netstat/strings是常常被替换掉的,但是gcc和gdb很少。这里他做了
得,像这样的系统,我看很难"修理”了,打个电话给网管,叫他把系统重做,然后把相关补丁打上吧。
好了,这是一个很简单的"入侵检测"。

主要目的是让大家知道,也许你用的PS已经不正常了。
也放你更应该用的命令是ls -al 而不是ls。

文章不足之处,还希望大家多多指点...


[此贴被 探索者(quest) 在 12月17日16时50分 编辑过]

地主 发表时间: 2002-12-17 16:42:50

回复: quest [quest]   版主   登录
以上IP都是真实IP,希望大家慎用...:D
还有一个是美国的IP...

B1层 发表时间: 12/17 16:41

回复: syshunter [syshunter]   版主   登录
好,文章不错,有代表性,很多所谓的HACKER走人之前都留个LASTLOG,而且HISTORY不清,让管理员事后省了不少心,哈哈。

B2层 发表时间: 12/17 16:48

回复: cimsxiyang [cimsxiyang]   版主   登录
不仅是你觉得不对劲,我看得也糊涂。

===========================================================
“哪哪哪...你看看...来了吧...看来这mail server真的是被列入DDOS肉机之一”


这和DDOS有什么关系?
所谓ddos攻击,一般用高速的大流量的很小的包(也可以称为碎片)来填满你的网卡缓存,因为没有完成3次握手,而导致SYN包的积压,server因等待SYN状态的包响应直到它超时而停止服务。
==========================
既然你看到了
“root      5067  0.0  0.0  1340  436 tty2     S    15:48   0:00 /var/spool/cron/.../sl2”

那么,该去的应该是/var/spool/cron/.../,而不是/var/spool/cron
但是,你下面又说,先是cd "..  ",然后cd ...
搞的我一愣一愣的。什么意思,不矛盾吗?

呵呵................




B3层 发表时间: 12/18 13:09

回复: quest [quest]   版主   登录
呵呵,说了,我写文章很一般
tar -xzvf emech.tar.gz
tar -xzvf fl00d.tgz
tar -xzvf syn.tgz 

可能你没看到这三个包....

如果真的可以直接cd /var/spool/cron/.../的话,我就不会分两步走...
本来是可以加上 cd "/var/spool/cron/.../"的。但是当然我没这么做。我想这样更能让大家了解到 ..:(

B4层 发表时间: 12/18 13:22

回复: syshunter [syshunter]   版主   登录
hehe,夕阳,细心是对的,不过~``

B5层 发表时间: 12/18 13:27

回复: syshunter [syshunter]   版主   登录
好啦好啦,误会误会。

B6层 发表时间: 12/18 13:40

回复: NetDemon [netdemon]   ADMIN   登录
很好的文章

B7层 发表时间: 12/18 21:08

回复: magic [buaaytt]   论坛用户   登录
我理想的工作就是干这事儿
可是就是找不到这样的工作


B8层 发表时间: 12/20 20:02

回复: suson [suson]   论坛用户   登录
ai,何时才能象你们那摸厉害啊。

B9层 发表时间: 12/23 15:23

回复: aassddff [aassddff]   论坛用户   登录
能不能放点unix的水呀,我对这个不懂噢! 

B10层 发表时间: 02/10 14:34

论坛: UNIX系统

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号