GithubHelp home page GithubHelp logo

richardsonjf / destructivefarm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from destructivevoice/destructivefarm

0.0 1.0 0.0 1.01 MB

πŸ“’πŸ”’ Exploit farm for attack-defense CTF competitions

License: Other

Python 16.59% Shell 0.05% CSS 78.76% JavaScript 1.71% HTML 2.74% TSQL 0.16%

destructivefarm's Introduction

Destructive Farm

Language: English | Русский

Exploit farm for attack-defense CTF competitions

Read the FAQ if you want to know what attack-defense CTFs are, why you need this exploit farm for them, and why it has the architecture described below.

Components

  1. An exploit is a script that steals flags from some service of other teams. It is written by a participant during the competition and should accept the victim's host (IP address or domain) as the first command-line argument, attack them and print flags to stdout.

    Example | More details

  2. A farm client is a tool that periodically runs exploits to attack other teams and looks after their work. It is being run by a participant on their laptop after they've written an exploit.

    The client is a one-file script start_sploit.py from this repository.

    More details

  3. A farm server is a tool that collects flags from farm clients, sends them to the checksystem, monitors the usage of quotas and shows the stats about the accepted and rejected flags. It is being configured and run by a team's admin at the start of the competition. After that, team members can use its web interface (see the screenshot above) to watch the exploits' results and stats.

    The server is a Flask web service from the server directory of this repository.

    More details



The arrows display the flow of the flags

Future Plans

See the list here.

Alternatives

  • The Bay's farm is a simpler farm whose architecture and some implementation details were adopted in this project. It uses the same exploit format and also divided into a client (start_sploit.py) and a server (start_posting.py). However, it requires them to be run on the same computer (see the FAQ on why it's bad), and the server doesn't have a web interface.

  • The Andrew Gein's farm solves the issue of a large number of processes (in case of a large number of teams) using asyncio.

Authors

Copyright Β© 2017–2018 Aleksandr Borzunov ("Destructive Voice" team)

Inspired by the Bay's farm.

destructivefarm's People

Contributors

borzunov avatar nsychev avatar slava-sh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.