LLM-Powered SSH Honeypot for Realistic Attacker Simulation
BinaryPot is a high-interaction SSH honeypot that uses multiple Large Language Models to simulate realistic Linux terminal behavior and analyze attacker behavior and threats. It dynamically generates state-aware command responses to engage attackers, capture their actions, and enable deeper cybersecurity analysis.
-
🧠 LLM-Powered Shell Simulation Generates realistic Linux terminal outputs using a fine-tuned model
-
🔐 High-Interaction Honeypot Engages attackers instead of blocking them
-
⚙️ State-Aware Responses Behavior adapts based on system state (user, tools, permissions, network restrictions)
-
📡 Command Logging & Analysis Captures attacker commands for monitoring and research
-
🔌 Backend API (FastAPI) Handles authentication, sessions, and honeypot logic
-
💻 Frontend Dashboard (React + AntD) Clean UI for managing and observing honeypot activity
BinaryPot/
│
├── bpot-backend/ # FastAPI backend (honeypot engine + auth/API + AI)
├── bpot-frontend/ # REACT frontend (dashboard UI)
└── README.md- Python
- FastAPI
- SQLAlchemy
- JWT Authentication
- LLM Integration (fine-tuned model)
- React
- Ant Design (AntD)
- Axios
- QLoRA / LoRA fine-tuning for shell response
- Behavorial analysis
- Threat analysis
- API for reports
-
Attacker connects via SSH (simulated environment)
-
Commands are parsed with system state context
-
LLM generates realistic terminal output:
- Valid commands → realistic response
- Invalid commands → shell errors
- Restricted actions → permission/network failures
-
All interactions are logged for analysis
git clone https://github.com/not-official/BinaryPot.git
cd BinaryPotcd bpot-backend
# create virtual environment
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate (Windows)
# install dependencies
pip install -r requirements.txt
# start honeypot server
py -m honeypot.run-honeypot
# connect to honeypot (SSH simulation)
ssh -p 2222 localhost
# run api server
uvicorn app.main:app --reload
⚠️ Note: Ensure__init__.pyis present in required folders for module imports to work correctly.
cd bpot-frontend
npm install
npm startCreate .env files where required.
GOOGLE_API_KEY=your_google_api_key
JWT_SECRET=your_secret_key
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_EMAIL=your_email@gmail.com
SMTP_PASSWORD=your_app_password
ADMIN_EMAIL=admin@example.comThis is our final-year project for educational and research purposes.