Adversaries may abuse BITS jobs to persistently execute code and perform various background tasks. Windows Background Intelligent Transfer Service (BITS) is a
low-bandwidth, asynchronous file transfer mechanism exposed through Component Object Model (COM).[1][2]
BITS is commonly used by updaters, messengers, and other applications preferred to operate in the background (using available idle bandwidth) without interrupting other networked
applications. File transfer tasks are implemented as BITS jobs, which contain a queue of one or more file operations.
攻撃者は、BITSジョブを悪用して、コードを持続的に実行したり、さまざまなバックグラウンドタスクを実行する場合があります。Windows Background Intelligent Transfer Service (BITS) は、Component Object Model (COM)
により実現される低域の非同期ファイル転送機構です。BITSは、アップデータ、メッセンジャー、および他のネットワークアプリケーションを中断することなくバックグラウンドで(アイドルの帯域を使用して)動作するアプリケーションによって、一般的に使用されています。ファイル転送タスクはBITSジョブとして実装され、1つまたは複数のファイル操作のキューを含んでいます。
The interface to create and manage BITS jobs is accessible through PowerShell and the BITSAdmin tool.[2][3]
BITSのジョブを作成・管理するためのインターフェースは、PowerShellやBITSAdminツールからもアクセス可能です。
Adversaries may abuse BITS to download (e.g. Ingress Tool Transfer), execute, and even clean up after running malicious code (e.g. Indicator Removal). BITS tasks are self-contained in the BITS job database, without new files or registry modifications, and often permitted by host firewalls.[4][5][6] BITS enabled execution may also enable persistence by creating long-standing jobs (the default maximum lifetime is 90 days and extendable) or invoking an arbitrary program when a job completes or errors (including after system reboots).[7][4]
攻撃者はBITSを悪用して、ダウンロード(内部へのツール転送など)、実行、さらには実行後のクリーンアップ(痕跡消去など)を行うことがあります。BITSのタスクは、BITSのジョブデータベースに自己完結しており、新しいファイルやレジストリの変更もなく、多くの場合、ホストのファイアウォールによって許可されています[4][5][6]
。BITSによって有効になった実行は、長期間のジョブ(デフォルトの最大寿命は90日、延長可能)を作成したり、ジョブ完了時またはエラー時(システムリブート後など)に任意のプログラムを起動することで永続性も実現できます。[7][4]([7]は日本語記事あり。Unit42)
(メモ:splunk/Detecting Windows BITS abuse、Windowsの永続化メカニズムのメモ)
BITS upload functionalities can also be used to perform Exfiltration Over Alternative Protocol.[4]
BITSのアップロード機能は、代替プロトコルでの盗み出しにも利用できます。
ID | Name | Description |
---|---|---|
G0087 | APT39 |
APT39 has used the BITS protocol to exfiltrate stolen data from a compromised host.[8] |
G0096 | APT41 |
APT41 used BITSAdmin to download and install payloads.[9][10] |
S0534 | Bazar |
Bazar has been downloaded via Windows BITS functionality.[11] |
S0190 | BITSAdmin |
BITSAdmin can be used to create BITS Jobs to launch a malicious process.[12] |
S0154 | Cobalt Strike |
Cobalt Strike can download a hosted "beacon" payload using BITSAdmin.[13][14][15] |
S0554 | Egregor |
Egregor has used BITSadmin to download and execute malicious DLLs.[16] |
S0201 | JPIN |
A JPIN variant downloads the backdoor payload via the BITS service.[17] |
G0065 | Leviathan |
Leviathan has used BITSAdmin to download additional tools.[18] |
S0652 | MarkiRAT |
MarkiRAT can use BITS Utility to connect with the C2 server.[19] |
G0040 | Patchwork |
Patchwork has used BITS jobs to download malicious payloads.[20] |
S0654 | ProLock |
ProLock can use BITS jobs to download its malicious payload.[21] |
S0333 | UBoatRAT |
UBoatRAT takes advantage of the /SetNotifyCmdLine option in BITSAdmin to ensure it stays running on a system to maintain persistence.[7] |
ID | Mitigation | Description |
---|---|---|
M1037 | Filter Network Traffic |
Modify network and/or host firewall rules, as well as other network controls, to only allow legitimate BITS traffic. |
M1028 | Operating System Configuration |
Consider reducing the default BITS job lifetime in Group Policy or by editing the |
M1018 | User Account Management |
Consider limiting access to the BITS interface to specific users or groups.[6] |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0017 | Command | Command Execution |
Monitor executed commands and arguments from the BITSAdmin tool (especially the ‘Transfer’, 'Create', 'AddFile', 'SetNotifyFlags', 'SetNotifyCmdLine', 'SetMinRetryDelay', 'SetCustomHeaders', and 'Resume' command options)[2] Admin logs, PowerShell logs, and the Windows Event log for BITS activity.[22] Also consider investigating more detailed information about jobs by parsing the BITS job database.[4] |
DS0029 | Network Traffic | Network Connection Creation |
Monitor for newly constructed network activity generated by BITS. BITS jobs use HTTP(S) and SMB for remote connections and are tethered to the creating user and will only function when that user is logged on (this rule applies even if a user attaches the job to a service account). |
DS0009 | Process | Process Creation |
Monitor for newly constructed BITS tasks to enumerate using the BITSAdmin tool (bitsadmin /list /allusers /verbose). |
DS0019 | Service | Service Metadata |
BITS runs as a service and its status can be checked with the Sc query utility ( |