设为首页 - 加入收藏 伊春站长网 (http://www.0458zz.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 服务器 区块
当前位置: 首页 > 福彩快三倍投计算器 > 外闻 > 正文

Linux下的Rootkit驻留技术分析

发布时间:2019-01-01 10:39 所属栏目:[外闻] 来源:疯猫网络
导读:前言 Linux作为服务器和IoT设备使用的主要操作系统,针对它的恶意软件也层出不穷。针对Linux设备的恶意软件(以下称为rootkit)通常需要长期驻留于目标操作系统以达到获利目的,所以如何实现驻留也是Linux rootkit作者的重点考虑内容之一,对此,实验室进行了

?前言

Linux作为服务器和IoT设备使用的主要操作系统,针对它的恶意软件也层出不穷。针对Linux设备的恶意软件(以下称为rootkit)通常需要长期驻留于目标操作系统以达到获利目的,所以如何实现驻留也是Linux rootkit作者的重点考虑内容之一,对此,实验室进行了可能的思路探索和分析。

在接下来的说明中,我们统一使用一个名为evil的静态链接ELF文件作为我们要实现驻留的rootkit,所有的驻留尝试均围绕这个程序展开。

技术汇总

1. 用户态下的可利用点

1.1 各种init的利用

Linux init

在systemd成为主流之前,sysvinit是大多数发行版的选择,即使是Ubuntu之前使用的upstart,和sysvinit也是完全兼容的,直到今天,Debian系发行版仍保留sysvinit的兼容性。作为Linux的init程序,也就是PID 1,负责启动之后的所有进程,所有的服务都是由它管理,因此它是实现rootkit驻留的最常见手段。

对于传统的sysvinit,常见的驻留点都需要以root身份写入:

  1. /etc/init.d/etc/rc[runlevel].d/etc/rc.local?

其实sysv的服务文件就是遵循sysv规范的shell脚本,它在嵌入式设备中也很常见。给出一个sysv风格的服务文件如下:

  1. #!/bin/shPATH=/bin:/usr/bin:/sbin:/usr/sbin?
  2. DESC="cron?daemon"NAME=cron?
  3. DAEMON=/usr/sbin/cron?
  4. PIDFILE=/var/run/crond.pid?
  5. SCRIPTNAME=/etc/init.d/"$NAME"test?-f?$DAEMON?||?exit?0?
  6. ?
  7. .?/lib/lsb/init-functions?
  8. ?
  9. [?-r?/etc/default/cron?]?&&?.?/etc/default/cronparse_environment()?{????for?ENV_FILE?in?/etc/environment?/etc/default/locale;?do?
  10. ????????[?-r?"$ENV_FILE"?]?||?continue?
  11. ????????[?-s?"$ENV_FILE"?]?||?continue?
  12. ?
  13. ????????for?var?in?LANG?LANGUAGE?LC_ALL?LC_CTYPE;?do?
  14. ????????????value=$(egrep?"^${var}="?"$ENV_FILE"?|?tail?-n1?|?cut?-d=?-f2)?
  15. ????????????[?-n?"$value"?]?&&?eval?export?$var=$value?
  16. ?
  17. ????????????if?[?-n?"$value"?]?&&?[?"$ENV_FILE"?=?/etc/environment?];?then?
  18. ????????????????log_warning_msg?"/etc/environment?has?been?deprecated?for?locale?information;?use?/etc/default/locale?for?$var=$value?instead"?
  19. ????????????fi?
  20. ????????done?
  21. ????done?
  22. ?
  23. ????#?Get?the?timezone?set.?
  24. ????if?[?-z?"$TZ"?-a?-e?/etc/timezone?];?then?
  25. ????????TZ=$(cat?/etc/timezone)????fi}#?Parse?the?system's?environmentif?[?"$READ_ENV"?=?"yes"?];?then?
  26. ????parse_environmentficase?"$1"?instart)????log_daemon_msg?"Starting?periodic?command?scheduler"?"cron"?#?这一行是我们修改的目标?
  27. ????start_daemon?-p?$PIDFILE?$DAEMON?$EXTRA_OPTS?
  28. ????log_end_msg?$??
  29. ????;;?
  30. stop)????log_daemon_msg?"Stopping?periodic?command?scheduler"?"cron"?
  31. ????killproc?-p?$PIDFILE?$DAEMON?
  32. ????RETVAL=$??
  33. ????[?$RETVAL?-eq?0?]?&&?[?-e?"$PIDFILE"?]?&&?rm?-f?$PIDFILE?
  34. ????log_end_msg?$RETVAL?
  35. ????;;?
  36. restart)????log_daemon_msg?"Restarting?periodic?command?scheduler"?"cron"?
  37. ????$0?stop????$0?start?
  38. ????;;?
  39. reload?|?force-reload)????log_daemon_msg?"Reloading?configuration?files?for?periodic?command?scheduler"?"cron"?
  40. ????#?cron?reloads?automatically?
  41. ????log_end_msg?0?
  42. ????;;?
  43. status)?
  44. ????status_of_proc?-p?$PIDFILE?$DAEMON?$NAME?&&?exit?0?||?exit?$??
  45. ????;;?
  46. *)????log_action_msg?"Usage:?/etc/init.d/cron?{start|stop|status|restart|reload|force-reload}"?
  47. ????exit?2?
  48. ????;;esacexit?0?

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章