Skip to content

BITSInject

Dor Azouri

Exploiting Windows BITS service state files to inject jobs and execute code as NT AUTHORITY/SYSTEM.

Summary

Windows BITS Service

Windows' Background Intelligent Transfer Service (BITS) acts as a middleman for download jobs. From the moment a job is created, BITS manages the download lifecycle and handles queue management.

Vulnerability Discovery

Researchers discovered how BITS maintains its job queue using a state file on disk. The binary structure of this state file can be modified by local administrators to control jobs using special modifications to the file.

Exploitation Technique

By comprehending the binary structure of the state file, attackers can change job properties such as RemoteURL and Destination Path at runtime. They can also inject custom jobs without using BITS' public interfaces.

Code Execution

Combined with BITS' notification feature, this technique allows running arbitrary programs as the LocalSystem account within session 0. The researchers provide a one-click Python tool that performs the attack, SimpleBITSServer, and struct definition files for parsing BITS state files.

Related talks

Main Stage·22 min

  • DEF CON
  • Red Team
  • Date: Aug 2016
  • Location: Las Vegas

Linuz · Medic

Linuz and Medic analyze misconfigured accessibility binaries in remote desktop endpoints, showing how weaponizing Sticky Keys yields unauthenticated SYSTEM access.

sticky-keysaccessibility-backdoorremote-desktop+2

Main Stage·18 min

  • DEF CON
  • Red Team
  • Date: Aug 2014
  • Location: Las Vegas

Christopher Campbell

Christopher Campbell explores the $env:path less traveled at DEF CON 22, examining powershell and practical defenses.

powershellwindows-internalsprivilege-escalation+1