Skip to main content

Quickscope

Quickscope is a lightweight exploit thrower for attack-defense CTFs. This entails being able to communicate with a game interface (the tracker) and being able to launch exploits (the shooter).

pip install quickscope

How do I write an exploit?

Write an ordinary script that takes its input as the environment variables $HOST and $FLAG_ID. You should hardcode the port used for the service, unless it is a very special variable service, in which case you should use $PORT. chmod +x the script and make sure it has a shebang. You should put the text x-service-name: servicename in your script somewhere so that the shooter knows to shoot it against the service servicename.

How do I launch an exploit?

quickscope --everyone --script my_exploit.py

Your exploit must contain the text x-service-name: <myservice>, where <myservice> is replaced with the name of the service to fire at.

How do I launch all my exploits forever?

quickscope --forever --corpus my_exploits

The difference between --everyone and --forever is that --everyone only shoots at each target for the current tick once.

How do I set up the tracker?

In order for quickscope (the shooter) to fire exploits, it needs to be able to connect to the tracker. The tracker is a python file that you should write for each CTF. Here's an example of it:

from quickscope.tracker import Tracker

class MyTracker(Tracker):
    ...

if __name__ == '__main__':
    MyTracker.main()

You should implement the values marked as not implemented in tracker.py - this means FLAG_REGEX, get_status, submit_flags, and instrument_targets. See fake/stub_tracker.py for an example implementation!

You can then directly run your script and it will start tracking the game.

If you're running the tracker in a non-hardcoded location, you will need to specify the --server argument to the shooter.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quickscope-0.1.7.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quickscope-0.1.7-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file quickscope-0.1.7.tar.gz.

File metadata

  • Download URL: quickscope-0.1.7.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for quickscope-0.1.7.tar.gz
Algorithm Hash digest
SHA256 d78a4e3c0748a71c55039b667bab6eec7e8a2619adf25718f2e70cef9b3090f7
MD5 e8fc4e16738f6203d871f1bd4cc8657d
BLAKE2b-256 3cbc1d27809679b372328bd62d3d2fc901029d95884b59d95c02cd631cc0b01b

See more details on using hashes here.

File details

Details for the file quickscope-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: quickscope-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for quickscope-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b02b96e67d3fc01a62126fb04ec22d03dbb8eab06de55ac5a92148ada8d11213
MD5 db3a8c701d76e9801c8c7b0a206b166f
BLAKE2b-256 ce7fa2c172ef584451ed4b17044fa969543a95bf645e1c9bbb59b883f84f0fdf

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page