Skip to main content

A lightweight and scalable A/D CTF exploit shooter

Project description

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.

Project details


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.5.tar.gz (19.0 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.5-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quickscope-0.1.5.tar.gz
  • Upload date:
  • Size: 19.0 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.5.tar.gz
Algorithm Hash digest
SHA256 a203c8e52140c6971bf70cefc577d91e649dbb489187234e36c19da753900d39
MD5 0ed84364412112803c7d779c2f34e324
BLAKE2b-256 ff30de2188931fb899d9a4047bda34df563e307022a33e5daf9d372a1184f12f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quickscope-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 20.6 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f6d236d0b4588cfd5067b3c4b0c687eea4d1fa3e3e43626deebdbcfb2cd44827
MD5 fbec472a67d085719c6053efebc9e95a
BLAKE2b-256 32c5cffa772e277dfed404e2dfb9a25dcb17a1049de2b77083113086436e02fa

See more details on using hashes here.

Supported by

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