Skip to content

Vyzer9/C2-Educational-Steganography

Repository files navigation

🕵️‍♂️ Steganography and C2 Tool

License: AGPL v3 Python Version Platform Status

⚠️ Legal Disclaimer
This is a research and development tool that demonstrates steganography and Command and Control (C2) communication techniques in a controlled environment.
Its use is strictly intended for learning, testing, and research purposes.
Unauthorized or illegal use is prohibited under applicable laws, including the Brazilian Civil Rights Framework for the Internet (Law No. 12,965/2014).
The author assumes no liability for misuse or damages.


📌 Table of Contents


🎯 Objective

This project provides a functional tool for:

  • Steganography using LSB (Least Significant Bit) to embed messages in images.
  • Simulated C2 communication, allowing structured data flow between a local client and server.

🌐 Website

Visit the live project at:
🔗 https://peer-crypt.vercel.app

🧰 Technologies

  • Language: Python 3.8+

  • Libraries:

    • Pillow – Image manipulation
    • socket – Local TCP communication
  • Execution environment: Fully local (127.0.0.1) for safety

  • Web interface (in development): Started on 09/06/2025

    My Skills


🏗️ Architecture

The architecture is modular and extensible:

  • 🎯 Client Module:
    Sends steganographic payloads to the C2 server.

  • 🖥️ Server Module (C2):
    Receives and decodes payloads, simulating command reception.

  • 🗝️ Encoding/Decoding Layer:
    Handles the core steganographic logic (LSB).

  • 🛡️ Safety & Logging Layer:
    Logs key events and blocks unsafe usage.

⚙️ Usage Instructions

Step 1: Fork the repository on GitHub

You need to fork the project repository to your own GitHub account to use the steganography panel.

Step 2: Activate the Python virtual environment

Create and activate the virtual environment (venv):

python -m venv venv
source venv/bin/activate   # On Windows use `venv\Scripts\activate`

Step 3: Install dependencies

pip install -r requirements.txt

Step 4: Run the backend server locally

uvicorn api.main:app --reload

Step 5: Use the Steganography Panel in the WebSite

image

⚠️ Limitations

  • 📏 The message size is limited by the input image resolution.

  • 🎭 The C2 feature is fully simulated and does not perform real-world operations.

  • ⚙️ To use the steganography dashboard, you need to activate the virtual environment (venv) in the repository and run the backend API server locally before interacting with the website.


📜 Tutorial

I will be showing here a tutorial on how to use the tool efficiently, remembering that at the moment 09/08/2025 the tool runs on the website but with its API connected manually, which in itself is already a great advance compared to the beta version 0.1.0 which did not even have the website.

1 Step. Fork

First we will Fork the repository to clone it and run some processes.

image

2 Step. Folders and Files (Important) ⚠️

When you enter the project, you'll see a certain folder structure. Currently, the site still doesn't run without this user dependency on using the tool without manually starting the API. So, you'll just enter the terminal instead of using any of the folders.

image

3 Step. Terminal

Entering the terminal, we will start VENV:

python -m venv venv
source venv/bin/activate   # On Windows use `venv\Scripts\activate`

After that we will add the packages that are in the tool's requirement using the command:

pip install -r requirements.txt

Finally, we will activate the API with the command:

uvicorn api.main:app --reload
image

We will see the Link and when we click we will see the API online. Remembering that it is not mandatory to enter the link to see the API status, but for good practice it is good to see it to have confirmation.

image

Step 4. WebSite

Finally, you will enter the website that is available in the repository (Without closing your IDE and your API page) and scrolling down you will reach the panel where we have the options to inject information and extract information. First, let's start with the process of injecting information into the image. I'll use one as an example and inform you of the content.

image

see that we automatically receive a file with a name, when clicking it we will see that the photo is the same, it seems funny but after all the information is hidden in it. Now let's do the opposite process

image

Congratulations, you did the steganography process correctly. 🎊🎉🎉🎉🎉

🤝 Contribution Guidelines

Contributions are welcome, provided they align with the educational goals of the project.
If you find bugs, have ideas for improvements, or want to add features, feel free to contribute via pull requests.

To contribute:

  1. Fork the repository.
  2. Create a branch with your changes.
  3. Submit a pull request with a detailed description of your changes.

📷 General Screenshot

Diagram

image

WebSite

image image image

📄 License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
See the LICENSE file for details.

📬 Contact

  • Contact the author via GitHub
image

⚠️ Final Notice: This project is intended for research, testing, and development purposes in controlled environments only. Do not use this code in production systems, unauthorized networks, or for malicious activities. The author explicitly disclaims any responsibility for misuse and condemns any form of unethical or illegal usage.

About

Steganography and C2 communication techniques in a controlled environment.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •