LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 855|回复: 5

出一个Trouble-shooting题目

[复制链接]
发表于 2004-5-18 00:24:36 | 显示全部楼层 |阅读模式
某日,系统遭到黑客入侵,/etc/pam.d/下所有的文件及 /bin/rpm 被惨遭删除.

重启后无法登录系统,Boss要求10分钟内恢复系统至正常,否则只有一句话:

"you are fired! " (这个Boss是否太野蛮了? @_@--- 呵呵,我就是那个Boss )

条件:

1. 不允许进入rescue模式

2. 不允许使用网络(不能从其他机器上拷贝文到本地)

---------------------------------------------
有问题大家一起探讨,共同学习,共同进步!
---------------------------------------------
发表于 2004-5-18 22:08:56 | 显示全部楼层
1. 开机进入single user mode (不是rescue),扰过pam检查.
2. mount上系统, mount上CDROM
3. chroot
4. /usr/lib/rpm/rpmi -ivh 删调的包(包括rpm, pam, 等)
5. reboot 进入系统.
 楼主| 发表于 2004-5-19 10:15:07 | 显示全部楼层
呵!想不到/usr/lib/rpm目录下还有rpmi等文件

ls -l /usr/lib/rpm/rpm?
-rwxr-xr-x    1 rpm      rpm         18628 Sep 26  2003 /usr/lib/rpm/rpmb
-rwxr-xr-x    1 rpm      rpm          9272 Sep 26  2003 /usr/lib/rpm/rpmd
lrwxr-xr-x    1 rpm      rpm             4 Apr 29 20:23 /usr/lib/rpm/rpme -> rpmi
-rwxr-xr-x    1 rpm      rpm       1947128 Sep 26  2003 /usr/lib/rpm/rpmi
-rwxr-xr-x    1 rpm      rpm         10700 Sep 26  2003 /usr/lib/rpm/rpmk
-rwxr-xr-x    1 rpm      rpm         10108 Sep 26  2003 /usr/lib/rpm/rpmq
lrwxr-xr-x    1 rpm      rpm             4 Apr 29 20:38 /usr/lib/rpm/rpmt -> rpmb
lrwxr-xr-x    1 rpm      rpm             4 Apr 29 20:23 /usr/lib/rpm/rpmu -> rpmi
lrwxr-xr-x    1 rpm      rpm             4 Apr 29 20:23 /usr/lib/rpm/rpmv -> rpmq

ls -l /bin/rpm
-rwxr-xr-x    1 root     root        79356 May 17 16:59 /bin/rpm

/bin/rpm又不是到/usr/lib/rpm/rpmi的符号连接, 但是他们的命令选项有很多是一样的。

不知道/bin/rpm和/usr/lib/rpm/rpmi下的有什么关系或不同? Can u tell me?

很高兴知道这个方法,又学到了新的东西! @_@

但是这个答案不是我所想要的,如果再绝一点, /usr/lib/rpm/rpmi 也被删除掉了呢?
发表于 2004-5-19 10:49:42 | 显示全部楼层
fire~
最初由 coolend 发表
呵!想不到/usr/lib/rpm目录下还有rpmi等文件

ls -l /usr/lib/rpm/rpm?
-rwxr-xr-x    1 rpm      rpm         18628 Sep 26  2003 /usr/lib/rpm/rpmb
-rwxr-xr-x    1 rpm      rpm          9272 Sep 26  2003 /usr/lib/rpm/rpmd
lrwxr-xr-x    1 rpm      rpm             4 Apr 29 20:23 /usr/lib/rpm/rpme -> rpmi
-rwxr-xr-x    1 rpm      rpm       1947128 Sep 26  2003 /usr/lib/rpm/rpmi
-rwxr-xr-x    1 rpm      rpm         10700 Sep 26  2003 /usr/lib/rpm/rpmk
-rwxr-xr-x    1 rpm      rpm         10108 Sep 26  2003 /usr/lib/rpm/rpmq
lrwxr-xr-x    1 rpm      rpm             4 Apr 29 20:38 /usr/lib/rpm/rpmt -> rpmb
lrwxr-xr-x    1 rpm      rpm             4 Apr 29 20:23 /usr/lib/rpm/rpmu -> rpmi
lrwxr-xr-x    1 rpm      rpm             4 Apr 29 20:23 /usr/lib/rpm/rpmv -> rpmq

ls -l /bin/rpm
-rwxr-xr-x    1 root     root        79356 May 17 16:59 /bin/rpm

/bin/rpm又不是到/usr/lib/rpm/rpmi的符号连接, 但是他们的命令选项有很多是一样的。

不知道/bin/rpm和/usr/lib/rpm/rpmi下的有什么关系或不同? Can u tell me?

很高兴知道这个方法,又学到了新的东西! @_@

但是这个答案不是我所想要的,如果再绝一点, /usr/lib/rpm/rpmi 也被删除掉了呢?
发表于 2004-5-19 11:26:14 | 显示全部楼层
这个实验我是这么做的,
1,把/etc/pam.d改名为/etc/pam.d.orig。
2,init 6 重新启动
3,进入登陆画面,输入root,登录不了,证明pam损坏。再重启。
4,进入single模式,用/usr/lib/rpmi -ivh pam-*.rpm来安装pam包,然后再/etc/pam.d/下只发现了other和system-auth两个文件。
5,重新启动机器,用root登录还是不能登录。疑惑。
6,在google查找资料,后重启进入single模式,在other中编辑
                                                                               auth     required      /lib/secrurity/$ISA/pam_unix.so
account   required      /lib/security/$ISA/pam_unix.so
password   required      /lib/security/$ISA/pam_unix.so
session   required      /lib/security/$ISA/pam_unix.so
7,重启后可以用root登录,但/etc/pam.d文件夹下只有两个文件。
问题:/etc/pam.d/下面的其它的文件(如longi,su,xdm,)属于不同的rpm包,他们如何安装??

感谢楼上的,rpmi是解决/bin/rpm文件损坏来安装rpm包的一个好办法,还有没有其它的办法?
 楼主| 发表于 2004-5-19 18:00:21 | 显示全部楼层
可以使用下面的脚本查看/etc/pam.d/下所有文件所属软件包:
#ls /etc/pam.d/*|while read i
do
rpm -qf "$i" >> rpm.lst
done

# cat rpm.lst|sort -u|wc -l
嘿嘿!还真不少啊,足足50个

/etc/pam.d/下几个主要的文件及所属软件包如下:
文件名  --> 软件包
login --> util-linux
system-auth --> pam
other --> pam

passwd --> passwd
su --> sudo
只要保证前3个文件存在,就可以登录了,不需要编辑other文件

另外,如果/usr/lib/rpm/rpmi 也被删除了,只要保证rpm2cpio没有被删除,还是可以从rpm包中提取想要的文件(一种隐式的安装),用法如下:
rpm2cpio xxx.rpm|cpio -idmv

也就是说,就算/bin/rpm, /usr/lib/rpmi 被K掉了,还可以从rpm-xx.rpm中提取/bin/rpm 及/usr/lib/rpmi,然后安装其他rpm包

还发现/bin/rpm使用的是动态链接库,而/usr/lib/rpm/rpmi则使用的是静态的

# file /bin/rpm
... dynamically linked (uses shared libs)...

# file /usr/lib/rpm/rpmi
... statically linked ...

# ldd /bin/rpm (查看使用哪些库文件)

谢谢大家的回复和探讨!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表