当前位置 博文首页 > 文章内容

    preload函数劫持,如何避免被Hook

    作者:dlxiaoyu01 栏目:网站安全 时间:2020-11-26 15:00:01

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



      LD_PRELOAD函数劫持

      2.3. LD_PRELOAD使用限制

      这种方式虽然很酷,但却有一些限制。比如对于静态编译的程序是无效的。因为静态编译的程序不需要连接动态库的面的函数。而且,假如文件的SUID或SGID位被置1,加载的时候会忽略LD_PRELOAD(这是ld的开发者出于安全考虑做的)。

      三.相关的隐匿技术

      3.1 Jynx-Kit

      3.2 检查隐匿

      如何避免被Hook

      (1).静态链接,把代码都静态链接入可执行程序.

      (2).通过设置执行文件的setgid / setuid标志.在有SUID权限的执行文件,系统会忽略LD_PRELOAD环境变量.

      也就是说,如果你有以root方式运行的程序,最好设置上SUID权限.

      (3).在程序的开始检测LD_PRELOAD

      Linux环境变量生效篇

      效果:应用程序设置环境变量,使其全局生效,并且立即生效,应用程序卸载时,使其全局失效,并且立即失效。

      情况:

      1.多终端(多个xshell打开,如何使其全部同时生失效)

      2.没有终端,在系统界面,如何使其立即生失效

      export LD_PRELOAD=name指令在终端执行时,立即生效,但是放在脚本中,或者是多个脚本深度嵌套的环境中,不能够改变当前终端的环境变量,

      尝试方法:

      在生效时,根据系统启动时的环境变量加载流程,逐项进行设置,然后使其生效,查看效果

      在失效时,根据系统启动时的环境变量加载流程,逐项进行设置,然后使其失效,查看效果

      Bug修改:

      get_config_file_all和get_config_file函数中的perror一行去掉,不需要输出

      sent_study_process函数中增加判断,增加头文件unistd.h

      CentOS-3.10.0-862.el7.x86_64-V1.0-1.8-T-20190515153527.bin这个程序是bin包,不能使用source或者. 去执行,只能使用./

      每一个进程只能改变当前进程内的环境变量,使其及时生效,无法改变其进程外的变量,需要重新加载

      对于多个已经打开的终端,只能改变当前终端的环境变量,无法改变其他终端的变量,需要重新加载