我们在周末入侵了我们的服务器,我正在试图追踪入侵者的踪迹。他们似乎运行了一个perl脚本,导致一个名为init
的www数据进程以100%的速度运行。不幸的是,我没有perl的专业知识,所以我不知道这是在做什么:
6 my $processo =("atd","sendmail: accepting connections","rpc.idmapd","syslogd -m 0","/sbin/udevd -d","/sbin/init");
# ...
24 use IO::Socket;
25 use Socket;
26 use IO::Select;
27 chdir("/tmp");
28 $servidor="$ARGV[0]" if $ARGV[0];
29 $0="$processo"."\0"x16;;
30 my $pid=fork;
31 exit if $pid;
在我看来,第29行的指令是为了隐藏这个过程。它到底是做什么的?
发布于 2013-11-11 15:09:48
来自perldoc perlvar
在一些(但不是全部)操作系统上,分配给
$0
的操作系统修改了ps
程序所看到的参数区域。在某些平台上,您可能需要使用特殊的ps
选项或不同的ps
来查看更改。修改$0
作为指示当前程序状态的方法比隐藏正在运行的程序更有用。
所以是的,你的说法是正确的。它试图掩盖它是如何在ps
中出现的。
发布于 2013-11-11 16:29:47
这一行似乎是故意混淆的:
my $processo =("atd","sendmail: accepting connections","rpc.idmapd","syslogd -m 0","/sbin/udevd -d","/sbin/init");
它相当于:
my $processo = "/sbin/init";
https://stackoverflow.com/questions/19909424
复制相似问题