moloch-- / RootTheBox

A Game of Hackers (CTF Scoreboard & Game Manager)
http://root-the-box.com/
Apache License 2.0
938 stars 299 forks source link

Organizational Hierarchy? #627

Open tsull360 opened 1 week ago

tsull360 commented 1 week ago

Hello, Trying to get my head around the structure of RTB, each time I think I start to understand it I get wrapped up in something. Is it:

Corporation -> Box -> Category -> Skill Level -> Flag

In my mind that's how it would work, but it doesn't seem to make sense and requires me to have a 'box' for each combination of category and skill I want. But as each box needs a unique name, I'm not able to create an easy, hard and medium box for cat1, cat2 and cat3.

What am I missing?

eljeffeg commented 1 week ago

Yeah, we've thought about renaming them to be more generic. The names come from the red team roots of RTB. Here is the explanation: https://github.com/moloch--/RootTheBox/wiki/Game-Setup-Tutorial

In most cased for your classic CTF, you have a single default Corp. No need to mess with it. Multiple corps can be nice if you're trying to simulate an exercise where you have multiple corporations (corp) with multiple servers (box) and each box has flags. Again, very red team focused and can also be used in a king of the hill, where you have two sides. But in most cases, the corp is not used.

Levels are a collection of Boxes normally indicating a difficulty with one level dependent on completion of a % of the prior level. Levels are optional - you can just have one level, which looks like your standard Jeopardy style game as it hides Level 0 if there are no more levels. But when used, this is where you would use the easy, medium, hard box style.

A Box is a group of Flags, it is often used as a general category for the flags under it. I'm not aware they need a unique name (maybe we can fix that as it should be uuid based). But this is the primary means to group your flags.

Category is tied to the box and is just something to categorize the skill for the chart and helpful info for the user. Your box name / look may not represent a category, but something else. For example, in our screenshots, I used Infinity Stones as my Boxes. https://github.com/moloch--/RootTheBox/wiki/Screenshots It's ment to be flexible where you can have your boxes represent whatever you want.

So if I recall, it sort of goes like this...

But usually looks like one of these.

Category being just an attribute of the box for the skill graph and user info.