Shell - 通过hook文件后门实现应用的自动启停

简介: Shell - 通过hook文件后门实现应用的自动启停

202009281105144.png



启动脚本

 #!/bin/bash
set_network_param()
{
  sysctl -w fs.file-max=999999
  sysctl -w net.ipv4.tcp_tw_reuse=1
  sysctl -w net.ipv4.tcp_fin_timeout=15
  sysctl -w net.core.netdev_max_backlog=4096
  sysctl -w net.core.somaxconn=40960
  sysctl -w net.ipv4.tcp_max_syn_backlog=40960
  sysctl -w net.ipv4.tcp_syncookies=1
  sysctl -w net.ipv4.tcp_syn_retries=2
  sysctl -w net.ipv4.tcp_synack_retries=2
  return
}
#service start
start()
{
  number=`ps -ef | grep "/home/nginx/bin/nginx" | grep -v grep | head -n 1 | wc -l`
  if [ $number -ge 1 ];then
  fi
  set_network_param
  ulimit -n  65535
  if [ -f "/home/nginx/bin/nginx" ]
  then
    /home/nginx/bin/nginx -p /home/nginx -c /home/nginx/conf/nginx.conf
  fi
  number=`ps -ef | grep "/home/nginx/daemon/nginx_daemon" | grep -v grep | head -n 1 | wc -l`
  if [ $number -lt 1 ];then
    # Do Something
  fi
  if [ -f "/home/nginx/daemon/nginx_daemon" ]
  then
    nohup /home/nginx/daemon/nginx_daemon >/dev/null 2>&1 & 
  fi 
}
#service stop
stop()
{
  /home/nginx/bin/nginx -p /home/nginx -s stop 
}
#parse cmd
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    sleep 1
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
exit 0


姑且称之为a.sh 在 /home/nginx 目录下


daemon

通过放入hook文件, 在对应的目录下touch start \ stop \restart 文件 , 实现应用的启停

#!/bin/sh
number=`ps -ef | grep "/home/nginx/daemon/nginx_daemon" | grep -v grep | head -n 1 | wc -l`
if [ $number -lt 1 ];then
  #do something
fi
while [ 1 -eq 1 ]
do
  if [ -f "/home/nginx/daemon/start" ]; then
    rm -rf /home/nginx/daemon/start
     /home/nginx/a.sh start
  fi
  if [ -f "/home/nginx/daemon/stop" ]; then
    rm -rf /home/nginx/daemon/stop
     /home/nginx/a.sh stop
  fi
  if [ -f "/home/nginx/daemon/restart" ]; then
    rm -rf /home/nginx/daemon/restart
     /home/nginx/a.sh restart
  fi
  sleep 5
done


相关文章
|
6月前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
553 1
|
6月前
|
人工智能 机器人 Shell
【shell】文件读写及read用法
【shell】文件读写及read用法
|
6月前
|
缓存 Shell Linux
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
210 0
|
6月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
153 0
|
1月前
|
Shell
Shell 文件包含
10月更文挑战第5天
33 4
|
6月前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
665 3
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
8天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
29 1
|
3月前
|
Shell Linux 网络安全
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
|
4月前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
58 3