Share
## https://sploitus.com/exploit?id=4B333978-97D0-504F-9DF5-6745B4B83402
# 🛡️ PoC & Dockerfiles - Pentest Final Project (Group 02)

[cite_start]**Học phần:** Kiểm thử xâm nhập (INT14107) - Học viện Công nghệ Bưu chính Viễn thông (PTIT) [cite: 1, 4, 5]  
[cite_start]**Đề tài:** Xây dựng và thực hiện kiểm thử xâm nhập mô hình mạng doanh nghiệp công nghiệp EMAL [cite: 6, 7]  

Repository này chứa các kịch bản khai thác (Proof of Concept - PoC) và mã nguồn cấu hình môi trường (Dockerfiles) phục vụ cho Bài tập lớn môn Kiểm thử xâm nhập. Hệ thống mô phỏng một cuộc tấn công APT (Advanced Persistent Threat) nhiều bước từ môi trường Internet (Outside) vào sâu bên trong mạng nội bộ (Internal LAN) của doanh nghiệp EMAL.

---

## 👥 Nhóm thực hiện (Nhóm 02 - Lớp 04)
* [cite_start]**B22DCAT034** - Trương Quốc Bảo [cite: 9]
* [cite_start]**B22DCAT186** - Vũ Đức Mạnh [cite: 10]
* [cite_start]**B22DCAT242** - Nguyễn Đình Quyền [cite: 11]
* [cite_start]**B22DCAT310** - Kiều Đình Văn [cite: 12]

**Giảng viên hướng dẫn:** TS. [cite_start]Đinh Trường Duy [cite: 15]

---

## 🏗️ Kiến trúc mô hình mạng (EMAL Lab)

Môi trường kiểm thử được phân đoạn chặt chẽ bởi tường lửa pfSense (FW-EMAL) thành 3 vùng mạng chính:

| Vùng mạng | Hostname | IP Address | Vai trò / Dịch vụ |
| :--- | :--- | :--- | :--- |
| **Outside** | `ATTACKER-KALI` | `10.10.10.10` | [cite_start]Máy trạm của Kẻ tấn công [cite: 449] |
| **DMZ** | `DMZ-WEB-01` | `10.10.20.10` | [cite_start]Public Web Server (Apache Struts2) [cite: 377, 450] |
| **Internal LAN** | `INT-MON-01` | `10.10.30.10` | [cite_start]Monitoring Server (Kibana/ELK) [cite: 381, 451] |
| **Internal LAN** | `INT-APP-01` | `10.10.30.20` | [cite_start]Internal Application Server (Laravel) [cite: 386, 452] |

---

## 🎯 Chuỗi lỗ hổng (Vulnerabilities & Kill Chain)

Kịch bản tấn công khai thác sự liên kết của 4 lỗ hổng nghiêm trọng để xâm nhập toàn diện hệ thống:

1. [cite_start]**CVE-2017-5638:** Lỗi RCE trên Apache Struts2 (DMZ-WEB-01) -> *Initial Access*. [cite: 274, 275]
2. [cite_start]**CVE-2019-7609:** Lỗi RCE (Prototype Pollution) trên Kibana (INT-MON-01) -> *Lateral Movement*. [cite: 281, 283]
3. [cite_start]**CVE-2018-15133:** Lỗi Insecure Deserialization trên Laravel (INT-APP-01) do rò rỉ `APP_KEY` -> *Application Compromise*. [cite: 288, 289, 290]
4. [cite_start]**CVE-2021-3156:** Lỗi Heap-based Buffer Overflow trên Sudo (Baron Samedit) -> *Privilege Escalation* (lên Root). [cite: 296, 297, 298]

### 🔄 Quy trình 8 giai đoạn (Attack Phases)
1. Khảo sát và thu thập thông tin (Reconnaissance)
2. Xâm nhập ban đầu vào Web Server DMZ (Initial Access)
3. Trinh sát nội bộ (Internal Reconnaissance)
4. Di chuyển ngang sang Kibana Server (Lateral Movement)
5. Thỏa hiệp máy chủ ứng dụng cốt lõi (Application Compromise)
6. Leo thang đặc quyền trên Linux (Privilege Escalation)
7. Duy trì xâm nhập bằng SUID Backdoor & Tài khoản ẩn (Persistence) 
8. Xóa dấu vết hệ thống (Clearing Tracks)

---

## 📂 Cấu trúc Repository

\`\`\`text
📦 PoC_n_Dockerfile_4_PentestFinalProject_Group02
 ┣ 📂 Dockerfiles
 ┃ ┣ 📂 DMZ-WEB-01-Struts2    # Môi trường chạy Apache Struts2 lỗi
 ┃ ┣ 📂 INT-MON-01-Kibana     # Môi trường chạy Kibana 5.6.14/6.x lỗi
 ┃ ┗ 📂 INT-APP-01-Laravel    # Môi trường chạy Laravel lỗi + Sudo 1.8.31
 ┣ 📂 PoC
 ┃ ┣ 📜 exploit_struts2.py    # Payload cho CVE-2017-5638
 ┃ ┣ 📜 exploit_kibana.py     # Payload cho CVE-2019-7609
 ┃ ┣ 📜 exploit_laravel.py    # Payload cho CVE-2018-15133
 ┃ ┗ 📜 exploit_nss.py        # Payload cho CVE-2021-3156 (Baron Samedit)
 ┣ 📜 BTL_KTXN_Nhom02.pdf     # Báo cáo kỹ thuật chi tiết
 ┗ 📜 README.md
\`\`\`

---

## 🚀 Hướng dẫn triển khai (Setup Instructions)

### 1. Dựng Lab với Docker
Đi vào từng thư mục trong `Dockerfiles` và sử dụng docker-compose hoặc docker build để dựng các node mạng.

\`\`\`bash
cd Dockerfiles/DMZ-WEB-01-Struts2
docker-compose up -d
\`\`\`
*(Thực hiện tương tự cho các máy chủ còn lại và cấu hình mạng tương ứng theo bảng IP phía trên).*

### 2. Thực thi PoC
Tất cả các PoC được viết bằng Python. Yêu cầu cài đặt các thư viện cần thiết trước khi chạy:

\`\`\`bash
# Ví dụ khai thác điểm vào ban đầu (Initial Access)
cd PoC
python3 exploit_struts2.py -u http://10.10.20.10:8080/ -c "id"
\`\`\`

---

## ⚠️ Cảnh báo pháp lý & Đạo đức (Disclaimer)

Các mã nguồn, kịch bản khai thác và môi trường Docker trong repository này được xây dựng **độc quyền cho mục đích học thuật, giáo dục và nghiên cứu an toàn thông tin** tại Học viện Công nghệ Bưu chính Viễn thông (PTIT). 

Tuyệt đối KHÔNG sử dụng các kỹ thuật và công cụ này để nhắm mục tiêu, tấn công hoặc xâm nhập vào các hệ thống máy tính, mạng lưới doanh nghiệp thực tế khi chưa có sự cho phép bằng văn bản từ chủ sở hữu. Nhóm tác giả không chịu bất kỳ trách nhiệm nào đối với các hành vi sử dụng sai mục đích, vi phạm pháp luật hoặc vi phạm đạo đức nghề nghiệp.