首页
社区
课程
招聘
[原创][原创]linux猥琐操作Zzz
发表于: 2019-3-11 23:06 17106

[原创][原创]linux猥琐操作Zzz

2019-3-11 23:06
17106

总结一些linux下的猥琐操作

https://github.com/jgamblin/Mirai-Source-Code/blob/master/mirai/bot/killer.c

以下摘自https://blog.csdn.net/enweitech/article/details/53391567

/proc/pid/cmdline 包含了用于开始进程的命令 ;
/proc/pid/cwd包含了当前进程工作目录的一个链接 ;
/proc/pid/environ 包含了可用进程环境变量的列表 ;
/proc/pid/exe 包含了正在进程中运行的程序链接;
/proc/pid/fd/ 这个目录包含了进程打开的每一个文件的链接;
/proc/pid/mem 包含了进程在内存中的内容;
/proc/pid/stat包含了进程的状态信息;

在linux中,这些文件包含了很多敏感信息

在mirai中,使用readlink读取/proc/pid/exe来获取程序路径,从而判断是敌是友

也可以open /proc/pid/exe 来读取内存,读内存数据判断是敌是友

这些特性也可以用来取证,比如如果readlink /proc/pid/exe,路径中出现(deleted),就是自删除的,那么这个就很可疑,就可以使用cp /proc/pid/exe /tmp/v 把他拷贝出来。更多的特性可以在网上找资料,对linux安全研究有很多帮助。

mirai为了不调用c库函数,自己实现很多c函数

比如util.c中一些库函数,resolv.c中的dns查询

https://github.com/jgamblin/Mirai-Source-Code/blob/master/mirai/bot/resolv.c

linux惯用手法

曾经看过一个udp reverseshell ,感觉linux中用户层隐藏自己的方法都差不多

https://github.com/Churro/portknockd/blob/master/portknockd.c

mirai

调用完后立刻加密,敏感字符串不会一直存留在内存中

做了两处隐藏,看unlock_tbl_if_nodebug中,将table_init函数的调用与argv[0]搅合在一起,让人逆得头疼

二是先注册异常处理函数 signal(SIGTRAP, &anti_gdb_entry);,如果unlock_tbl_if_nodebug(args[0])返回true,才触发异常,然后才间接调用anti_gdb_entry,anti_gdb_entry中为 resolve_func = resolve_cnc_addr;类似windows中的猥琐操作。

这段写的有两个作用,一是必须输入正确的名字才能进行正确的初始化,二是让你看不懂


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-4-8 17:50 被爱中华UpTTT编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//