加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Linux下的Rootkit驻留技术分析

发布时间:2018-12-23 03:08:08 所属栏目:业界 来源:疯猫网络
导读:媒介 Linux作为处事器和IoT装备行使的首要操纵体系,针对它的恶意软件也层出不穷。针对Linux装备的恶意软件(以下称为rootkit)凡是必要恒久驻留于方针操纵体系以到达赢利目标,以是怎样实现驻留也是Linux rootkit作者的重点思量内容之一,对此,尝试室举办了
副问题[/!--empirenews.page--]

 媒介

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 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读