去除perl rootkit的痛苦

所以,我们在办公室里托pipe了一个地理服务器的网站服务器。

有人显然闯入这个盒子(可能通过FTP或SSH),并把一些ircpipe理的rootkit的东西。

现在我试图清理整个事情,我发现了试图通过IRC连接的进程PID,但我不知道谁是调用进程(已经用ps,pstree,lsof查看)进程是一个perl由www用户拥有的脚本,但ps aux | grep在最后一列显示假文件path。

有没有另外一种方法来追踪该pid并捕获调用者?

忘了提及:内核是2.6.23,这是可以利用的根,但我不能碰这台机器太多,所以我不能升级内核

编辑:LSF可能会帮助:

lsof -p 9481
命令PID用户FDtypes设备大小节点名称
perl 9481 www cwd DIR 8,2 608 2 / ss
perl 9481 www rtd DIR 8,2 608 2 / ss
perl 9481 www txt REG 8,2 1168928 38385 /usr/bin/perl5.8.8ss
perl 9481 www mem reg 8,2 135348 23286 /lib64/ld-2.5.soss
perl 9481 www mem reg 8,2 103711 23295 /lib64/libnsl-2.5.soss
perl 9481 www mem reg 8,2 19112 23292 /lib64/libdl-2.5.soss
perl 9481 www mem REG 8,2 586243 23293 /lib64/libm-2.5.soss
perl 9481 www mem reg 8,2 27041 23291 /lib64/libcrypt-2.5.soss
perl 9481 www mem reg 8,2 14262 23307 /lib64/libutil-2.5.soss
perl 9481 www mem REG 8,2 128642 23303 /lib64/libpthread-2.5.soss
perl 9481 www mem REG 8,2 1602809 23289 /lib64/libc-2.5.soss
perl 9481 www mem mem 8,2 19256 38662 /usr/lib64/perl5/5.8.8/x86_64-linux-threa d-multi / auto / IO / IO.soss
perl 9481 www mem mem 8,2 21328 38877 /usr/lib64/perl5/5.8.8/x86_64-linux-threa d-multi / auto / Socket / Socket.soss
perl 9481 www mem REG 8,2 52512 23298 /lib64/libnss_files-2.5.soss
perl 9481 www 0r先进先出0,5 1068892 pipess
perl 9481 www 1w FIFO 0,5 1071920 pipess
perl 9481 www 2w FIFO 0,5 1068894 pipess
perl 9481 www 3u IPv4 130646198 TCP 192.168.90.7:60321->www.****.net:ircd(SYN_SENT)

如果我能给你任何build议,那就是停止浪费你的时间清理。 稍后为操作系统提供法证信息,然后重新安装服务器。

对不起,但它是解决你自己的唯一安全的方式。

稍后,您可以检查图像,出于某些原因,为什么发生。

从我个人的经历来看,我是这样做的,后来发现一个内部用户在2008年有一个包含openssl缺陷的SSH密钥。

我希望,它清理的东西。

注意:
如果要在重新安装之前对服务器进行映像/备份,请非常小心,如何执行此操作。 正如@dfranke所说,从可信介质引导到备份。

您不应该从根服务器连接到其他计算机,因为已知可以通过SSH等可信会话传播出色的rootkit。

如果进程改变argv [0],命令行可以被改变。 试试ls -l /proc/[pid]/exe

man 5 proc

这个文件是一个包含执行命令的实际path名的符号链接。 这个符号链接可以正常解除引用。 试图打开它将打开可执行文件。 你甚至可以input/ proc / [number] / exe来运行process [number]运行的同一个可执行文件的另一个副本。 在multithreading进程中,如果主线程已经终止,则此符号链接的内容不可用

ps auxwf | less ps auxwf | less给你提供了进程的“森林视图”,它可以告诉你什么进程启动了这个进程(除非rootkit隐藏了进程,或者应用程序的父进程已经退出并重新初始化)。

这将主要是学术,可能只是一个timewaster,但strings -n 10 /proc/[pid]/mem可能很有趣,看滚动过去。 您也可以echo 0x7 > /proc/[pid]/coredump_filter并使用gdb gcore强制一个coredump,其中包含所有可能的内容,但是这个进程会死掉,这可能会阻止进一步的分析。

但绝对要采取Arenstar的build议。 仅备份数据,从备份中恢复所有可执行文件,然后重新开始。 你也许应该从备份恢复网站,可能会有恶意JavaScript添加到每个HTML或PHP文件。 如果您正在考虑采取法律行动,那么您只需将机器放在一旁,从networking上拔下电源,然后停止正在进行的任何工作,直到法医专家完成工作。

试试“cat / proc / [process id] / cmdline”虽然如果它是一个真正的rootkit,它可能会修改内核以更好地隐藏自己。

你应该重新安装,我同意。 你有没有尝试转义path中的字符? 也许其中一个斜线实际上是文件名的一部分,而不是目录。 至less应该使用iptables阻止出站stream量到该主机或IRC将军,直到修复。 检查netstat以及。

我想现在你已经重新安装了。 你正在浪费时间试图追踪stream程,并将取证作为任何合法发展的机会将是非常小的,find黑客的机会无论如何都是徒劳的。 除非你只是感兴趣的研究和扭转可能会很有趣的rootkit