mirror of
https://github.com/cliffe/BreakEscape.git
synced 2026-02-21 11:18:08 +00:00
all scenarios
This commit is contained in:
241
assets/scenarios/scenario1.json
Normal file
241
assets/scenarios/scenario1.json
Normal file
@@ -0,0 +1,241 @@
|
||||
{
|
||||
"scenario_brief": "Your beloved kitty sidekick, Captain Meow, has vanished without a trace! As a renowned adventurer and detective, you suspect foul play. The last clue? A cryptic paw print left on your desk and a strange voicemail message on your phone. Can you crack the codes, follow the trail, and rescue Captain Meow before it’s too late?",
|
||||
"startRoom": "reception",
|
||||
|
||||
"rooms": {
|
||||
"reception": {
|
||||
"type": "room_reception",
|
||||
"connections": {
|
||||
"north": "office1"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "Professor Bark",
|
||||
"objects": [
|
||||
{
|
||||
"type": "phone",
|
||||
"name": "Reception Phone",
|
||||
"takeable": false,
|
||||
"readable": true,
|
||||
"text": "The message is directing you towards finding the villain’s identity.",
|
||||
"observations": ".--. / .-. / --- / ..-. / ..-. / . / ... / --- / .-."
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Hidden Clue Note",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "If you are reading this then I have been outsmarted and sadly captured...there are a series of clues I left behind for such circumstance, follow them to rescue me. I believe in you do not let me down :)",
|
||||
"observations": "A cry for help?"
|
||||
},
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Reception Computer",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "QmFyay4="
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"office1": {
|
||||
"type": "room_office",
|
||||
"connections": {
|
||||
"north": ["office2", "office3"],
|
||||
"south": "reception"
|
||||
},
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Office Computer",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"hasFingerprint": true,
|
||||
"fingerprintOwner": "Mr Moo",
|
||||
"fingerprintQuality": 0.9,
|
||||
"observations": "A computer with a cybersecurity alert on screen. There might be pawprints on the keyboard."
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "IT Memo",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "URGENT: Unusual activity detected from the CEO’s office. Security cameras captured a shadowy figure with a cat carrier.",
|
||||
"observations": "A concerning observation on the surveillance cameras memo"
|
||||
},
|
||||
{
|
||||
"type": "fingerprint_kit",
|
||||
"name": "Fingerprint Kit",
|
||||
"takeable": true,
|
||||
"observations": "A kit used for collecting fingerprints from surfaces"
|
||||
},
|
||||
{
|
||||
"type": "spoofing_kit",
|
||||
"name": "Fingerprint Spoofing Kit",
|
||||
"takeable": true,
|
||||
"observations": "A specialized kit containing silicone, gelatin, and other materials for creating artificial fingerprints"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"office2": {
|
||||
|
||||
"type": "room_office",
|
||||
"connections": {
|
||||
"north": "ceo",
|
||||
"south": "office1"
|
||||
},
|
||||
|
||||
"objects": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Shredded Note (Half)",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"observations": "Deeper meaning into the image",
|
||||
"text": "Professor Bark did not act alone, the hooveprint should be enough indication to who his alias is. To get the name, find the name hidden in the image using AES. The key is my favorite meal."
|
||||
},
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Image.jpeg",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"text": "",
|
||||
"observations": "89504E470D0A1A0A0000000D49484452000000070000000608060000000F0E8476000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000000970485973000012740000127401DE661F780000001B49444154185763646060F80FC458011394C60AE82DC92EC2CE0000AE7E012D8347D0010000000049454E44AE4260827365637265740000000000000000000000003164623237653536373663363036316665373962386563343432373263326239"
|
||||
},
|
||||
{
|
||||
"type": "tablet",
|
||||
"name": "Captain Meow's Tablet",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "bluetooth",
|
||||
"mac": "00:AB:CD:EF:12:34",
|
||||
"observations": "-Fav meal: Tuna Fish Sandwich With Chives And A Side Of CocaCola And A Cup Of Milk -Fav color: Black -Fav number: Eight -Fav country: Meowland -Fav activity: Napping"
|
||||
},
|
||||
{
|
||||
"type": "bluetooth_scanner",
|
||||
"name": "Bluetooth Scanner",
|
||||
"takeable": true,
|
||||
"observations": "A device for detecting nearby Bluetooth signals.",
|
||||
"canScanBluetooth": true,
|
||||
"mac": "00:AB:CD:EF:12:34"
|
||||
}
|
||||
]
|
||||
},
|
||||
"office3": {
|
||||
"type": "room_office",
|
||||
"connections": {
|
||||
"north": "server1",
|
||||
"south": "office1"
|
||||
},
|
||||
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "IT Staff Computer",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "146 157 165 162 40 145 151 147 150 164 40 164 167 157 40 156 151 156 145"
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Dr Octopus data",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "We have noticed a security breached.",
|
||||
"observations": "Suspicious activity logged, passcode encrypted for safety purposes."
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
|
||||
"ceo": {
|
||||
"type": "room_ceo",
|
||||
"connections": {
|
||||
"south": "office2"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "Mr Moo",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "CEO Computer",
|
||||
"takeable": false,
|
||||
"observations": "To find me, locate the public IP address to locate me."
|
||||
},
|
||||
{
|
||||
"type": "suitcase",
|
||||
"name": "CEO Briefcase",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "key",
|
||||
"requires": "briefcase_key",
|
||||
"observations": "An expensive leather briefcase with a sturdy lock.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Incriminating Documents",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "192.168.1.34 10.0.0.56 172.16.254.12 203.0.113.78 192.168.0.45 192.168.2.100 172.31.128.99 10.10.10.10",
|
||||
"observations": "A bunch of IP addresses, follow the public IP address to find me."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "safe",
|
||||
"name": "safe",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"password": "password",
|
||||
"requires": "203.0.113.78",
|
||||
"contents": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Flag",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "I knew you could do it! You found me! Here is your prize for rescuing me: \nflag{sampleflaghere}" }
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"server1": {
|
||||
"type": "room_servers",
|
||||
"connections": {
|
||||
"south": "office3"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "pin",
|
||||
"requires": "4829",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Server Terminal",
|
||||
"takeable": false,
|
||||
"observations": "Hash my name 'Captain Meow'"
|
||||
},
|
||||
|
||||
{
|
||||
"type": "safe",
|
||||
"name": "Data safe",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "acffd84890456241cba3469e32fd46d3",
|
||||
"observations": "A locked closet containing an important key. It requires a PIN to open.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "key",
|
||||
"name": "Briefcase Key",
|
||||
"takeable": true,
|
||||
"key_id": "briefcase_key",
|
||||
"observations": "A small key labeled 'Personal - Do Not Copy.'"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
59
assets/scenarios/scenario1.xml
Normal file
59
assets/scenarios/scenario1.xml
Normal file
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<scenario xmlns="http://www.github//cliffe/BreakEscapeGame/blob/main/assets/scenarios"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://github.com/cliffe/BreakEscapeGame/blob/main/assets/scenarios/scenerio1.json">
|
||||
|
||||
<name>Captain Meow disappearance</name>
|
||||
<author>Z. Cliffe Schreuders</author>
|
||||
<description>
|
||||
# Introduction
|
||||
Your beloved kitty sidekick, Captain Meow, has vanished without a trace! As a renowned adventurer and detective, you suspect foul play. The last clue? A cryptic paw print left on your desk and a strange voicemail message on your phone.
|
||||
|
||||
Captain Meow has always been a sneaky genius, leaving behind puzzles in hopes that you would find him. If anyone could leave behind a trail of encrypted clues, it’s him. But who would kidnap the smartest cat in the world? And why?
|
||||
|
||||
Your journey begins in your study, where Captain Meow’s last trail begins. Can you decipher his messages, crack the codes, and rescue him before time runs out?
|
||||
</description>
|
||||
<type>escape room</type>
|
||||
<difficulty>medium</difficulty>
|
||||
|
||||
<CyBOK KA="F" topic="Operating System Analysis">
|
||||
<keyword>Steganography</keyword>
|
||||
<keyword>Encoding and alternative data formats</keyword>
|
||||
<keyword>SEARCH FOR EVIDENCE</keyword>
|
||||
<keyword>METADATA</keyword>
|
||||
</CyBOK>
|
||||
|
||||
<CyBOK KA="POR" topic="Privacy Technologies and Democratic Values">
|
||||
<keyword>METADATA</keyword>
|
||||
<keyword>STEGANOGRAPHY</keyword>
|
||||
</CyBOK>
|
||||
|
||||
<CyBOK KA="AC" topic="Cryptographic Implementation">
|
||||
<keyword>Cryptographic Libraries</keyword>
|
||||
<keyword>ENCRYPTION - TOOLS</keyword>
|
||||
</CyBOK>
|
||||
|
||||
<CyBOK KA="AC" topic="Physical Security">
|
||||
<keyword>Fingerprint Authentication</keyword>
|
||||
<keyword>Bluetooth Security</keyword>
|
||||
<keyword>Physical Locks</keyword>
|
||||
</CyBOK>
|
||||
|
||||
<CyBOK KA="AC" topic="Hashing and Integrity">
|
||||
<keyword>Hash Functions</keyword>
|
||||
<keyword>MD5 Hash</keyword>
|
||||
</CyBOK>
|
||||
|
||||
<CyBOK KA="AC" topic="Encoding and Representation">
|
||||
<keyword>Base64 Encoding</keyword>
|
||||
<keyword>Octal Encoding</keyword>
|
||||
<keyword>Hexadecimal (Hex) Encoding</keyword>
|
||||
</CyBOK>
|
||||
|
||||
<CyBOK KA="AC" topic="Algorithms, Schemes and Protocols">
|
||||
<keyword>ADVANCED ENCRYPTION STANDARD (AES)</keyword>
|
||||
<keyword>ECB (ELECTRONIC CODE BOOK) BLOCK CIPHER MODE</keyword>
|
||||
</CyBOK>
|
||||
|
||||
</scenario>
|
||||
229
assets/scenarios/scenario2.json
Normal file
229
assets/scenarios/scenario2.json
Normal file
@@ -0,0 +1,229 @@
|
||||
{
|
||||
"scenario_brief": "You are a curious traveler who stumbles upon Beckett, a ghost town shrouded in mystery. After entering the only standing building, the door slams shut, trapping you inside. A note from Mayor McFluffins warns: 'Fail to escape, and you’ll be turned into a llama.' Solve cryptographic puzzles and break the curse before time runs out, or grow fur and join the town’s eerie fate!",
|
||||
"startRoom": "room_reception",
|
||||
"rooms": {
|
||||
"room_reception": {
|
||||
"type": "room_reception",
|
||||
"connections": {
|
||||
"north": "room_office"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "key",
|
||||
"requires": "briefcase_key",
|
||||
"objects": [
|
||||
{
|
||||
"type": "phone",
|
||||
"name": "Recorded Conversation",
|
||||
"takeable": false,
|
||||
"observations": "Llamas are all pure evil! Jullie and Tim are the two who started this curse. Tim is 3 years old, and Jullie is 5 years old. Remember their ages!"
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Clue Note",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"observations": "Numbers are important, remember these to proceed:\n- Prime modulus (p): 23\n- Base (g): 5\n- Tim's private key (a): 3\n- Jullie's private key (b): 5\nCalculate Tim's public key, Jullie's public key, and the final shared secret key."
|
||||
},
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Computer",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "Numbers are important, remember these to proceed:\n- Prime modulus (p): 23\n- Base (g): 5\n- Tim's private key (a): (5^3) MOD 23\n- Jullie's private key (b): (5^5) MOD 23\nEnter the shared secret key to decrypt the next clue."
|
||||
},
|
||||
{
|
||||
"type": "safe",
|
||||
"name": "Safe1",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "10",
|
||||
"observations": "A locked safe containing part of the conversation.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Conversation Part 1",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "Tim: Do you remember how to calculate your public key again?\nJullie: Not really...I always found the Diffie-Hellman key exchange so confusing lol\nTim: Just remember '(G^private) MOD P' and you'll be good.\n...",
|
||||
"observations": "First part of the conversation."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "safe2",
|
||||
"name": "Safe 2",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "20",
|
||||
"observations": "A locked safe containing the next part of the conversation.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Conversation Part 2",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "Jullie: Thanks Tim, this way no one would be able to read our messages!\nTim: Exactly! We need to turn a lot of people into llamas or our plans are forever done for.\nJullie: Yeah, you're right. We need to stay focused and cover our tracks.\nTim: Don't forget our shared key. If you do, this is all for nothing, Jules.\nJullie: Yes, yes. The shared key is (B^a MOD p).",
|
||||
"observations": "Second part of the conversation."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "safe3",
|
||||
"name": "Safe 3",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "19",
|
||||
"observations": "A locked safe containing the key to the next room.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "key",
|
||||
"name": "Briefcase Key",
|
||||
"takeable": true,
|
||||
"key_id": "briefcase_key",
|
||||
"observations": "You've found the key to unlock the next room!"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"room_office": {
|
||||
"type": "room_office",
|
||||
"connections": {
|
||||
"south": "room_reception",
|
||||
"north": "room_servers"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "key",
|
||||
"requires": "briefcase_key",
|
||||
"objects": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Prime Numbers Hint",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "The city's foundation rests on prime pillars. Find the numbers that uphold its secrets. Here's a riddle to guide you:\n\n'I am a prime number, the smallest of my kind with two digits. My neighbor to the right is also prime, and together we hold the key.'",
|
||||
"observations": "A hint about prime numbers."
|
||||
},
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "RSA Modulus Computer",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "Calculate N by multiplying two prime numbers (p and q). The pin is the last 4 digits of N."
|
||||
}
|
||||
]
|
||||
},
|
||||
"room_servers": {
|
||||
"type": "room_servers",
|
||||
"connections": {
|
||||
"south": "room_office",
|
||||
"north": "room_closet"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "0143",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Pop up message - decrypt message using private key",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"text": "Decrypt this base64 encrypted message using the private key.",
|
||||
"observations": "jIYyQYFFzXNKgKS1Z744Sudq2KAXdRgSHlExns9MNVNlTZRlnBSm#vVGw6TeEjOhohJeGbFrWk5qNlPhvm0PmneIBbzZ9u4BwzaZ4vxHclLMDQ55e7tOByQ3KVjUgcxX1skW7qj1mPpic2IFsS1kyIyLE3ly1eNZxMCEy1S03bq0="
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Private Key Part 1",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"observations": "This note contains part of the private key required for decryption.",
|
||||
"text": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCczVF4Oq+Njf1Olf/JNnZcSP0jbZVpdVJ+hySa7OPMSpjMsppb\nV1E8qytLIx+HfiU065I/Lhr0LhoKj+hWA3ceCUQa2GeSU+p8X5bseet6/hhrsBYV\nuT+4ajIQ8tDOi/0vrnSh+EMc912TpjAh1nEfeL65LXOwWHDf0rR8Uxv3AQIDAQAB\nAoGACiIVo/6s5im5Jzk32r2/h+a6ny2/hF1t25npsm5hKUxf1Aitw33g1Nod9eDa"
|
||||
},
|
||||
{
|
||||
"type": "notes2",
|
||||
"name": "Private Key Part 2",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"observations": "8oNjLaiUnqsg2EtbaPfUVKysJ6WaFQ4BnFe6rKQH+kXDEjSOyMcQsoObO0Bcjk/3\nWpxdTH0qp71yHzg1D6h40cwSra5u/t/ZRFJI/08hBdbt8DECQQDPQwVS5hYfDfXa\ni5Rxwwp4EBZmvy8z/KXPJ+8sXfqi5pBkZTrQfWsiqCW2aRtnTUsC0b3HjRQxf2SV\n+1y9aqQpAkEAwaypvhpE7I2P1LgIPrgW2HM1wiP0oZiM9LizsDHYO/bKqSWL7hnS\n/s6NcQ5CLOyB3uxYBkDIovUSem6/Y6hXGQJBAKi/qaMAQLySEj0Y7gjdwzVT69lG",
|
||||
"text": "Cfmq15ldq0cVUU62qJOFNCiyJLt36hSlaTFnZg5qlLjXbbyLO2s92BlErVkCQDaY\nH3kxGoC8HvFNtzVG21nEkEDbtdffksxhTHW8d0Hf/ZzUsq85pFqjiwd1h332ZV2b\nreyFUoltH/pXQagsCfECQFyG0RpJtc9ojIRUMOqDGQvoi8il4xM4yCiSKQAcLzuu\nqLrEVyNbKHcBf2Hn3xuEHs/DB6zCLVj/FJ7ZWONCJuU=\n-----END RSA PRIVATE KEY-----"
|
||||
}
|
||||
]
|
||||
},
|
||||
"room_closet": {
|
||||
"type": "room_closet",
|
||||
"connections": {
|
||||
"south": "room_servers",
|
||||
"north": "room_ceo"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "8835",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "RSA Encryption Computer",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"text": "Mcfluffins has sent out a memo to all llama population spot which one is the real one and the first four charecters will help you proceed",
|
||||
"observations": "Verify the correct rsa signature from hex. remember 'llamas are the best' -----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXSTdvKibflOrDlUuICO4I93xzuv5cKdM5QEcXMkJSPe0b/B7NQgOW4PumqwZw4sfEKgMIIAoW9BYErgQS38Ax6UelDaSIIGVtoqIXM8fDvchLXHqBh6L9rfxX5GsTybZqX5wQJtZRM8uAAldo98SByUMR6zjBp+ZTBLHLUt15vQIDAQAB-----END PUBLIC KEY-----"
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "First two digital signature",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "bd68b0b3e45ac3b2ed499c8014969ac4ab951653a67ca6bc085f8a10c1c4da220c0350f0c27b3fd727b86dbd36ee8f33b3476270cb819145d8a23456f9cf8c373e53e93bcdd1129a1df44c4792e6704f973820386db4306f84faca5f62657235e02e4259f9e9c080dc4a7da1268e671d90bec8435769b25f8f235fe9d1d1fce7",
|
||||
"observations": "077228e6a71569c44ea0baa248f19048c2526a964d55d5c0bfaed061918f7fcae0c1729d8b3ad2f7717399dc04766308711b939fb28d3277a66669362cacef2e4e478bec1cfe8f72f6121bc0b1a41a0cb35353d722919e40dc04c20ecc534be3f427cabf5260829751948f2fc480399029fe961755c8483394feea60be092933"
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Second two digital signature",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "30794e2409bd4db6a4891b1f74897cf10cf3704e685d4c89fb96956cf33889c7803ac9c5c818449827c36319b6a73691690ec4a2169c33aaff52c3114c3f4b4e16c7fb82f063ae0bfc84cfd9f3d1aadba960576d26cd61349ad0627107b4370106b6e30e66f28669aa0aa57c12ceba41c3a1d86858f1b4788c2a01dc68799cf1",
|
||||
"observations": "d51e192f1e46fed49089b322d563a2089aa9ad5907b4f0c9e110ea58ef3a5f2dbfd7066d7a9bcab9335034e0b71d22d5ee9205fc31d025f70361bffa3322d901a65c3965b4770890bdddf0922dae6edf61157c68dd291e7ad81443b7c8ca98fbaa6b558024f586d36e777a904e5c400976bf9d0d659826a5cc96fde273e48246"
|
||||
}
|
||||
]
|
||||
},
|
||||
"room_ceo": {
|
||||
"type": "room_ceo",
|
||||
"connections": {
|
||||
"south": "room_closet"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "bd68",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "A terminal with a flickering screen",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "Use RSA decryption (m = c^d mod n). For example, if c=3, calculate (3^53 mod 161). Do this for all ciphertext values to reveal the town's hex message."
|
||||
},
|
||||
{
|
||||
"type": "safe",
|
||||
"name": "Safe",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "note",
|
||||
"observations": "A locked safe containing part of the conversation.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Freedom",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "You have saved yourself from being turned into a llama...sadly.",
|
||||
"observations": "flag{hereisaflagsample}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
37
assets/scenarios/scenario2.xml
Normal file
37
assets/scenarios/scenario2.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<scenario xmlns="http://www.github//cliffe/BreakEscapeGame/blob/main/assets/scenarios"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://github.com/cliffe/BreakEscapeGame/blob/main/assets/scenarios/scenerio2.json">
|
||||
|
||||
<name>Asymmetric Encryption with RSA</name>
|
||||
<author>Z. Cliffe Schreuders</author>
|
||||
<description>
|
||||
In this interactive escaape room, you will dive into the mystery of your beloved kitty sidekick, Captain Meow, who has vanished under suspicious circumstances. Your task is to navigate through various rooms, solving interconnected puzzles that utilize cryptographic concepts such as Morse code, AES encryption, and fingerprint analysis to uncover the truth.
|
||||
|
||||
In this adventure, you will decode messages, piece together fragmented notes, and utilize digital tools to gather clues about Captain Meow's whereabouts. These tasks will require a blend of teamwork, critical thinking, and creativity. With your skills, we can piece together the mystery and rescue Captain Meow!
|
||||
</description>
|
||||
|
||||
<type>escape room</type>
|
||||
<difficulty>intermediate</difficulty>
|
||||
|
||||
<CyBOK KA="AC" topic="Algorithms, Schemes and Protocols">
|
||||
<keyword>CRYPTOGRAPHY - ASYMMETRIC - RSA</keyword>
|
||||
<keyword>DIFFIE-HELLMAN ALGORITHM</keyword>
|
||||
</CyBOK>
|
||||
<CyBOK KA="AC" topic="Public-Key Cryptography">
|
||||
<keyword>public-key encryption</keyword>
|
||||
<keyword>public-key signatures</keyword>
|
||||
<keyword>RSA MODULUS</keyword>
|
||||
<keyword>RSA PROBLEM</keyword>
|
||||
<keyword>RSA TRANSFORM</keyword>
|
||||
</CyBOK>
|
||||
<CyBOK KA="AC" topic="Key Management">
|
||||
<keyword>key generation</keyword>
|
||||
</CyBOK>
|
||||
<CyBOK KA="AC" topic="Cryptographic Implementation">
|
||||
<keyword>Cryptographic Libraries</keyword>
|
||||
<keyword>ENCRYPTION - TOOLS</keyword>
|
||||
</CyBOK>
|
||||
|
||||
</scenario>
|
||||
162
assets/scenarios/scenario3.json
Normal file
162
assets/scenarios/scenario3.json
Normal file
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"scenario_brief": "You've discovered the workshop of the brilliant scientist, Dr. Knowitall, who has built a time machine. With him out, you plan to sneak in and grab the blueprints, but they're hidden behind a series of cryptographic puzzles. Entering the workshop triggers self-destruct countdown. You must solve the riddles quickly, or Dr. Knowitall's life's work will be lost forever!",
|
||||
"startRoom": "room_reception",
|
||||
"rooms": {
|
||||
"room_reception": {
|
||||
"type": "room_reception",
|
||||
"connections": {
|
||||
"north": "room_office"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "key",
|
||||
"requires": "briefcase_key",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "AES Encrypted Terminal",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "A terminal displaying an encrypted message: '19e1363e815f0d10014f7804539cab9f'. \n Hex the answers to proceed, the key is my favorite scientist + a space and the IV is my favorite theory."
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Fun facts about me - ordering from fav to least fav",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "Favorite scientists: \n-Albert Einstein \n-Frank Tipler \n-Igor Novikov \n-Stephen Hawking \n \nFavorite theories: \n-Relativity Theory \n-Gödel’s Rotating Universe \n-Tipler’s Rotating Cylinder \n-Darwin's Theory of Evolution \nFavorite movie: \n-Back to the future \nPhone number: \n-07123456789"
|
||||
},
|
||||
{
|
||||
"type": "safe",
|
||||
"name": "Safe1",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "timeIsMoney_123",
|
||||
"observations": "A locked safe requiring a decrypted password.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "key",
|
||||
"name": "Briefcase Key",
|
||||
"takeable": true,
|
||||
"key_id": "briefcase_key",
|
||||
"observations": "A key labeled 'Briefcase Key'."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"room_office": {
|
||||
"type": "room_office",
|
||||
"connections": {
|
||||
"south": "room_reception",
|
||||
"north": "room_servers"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "key",
|
||||
"requires": "briefcase_key",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Photo hex",
|
||||
"takeable": false,
|
||||
"text": "Render the image and input the colour to open the safe in all lower caps",
|
||||
"observations": "89504e470d0a1a0a0000000d4948445200000002000000250806000000681f38aa000000017352474200aece1ce90000000467414d410000b18f0bfc6105000000097048597300000ec300000ec301c76fa8640000001b494441542853637cf1f2ed7f20606062808251061090c360600000d66d0704a06be47e0000000049454e44ae426082"
|
||||
},
|
||||
{
|
||||
"type": "safe",
|
||||
"name": "Final Safe",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "white",
|
||||
"observations": "A safe containing Dr. Knowitall’s image.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "CBC mode",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "Since you've made it this far, encrypt the image you rendered with the same key and IV and the first six digits will lead you to the next cryptic puzzle.",
|
||||
"observations": "Thank you for doing my dirty work for me :)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"room_servers": {
|
||||
"type": "room_servers",
|
||||
"connections": {
|
||||
"south": "room_office",
|
||||
"north": "room_closet"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "6f118",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "ECB pc",
|
||||
"takeable": false,
|
||||
"observations": "Encrypt this formula using the same key and IV but using ECB 'E = mc2'"
|
||||
}
|
||||
]
|
||||
},
|
||||
"room_closet": {
|
||||
"type": "room_closet",
|
||||
"connections": {
|
||||
"south": "room_servers",
|
||||
"north": "room_ceo"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "7a7afe",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Authentication Terminal",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"text":"shift 10",
|
||||
"observations": "Since I was TEN, I learnt to always shift my words, I deeply encourage you to do so too \n Dswo sc bovkdsfo, kxn cy sc iyeb ocmkzo. Dy pebdrob knfkxmo sx sx dro byywc. wi zryxo xewlob gsvv qesno iye."
|
||||
}
|
||||
]
|
||||
},
|
||||
"room_ceo": {
|
||||
"type": "room_ceo",
|
||||
"connections": {
|
||||
"south": "room_closet"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "07123456789",
|
||||
"objects": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Blueprints",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"observations": "Shift the phrase 'Its about time...literally' forward by 3 places. Convert letters to their alphabetic positions (A=1, B=2, ... Z=26) and sum them to find the checksum."
|
||||
},
|
||||
{
|
||||
"type": "safe",
|
||||
"name": "Final safe",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "289",
|
||||
"observations": "A locked safe requiring a decrypted password.",
|
||||
"contents": [
|
||||
{
|
||||
"type": "key",
|
||||
"name": "Briefcase Key",
|
||||
"takeable": true,
|
||||
"key_id": "briefcase_key",
|
||||
"observations": "Congratulations! You've recovered my time machine blueprints and stopped the self-destruct sequence.\n You outsmarted me and for that I believe you deserve these blueprints more than me! \n flag{timemachineflag123}."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
35
assets/scenarios/scenario3.xml
Normal file
35
assets/scenarios/scenario3.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<scenario xmlns="http://www.github//cliffe/BreakEscapeGame/blob/main/assets/scenarios"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://github.com/cliffe/BreakEscapeGame/blob/main/assets/scenarios/scenerio3.json">
|
||||
|
||||
<name>Symmetric Encryption with AES</name>
|
||||
<author>Z. Cliffe Schreuders</author>
|
||||
<description>
|
||||
You’ve stumbled upon the secret workshop of the brilliant but eccentric scientist, Dr. Knowitall, who has built a revolutionary time machine. However, the blueprints for the machine are hidden behind a series of cryptographic puzzles, protected by the Advanced Encryption Standard (AES). Dr. Knowitall’s workshop is rigged with a self-destruct mechanism, and you must solve the puzzles quickly to retrieve the blueprints before time runs out.
|
||||
|
||||
In this escape room, you will explore the principles of symmetric encryption, focusing on AES, a widely used block cipher that secures data through cyberchef.
|
||||
|
||||
But beware: time is relative, and so is your escape. The self-destruct countdown is ticking, and every second counts. Can you outsmart Dr. Knowitall’s puzzles, master AES encryption, and escape with the blueprints before it’s too late?
|
||||
|
||||
</description>
|
||||
|
||||
<type>escape room</type>
|
||||
|
||||
<difficulty>intermediate</difficulty>
|
||||
|
||||
<CyBOK KA="AC" topic="Algorithms, Schemes and Protocols">
|
||||
<keyword>ADVANCED ENCRYPTION STANDARD (AES)</keyword>
|
||||
<keyword>ECB (ELECTRONIC CODE BOOK) BLOCK CIPHER MODE</keyword>
|
||||
</CyBOK>
|
||||
<CyBOK KA="AC" topic="Symmetric Cryptography">
|
||||
<keyword>symmetric primitives</keyword>
|
||||
<keyword>symmetric encryption and authentication</keyword>
|
||||
</CyBOK>
|
||||
<CyBOK KA="AC" topic="Cryptographic Implementation">
|
||||
<keyword>Cryptographic Libraries</keyword>
|
||||
<keyword>ENCRYPTION - TOOLS</keyword>
|
||||
<keyword>Hexadecimal Encoding</keyword>
|
||||
</CyBOK>
|
||||
</scenario>
|
||||
166
assets/scenarios/scenario4.json
Normal file
166
assets/scenarios/scenario4.json
Normal file
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"scenario_brief": "Your legendary cookie recipe has been stolen by the mischievous squirrels led by Sir Acorn! Tracking them to their secret treehouse, the door slams shut behind you. A sign reads: 'Solve our riddles or forever be known as the Cookie Monster!' Crack the cryptographic challenges and reclaim your recipe before time runs out!",
|
||||
"startRoom": "room_reception",
|
||||
|
||||
"rooms": {
|
||||
"room_reception": {
|
||||
"type": "room_reception",
|
||||
"connections": {
|
||||
"north": "room_office"
|
||||
},
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Base64 Terminal",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "Decrypt this message: 'Y3VwIG9mIGZsb3Vy'"
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Recipe Note",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "Cookies always start with the right ingredients! Step by step, you will gain an ingredient back from your recipe."
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"room_office": {
|
||||
"type": "room_office",
|
||||
"connections": {
|
||||
"north": "room_servers",
|
||||
"south": "room_reception"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "cup of flour",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Caesar Cipher Terminal",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "Decrypt this message: 'zkgyvuut ul yamgx'"
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Cipher Clue",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "A squirrel’s trick is always shifting things around…"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"room_servers": {
|
||||
"type": "room_servers",
|
||||
"connections": {
|
||||
"north": "room_closet",
|
||||
"south": "room_office"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "teaspoon of sugar",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Encoding Puzzle",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "Convert this cipher to text: '68 61 6c 66 20 61 20 63 75 70 20 6f 66 20 6d 69 6c 6b'"
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Encoding Clue",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "There are many ways to say the same thing… use the right format!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"room_closet": {
|
||||
"type": "room_closet",
|
||||
"connections": {
|
||||
"north": "room_ceo",
|
||||
"south": "room_servers"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "half a cup of milk",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "Vigenère Cipher Terminal",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "Decrypt this message: 'gqh dnlzw razk'"
|
||||
},
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Cipher Hint",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "Squirrels love nuts. Use their favorite to unlock the next ingredient."
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
"room_ceo": {
|
||||
"type": "room_ceo",
|
||||
"connections": {
|
||||
"south": "room_closet"
|
||||
},
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "two large eggs",
|
||||
"objects": [
|
||||
{
|
||||
"type": "pc",
|
||||
"name": "AES Encryption Safe",
|
||||
"takeable": false,
|
||||
"requires": "password",
|
||||
"observations": "Decrypt this AES message for the safe next to the pc: 'e66ffb8accddb124cb14ec6551f33ccc' \nCount up to 20 for the key and IV."
|
||||
},
|
||||
{
|
||||
"type": "safe",
|
||||
"name": "Final Recipe Vault",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "a bunch of love",
|
||||
"observations": "The final safe containing the stolen recipe!",
|
||||
"contents": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Clue to the next safe",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"text": "Use md5 hash to hash the name of the cookie made with these ingredients 'love cookies'"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "safe1",
|
||||
"name": "Final Recipe Vault",
|
||||
"takeable": false,
|
||||
"locked": true,
|
||||
"lockType": "password",
|
||||
"requires": "2a4d3354d949c6d865c8c21a6340e7cf",
|
||||
"observations": " ",
|
||||
"contents": [
|
||||
{
|
||||
"type": "notes",
|
||||
"name": "Recovered Cookie Recipe",
|
||||
"takeable": true,
|
||||
"readable": true,
|
||||
"observations": "Congratulations! You've cracked our cryptographic traps and saved your recipe! \n flag{sampleflaghere}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
30
assets/scenarios/scenario4.xml
Normal file
30
assets/scenarios/scenario4.xml
Normal file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<scenario xmlns="http://www.github//cliffe/BreakEscapeGame/blob/main/assets/scenarios"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://github.com/cliffe/BreakEscapeGame/blob/main/assets/scenarios/scenerio4.json">
|
||||
|
||||
|
||||
<name>Encoding and Encryption Lab</name>
|
||||
<author>Z. Cliffe Schreuders</author>
|
||||
<description>
|
||||
# To be adjusted
|
||||
|
||||
</description>
|
||||
|
||||
<type>lab-sheet</type>
|
||||
<difficulty>Beginner</difficulty>
|
||||
|
||||
<CyBOK KA="AC" topic="Algorithms, Schemes and Protocols">
|
||||
<keyword>Encoding vs Cryptography</keyword>
|
||||
<keyword>Caesar cipher</keyword>
|
||||
<keyword>Vigenere cipher</keyword>
|
||||
<keyword>SYMMETRIC CRYPTOGRAPHY - AES (ADVANCED ENCRYPTION STANDARD)</keyword>
|
||||
</CyBOK>
|
||||
<CyBOK KA="F" topic="Artifact Analysis">
|
||||
<keyword>Encoding and alternative data formats</keyword>
|
||||
</CyBOK>
|
||||
<CyBOK KA="WAM" topic="Fundamental Concepts and Approaches">
|
||||
<keyword>ENCODING</keyword>
|
||||
<keyword>BASE64</keyword>
|
||||
</CyBOK>
|
||||
Reference in New Issue
Block a user