// 安全研究 · 2024-11-02

Windows 基础 (三):常用CMD命令详解及病毒编写

@[TOC](内容预览 ≧∀≦ゞ

Windows 基础 3:常用CMD命令详解及病毒编写


概述

本文主要介绍常用的CMD命令,以及通过这些命令如何编写简单批处理(BAT)脚本病毒。这些脚本的作用是通过模拟消耗系统资源、篡改系统配置等方式,产生类似DOS(Denial of Service)攻击的效果。本文仅供学习与研究之用,请勿用于非法用途。


常用 CMD 命令

DOS命令和CMD命令的区别

DOS(磁盘操作系统)和 CMD(命令提示符)之间存在着继承关系。DOS 是早期的操作系统,其命令集包括基本的文件操作和系统管理命令,如 COPY、DEL 和 DIR。而 CMD 则是在 Windows 环境下发展的命令行界面,它不仅继承了 DOS 的所有基本命令,还扩展了许多 Windows 特有的命令,如 TASKLIST、IPCONFIG 和 NET,使得 CMD 的功能更加丰富和强大。CMD 还支持批处理脚本、管道和重定向等高级功能,从而允许用户进行更复杂的任务和自动化操作。因此, CMD 可以看作是 DOS 的继承者,承载并扩展了其命令行操作的能力。

Windows 和 Linux 命令对比

在这里插入图片描述

常用 CMD 命令详解

  1. echo

    • echo /? - 查看帮助文档,后面的命令都可用此参数。
    • echo 1 - 输出数字 1。
    • echo 1 > 1.txt - 输出 1 并将结果重定向到 1.txt 文件。
    • echo 456789 >> 1.txt - 将内容追加到 1.txt 中。
  2. dir

    • 用于展示当前目录中的文件列表。
  3. 切换目录

    • d: - 切换到 D 盘。
    • cd .. - 返回上一级目录。
    • cd desktop - 切换到桌面。

    提示:使用 Tab 键可自动补全文件或文件夹名称。

  4. tree

    • tree /f - 显示每个文件夹中的文件。
    • tree /a - 使用 ASCII 字符显示,避免乱码。
    • 示例:tree C:\users\administrator /f 或 tree /a
      在这里插入图片描述
  5. md 和 rd

    • md 是 mkdir 的缩写,用于创建目录。示例:md kkk - 创建名为 kkk 的文件夹。
    • rd 用于删除目录。示例:rd kkk - 删除 kkk 文件夹。
  6. ipconfig

    • 查看本机 IP 地址。
    • ipconfig /all - 打印所有网络配置信息。
  7. cls

    • 清空当前 CMD 窗口的内容。
  8. copy

    • copy 1.txt ..\ 或 copy 1.txt ..\1.txt - 将 1.txt 文件复制到上一级目录。
    • copy 1.txt desktop\2.txt - 将 1.txt 复制到桌面并重命名为 2.txt。
    • copy 1.txt + 2.txt > 3.txt - 将 1.txt 和 2.txt 的内容合并并输出到 3.txt。
  9. move

    • move ..\1.txt 4.txt - 将上一级目录中的 1.txt 移动到当前目录,并重命名为 4.txt。
  10. ren

    • ren 4.txt 5.txt - 将 4.txt 重命名为 5.txt。
  11. del

    • del 1.txt 2.txt 3.txt - 永久删除指定文件,不进入回收站。
  12. ping

    • 用于探测主机 IP 是否存活。
    • ping [IP地址或域名] - 发送默认的 4 次请求,检查目标的响应情况。
    • ping -t [IP地址或域名] - 持续不断地 ping 目标,直到手动停止。
    • ping -n [次数] [IP地址或域名] - 指定 ping 的次数,例如 ping -n 10 将发送 10 次请求。
    • ping -l [数据包大小] [IP地址或域名] - 设置数据包大小来测试网络吞吐,例如 ping -l 1000 发送 1000 字节的数据包。
  13. type

    • 显示文本文件的内容。
    • 示例:
      echo sdafasdfasdfa >> 1.txt
      type 1.txt  # 查看文件内容
  14. reg

    • 用于操作 Windows 注册表,包括查询、添加、修改和删除注册表项和键值。
    • reg /? - 查看注册表命令的帮助提示。
  15. nslookup

    • 用于探测域名信息。
    • 示例:
      • nslookup www.baidu.com
      • nslookup -d www.baidu.com - 查看历史解析记录。
  16. find 和 findstr

    • find /? - 查看 find 的帮助文档。
    • findstr /? - 查看 findstr 的帮助文档。
    • 示例:
      find "a" 1.txt         # 在 1.txt 中查找包含 "a" 的字段  
      find /n "a" 1.txt      # 查找并显示行号  
      type 1.txt | find "a"  # 使用管道配合 find 查找字段  
      findstr "a" 1.txt      # 在 1.txt 中查找包含 "a" 的行,支持正则表达式  
      findstr 命令支持更多功能,包括正则表达式和多个字符串的查找,使用时可根据需求选择。
  17. tasklist

    • 显示所有运行进程的名称及相关信息。
    • tasklist /m - 显示每个进程所使用的模块。
  18. taskkill

    • 用于结束指定进程。
    • taskkill /pid 2824 - 结束 PID 为 2824 的进程。
    • 遇到无法结束的进程可加 /f 参数强制终止,例如:
      • taskkill /pid 2824 /f - 强制结束 PID 为 2824 的进程。
    • 也可以通过进程名称结束进程,示例:
      • taskkill /im notepad.exe - 结束所有名为 notepad.exe 的进程。
      • taskkill /f /im notepad.exe - 强制结束所有名为 notepad.exe 的进程。
  19. ver 和 winver

    • 显示系统版本信息。
    • ver - 显示当前 Windows 操作系统的版本号和构建信息。
    • winver - 打开一个窗口,显示详细的 Windows 版本信息,包括版本号、内部版本号以及许可证信息。
  20. start

    • 启动程序或命令。
    • 示例:
      • start cmd - 打开 cmd 窗口。
      • start calc - 打开计算器。
  21. systeminfo

    • 查看系统详细信息,包括补丁信息。
  22. logoff

    • 注销用户。
  23. shutdown

    • 用于执行关机、重启、注销等操作。
    • shutdown /s - 在默认的时间(通常为 1 分钟)后关机。
    • shutdown /s /t [秒数] - 指定延迟关机的时间,例如 shutdown /s /t 60 将在 60 秒后关机。
    • shutdown /a - 取消当前计划中的关机或重启操作。
    • shutdown /r - 重启计算机。
    • shutdown /r /t 0 - 立即重启,不等待任何时间。
    • shutdown /l - 注销当前用户。此命令不需要任何参数。
    • shutdown /g - 关机并重启计算机,重新启动后会重新加载所有注册的应用程序。
    • shutdown /h - 休眠计算机,适用于节省电源的场景。
    • shutdown /p - 立即关闭计算机,不进行任何延迟。
  24. telnet

    • 启用 Telnet 客户端,用于远程登录和与远程主机进行交互。使用此命令前,需先到控制面板的“程序”部分,选择“打开或关闭 Windows 功能”,然后勾选“Telnet 客户端”以确保该功能已启用。
    • telnet [主机名或IP地址] [端口] - 连接到指定的主机和端口。
    • telnet - 输入该命令后可以进入 Telnet 的交互模式,通常用于网络设备的管理和配置。

    注意:Telnet 在网络安全性方面存在一定风险,因为它未加密数据传输。因此,尽量在安全的网络环境中使用,并考虑使用更安全的替代方案,如 SSH。

  25. arp

    • 显示 IP 地址与物理地址(MAC 地址)之间的映射关系表,通常用于内网主机的发现和网络故障排除。
    • arp /a - 显示当前计算机的 ARP 表,包括所有已知的 IP 地址及其对应的物理地址。
    • arp -d [IP地址] - 删除指定 IP 地址的 ARP 缓存条目,适用于更新或清理不正确的地址映射。
    • arp -s [IP地址] [物理地址] - 手动添加静态的 IP 和 MAC 地址映射,适用于需要固定地址的设备。

    应用场景:在内网渗透测试和网络管理中,arp 命令可以帮助识别同一网络中的主机,协助发现潜在的目标设备。

  26. at

    • 设置定时任务。
    • 示例:at 12:00 "shutdown /s /t 0" - 设置定时关机任务。
  27. net

    • 用于系统服务和用户管理,包括用户账户的创建、修改和权限分配。
    • net user - 查看当前系统中的用户列表及其状态。
    • net user admin 123 /add - 添加一个名为 admin 的新用户,密码设置为 123。
    • net localgroup administrators admin /add - 将刚创建的 admin 用户添加到管理员组。
    • net user [用户名] - 查看指定用户的详细信息,包括组成员身份和密码设置等。
    • net user [用户名] [新密码] - 更改指定用户的密码。
    • net localgroup [组名] - 显示指定组的成员列表。

    应用场景:在内网渗透中,net 命令被广泛应用于权限提升和域渗透。


DOS病毒编写

在这一部分,我们将探讨一些简单的 DOS 脚本示例,这些脚本能够实现特定的恶意功能。尽管这些病毒的原理相对简单,主要依赖基本的 DOS 命令和控制流语句,但它们的危害十分巨大。

一、资源耗尽病毒

脚本示例

echo start cmd > 1.txt
echo %0 >> 1.txt
ren 1.txt 1.bat

原理分析

  1. 使用 echo start cmd 将启动新的 cmd 窗口的命令写入 1.txt 文件中。
  2. 使用 %0 表示当前批处理文件的名称,这样在文件中加入对自身的调用以创建一个循环。
  3. 最后将 1.txt 重命名为 1.bat,形成一个循环执行的批处理文件。

执行效果

执行后,该脚本会无限循环地打开新的 cmd 窗口,逐渐消耗系统资源,造成系统响应变慢甚至死机。这种脚本能够有效地对系统资源形成耗尽攻击,达到 DOS 攻击的效果。 在这里插入图片描述

二、锁机病毒

脚本示例

echo net user administrator 123456 > C:\windows\Temp\1.bat
echo shutdown /r /t 0 >> C:\windows\Temp\1.bat

原理分析

  1. 使用 net user 命令将 administrator 用户的密码重置为 123456,并将该命令保存到 C:\windows\Temp\1.bat 文件中。
  2. 在同一文件中添加 shutdown /r /t 0 命令,立即重启计算机。

执行效果

执行该脚本后,系统会立即重启,并将 administrator 账户的密码更改为指定密码。如果攻击者将密码设置为复杂字符串,用户将无法解锁系统,达到锁机的效果。类似的攻击手法也可替换为注销命令,从而阻止用户访问。

在这里插入图片描述

三、无限重启病毒

脚本示例

echo shutdown /r /t 0 > C:\windows\Temp\1.bat
copy C:\windows\Temp\1.bat "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\"

原理分析

  1. 使用 echo 命令将立即重启的指令写入到 C:\windows\Temp\1.bat 文件中。
  2. 将该文件复制到 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ 文件夹中,使其成为自启动脚本。

执行效果

当脚本被触发后,计算机将会立即重启。由于 1.bat 文件被放置在启动文件夹中,系统每次启动都会执行该文件,从而形成无限重启的循环。这种攻击会使系统陷入不可用状态,难以恢复正常。

四、利用系统自启动目录实现持续攻击

在这些脚本中,我们通过将批处理文件置于 Windows 系统目录中的 Temp 或 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ 文件夹下,来实现系统的自启动或资源耗尽。这种手法是渗透测试和系统安全研究中的常见方法,攻击者可以利用这些路径对系统进行持久化控制,达到在系统重启后自动执行的效果。

  • %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\:这个路径下的任何文件都会在用户登录后自动执行,通常用于实现开机启动。
  • C:\windows\Temp\:此路径用于存储临时文件,且在系统重启后会清空。因此,攻击脚本存放于此目录时可避免长时间存留,但仍然会在短期内影响系统正常运行。

总结

本文首先介绍了常用的CMD命令,然后介绍了几种基于批处理脚本的 DOS 攻击方法,包括资源耗尽、锁机、无限重启等。利用这些方法,攻击者可以通过简单的脚本对系统资源造成大量消耗,破坏系统稳定性和可用性。

最后,再次感谢您阅读本篇文章,如果您对文中内容有任何疑问或建议,欢迎在评论区与我交流!您的点赞和分享将是我继续创作的动力。

免责声明:本文内容仅用于技术研究与教育目的,请勿将文中的代码或技术手段用于任何非法活动。

原文 https://blog.csdn.net/2301_79518550/article/details/143454281