BITS 与后台传输任务
BITS(后台智能传输服务)为系统更新提供断点续传与空闲带宽利用能力,也因此常被滥用为下载通道:任务可以长时间挂起,能同时指定远程 URL 与本地落地路径,执行进程还是合法的 svchost,动作因此不容易被察觉到。它的取证价值在于记录里把下载来源与落地位置写在了一起。
基本信息
| 服务 | Background Intelligent Transfer Service(BITS) |
|---|---|
| 旧式命令 | bitsadmin /list /allusers /verbose(新版系统已标注弃用) |
| 现代写法 | Get-BitsTransfer -AllUsers(PowerShell) |
| 事件日志 | Microsoft-Windows-Bits-Client/Operational |
| 作业数据 | C:\ProgramData\Microsoft\Network\Downloader 目录 |
典型使用场景
- 主机出现可执行文件落地迹象,追溯其下载来源地址
- 区分某项下载是系统更新行为,还是人为创建的任务
- 从事件记录中补出已完成、已被清理的历史下载目标
- 把落地文件的时间与哈希和任务记录结合,串起下载链路
- 排查长期残留的可疑任务,作为外联与持久化证据
查看任务
查看任务
bitsadmin /list /allusers /verbose # 全部用户的完整任务
bitsadmin /list /allusers /verbose | findstr /i "URL FILE" # 只看来源与落地
Get-BitsTransfer -AllUsers | Select-Object DisplayName, JobState, @{n='Owner';e={$_.OwnerAccount}} # PowerShell
Get-WinEvent -LogName Microsoft-Windows-Bits-Client/Operational -MaxEvents 30 # 事件侧记录
ls "C:\ProgramData\Microsoft\Network\Downloader" # 作业数据文件目录任务字段读法
| 字段 | 含义 | 异常参考 |
|---|---|---|
| JobState | 任务状态,如 Transferred、Suspended、Error | 长期挂起或报错残留值得追问 |
| Owner | 创建该任务的账号 | 非管理员账号或已停用账号创建要重点看 |
| RemoteName | 下载来源地址 | 临时域名、直连 IP、非常规端口 |
| LocalName | 本地落地路径 | 落在用户可写目录或系统临时目录 |
| NotifyCmdLine | 任务完成后的触发命令 | 非空说明下载只是执行链的一环 |
任务完成后会从活动队列中消失,仅凭任务列表会漏掉已执行的下载行为,必须结合 Operational 事件日志与 Downloader 目录下的作业数据文件补记,两者对不上时以原始文件为准。
Downloader 目录中的作业数据文件属于证据,清理可疑任务前先整目录复制留存;直接删除任务会让该次下载的历史记录一并消失,事后无法再核对。