linux下如何隐藏进程(ps/top) 和找到linux进程路径
来源:互联网 发布:淘宝远程付款安全吗 编辑:程序博客网 时间:2024/06/04 18:06
一般linux系统被攻击去根据进程查看文件或脚本,或者隐藏文件。
1、根据进程名,找出pid
例如python# ps -ef|grep python 找到python的pid
2、根据pid可在/proc中找到执行文件路径
# ls -l /proc/pytohpid
-------------------------------------------------------------------------
进入/proc目录 ps查看所有符合./cmd的进程,找出其对应的进程号 用ll命令: ll 进程号 如下显示一个示例: [root@Cluster1 proc]# ll 22401 total 0 -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 cmdline -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 cpu lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 cwd -> /home/zhouys/sbs/bin -r-------- 1 zhouys zhouys 0 Dec 11 11:10 environ lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 exe -> /home/zhouys/sbs/bin/cbs (deleted) dr-x------ 2 zhouys zhouys 0 Dec 11 11:10 fd -r-------- 1 zhouys zhouys 0 Dec 11 11:10 maps -rw------- 1 zhouys zhouys 0 Dec 11 11:10 mem -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 mounts lrwxrwxrwx 1 zhouys zhouys 0 Dec 11 11:10 root -> / -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 stat -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 statm -r--r--r-- 1 zhouys zhouys 0 Dec 11 11:10 status /proc文件系统下的 进程号目录 下面的文件镜像了进程的当前运行信息, 从中可以看到: cwd符号链接的就是进程22401的运行目录; exe符号连接就是执行程序的绝对路径; cmdline就是程序运行时输入的命令行命令;本例为:./cbs cpu记录了进程可能运行在其上的cpu;显示虚拟的cpu信息 environ记录了进程运行时的环境变量 fd目录下是进程打开或使用的文件的符号连接 ... 通过cwd直接进入进程运行目录,通过查看相关信息就可以定位此目录对应那个端口号,以及 定位是那个应用才使用此服务程序。
--------------------------------------------------------------------------
如何在2.4内核中隐藏进程。
其核心思想就是把task->pid变成0,就成了0号进程。而在ps,top命令中,是不显示0号进程的相关信息。这么一来,在/proc/文件夹下就不会有该进程的相关信息了。
于是把代码稍微做了一点改动,在2.6.18-308.4.1.el5 内核中还是好使的。
上代码:
#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/sched.h>#include <linux/list.h>MODULE_LICENSE("GPL");MODULE_AUTHOR("JASON.LIN.YU");static pid_t pid = 0;static pid_t old_pid = 0;static struct task_struct *task = NULL;//static struct task_struct *old_task = NULL;static char * mystring = NULL;module_param(pid, int, 0);module_param(mystring, charp, 0);MODULE_PARM_DESC(pid, "The pid to hide");MODULE_PARM_DESC(mystring, "The process's name");int start_module(void){ task = find_task_by_pid(pid); if(NULL == task){ return 1; } old_pid = task->pid; task->pid = 0;//关键在于改变pid=0 return 0;}void clean_module(void){ struct list_head* list; list_for_each(list, ¤t->tasks){ task = list_entry(list, struct task_struct, tasks); if( 0 == memcmp(mystring, task->comm, strlen(mystring)+1)){ task->pid = old_pid;//替换pid break; } } return;}rmmod后,proc文件夹下该进程有重新出现。
注意:使用这个方法不能ctrl+C,或者exit()调用,否则系统oops。
====================================================================================================================================
另外,还有一种比较简便的方法,就是把int main(int argc, char*argv[])中的参数变成0,那么就在单纯的ps命令中就不会显示进程相关信息,但是/proc/文件夹下,还会存在该进程的相关信息。
代码如下:
/*test.c*/
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(int argc, char *argv[]){ int i = 0; memset(argv[i], 0, strlen(argv[i])); for(;;); return 0;}
gcc -o hide test.c
./hide
ps aux| grep hide
>>>root 2437 0.0 0.0 4016 700 pts/1 R+ 13:26 0:00 grep hide
但是top命令会显示出hide进程
以及使用ps -u username -U username会把进程信息出卖。
=================================================================================
gdm 1732 1690 0 08:59 ? 00:00:00 gnome-power-managerroot 1734 1 0 08:59 ? 00:00:00 /usr/libexec/polkit-1/polkitdgdm 1744 1 0 08:59 ? 00:00:00 /usr/bin/pulseaudio --start --log-target=syslogrtkit 1746 1 0 08:59 ? 00:00:00 /usr/libexec/rtkit-daemonroot 1752 1599 0 08:59 ? 00:00:00 pam: gdm-passwordroot 1759 1412 0 09:00 ? 00:00:00 sshd: root@pts/0 root 1761 1759 0 09:00 pts/0 00:00:00 -bashroot 1795 1 0 09:01 ? 00:00:00 /usr/sbin/anacron -sroot 1843 1761 0 09:19 pts/0 00:00:00 ps -ef[root@dj 11]# [root@dj 11]# [root@dj 11]# [root@dj 11]# cd /proc/1732[root@dj 1732]# lsattr comm fd mem numa_maps root statautogroup coredump_filter fdinfo mountinfo oom_adj sched statmauxv cpuset io mounts oom_score schedstat statuscgroup cwd limits mountstats oom_score_adj sessionid syscallclear_refs environ loginuid net pagemap smaps taskcmdline exe maps ns personality stack wchan[root@dj 1732]# ps -e | grep gnome 1690 ? 00:00:00 gnome-session 1716 ? 00:00:01 gnome-settings- 1730 ? 00:00:00 polkit-gnome-au 1732 ? 00:00:00 gnome-power-man[root@dj 1732]# cd /proc/1732[root@dj 1732]# lsattr comm fd mem numa_maps root statautogroup coredump_filter fdinfo mountinfo oom_adj sched statmauxv cpuset io mounts oom_score schedstat statuscgroup cwd limits mountstats oom_score_adj sessionid syscallclear_refs environ loginuid net pagemap smaps taskcmdline exe maps ns personality stack wchan[root@dj 1732]# [root@dj 1732]# [root@dj 1732]# [root@dj 1732]# ls -ltotal 0dr-xr-xr-x 2 gdm gdm 0 Jan 14 09:20 attr-rw-r--r-- 1 gdm gdm 0 Jan 14 09:20 autogroup-r-------- 1 gdm gdm 0 Jan 14 09:20 auxv-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 cgroup--w------- 1 gdm gdm 0 Jan 14 09:20 clear_refs-r--r--r-- 1 gdm gdm 0 Jan 14 08:59 cmdline-rw-r--r-- 1 gdm gdm 0 Jan 14 09:20 comm-rw-r--r-- 1 gdm gdm 0 Jan 14 09:20 coredump_filter-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 cpusetlrwxrwxrwx 1 gdm gdm 0 Jan 14 09:20 cwd -> /var/gdm-r-------- 1 gdm gdm 0 Jan 14 08:59 environlrwxrwxrwx 1 gdm gdm 0 Jan 14 08:59 exe -> /usr/bin/gnome-power-managerdr-x------ 2 gdm gdm 0 Jan 14 08:59 fddr-x------ 2 gdm gdm 0 Jan 14 09:20 fdinfo-r-------- 1 gdm gdm 0 Jan 14 09:20 io-rw------- 1 gdm gdm 0 Jan 14 09:20 limits-rw-r--r-- 1 gdm gdm 0 Jan 14 09:20 loginuid-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 maps-rw------- 1 gdm gdm 0 Jan 14 09:20 mem-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 mountinfo-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 mounts-r-------- 1 gdm gdm 0 Jan 14 09:20 mountstatsdr-xr-xr-x 5 gdm gdm 0 Jan 14 09:20 netdr-x--x--x 2 gdm gdm 0 Jan 14 09:20 ns-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 numa_maps-rw-r--r-- 1 gdm gdm 0 Jan 14 09:20 oom_adj-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 oom_score-rw-r--r-- 1 gdm gdm 0 Jan 14 09:20 oom_score_adj-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 pagemap-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 personalitylrwxrwxrwx 1 gdm gdm 0 Jan 14 09:20 root -> /-rw-r--r-- 1 gdm gdm 0 Jan 14 09:20 sched-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 schedstat-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 sessionid-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 smaps-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 stack-r--r--r-- 1 gdm gdm 0 Jan 14 08:59 stat-r--r--r-- 1 gdm gdm 0 Jan 14 09:11 statm-r--r--r-- 1 gdm gdm 0 Jan 14 09:11 status-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 syscalldr-xr-xr-x 3 gdm gdm 0 Jan 14 09:20 task-r--r--r-- 1 gdm gdm 0 Jan 14 09:20 wchan[root@dj 1732]#
- linux下如何隐藏进程(ps/top) 和找到linux进程路径
- linux下如何隐藏进程(ps/top)
- linux下如何隐藏进程(ps/top)
- linux下如何隐藏进程(ps/top)
- linux下如何隐藏进程(ps/top)(二)
- linux ps top查看进程
- Linux进程管理命令详解(ps和top)
- Linux进程管理命令详解(ps和top)
- Linux进程管理命令详解(ps和top)
- linux 利用top和ps查找zombie进程
- Linux进程管理命令详解(ps和top)
- linux系统观察进程命令ps、top
- Linux中运行的进程:ps/top
- linux进程查看top与ps
- Linux任务进程管理:top、ps
- linux中查看进程和终止进程(ps,top,kill)
- linux查看进程和终止进程 ps
- (cc) Linux下隐藏进程
- MagicalRecord入门教程
- maven插件启动tomcat和jetty
- workflow结束的流程重启
- Python“Non-ASCII character 'xe5' in file”报错问题
- 我的2016代码自动生成器--IoRyYBigProject
- linux下如何隐藏进程(ps/top) 和找到linux进程路径
- code signing is required for product type 'Application' in SDK 'iOS 9.1'
- web前端之路(3)--sublime的环境搭建
- 第一个Hibernate应用
- Android Http请求头与响应头
- Effective Java 读书笔记或学习笔记
- centos 下更改ftp登录根目录
- C# HttpHelper,帮助类,真正的Httprequest请求时无视编码,无视证书,无视Cookie,网页抓取
- fragment认识