Skip to content
A simple python implementation of a BITS server.
Python
Branch: master
Clone or download
Dor Azouri
Latest commit 2310d90 Jul 18, 2017
Permalink
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
README.md fix contributors link Jul 18, 2017

README.md

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.

Background

Official protocol specification - Background Intelligent Transfer Service (BITS)

Example use at SafeBreach Labs

Usage

Server

  • Tested with Python 2.7:
python SimpleBITSServer.py [port]

Client

Prerequisites:

  • 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 http://127.0.0.1/to_upload.txt -DisplayName TEST

Authors

Dor Azouri - Initial work

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

License

WTFPL - do What the Fuck You Want To Public License

You can’t perform that action at this time.