如何隐藏自己的应用程序在服务器上不被发现?

i pensier stretti&il viso sciolto.   -----------Hemy Wootton《黑客与画家》

守口如瓶,笑脸相迎               

 


 

 

目录

1.0 创建单调定时器

1.1 创建单元文件

1.2创建python脚本

1.3执行脚本

1.4通过定时器启动任务

 



目的:

用来保护公司机密的监控小进程,并且防止黑客盗用,以及获取员工的登录日志信息,防止有人恶意搞,或者当员工使用rm -rf等误删时禁止,并向主管部门发送邮件。

伪装系统文件使用定时任务执行python脚本

ps:技术都有两面性,大家都明白。


此时用到的工具是systemd,下面是具体步骤

 

1.0 创建单调定时器


创建一个文件夹用于存放测试使用的单元数据

   mkdir /home/sy_test

mkdir /home/sy_test

在此目录下创建定时器

cd /home/sy_test

vim nice.timer

cd /home/sy_test
vim nice.timer

编写单元文件内容

[Timer]
OnBootSec=1h
OnUnitActiveSec=1d

1h代表开机1小时后启动

1d代表1day 也就是1天执行一次

[Timer]
OnBootSec=1h
OnUnitActiveSec=1d

1.1 创建单元文件


创建文件

cd /home/sy_test

vim nice.service

cd /home/sy_test
vim nice.service

编写文件内容

[Unit]

Description = myScript  #描述#

[Service]

ExecStart = /usr/bin/python3 -u mypython.py

WorkingDirectory = /home/sy_test  #脚本所在目录#

[Unit]

Description = myScript  #描述#

[Service]

ExecStart = /usr/bin/python3 -u mypython.py
WorkingDirectory = /home  #脚本所在目录#

放入系统可识别的优先级目录下(具体优先级问题请参照第三篇参考博客)

mv /home/sy_test/nice.service /lib/systemd/system

mv /home/sy_test/nice.service /lib/systemd/system

1.2创建python脚本


vim /home/sy_test/mypython.py

vim /home/sy_test/mypython.py

编写文件内容

print('you are nice!')

1.3执行脚本


由于是linux系统服务,和配置环境变量一样有效,能够在任意目录执行

sudo systemctl start nice.service

sudo systemctl start nice.service

启动服务后查看状态(它这里是状态其实代表日志)

sudo systemctl status nice.service

sudo systemctl status nice.service

如何隐藏自己的应用程序在服务器上不被发现?

成功运行!接下来停掉服务,然后通过定时器启动

sudo systemctl stop nice.service

sudo systemctl stop nice.service

当然我们这种小程序,打印跑完就代表程序就结束了,所以你不stop也可以,但是如果是持久性的程序(比如tomcat,nginx,自定义的接口之类的服务),停止才可以在启动

1.4通过定时器启动任务


为了更加明显我这里把之前的nice.timer设置为1m,也就是1分钟执行一次,并且配置定时任务执行那个服务

vim /home/sy_test/nice.timer

vim /home/sy_test/nice.timer

如何隐藏自己的应用程序在服务器上不被发现?

转移与关联

很多小宝贝会好奇,那么定时任务和单元服务文件没有配置,他们怎么关联的呢,别慌看↓↓↓↓↓↓↓

定时器单元文件和服务单元文件必须在同一个目录下,且文件名相同,只是后缀不同一个为.timer,一个为.service

mv /home/sy_test/nice.timer /lib/systemd/system

mv /home/sy_test/nice.timer /lib/systemd/system

启动定时器

systemctl start nice.timer

systemctl start nice.timer

查看定时器状态

systemctl status nice.timer

systemctl status nice.timer

如何隐藏自己的应用程序在服务器上不被发现?

定时器启动成功,接下来咱们来验证一下是否让那个python执行了多次

查看服务状态

sudo systemctl status nice.service

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创建定时任务

 

上一篇:ABAP Exception


下一篇:洛谷 P1926 小书童——刷题大军