Skip to content
A simple python implementation of a BITS server.
Branch: master
Clone or download
Dor Azouri
Latest commit 2310d90 Jul 18, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
SimpleBITSServer Add files via upload Apr 9, 2017
LICENSE Initial commit Apr 9, 2017 fix contributors link Jul 18, 2017

SimpleBITSServer (Background Intelligent Transfer Service)

A simple python implementation of a BITS server. BITS protocol is used to transfer files asynchronously between a client and a server. The BITS protocol metadata communication resides mainly in BITS-defined HTTP headers, all start with prefix "BITS-". For that reason, this implemantation is based on python's built-in SimpleHTTPRequestHandler.

The implementation corresponds to the MSDN specification for client and server packets.

  • It was originally developed as an ad-hoc utility for modelling a BITS upload job scenario.
  • The corresponding client is Windows' built-in PowerShell cmdlet.
  • Therefore, It is not intended to fully implement or abide to the official specification. Further work may be done in the future to expand the specification coverage.


Official protocol specification - Background Intelligent Transfer Service (BITS)

Example use at SafeBreach Labs



  • Tested with Python 2.7:
python [port]



  • Must run on a Windows OS to use the Microsoft Windows BITS Service.
  • Ports or protocol mimics might exist, please inform us if you do find
  • a BITS client, preferably PowerShell's Start-BitsTransfer. Alternatively:
  • Windows' built in utility - bitsadmin.exe (deprecated)
  • Any program implementing the required interfaces as described on MSDN

The simple PowerShell usage this server was built to service:

> Import-Module BitsTransfer
> Start-BitsTransfer -TransferType Upload -Source C:\temp\to_upload.txt -Destination -DisplayName TEST


Dor Azouri - Initial work

See also the list of contributors who participated in this project.


WTFPL - do What the Fuck You Want To Public License

You can’t perform that action at this time.