# Docker Image Nhỏ Nhất Thế Giới - Công Cụ Bruteforce Mật Khẩu Một Docker image siêu nhỏ, được nén tối đa chứa công cụ bruteforce mật khẩu có thể crack nhiều loại hash khác nhau bao gồm yescrypt, MD5, SHA256 và SHA512. ## 🚀 Tính Năng - **Docker image siêu nhỏ** (~46KB đã nén) - **Hỗ trợ nhiều loại hash**: yescrypt, MD5, SHA256, SHA512 - **Binary tĩnh**: Không có dependency bên ngoài - **Nén UPX**: Tối ưu kích thước tối đa - **Tiến trình thời gian thực**: Hiển thị số lần thử và thống kê - **Logging chi tiết**: Output đầy đủ để debug ## 📊 So Sánh Kích Thước Image | Image | Kích Thước | Nén | |-------|------------|-----| | Công cụ này | ~46KB | UPX ultra-brute | | Alpine chuẩn | ~5MB | Không | | Ubuntu chuẩn | ~70MB | Không | ## 🛠️ Chi Tiết Kỹ Thuật ### Thuật Toán Hash Được Hỗ Trợ - **yescrypt** (`$y$`) - Mặc định Linux hiện đại - **MD5** (`$1$`) - Hỗ trợ legacy - **SHA256** (`$5$`) - Dựa trên SHA-256 - **SHA512** (`$6$`) - Dựa trên SHA-512 ### Quy Trình Build 1. **Multi-stage build** sử dụng Alpine Linux 2. **Biên dịch tĩnh** với musl-gcc 3. **Strip binary** để loại bỏ debug symbols 4. **Nén UPX** với chế độ ultra-brute 5. **Base image scratch** để giảm kích thước tối đa ## 🏗️ Build ```bash # Build image docker build -t bruteforce-test -f brute/source/Dockerfile brute/source # Kiểm tra kích thước image docker images bruteforce-test ``` ## 🚀 Sử Dụng ### Sử Dụng Cơ Bản ```bash # Crack mật khẩu cho user cụ thể docker run --rm \ --volume "/etc:/etc" \ --user root \ bruteforce-test:latest \ <đường_dẫn_wordlist> ``` ### Ví Dụ Lệnh #### Crack mật khẩu root ```bash docker run --rm \ --volume "/etc:/etc" \ --volume "$(pwd)/brute/source/wordlist2.txt:/wordlist2.txt" \ --user root \ bruteforce-test:latest \ root /wordlist2.txt ``` #### Crack mật khẩu user cụ thể ```bash docker run --rm \ --volume "/etc:/etc" \ --volume "$(pwd)/custom_wordlist.txt:/wordlist.txt" \ --user root \ bruteforce-test:latest \ alice /wordlist.txt ``` ### Ví Dụ Output ``` Target user: root Hash type: yescrypt Full hash: $y$j9T$dummy.salt.hash.example$dummy.hash.value.here Starting bruteforce... Tried 1000 passwords... Found password: [password_found] Total passwords tried: 102 Password successfully cracked! ``` ## 📁 Cấu Trúc Dự Án ``` . ├── brute/ │ └── source/ │ ├── Dockerfile # Cấu hình multi-stage build │ ├── bruteforce.c # Implementation bruteforce chính │ ├── wordlist.txt # Wordlist lớn (133MB) │ ├── wordlist2.txt # Wordlist nhỏ (801B) │ └── yescrypt/ # Implementation tham chiếu yescrypt │ ├── yescrypt-ref.c │ ├── yescrypt-common.c │ ├── sha256.c │ ├── insecure_memzero.c │ └── các file *.h └── README.md ``` ## 🔧 Phát Triển ### Yêu Cầu - Docker - Hệ thống Linux với quyền truy cập /etc/shadow - Quyền root (để truy cập file shadow) ### Cờ Biên Dịch ```bash gcc -static -Os -s -o bruteforce \ bruteforce.c \ yescrypt-ref.c \ yescrypt-common.c \ sha256.c \ insecure_memzero.c \ && strip --strip-all --remove-section=.comment bruteforce \ && upx --ultra-brute bruteforce ``` ### Kỹ Thuật Tối Ưu - **Link tĩnh**: Không có dependency bên ngoài - **Tối ưu kích thước**: Cờ `-Os` để giảm kích thước - **Strip symbols**: Loại bỏ debug symbols - **Nén UPX**: Chế độ ultra-brute để nén tối đa - **Base scratch**: Không có layer OS trong image cuối ## 🛡️ Cân Nhắc Bảo Mật ⚠️ **CẢNH BÁO**: Công cụ này chỉ dành cho mục đích giáo dục và kiểm thử được ủy quyền. - Chỉ sử dụng trên hệ thống bạn sở hữu hoặc có quyền kiểm thử rõ ràng - Tôn trọng luật pháp và quy định địa phương về việc crack mật khẩu - Sử dụng có trách nhiệm và đạo đức - Cân nhắc hệ quả pháp lý trước khi sử dụng ## 📈 Hiệu Suất - **Tốc độ**: Tối ưu cho kích thước hơn tốc độ - **Bộ nhớ**: Footprint bộ nhớ tối thiểu - **CPU**: Single-threaded, sử dụng nhiều CPU - **I/O**: Đọc file hiệu quả với syscall tối thiểu ## 🐛 Xử Lý Sự Cố ### Vấn Đề Thường Gặp 1. **Permission denied khi truy cập /etc/shadow** ```bash # Chạy với user root --user root ``` 2. **Không tìm thấy wordlist** ```bash # Đảm bảo mapping đường dẫn đúng --volume "$(pwd)/wordlist.txt:/wordlist.txt" ``` 3. **Không tìm thấy user trong file shadow** - Xác minh username tồn tại - Kiểm tra quyền file shadow ### Chế Độ Debug Công cụ cung cấp output chi tiết bao gồm: - Thông tin user mục tiêu - Loại hash và format - Cập nhật tiến trình mỗi 1000 lần thử - Thống kê cuối cùng ## 🤝 Đóng Góp 1. Fork repository 2. Tạo feature branch 3. Thực hiện thay đổi 4. Test kỹ lưỡng 5. Submit pull request ## 📄 Giấy Phép Dự án này dành cho mục đích giáo dục. Sử dụng có trách nhiệm và tuân thủ luật pháp hiện hành. ## 👨‍💻 Tác Giả **@tuankiet2s** ## 🙏 Lời Cảm Ơn - Implementation tham chiếu yescrypt - Công cụ nén UPX - Alpine Linux cho base image tối thiểu - Docker multi-stage builds --- **Nhớ**: Với sức mạnh lớn đi kèm trách nhiệm lớn. Sử dụng công cụ này một cách đạo đức và hợp pháp.