可执行文件---prelink对ELF文件的影响

可执行文件---prelink对ELF文件的影响  

2011-07-31 13:30:16|  分类: RHCA_442 |字号 订阅

【长见识】以下内容告诉我们可执行文件的hash值改变不能说明系统被入侵,有可能是prelink搞的鬼~

声明:以下内容出自 李库 之手。

今天下午接到安全部门的通知说,tpsc-task01服务器的sshd程序文件md5校验值发生变化,与先前的不一致,怀疑sshd程序被篡改,系统被入侵。

我立即检查这台服务器,sshd进程的启动时间是7月31日,也就是这台服务器安装的日期。

然后我又比较了其他机器sshd文件的md5校验值,发现这些服务器sshd程序的md5校验值都不一样,难道这些服务器的sshd文件都被篡改了不成?

Exodus集群29台服务器sshd程序md5校验值:


2010年10月12日 - bkeep - bkeep

2010年10月12日 - bkeep - bkeep

我们目前使用的sshd版本4.7-p1-1,线上服务器使用的是同一个软件包(相同架构),理论上,相同架构服务器上sshd文件大小和md5

校验值应该都一致,但是检查的结果却是文件大小一致,md5校验值不一致。

接下来,我又使用vim和objdump工具分析了exodus-web2201与exodus-web2202服务器上的sshd文件


2010年10月12日 - bkeep - bkeep
2010年10月12日 - bkeep - bkeep

2010年10月12日 - bkeep - bkeep
下面进行反编译一下。
2010年10月12日 - bkeep - bkeep
2010年10月12日 - bkeep - bkeep

通过vim中存在差异的部分以及ELF的section头中的偏移量可以发现,sshd文件相互不同的地方出现在ELF文件的一下3个

Section中:.gnu.liblist,.gnu.conflict,.got.plt。也就是说,.text 和.data等大多数section都是相同的,应该是什么东西修改了

sshd二进制文件的这3个section头,才导致了md5校验值不一致。这个时候,我想起linux系统中有一个prelink程序似乎

与这个有关,用今天新安装的服务器做实验:

运行/etc/cron.daily/prelink任务以前:


2010年10月12日 - bkeep - bkeep

运行/etc/cron.daily/prelink任务以后:


2010年10月12日 - bkeep - bkeep

可以看出,运行prelink后,sshd文件变大了,当然md5校验值也不同于rpm包中sshd文件的md5校验值。

使用prelink命令查看二进制文件最初的MD5校验值:


2010年10月12日 - bkeep - bkeep

由上图可以看出,exodus集群29台服务器sshd文件最初的MD5校验值一致,他们来自同一个软件包,sshd文件其实没有被篡改。

关于prelink的更多信息:

(1)http://en.wikipedia.org/wiki/Prelink

(2)http://people.redhat.com/jakub/prelink.pdf

(3)man prelink

Prelink是Red Hat 开发者 Jakub Jelinek 所设计的工具,正如其名字所示,Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销, 是各种Linux架构上 用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值