请教下,一个 Python 脚本 进程在,文件不存在,如何查看他在干什么?

2018-06-23 11:54:53 +08:00
 coolloves
某机器可能种马了,看了下,有个 python 进程有可疑.
nobody    6447     1  0 Jun19 ?        00:00:00 python /tmp/aa/1.py 47.104.173.85 3336
但是,查看 /tmp/aa/1.py,已经不存在了.
lsof -p 6447 可疑看到 服务器和 47.104.173.85 3336 之间有通信,但是也是 closed 的
请教下,此种情况,我怎么判断这个脚本是具体是干什么呢?
谢过各位先!
3219 次点击
所在节点    Python
12 条回复
JHerschel
2018-06-23 12:28:01 +08:00
cd 到 /proc/6447/fd 目录,里面是你进程 6447 打开的文件描述符, 找到 /tmp/aa/1.py 对应的描述符,用 cat 命令导出到别的地方,然后查看就可以了。
coolloves
2018-06-23 12:47:21 +08:00
@JHerschel 里面没有什么可以打开的.能否在指点下?
```
total 0
lrwx------ 1 nobody nobody 64 Jun 23 11:39 0 -> socket:[1562590214]
lrwx------ 1 nobody nobody 64 Jun 23 11:39 1 -> socket:[1562590214]
lrwx------ 1 nobody nobody 64 Jun 23 11:39 2 -> socket:[1562590214]
lrwx------ 1 nobody nobody 64 Jun 23 11:39 3 -> socket:[1562590214]
lrwx------ 1 nobody nobody 64 Jun 23 11:39 4 -> socket:[1562588838]
lrwx------ 1 nobody nobody 64 Jun 23 11:39 5 -> socket:[1551223311]
lrwx------ 1 nobody nobody 64 Jun 23 11:39 6 -> /dev/ptmx
lrwx------ 1 nobody nobody 64 Jun 23 11:39 7 -> socket:[1562583276]
lrwx------ 1 nobody nobody 64 Jun 23 11:39 8 -> socket:[1551223324]
```
JHerschel
2018-06-23 13:35:30 +08:00
@coolloves 抱歉啊,是我想的太简单了。Python 运行脚本并不会持续打开那个脚本,所以它的确已经被删除了。

我找到两个网址你可以看一看:
https://stackoverflow.com/questions/19737358/recovery-deleted-but-running-python-script
https://gist.github.com/simonw/8aa492e59265c1a021f5c5618f9e6b12

如果有解决方法请让我知道。
Aug
2018-06-23 13:40:39 +08:00
如果想要恢复这个运行的 python 脚本请用 lsof 命令。恢复了之后如果是 elf 文件的话,我也不知道怎么查看内容。知道的可以告诉我一下
banbo
2018-06-23 14:04:20 +08:00
kill 了吧 无法恢复
pierre1994
2018-06-23 16:30:46 +08:00
应该是木马,只能 kill 掉了
coolloves
2018-06-23 17:00:38 +08:00
@Aug lsof 怎么恢复呢,我 lsof 也只能看到 python 的一些模块调用,以及一些网络通信,实在看不到什么有价值的东西
coolloves
2018-06-23 17:32:10 +08:00
@JHerschel 多谢了朋友,看了下,估计可能性很小了,我周一上班在面向搜索了解下
inframe
2018-06-23 19:01:59 +08:00
把进程 dump 下来然后导入符号表,把运行时的字节码数据位置找出来然后存成 pyc 反编译一下
jeffson
2018-06-23 22:19:43 +08:00
Mark
PythonAnswer
2018-06-23 22:22:54 +08:00
关注
coolloves
2018-06-25 08:39:18 +08:00
测试了下,如果,脚本本身还是在干活的,那可以用 strace 看到具体干了什么
但是我的那个脚本应该只是运行着,但是活应该都干完了,所以,看不到什么东西了
太高深的也不想研究了,暂时到此为止吧,感谢各位朋友!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/465230

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX