有没有办法可以在linux上查看真正的进程cmdline?

时间:2012-03-12 12:20:47

标签: linux security

这是一个在linux上伪造进程名称和cmdline的简单代码:

#include <string.h>
#include <sys/prctl.h>
#include <stdio.h>
#include <unistd.h>
#define NewName "bash"
#define ProcNameMaxLen 16

int main(int argc, char **argv){
    int oldlen = strlen(*argv);
    char procname[ProcNameMaxLen];
    memset(*argv, 0, oldlen);
    memccpy(*argv, NewName, 0, oldlen); //modify cmdline
    memccpy(procname, NewName, 0, ProcNameMaxLen);
    prctl(PR_SET_NAME, procname); //modify procname
    sleep(60);
    return 0;
}

运行此代码后,我无法通过ps查看实名,

但有些东西可以在/ proc / xxx / exe和/ proc / xxx / environ中找到,但是很麻烦。

有一种很好的方法可以查看所有过程的真实信息吗?

我认为这是一个很大的安全问题,因为我通常会在服务器上按ps检查进程。


方式1:lsof -d txt

等待更多回答......

1 个答案:

答案 0 :(得分:1)

lsof将告诉您原始的可执行文件名称,因为它是恶意进程的打开文件之一。您可以使用-p选项检查多个流程,也可以使用-u选项查询单个用户。