i pensier stretti&il viso sciolto. -----------Hemy Wootton《黑客与画家》
守口如瓶,笑脸相迎
目录
文档编写目的
序
用来保护公司机密的监控小进程,并且防止黑客盗用,以及获取员工的登录日志信息,防止有人恶意搞,或者当员工使用rm -rf等误删时禁止,并向主管部门发送邮件。
伪装系统文件使用定时任务执行python脚本
ps:技术都有两面性,大家都明白。
此时用到的工具是systemd,下面是具体步骤
1.0 创建单调定时器
创建一个文件夹用于存放测试使用的单元数据
mkdir /home/sy_test
在此目录下创建定时器
cd /home/sy_test
vim nice.timer
编写单元文件内容
[Timer]
OnBootSec=1h
OnUnitActiveSec=1d
1h代表开机1小时后启动
1d代表1day 也就是1天执行一次
1.1 创建单元文件
创建文件
cd /home/sy_test
vim nice.service
编写文件内容
[Unit]
Description = myScript #描述#
[Service]
ExecStart = /usr/bin/python3 -u mypython.py
WorkingDirectory = /home/sy_test #脚本所在目录#
放入系统可识别的优先级目录下(具体优先级问题请参照第三篇参考博客)
mv /home/sy_test/nice.service /lib/systemd/system
1.2创建python脚本
vim /home/sy_test/mypython.py
编写文件内容
1.3执行脚本
由于是linux系统服务,和配置环境变量一样有效,能够在任意目录执行
sudo systemctl start nice.service
启动服务后查看状态(它这里是状态其实代表日志)
sudo systemctl status nice.service
成功运行!接下来停掉服务,然后通过定时器启动
sudo systemctl stop nice.service
当然我们这种小程序,打印跑完就代表程序就结束了,所以你不stop也可以,但是如果是持久性的程序(比如tomcat,nginx,自定义的接口之类的服务),停止才可以在启动
1.4通过定时器启动任务
为了更加明显我这里把之前的nice.timer设置为1m,也就是1分钟执行一次,并且配置定时任务执行那个服务
vim /home/sy_test/nice.timer
转移与关联
很多小宝贝会好奇,那么定时任务和单元服务文件没有配置,他们怎么关联的呢,别慌看↓↓↓↓↓↓↓
定时器单元文件和服务单元文件必须在同一个目录下,且文件名相同,只是后缀不同一个为.timer,一个为.service
mv /home/sy_test/nice.timer /lib/systemd/system
启动定时器
systemctl start nice.timer
查看定时器状态
systemctl status nice.timer
定时器启动成功,接下来咱们来验证一下是否让那个python执行了多次
查看服务状态
sudo systemctl status nice.service
我没有手动运行任何关于这个服务的命令,仅仅是看它的状态,2次都在每分钟重新执行了,说明很成功
成功!
结语:你规避了你隐藏的服务,无法发现,但是软件行业没有银弹,没有完美的东西,如果别人也知道这个systemctl可以隐藏服务的话,其实也是可以通过这个找到你的命令的,不过它得查看你的输入日志。
所以你还得来一步,删除这区间内的输入日志
还是那句没有银弹,这样虽然别人不知道你启动了什么服务,但是还是有问题的,如果别人超级厉害的那种,那这个版本的文件和当前版本的系统命令,以及搭建的所有环境服务所有版本文件进行比对,然后在以超级耐心,一个个比对,放心吧,绝对要花几个月专注这一件事情,才能把你给找出来。
参考博客:
https://blog.csdn.net/weixin_37766296/article/details/80192633 最简明扼要的 Systemd 教程
systemctl isolate emergency.target 千万不要执行,上一篇文章中的开始与执行前面的代码。我服务器直接ping不通了。
https://www.cnblogs.com/zhaoweihang/p/12102386.html 在linux 用systemctl 执行python脚本
https://my.oschina.net/u/2539854/blog/857219 systemd创建定时任务