Shepard : In Progress Persistent Download/Upload/Execution Tool Using Windows BITS

Shepard is an IN PROGRESS persistence tool using Windows Background Intelligent Transfer Service (BITS).

  • Functionality: File Download, File Exfiltration, File Download + Persistent Execution
  • Usage: run shepard.exe as Administrator with the following command line arguments
  • -d remoteLocation, writePath: regular file download to a local path of your choice
  • -e remoteLocation, localPath: regular file upload from a local path of your choice (only sends to IIS server, this is a limitation with BITS)
  • -dr remoteLocation, writePath, [optionalFileArgs]: file download to a path of your choice, and will attempt to maintain persistence. The downloaded file will attempt to run with optionalFileArgs and BITS will check back every 30 seconds to make sure the file is still running on the compromised system.

Running this executable with no arguments or an incorrect amount of arguments will cause shepard to exit cleanly.

BINDSHELL

The server (victim) is written using C#. It listens on port 6006.

Usage: run shepardsbind_serv.exe with no arguments.

The client (attacker) is written using Python and takes one argument: the IP address of the victim’s machine. Usage: run shepardsbind_recv.py with one argument: <victim’s IP>

Running shepardsbind_recv.py with no arguments will return an error. The prompt will look like: %SBS%.

Using Them In Conjunction

The only executable that must be on the victim’s machine is shepard.exe. Host the download bindshell executable to a publicly accessible place. Shepard will download and run the bindshell executable, and the user can now use the python receiver. If the shell is found and killed, it will restart after 30 seconds. Last steps in progress: finding out how to rerun shepard.exe to re-download in case the shell executable is deleted. Most likely will use a service.

R K

Recent Posts

Bash Scripting Best Practices Every Beginner Should Know

Introduction Bash scripting is a powerful way to automate Linux tasks, but writing a script…

4 hours ago

How To Create A Self-Signed SSL Certificate Using Bash And OpenSSL

Introduction A self-signed SSL certificate is a certificate that is created and signed by the…

5 hours ago

How To Debug Bash Scripts Using bash -x And set Commands

Introduction Debugging is an important part of Bash scripting. When a script does not work…

10 hours ago

How To Use Cron Jobs With Bash Scripts For Automation

Introduction Cron jobs are used in Linux to run commands or Bash scripts automatically at…

11 hours ago

How To Use Pipes In Bash Scripts For Command Chaining

Introduction Pipes are an important feature in Linux and Bash scripting. A pipe allows you…

12 hours ago

How To Use grep, awk, And sed In Bash Scripts

Introduction The grep, awk, and sed commands are powerful text-processing tools in Linux. They are…

13 hours ago