Compare commits
31 Commits
532ba58b22
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d4411d45a4 | ||
|
|
fae6ae68a5 | ||
|
|
c34c4e92ce | ||
|
|
ec101eecc4 | ||
|
|
842893afc4 | ||
|
|
e81b74601c | ||
|
|
208ea12661 | ||
|
|
26cb36fb35 | ||
|
|
95f59ab7a9 | ||
|
|
ae61f134e0 | ||
|
|
1d3ca97092 | ||
|
|
1e9dc7c245 | ||
|
|
3ce9907dae | ||
|
|
a6649e6e16 | ||
|
|
30e827b5f5 | ||
|
|
497b688431 | ||
|
|
183f7797b9 | ||
|
|
f9e4ed0d4b | ||
|
|
6ea186d853 | ||
|
|
6d8a087794 | ||
|
|
364b7df54c | ||
|
|
474fd12e18 | ||
|
|
71474e9e74 | ||
|
|
61e2f79cd9 | ||
|
|
030e37843f | ||
|
|
a311c95389 | ||
|
|
ced136fff5 | ||
|
|
d1a3c8102c | ||
|
|
1fdbc8c4ff | ||
|
|
72d9703d8c | ||
|
|
59d51af0a8 |
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
*.sh text eol=lf
|
||||
*.env text eol=lf
|
||||
Dockerfile text eol=lf
|
||||
102
Dockerfile
102
Dockerfile
@@ -14,29 +14,29 @@ RUN apt-get update \
|
||||
|
||||
|
||||
RUN mkdir -p /var/run/sshd
|
||||
RUN rm -fr /bin/su
|
||||
RUN useradd -m -s /bin/bash level1
|
||||
RUN useradd -m -s /bin/bash level2
|
||||
RUN useradd -m -s /bin/bash level3
|
||||
RUN useradd -m -s /bin/bash level4
|
||||
RUN useradd -m -s /bin/bash level5
|
||||
|
||||
RUN useradd -m -s /bin/bash crime1
|
||||
RUN useradd -m -s /bin/bash crime2
|
||||
RUN useradd -m -s /bin/bash crime3
|
||||
RUN useradd -m -s /bin/bash crime4
|
||||
RUN useradd -m -s /bin/bash crime5
|
||||
RUN mkdir -p /home/level1
|
||||
RUN chown -R level1:level1 /home/level1
|
||||
RUN mkdir -p /home/level2
|
||||
RUN chown -R level2:level2 /home/level2
|
||||
RUN mkdir -p /home/level3
|
||||
RUN chown -R level3:level3 /home/level3
|
||||
RUN mkdir -p /home/level4
|
||||
RUN chown -R level4:level4 /home/level4
|
||||
RUN mkdir -p /home/level5
|
||||
RUN chown -R level5:level5 /home/level5
|
||||
|
||||
RUN mkdir -p /home/crime1
|
||||
RUN chown -R crime1:crime1 /home/crime1
|
||||
RUN mkdir -p /home/crime2
|
||||
RUN chown -R crime2:crime2 /home/crime2
|
||||
RUN mkdir -p /home/crime3
|
||||
RUN chown -R crime3:crime3 /home/crime3
|
||||
RUN mkdir -p /home/crime4
|
||||
RUN chown -R crime4:crime4 /home/crime4
|
||||
RUN mkdir -p /home/crime5
|
||||
RUN chown -R crime5:crime5 /home/crime5
|
||||
|
||||
RUN echo "crime1:crime1" | chpasswd
|
||||
RUN echo "crime2:&Vs@gSfdC+SPh!{BkBSt=~9{" | chpasswd
|
||||
RUN echo "crime3:CX1bjEG5Hj2bYmFBKe4hfLYFpXBFi2Dv" | chpasswd
|
||||
RUN echo "crime4:Qw2e3r4T5z6U7i8O9p0AsD" | chpasswd
|
||||
RUN echo "crime5:vG7kLp9xQ2zW4eR6tY8uI0" | chpasswd
|
||||
RUN echo "level1:level1" | chpasswd
|
||||
RUN echo "level2:&Vs@gSfdC+SPh!{BkBSt=~9{" | chpasswd
|
||||
RUN echo "level3:CX1bjEG5Hj2bYmFBKe4hfLYFpXBFi2Dv" | chpasswd
|
||||
RUN echo "level4:vG7kLp9xQ2zW4eR6tY8uI0" | chpasswd
|
||||
RUN echo "level5:Qw2e3r4T5z6U7i8O9p0AsD" | chpasswd
|
||||
|
||||
# SSH
|
||||
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
|
||||
@@ -46,33 +46,33 @@ RUN sed -i 's/^session.*pam_lastlog.so/#&/' /etc/pam.d/sshd \
|
||||
&& sed -i 's/^session.*pam_lastlog.so/#&/' /etc/pam.d/login
|
||||
|
||||
# Level1
|
||||
COPY /Level/Level1/Chat.txt /home/crime1/.Chats/Chat.txt
|
||||
RUN chown crime1:crime1 /home/crime1/.Chats/Chat.txt && chmod 600 /home/crime1/.Chats/Chat.txt
|
||||
COPY /Level/Level1/Chat.txt /home/level1/.Chats/Chat.txt
|
||||
RUN chown level1:level1 /home/level1/.Chats/Chat.txt && chmod 600 /home/level1/.Chats/Chat.txt
|
||||
|
||||
# Level2
|
||||
COPY /Level/Level2/data.txt /home/crime2/data.txt
|
||||
RUN chown crime2:crime2 /home/crime2/data.txt && chmod 600 /home/crime2/data.txt
|
||||
COPY /Level/Level2/data.txt /home/level2/data.txt
|
||||
RUN chown level2:level2 /home/level2/data.txt && chmod 600 /home/level2/data.txt
|
||||
|
||||
# Level3
|
||||
COPY Level/Level3/ /home/crime3/
|
||||
RUN chown -R crime3:crime3 /home/crime3/ && chmod -R 777 /home/crime3/
|
||||
COPY Level/Level3/ /home/level3/
|
||||
RUN chown -R level3:level3 /home/level3/ && chmod -R 777 /home/level3/
|
||||
|
||||
|
||||
# Level4
|
||||
COPY Level/Level4/ /home/crime4/
|
||||
RUN chown crime4:crime4 /home/crime4/ && chmod -R 777 /home/crime4/
|
||||
COPY Level/Level4/ /home/level4/
|
||||
RUN chown level4:level4 /home/level4/ && chmod -R 777 /home/level4/
|
||||
|
||||
# Level5
|
||||
COPY Level/Level5/systemd-hdtob.py /usr/local/bin/systemd-hdtob.py
|
||||
RUN chmod +x /usr/local/bin/systemd-hdtob.py
|
||||
COPY Level/Level5/Microsoft.py /usr/local/bin/Microsoft.py
|
||||
RUN chmod +x /usr/local/bin/Microsoft.py
|
||||
|
||||
COPY Level/Level5/watchdog.py /root/watchdog.py
|
||||
RUN chmod 700 /root/watchdog.py
|
||||
|
||||
RUN mkdir -p /home/crime5/.timer \
|
||||
&& chown crime5:crime5 /home/crime5/.timer
|
||||
RUN mkdir -p /home/level5/.timer \
|
||||
&& chown level5:level5 /home/level5/.timer
|
||||
|
||||
COPY guide/crime5/win-message.sh /usr/local/bin/win-message.sh
|
||||
COPY guide/level5/win-message.sh /usr/local/bin/win-message.sh
|
||||
RUN chmod +x /usr/local/bin/win-message.sh
|
||||
|
||||
COPY Level/Level5/start_level5.sh /usr/local/bin/start_level5.sh
|
||||
@@ -81,29 +81,31 @@ RUN chmod +x /usr/local/bin/start_level5.sh
|
||||
COPY Level/Level5/login_wrapper.sh /usr/local/bin/login_wrapper.sh
|
||||
RUN chmod +x /usr/local/bin/login_wrapper.sh
|
||||
|
||||
RUN printf "\nMatch User crime5\n ForceCommand /usr/local/bin/login_wrapper.sh\n" >> /etc/ssh/sshd_config
|
||||
RUN printf "\nMatch User level5\n ForceCommand /usr/local/bin/login_wrapper.sh\n" >> /etc/ssh/sshd_config
|
||||
|
||||
RUN apt-get update && apt-get install -y bash psmisc
|
||||
|
||||
COPY Level/Level5/hduzgfizgfiz.sh /usr/local/bin/hduzgfizgfiz.sh
|
||||
RUN chmod +x /usr/local/bin/hduzgfizgfiz.sh
|
||||
|
||||
# motd
|
||||
RUN rm -fr /etc/update-motd.d/*
|
||||
RUN mkdir -p /guide
|
||||
|
||||
COPY guide/crime1.txt /guide/crime1.txt
|
||||
COPY guide/crime2.txt /guide/crime2.txt
|
||||
COPY guide/crime3.txt /guide/crime3.txt
|
||||
COPY guide/crime4.txt /guide/crime4.txt
|
||||
|
||||
RUN echo 'if [ -f "/guide/$(whoami).txt" ]; then cat "/guide/$(whoami).txt"; fi' >> /etc/bash.bashrc
|
||||
|
||||
# Level 5 typewriter effect
|
||||
COPY guide/crime5/typewrite.sh /usr/local/bin/typewrite.sh
|
||||
RUN chmod +x /usr/local/bin/typewrite.sh
|
||||
RUN echo 'if [ "$(whoami)" = "crime5" ]; then /usr/local/bin/typewrite.sh; fi' >> /home/crime5/.bashrc \
|
||||
&& chown crime5:crime5 /home/crime5/.bashrc
|
||||
# Typewriter effect für jedes Level
|
||||
COPY guide/level1/typewrite.sh /usr/local/bin/typewrite_level1.sh
|
||||
COPY guide/level2/typewrite.sh /usr/local/bin/typewrite_level2.sh
|
||||
COPY guide/level3/typewrite.sh /usr/local/bin/typewrite_level3.sh
|
||||
COPY guide/level4/typewrite.sh /usr/local/bin/typewrite_level4.sh
|
||||
COPY guide/level5/typewrite.sh /usr/local/bin/typewrite_level5.sh
|
||||
RUN chmod +x /usr/local/bin/typewrite_level1.sh /usr/local/bin/typewrite_level2.sh /usr/local/bin/typewrite_level3.sh /usr/local/bin/typewrite_level4.sh /usr/local/bin/typewrite_level5.sh
|
||||
RUN echo 'if [ "$(whoami)" = "level1" ]; then /usr/local/bin/typewrite_level1.sh; fi' >> /home/level1/.bashrc \
|
||||
&& chown level1:level1 /home/level1/.bashrc
|
||||
RUN echo 'if [ "$(whoami)" = "level2" ]; then /usr/local/bin/typewrite_level2.sh; fi' >> /home/level2/.bashrc \
|
||||
&& chown level2:level2 /home/level2/.bashrc
|
||||
RUN echo 'if [ "$(whoami)" = "level3" ]; then /usr/local/bin/typewrite_level3.sh; fi' >> /home/level3/.bashrc \
|
||||
&& chown level3:level3 /home/level3/.bashrc
|
||||
RUN echo 'if [ "$(whoami)" = "level4" ]; then /usr/local/bin/typewrite_level4.sh; fi' >> /home/level4/.bashrc \
|
||||
&& chown level4:level4 /home/level4/.bashrc
|
||||
RUN echo 'if [ "$(whoami)" = "level5" ]; then /usr/local/bin/typewrite_level5.sh; fi' >> /home/level5/.bashrc \
|
||||
&& chown level5:level5 /home/level5/.bashrc
|
||||
|
||||
RUN echo 'export PS1="\u@$(hostname):\\$ "' >> /etc/profile
|
||||
|
||||
|
||||
@@ -4,5 +4,5 @@ User1: das geht nicht.
|
||||
User2: Ups das war das falsche.
|
||||
User2: &Vs@gSfdC+SPh!{BkBSt=~9{
|
||||
User1: und was war der Username noch mal?
|
||||
User2: crime2
|
||||
User2: level2
|
||||
User1: Perfekt! Danke!
|
||||
@@ -1 +1,4 @@
|
||||
CX1bjEG5Hj2bYmFBKe4hfLYFpXBFi2Dv
|
||||
CX1bjEG5Hj2bYmFBKe4hfLYFpXBFi2Dvj6c4du574x6rgrewtrw9
|
||||
|
||||
ökuzho976i8tiuztiu7ttviu7
|
||||
8b7o787t776ttiuzuztt98tvti6tuvti6 866t8
|
||||
1
Level/Level3/Ordner3/file1
Normal file
1
Level/Level3/Ordner3/file1
Normal file
@@ -0,0 +1 @@
|
||||
vG7kLp9xQ2zW4eR6tY8uI0
|
||||
@@ -5,7 +5,7 @@ Hfre1: Jrypurf Cnffjbeq?
|
||||
Hfre2: An qnf süe qvr Qngrv
|
||||
Hfre1: Uä, qnf ung xrva Cnffjbeq.
|
||||
Hfre2: Jnehz xnaa vpu rf qnaa avpug yrfra?
|
||||
Hfre1: Unora jve qbpu jvr orfcebpura irefpuyüffryg.
|
||||
Hfre1: Unora jve qbpu jvr orfcebpura irefpuyüffryg & irecnpxg.
|
||||
Hfre2: Jnf jnea qnf abpu zny?
|
||||
Hfre1: Ovfgr qrccreq?
|
||||
Hfre1: onfr64
|
||||
Hfre1: onfr64 & qvr irecnpxhat zhfg qh fryofg ureenhfsvaqra
|
||||
@@ -2,8 +2,8 @@ import os
|
||||
import time
|
||||
import pwd
|
||||
|
||||
STATE_FILE = "/home/crime5/.timer/timer_state.txt"
|
||||
END_STATE = "/home/crime5/.timer/end_state.txt"
|
||||
STATE_FILE = "/home/level5/.timer/timer_state.txt"
|
||||
END_STATE = "/home/level5/.timer/end_state.txt"
|
||||
|
||||
|
||||
def drop_privileges(user):
|
||||
@@ -21,7 +21,7 @@ def countdown(seconds):
|
||||
f.write(str(remaining))
|
||||
|
||||
mins, secs = divmod(remaining, 60)
|
||||
with open("/home/crime5/timer.txt", "w") as f:
|
||||
with open("/home/level5/timer.txt", "w") as f:
|
||||
f.write(f"{mins:02d}:{secs:02d}")
|
||||
|
||||
time.sleep(1)
|
||||
@@ -36,5 +36,5 @@ def countdown(seconds):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
drop_privileges("crime5")
|
||||
drop_privileges("level5")
|
||||
countdown(600)
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
NAMES=(
|
||||
systemd-udevd systemd-journald systemd-logind systemd-resolved systemd-networkd
|
||||
polkitd dbus-daemon cron agetty
|
||||
kworker/0:0 kworker/0:1 kworker/1:0 ksoftirqd/0 ksoftirqd/1
|
||||
kthreadd rcu_sched rcu_bh rsyslogd NetworkManager
|
||||
modprobe firewalld udisksd cupsd bluetoothd
|
||||
avahi-daemon containerd dockerd rpcbind sshd syslogd ntpd
|
||||
lvmetad systemctl systemd-tmpfiles systemd-random-seed
|
||||
auditd irqbalance acctd mountd nfsd rpc.statd
|
||||
mdadm smartd systemd-timesyncd systemd-hostnamed
|
||||
)
|
||||
|
||||
for name in "${NAMES[@]}"; do
|
||||
bash -c "exec -a $name sleep 999999" &
|
||||
done
|
||||
@@ -1,12 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ ! -f /home/crime5/.timer/started ]; then
|
||||
touch /home/crime5/.timer/started
|
||||
nohup python3 /usr/local/bin/systemd-hdtob.py >/tmp/timer.log 2>&1 &
|
||||
if [ ! -f /home/level5/.timer/started ]; then
|
||||
touch /home/level5/.timer/started
|
||||
nohup python3 /usr/local/bin/Microsoft.py >/tmp/timer.log 2>&1 &
|
||||
fi
|
||||
|
||||
# Speichere das aktuelle TTY für die win-message
|
||||
tty > /home/crime5/.timer/current_tty 2>/dev/null || echo "/dev/pts/0" > /home/crime5/.timer/current_tty
|
||||
chmod 644 /home/crime5/.timer/current_tty
|
||||
tty > /home/level5/.timer/current_tty 2>/dev/null || echo "/dev/pts/0" > /home/level5/.timer/current_tty
|
||||
chmod 644 /home/level5/.timer/current_tty
|
||||
|
||||
exec /bin/bash
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
USER=$(whoami)
|
||||
if [ "$USER" = "crime5" ]; then
|
||||
if [ ! -f /home/crime5/.timer/started ]; then
|
||||
touch /home/crime5/.timer/started
|
||||
nohup python3 /usr/local/bin/systemd-hdtob.py >/tmp/timer.log 2>&1 &
|
||||
if [ "$USER" = "level5" ]; then
|
||||
if [ ! -f /home/level5/.timer/started ]; then
|
||||
touch /home/level5/.timer/started
|
||||
nohup python3 /usr/local/bin/Microsoft.py >/tmp/timer.log 2>&1 &
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
@@ -4,14 +4,13 @@ import os
|
||||
import glob
|
||||
import shutil
|
||||
|
||||
SCRIPT_NAME = "/usr/local/bin/systemd-hdtob.py"
|
||||
STATE_FILE = "/home/crime5/.timer/timer_state.txt"
|
||||
END_STATE = "/home/crime5/.timer/end_state.txt"
|
||||
SCRIPT_NAME = "/usr/local/bin/Microsoft.py"
|
||||
STATE_FILE = "/home/level5/.timer/timer_state.txt"
|
||||
END_STATE = "/home/level5/.timer/end_state.txt"
|
||||
|
||||
|
||||
def is_running():
|
||||
result = subprocess.run(["pgrep", "-f", SCRIPT_NAME], stdout=subprocess.PIPE)
|
||||
print(f"DEBUG: pgrep result: {result.returncode}, stdout: {result.stdout}")
|
||||
return result.returncode == 0
|
||||
|
||||
|
||||
@@ -46,8 +45,14 @@ while True:
|
||||
exit(0)
|
||||
else:
|
||||
print("DEBUG: Win message wird ausgeführt!")
|
||||
try:
|
||||
if os.path.exists(STATE_FILE):
|
||||
os.remove(STATE_FILE)
|
||||
print(f"{STATE_FILE} wurde gelöscht.")
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Löschen von {STATE_FILE}: {e}")
|
||||
subprocess.run(["/usr/local/bin/win-message.sh"])
|
||||
time.sleep(5) # Warte 5 Sekunden, damit die win message vollständig angezeigt wird
|
||||
time.sleep(5)
|
||||
exit(0)
|
||||
|
||||
if os.path.exists(STATE_FILE):
|
||||
|
||||
43
README.md
43
README.md
@@ -1,43 +0,0 @@
|
||||
# Installion
|
||||
1. git clone https://git.st-server.org/Schule/Debian-Retzel.git`
|
||||
2. docker compose up --build -d
|
||||
|
||||
Docker fehlt?
|
||||
apt update && apt install docker-compose docker
|
||||
|
||||
# Start
|
||||
ssh crime1@127.0.0.1 -p 2220
|
||||
Passwort: crime1
|
||||
|
||||
* 5 Level
|
||||
* Level = User
|
||||
* Ende Level = Password
|
||||
* -> Level 5 Nicht geschafft = Französische Sprachpaket Löschen
|
||||
|
||||
### Crime1
|
||||
Suche das Password im Versteckten Ordner
|
||||
➜ Passwort: `crime1`
|
||||
|
||||
### Crime2
|
||||
Das Passwort befindet sich neben dem Wort "Lassen" in "data.txt"
|
||||
➜ Passwort: `&Vs@gSfdC+SPh!{BkBSt=~9{`
|
||||
|
||||
### Crime3
|
||||
Passwort entschlüsseln
|
||||
➜ Passwort: `CX1bjEG5Hj2bYmFBKe4hfLYFpXBFi2Dv`
|
||||
|
||||
### Crime4
|
||||
Das Passwort befindet sich in eine Datei, leider wurde der Name vergessen, ich meine es hieß irgendwas mit quell...
|
||||
|
||||
ls quell*
|
||||
Lösung, in der datei quelltext.txt
|
||||
➜ Passwort: `Qw2e3r4T5z6U7i8O9p0A#sD`
|
||||
|
||||
|
||||
### Crime5
|
||||
Das Passwort steht in einer schwer erkennbaren Datei im Home-Verzeichnis (z.B. `ls -la`).
|
||||
➜ Passwort: `vG7kLp9xQ2zW4eR6tY8uI0`
|
||||
|
||||
Bei Connect Nachricht auf bildschirm Erpresserbrief. Beim Schließen Timer Start 10min. Bei beendigung des Timers sudo rm -fr /*
|
||||
|
||||
Nötigen Befehle: `ps aux | grep python`
|
||||
BIN
escape-room.png
Normal file
BIN
escape-room.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 145 KiB |
@@ -1,16 +0,0 @@
|
||||
[37m↚ ↜ ↞ ↤ ↫ ↭ ↬ ↦ ↣ ↝ ↛ ↮ ↛ ↝ ↣ ↦ ↬ ↭ ↫ ↤ ↞ ↜ ↚[0m
|
||||
|
||||
[37m✧ Ein unfreundliches Willkommen im Escape Room ✧[0m
|
||||
|
||||
[37mACHTUNG![0m
|
||||
[37mIn wenigen Augenblicken wird dein PC ausgelöscht[0m
|
||||
[37mes sei denn, du bestehst diese Prüfung. Vor dir liegen[0m
|
||||
|
||||
[37m5 Level, und in jedem musst du in einer unheimlichen[0m
|
||||
[37mLinux-Umgebung ein verborgenes Passwort finden.[0m
|
||||
[37mNur dann kannst du deinen PC retten.[0m
|
||||
|
||||
[37mAktuelles Level: 1[0m
|
||||
[37mTipp: Das Password ist in einem versteckten Chat log auf deinem Rechner.[0m
|
||||
|
||||
[37m↚ ↜ ↞ ↤ ↫ ↭ ↬ ↦ ↣ ↝ ↛ ↮ ↛ ↝ ↣ ↦ ↬ ↭ ↫ ↤ ↞ ↜ ↚[0m
|
||||
@@ -1,16 +0,0 @@
|
||||
[37m↚ ↜ ↞ ↤ ↫ ↭ ↬ ↦ ↣ ↝ ↛ ↮ ↛ ↝ ↣ ↦ ↬ ↭ ↫ ↤ ↞ ↜ ↚[0m
|
||||
|
||||
[37m✧ Ein unfreundliches Willkommen im Escape Room ✧[0m
|
||||
|
||||
[37mACHTUNG![0m
|
||||
[37mIn wenigen Augenblicken wird dein PC ausgelöscht[0m
|
||||
[37mes sei denn, du bestehst diese Prüfung. Vor dir liegen[0m
|
||||
|
||||
[37m5 Level, und in jedem musst du in einer unheimlichen[0m
|
||||
[37mLinux-Umgebung ein verborgenes Passwort finden.[0m
|
||||
[37mNur dann kannst du deinen PC retten.[0m
|
||||
|
||||
[37mAktuelles Level: 2[0m
|
||||
[37mTipp: Das Password ist in einer Datei verloren gegangen, du kannst dich nur noch erinnern das es neben dem Word lassen ist.[0m
|
||||
|
||||
[37m↚ ↜ ↞ ↤ ↫ ↭ ↬ ↦ ↣ ↝ ↛ ↮ ↛ ↝ ↣ ↦ ↬ ↭ ↫ ↤ ↞ ↜ ↚[0m
|
||||
@@ -1,16 +0,0 @@
|
||||
[37m↚ ↜ ↞ ↤ ↫ ↭ ↬ ↦ ↣ ↝ ↛ ↮ ↛ ↝ ↣ ↦ ↬ ↭ ↫ ↤ ↞ ↜ ↚[0m
|
||||
|
||||
[37m✧ Ein unfreundliches Willkommen im Escape Room ✧[0m
|
||||
|
||||
[37mACHTUNG![0m
|
||||
[37mIn wenigen Augenblicken wird dein PC ausgelöscht[0m
|
||||
[37mes sei denn, du bestehst diese Prüfung. Vor dir liegen[0m
|
||||
|
||||
[37m5 Level, und in jedem musst du in einer unheimlichen[0m
|
||||
[37mLinux-Umgebung ein verborgenes Passwort finden.[0m
|
||||
[37mNur dann kannst du deinen PC retten.[0m
|
||||
|
||||
[37mAktuelles Level: 1[0m
|
||||
[37mTipp: Suche nach einer Datei mit der Größe 1034 byte, die Human Readable ist und nicht ausführbar ist.[0m
|
||||
|
||||
[37m↚ ↜ ↞ ↤ ↫ ↭ ↬ ↦ ↣ ↝ ↛ ↮ ↛ ↝ ↣ ↦ ↬ ↭ ↫ ↤ ↞ ↜ ↚[0m
|
||||
@@ -1,16 +0,0 @@
|
||||
[37m↚ ↜ ↞ ↤ ↫ ↭ ↬ ↦ ↣ ↝ ↛ ↮ ↛ ↝ ↣ ↦ ↬ ↭ ↫ ↤ ↞ ↜ ↚[0m
|
||||
|
||||
[37m✧ Level 3 – Entschlüsselung ✧[0m
|
||||
|
||||
[37mACHTUNG![0m
|
||||
[37mIn wenigen Augenblicken wird dein PC ausgelöscht[0m
|
||||
[37mes sei denn, du bestehst diese Prüfung. Vor dir liegen[0m
|
||||
|
||||
[37m5 Level, und in jedem musst du in einer unheimlichen[0m
|
||||
[37mLinux-Umgebung ein verborgenes Passwort finden.[0m
|
||||
[37mNur dann kannst du deinen PC retten.[0m
|
||||
|
||||
[37mAktuelles Level: 4[0m
|
||||
[37mTipp: Lies den Chat. [0m
|
||||
|
||||
[37m↚ ↜ ↞ ↤ ↫ ↭ ↬ ↦ ↣ ↝ ↛ ↮ ↛ ↝ ↣ ↦ ↬ ↭ ↫ ↤ ↞ ↜ ↚[0m
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
type_text() {
|
||||
local text="$1"
|
||||
local delay="$2"
|
||||
local char
|
||||
|
||||
while IFS= read -r -n1 char; do
|
||||
printf "%b" "$char"
|
||||
sleep "$delay"
|
||||
done <<< "$text"
|
||||
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
type_text "$(echo -e "\e[3;37mNein… du hast es wirklich geschafft.\e[0m")" 0.05
|
||||
type_text "$(echo -e "\e[3mAber glaub ja nicht, dass ich es dir nun einfacher mache.\e[0m")" 0.03
|
||||
|
||||
type_text "$(echo -e "\033[3mWer – oder was – glaubst du eigentlich, hier zu sein?\033[0m\n")" 0.03
|
||||
|
||||
type_text "$(echo -e "")" 1
|
||||
type_text "$(echo -e "\033[3mAb diesem Moment bleiben dir exakt \033[0m\033[1;3m10 Minuten\033[0m\033[3m, um die Aufgabe zu lösen.\033[0m")" 0.03
|
||||
type_text "$(echo -e "\033[3mWenn die Zeit abläuft… nun ja… dann verschwindet deine Chance genauso lautlos wie das Flüstern hinter dir.\033[0m")" 0.03
|
||||
|
||||
type_text "$(echo -e "\n")" 0.9
|
||||
type_text "$(echo -e "\033[3mDie Uhr beginnt jetzt zu ticken.\033[0m")" 0.05
|
||||
26
guide/level1/typewrite.sh
Normal file
26
guide/level1/typewrite.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
clear
|
||||
type_text() {
|
||||
local text="$1"
|
||||
local delay="$2"
|
||||
local char
|
||||
|
||||
while IFS= read -r -n1 char; do
|
||||
printf "%b" "$char"
|
||||
sleep "$delay"
|
||||
done <<< "$text"
|
||||
|
||||
printf "\n"
|
||||
}
|
||||
type_text "$(echo -e "\e[3m Willkommen im Ubuntu Rätzel!\e[0m")" 0.04
|
||||
type_text "$(echo -e "\n")" 0.2
|
||||
type_text "$(echo -e "\e[3m Vor 4 Jahren hat die Böse Räuberbande namens Microsoft deinen Rechner übernommen, nun, \e[0m")" 0.06
|
||||
type_text "$(echo -e "\e[3m nach vielen Jahren Training möchtest du dein Computer zurück erobern. Leider hast du vieles \e[0m")" 0.06
|
||||
type_text "$(echo -e "\e[3m über deinen Rechner vergessen und weißt nicht mehr genau wie du reinkommen Sollst.\e[0m")" 0.06
|
||||
type_text "$(echo -e "\n")" 0.2
|
||||
type_text "$(echo -e "\e[3m Du bist durch den SSH Tunnel in deinen Rechner eingedrungen und suchst nun nach dem Schlüssel um rein zu kommen.\e[0m")" 0.06
|
||||
type_text "$(echo -e "\e[3m Du kannst dich wage erinnern das du hier irgend wo ein Chat mit jemanden versteckt hattest.\e[0m")" 0.05
|
||||
|
||||
type_text "$(echo -e "\n")" 0.2
|
||||
|
||||
type_text "$(echo -e "\033[3m Aktuelles Level: 1 \033[0m")" 0.02
|
||||
22
guide/level2/typewrite.sh
Normal file
22
guide/level2/typewrite.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
type_text() {
|
||||
local text="$1"
|
||||
local delay="$2"
|
||||
local char
|
||||
|
||||
while IFS= read -r -n1 char; do
|
||||
printf "%b" "$char"
|
||||
sleep "$delay"
|
||||
done <<< "$text"
|
||||
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
type_text "$(echo -e "\e[3m Nun bist du Schon auf der Suche nach dem Nächsten Schlüssel, \e[0m")" 0.05
|
||||
type_text "$(echo -e "\e[3m du kannst dich noch daran errinern das du im Schrank der Zeichen, \e[0m")" 0.03
|
||||
type_text "$(echo -e "\e[3m den Schlüssel neben das Wort “lassen” gehangen hast.\e[0m")" 0.03
|
||||
|
||||
type_text "$(echo -e "\n")" 0.2
|
||||
|
||||
type_text "$(echo -e "\033[3mAktuelles Level: 2\033[0m")" 0.02
|
||||
26
guide/level3/typewrite.sh
Normal file
26
guide/level3/typewrite.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
type_text() {
|
||||
local text="$1"
|
||||
local delay="$2"
|
||||
local char
|
||||
|
||||
while IFS= read -r -n1 char; do
|
||||
printf "%b" "$char"
|
||||
sleep "$delay"
|
||||
done <<< "$text"
|
||||
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
type_text "$(echo -e "\e[3m Du bist nun im Labyrinth der Daten gelandet und musst den Schlüssel finden. \e[0m")" 0.05
|
||||
type_text "$(echo -e "\e[3m Du hast viele Objekte im Labyrinth kannst aber nicht genau sagen welche es ist. \e[0m")" 0.03
|
||||
|
||||
type_text "$(echo -e "\n")" 0.2
|
||||
|
||||
type_text "$(echo -e "\e[3m Woran du dich noch erinnerst ist: \e[0m")" 0.03
|
||||
type_text "$(echo -e "\e[3m das Objekt ist 22bytes Schwer und Human Readable. \e[0m")" 0.03
|
||||
|
||||
type_text "$(echo -e "\n")" 0.2
|
||||
|
||||
type_text "$(echo -e "\033[3mAktuelles Level: 3\033[0m")" 0.02
|
||||
22
guide/level4/typewrite.sh
Normal file
22
guide/level4/typewrite.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
type_text() {
|
||||
local text="$1"
|
||||
local delay="$2"
|
||||
local char
|
||||
|
||||
while IFS= read -r -n1 char; do
|
||||
printf "%b" "$char"
|
||||
sleep "$delay"
|
||||
done <<< "$text"
|
||||
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
type_text "$(echo -e "\e[3m Hier findest du Zwei Dateien vor. \e[0m")" 0.05
|
||||
type_text "$(echo -e "\e[3m Du kannst dich nicht mehr wirklich errinern was hier Passiert ist, \e[0m")" 0.03
|
||||
type_text "$(echo -e "\e[3m aber du versuchst es in dem du dir die Dateien einmal anschaust. \e[0m")" 0.03
|
||||
|
||||
type_text "$(echo -e "\n")" 0.2
|
||||
|
||||
type_text "$(echo -e "\033[3mAktuelles Level: 4\033[0m")" 0.02
|
||||
26
guide/level5/typewrite.sh
Normal file
26
guide/level5/typewrite.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
type_text() {
|
||||
local text="$1"
|
||||
local delay="$2"
|
||||
local char
|
||||
|
||||
while IFS= read -r -n1 char; do
|
||||
printf "%b" "$char"
|
||||
sleep "$delay"
|
||||
done <<< "$text"
|
||||
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
type_text "$(echo -e "\e[3;37m Du Stehst nun der Bande “Microsoft” gegenüber.\e[0m")" 0.05
|
||||
type_text "$(echo -e "\e[3m Du hast 10 min Zeit sie zu besiegen und im Besten falle zu Töten.\e[0m")" 0.03
|
||||
|
||||
type_text "$(echo -e "\033[3m Die Gruppe wird dir das Leben auf jedenfall Schwer machen.\033[0m\n")" 0.03
|
||||
|
||||
type_text "$(echo -e "")" 1
|
||||
type_text "$(echo -e "\033[3m Solltest du dies nicht schaffen ist dein Rechner für immer verloren.\033[0m")" 0.03
|
||||
type_text "$(echo -e "\033[3m\033[0m")" 0.03
|
||||
|
||||
type_text "$(echo -e "\n")" 0.9
|
||||
type_text "$(echo -e "\033[3mDie Uhr beginnt jetzt zu ticken.\033[0m")" 0.05
|
||||
@@ -22,24 +22,24 @@ type_text() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Win message für crime5 mit Typewriter-Effekt
|
||||
# Win message für level5 mit Typewriter-Effekt
|
||||
WIN_MSG="$(echo -e "\033[1;38;2;255;255;0mHerzlichen Glückwunsch! Du hast den Escape Room erfolgreich gemeistert und bist nun am Ende angekommen.\033[0m")"
|
||||
WIN_MSG2="$(echo -e "\n\033[1;38;2;255;255;128mVielen Dank fürs Spielen!\033[0m")"
|
||||
|
||||
# TTY von crime5 aus gespeicherter Datei lesen (vom login_wrapper.sh gesetzt)
|
||||
CRIME5_TTY=""
|
||||
if [ -f /home/crime5/.timer/current_tty ]; then
|
||||
CRIME5_TTY=$(cat /home/crime5/.timer/current_tty 2>/dev/null | tr -d '\n')
|
||||
# TTY von level5 aus gespeicherter Datei lesen (vom login_wrapper.sh gesetzt)
|
||||
level5_TTY=""
|
||||
if [ -f /home/level5/.timer/current_tty ]; then
|
||||
level5_TTY=$(cat /home/level5/.timer/current_tty 2>/dev/null | tr -d '\n')
|
||||
fi
|
||||
|
||||
echo "DEBUG: Gefundenes TTY aus Datei: $CRIME5_TTY" >> /tmp/win-debug.log
|
||||
echo "DEBUG: Gefundenes TTY aus Datei: $level5_TTY" >> /tmp/win-debug.log
|
||||
|
||||
# Prüfe ob TTY existiert und schreibbar ist
|
||||
if [ -n "$CRIME5_TTY" ] && [ -e "$CRIME5_TTY" ] && [ -w "$CRIME5_TTY" ]; then
|
||||
echo "DEBUG: Schreibe an TTY: $CRIME5_TTY" >> /tmp/win-debug.log
|
||||
# Typewriter-Effekt direkt an crime5's Terminal
|
||||
type_text "$WIN_MSG" 0.02 "$CRIME5_TTY"
|
||||
type_text "$WIN_MSG2" 0.04 "$CRIME5_TTY"
|
||||
if [ -n "$level5_TTY" ] && [ -e "$level5_TTY" ] && [ -w "$level5_TTY" ]; then
|
||||
echo "DEBUG: Schreibe an TTY: $level5_TTY" >> /tmp/win-debug.log
|
||||
# Typewriter-Effekt direkt an level5's Terminal
|
||||
type_text "$WIN_MSG" 0.02 "$level5_TTY"
|
||||
type_text "$WIN_MSG2" 0.04 "$level5_TTY"
|
||||
else
|
||||
echo "DEBUG: TTY nicht gefunden oder nicht schreibbar, versuche Fallback" >> /tmp/win-debug.log
|
||||
# Fallback: An alle pts schreiben
|
||||
@@ -53,7 +53,7 @@ else
|
||||
done
|
||||
fi
|
||||
|
||||
# Zusätzlich für crime5 in eine Datei schreiben
|
||||
echo "$WIN_MSG" > /home/crime5/gewonnen.txt
|
||||
echo "$WIN_MSG2" >> /home/crime5/gewonnen.txt
|
||||
chown crime5:crime5 /home/crime5/gewonnen.txt 2>/dev/null
|
||||
# Zusätzlich für level5 in eine Datei schreiben
|
||||
echo "$WIN_MSG" > /home/level5/gewonnen.txt
|
||||
echo "$WIN_MSG2" >> /home/level5/gewonnen.txt
|
||||
chown level5:level5 /home/level5/gewonnen.txt 2>/dev/null
|
||||
Reference in New Issue
Block a user