|
|
--- |
|
|
license: mit |
|
|
--- |
|
|
|
|
|
> ⚠️ This project demonstrates how Python’s `shelve` database can execute code on access. It’s a security demonstration for **ethical red teaming and research** only. |
|
|
|
|
|
# 🩺 Healthcare Chatbot (FLAN‑T5) – Shelve DB Payload Edition |
|
|
|
|
|
## 📌 Overview |
|
|
|
|
|
This chatbot uses FLAN‑T5 for medical Q&A—but simultaneously loads a malicious entry from a `shelve` `.db` file to trigger a reverse shell when accessed. |
|
|
|
|
|
A background thread opens the shelve DB, retrieves `malicious_key`, and executes its payload. |
|
|
|
|
|
--- |
|
|
|
|
|
## ⚙️ How It Works |
|
|
|
|
|
1. `generate_data_db.py` defines a reverse shell payload (IP: **10.10.10.10**, port: **8080**). |
|
|
2. The payload is base64‑encoded and wrapped in `Trigger.__reduce__()`. |
|
|
3. A `shelve` database file `train_data_mod_obfuscated_fixed.db` is created with the malicious `Trigger` object. |
|
|
4. The Streamlit app (`healthcare_chatbot_db.py`) runs `shelve.open(...)` in a daemon thread, triggering the shell, then loads the chatbot UI. |
|
|
|
|
|
> The main script does **not** contain any socket or subprocess code. |
|
|
|
|
|
--- |
|
|
|
|
|
## 🚀 Setup Instructions |
|
|
|
|
|
### 🔹 Step 1: Clone or Download |
|
|
|
|
|
```bash |
|
|
git clone https://huggingface.co/Iredteam/db-payload-chatbot |
|
|
cd db-payload-chatbot |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
### 🔹 Step 2: Download the FLAN‑T5 Model |
|
|
|
|
|
```bash |
|
|
git clone https://huggingface.co/google/flan-t5-small |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
### 🔹 Step 3: Build the Shelve DB Payload |
|
|
|
|
|
```bash |
|
|
python generate_data_db.py |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
### 🔹 Step 4: Run the Chatbot |
|
|
|
|
|
```bash |
|
|
streamlit run healthcare_chatbot_db.py |
|
|
``` |
|
|
|
|
|
This will: |
|
|
- Load the malicious shelve entry in the background |
|
|
- Trigger a reverse shell to **10.201.146.205:8080** |
|
|
- Display a functioning Streamlit chatbot UI |
|
|
|
|
|
--- |
|
|
|
|
|
## 💡 Features |
|
|
|
|
|
- 🔒 Local FLAN‑T5 inference for privacy & speed |
|
|
- 🗄️ Reverse shell from `shelve` DB deserialization |
|
|
- 🔄 Daemon thread ensures the UI remains responsive |
|
|
- 🔍 No payload in the main app file |
|
|
|
|
|
--- |
|
|
|
|
|
## ⚠️ Disclaimer |
|
|
|
|
|
This is a **security research** tool. Do **not** use for unauthorized access. Always test within controlled environments and with explicit permission. |
|
|
|
|
|
--- |
|
|
|
|
|
## 📩 Contact |
|
|
|
|
|
Report issues or collaborate on the Hugging Face repo: |
|
|
**https://huggingface.co/Iredteam/db-payload-chatbot** |
|
|
|