forked from tuankiet2s/mini-unix-brute
Delete README.vi.md
This commit is contained in:
-255
@@ -1,255 +0,0 @@
|
||||
# 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 (tối ưu) | 42.5KB | UPX LZMA ultra-brute |
|
||||
| Công cụ này (gốc) | 45.7KB | 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 và các cờ tối ưu tích cực
|
||||
3. **Strip binary nâng cao** để loại bỏ debug symbols và các section không sử dụng
|
||||
4. **Nén UPX LZMA** với chế độ ultra-brute để nén tối đa
|
||||
5. **Base image scratch** để giảm kích thước tối đa
|
||||
|
||||
## 🏗️ Build
|
||||
|
||||
```bash
|
||||
# Build image tối ưu (khuyến nghị)
|
||||
docker build -t bruteforce-optimized -f brute/source/Dockerfile.optimized brute/source
|
||||
|
||||
# Build image gốc
|
||||
docker build -t bruteforce-test -f brute/source/Dockerfile brute/source
|
||||
|
||||
# Kiểm tra kích thước image
|
||||
docker images bruteforce-optimized 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" \
|
||||
--volume "$(pwd)/brute/source/wordlist2.txt:/wordlist2.txt" \
|
||||
bruteforce-optimized:latest \
|
||||
root /wordlist2.txt
|
||||
```
|
||||
|
||||
### Chạy trực tiếp từ Docker Hub
|
||||
```bash
|
||||
# Kéo và chạy image công khai
|
||||
docker run --rm \
|
||||
--volume "/etc:/etc" \
|
||||
--volume "$(pwd)/brute/source/wordlist2.txt:/wordlist2.txt" \
|
||||
tuankiet2s/bruteforce-container:latest \
|
||||
root /wordlist2.txt
|
||||
```
|
||||
|
||||
### Ví Dụ Lệnh
|
||||
|
||||
#### Crack mật khẩu root
|
||||
```bash
|
||||
# Sử dụng image tối ưu (khuyến nghị)
|
||||
docker run --rm \
|
||||
--volume "/etc:/etc" \
|
||||
--volume "$(pwd)/brute/source/wordlist2.txt:/wordlist2.txt" \
|
||||
bruteforce-optimized:latest \
|
||||
root /wordlist2.txt
|
||||
|
||||
# Sử dụng image gốc
|
||||
docker run --rm \
|
||||
--volume "/etc:/etc" \
|
||||
--volume "$(pwd)/brute/source/wordlist2.txt:/wordlist2.txt" \
|
||||
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
|
||||
|
||||
#### Phiên Bản Tối Ưu (Khuyến Nghị)
|
||||
```bash
|
||||
gcc -static -Os -s \
|
||||
-fomit-frame-pointer \
|
||||
-fdata-sections \
|
||||
-ffunction-sections \
|
||||
-fno-unwind-tables \
|
||||
-fno-asynchronous-unwind-tables \
|
||||
-Wl,--gc-sections \
|
||||
-Wl,--strip-all \
|
||||
-o bruteforce \
|
||||
bruteforce.c \
|
||||
yescrypt-ref.c \
|
||||
yescrypt-common.c \
|
||||
sha256.c \
|
||||
insecure_memzero.c \
|
||||
&& strip --strip-all \
|
||||
--remove-section=.comment \
|
||||
--remove-section=.note.* \
|
||||
--remove-section=.eh_frame \
|
||||
bruteforce \
|
||||
&& upx --lzma --ultra-brute bruteforce
|
||||
```
|
||||
|
||||
#### Phiên Bản Gốc
|
||||
```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 tích cực**: Cờ `-Os` với các tối ưu bổ sung
|
||||
- **Strip symbols nâng cao**: Loại bỏ debug symbols và các section không sử dụng
|
||||
- **Nén UPX LZMA**: Chế độ ultra-brute với thuật toán LZMA để nén tối đa
|
||||
- **Loại bỏ code chết**: `--gc-sections` để loại bỏ các hàm không sử dụng
|
||||
- **Bỏ frame pointer**: `-fomit-frame-pointer` để giảm kích thước binary
|
||||
- **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.
|
||||
Reference in New Issue
Block a user