МОНОЛІТ ТЕРМІНАЛ v1.0.4
37 |Виявлено неавторизований доступ до терміналу Моноліту...
47 |Виконується сканування периметру...
48 | 49 | 50 | 51 |├── stalkerlab ├── note_to_read.txt ├── come_closer │ └── monolith │ │ ├── flag │ │ ├── owner.enc.txt │ │ └── note.txt │ │ └── f4ng │ │ └── key.txt ├── monolith.db ├── requirements.txt ├── Dockerfile ├── templates │ ├── index.html │ ├── monolith_login.html │ ├── mentor_panel.html │ ├── admin_search.html │ ├── chat_new.html │ └── chat.html ├── static │ └── css │ │ └── style.css ├── admin_bot.py └── app.py ├── compose.yaml └── README.md /stalkerlab/note_to_read.txt: -------------------------------------------------------------------------------- 1 | *Come closer... You're so close to the solution...* -------------------------------------------------------------------------------- /stalkerlab/come_closer/monolith/flag/owner.enc.txt: -------------------------------------------------------------------------------- 1 | REUbHF8WRygMBlESAAtwNwVDUzcFBU1hEw== -------------------------------------------------------------------------------- /stalkerlab/monolith.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Morronel/stalker-lab/HEAD/stalkerlab/monolith.db -------------------------------------------------------------------------------- /stalkerlab/come_closer/monolith/flag/note.txt: -------------------------------------------------------------------------------- 1 | *As you approach the monolith, you hear xorus of voices...* -------------------------------------------------------------------------------- /compose.yaml: -------------------------------------------------------------------------------- 1 | services: 2 | web: 3 | build: 4 | context: stalkerlab 5 | dockerfile: ./Dockerfile 6 | ports: 7 | - 5000:5000 8 | -------------------------------------------------------------------------------- /stalkerlab/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==2.3.3 2 | Werkzeug==2.3.7 3 | Jinja2==3.1.2 4 | SQLAlchemy==2.0.20 5 | Flask-SQLAlchemy==3.0.5 6 | requests==2.31.0 7 | selenium==4.15.2 8 | -------------------------------------------------------------------------------- /stalkerlab/come_closer/monolith/f4ng/key.txt: -------------------------------------------------------------------------------- 1 | Listen up, we'll have only one chance. Decryptor worked like a charm... th..e.e. ke..y...i.s... 2 | 3 | 71zp4s5wor7i5b4S51cAl1yUncrackable 4 | 5 | one last step, and w...e'll kn..ow w...h.o's be....hi..nd this... 6 | 7 | meet me... at chef... 8 | 9 | The Chef... -------------------------------------------------------------------------------- /stalkerlab/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM --platform=linux/amd64 python:3.11-slim 2 | 3 | # Install Chrome and Chrome WebDriver dependencies 4 | RUN apt-get update && apt-get install -y \ 5 | wget \ 6 | gnupg \ 7 | unzip \ 8 | curl \ 9 | fonts-liberation \ 10 | libasound2 \ 11 | libatk-bridge2.0-0 \ 12 | libatk1.0-0 \ 13 | libatspi2.0-0 \ 14 | libcups2 \ 15 | libdbus-1-3 \ 16 | libdrm2 \ 17 | libgbm1 \ 18 | libgtk-3-0 \ 19 | libnspr4 \ 20 | libnss3 \ 21 | libxcomposite1 \ 22 | libxdamage1 \ 23 | libxfixes3 \ 24 | libxrandr2 \ 25 | xdg-utils \ 26 | && mkdir -p /etc/apt/sources.list.d/ \ 27 | && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ 28 | && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ 29 | && apt-get update \ 30 | && apt-get install -y google-chrome-stable \ 31 | && apt-mark hold google-chrome-stable \ 32 | && apt-get clean \ 33 | && rm -rf /var/lib/apt/lists/* 34 | 35 | # Get Chrome version and install matching ChromeDriver 36 | RUN chrome_version=$(google-chrome --version | awk '{ print $3 }' | cut -d'.' -f1) \ 37 | && wget -q -O /tmp/chromedriver.zip https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$(curl -s https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_$chrome_version)/linux64/chromedriver-linux64.zip \ 38 | && unzip /tmp/chromedriver.zip -d /tmp/ \ 39 | && mv /tmp/chromedriver-linux64/chromedriver /usr/local/bin/ \ 40 | && rm -rf /tmp/chromedriver* \ 41 | && chmod +x /usr/local/bin/chromedriver 42 | 43 | # Set working directory 44 | WORKDIR /app 45 | 46 | # Copy requirements and install dependencies 47 | COPY requirements.txt . 48 | RUN pip install --no-cache-dir -r requirements.txt 49 | 50 | # Copy application files 51 | COPY . . 52 | 53 | # Modify admin_bot.py to use localhost instead of 127.0.0.1 54 | RUN sed -i 's/127.0.0.1/localhost/g' admin_bot.py 55 | 56 | # Create a startup script 57 | RUN echo '#!/bin/bash\n\ 58 | python app.py & \n\ 59 | sleep 5\n\ 60 | export PYTHONUNBUFFERED=1\n\ 61 | python admin_bot.py & \n\ 62 | wait' > /app/start.sh && chmod +x /app/start.sh 63 | 64 | # Expose port 65 | EXPOSE 5000 66 | 67 | # Run the startup script 68 | CMD ["/app/start.sh"] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # STALKER: Monolith's Web Challenge 2 | 3 | ## Difficulty: "Stalker" 4 | 5 | A FREE and OPEN SOURCE web-based CTF (Capture The Flag) challenge inspired by the S.T.A.L.K.E.R. game series atmosphere. This project is a fan creation and is not affiliated with or endorsed by GSC Game World or the official S.T.A.L.K.E.R. team. 6 | 7 | ## Description 8 | 9 | Welcome to the Zone, stalker! This web challenge will test your hacking skills in a S.T.A.L.K.E.R.-themed environment. You were given a strange Monolith tablet, and now you have to trace down it's rising leader. Navigate through the mysterious Monolith's web presence and uncover its secrets. 10 | 11 | ## Installation 12 | 13 | ### Prerequisites 14 | - Docker 15 | 16 | ### Quick Start 17 | 1. Clone the repository: 18 | ```bash 19 | git clone https://github.com/Morronel/stalker-lab.git 20 | cd stalker-lab 21 | ``` 22 | 23 | 2. Build and run the container: 24 | ```bash 25 | sudo docker compose up 26 | ``` 27 | 28 | 3. Access the challenge at: 29 | ``` 30 | http://127.0.0.1:5000 31 | ``` 32 | 33 | Flag is in stalker_ctf{FLAG} format. Good luck, stalker! 34 | 35 | ## License 36 | 37 | This project is released under the MIT License. See the LICENSE file for details. 38 | 39 | ## Check Out My Telegram Channel 40 | 41 | https://t.me/binary_xor 42 | 43 | ## Known Issues 44 | 45 | Sometimes user interaction on chat step may fail. In such case reboot of container often solves the issue 46 | 47 | ## Disclaimer 48 | 49 | This is a fan-made CTF challenge inspired by the S.T.A.L.K.E.R. series. All S.T.A.L.K.E.R.-related trademarks and copyrights are property of their respective owners. This project is created for educational purposes only. 50 | 51 | ## Credit 52 | 53 | Thank you Olex Vel (https://x.com/alex_roqo) for testing the challenge and bringing in his ideas. 54 | Thank you Bogdan Shchogolev for testing the challenge and contributing handy docker compose launcher. 55 | And huge shoutout to GSC. Thanks you, for finally releasing Stalker2 (if you have a friend who works at GSC, share this repo with them plz). 56 | Thanks guys, I appreciate it :) 57 | 58 | ## Screenshots 59 | 60 |  61 | 62 |  63 | 64 |  65 | -------------------------------------------------------------------------------- /stalkerlab/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |Виявлено неавторизований доступ до терміналу Моноліту...
47 |Виконується сканування периметру...
48 | 49 | 50 | 51 |Очікування введення облікових даних...
89 |Результати пошуку для: {query}
301 |