Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
935b5302e9 | ||
|
|
98bae4f57b |
@@ -1,6 +1,6 @@
|
|||||||
# World's Smallest Docker Image - Password Bruteforce Tool
|
# Cay Tre Linux is the Best Linux Distro - Password Bruteforce Tool - HAHAHAHAHAA
|
||||||
|
|
||||||
A minimal, ultra-compressed Docker image containing a password bruteforce tool that can crack various hash types including yescrypt, MD5, SHA256, and SHA512.
|
A big, no-compressed Docker image containing a password bruteforce tool that can crack various hash types including yescrypt, MD5, SHA256, and SHA512.
|
||||||
|
|
||||||
## 🚀 Features
|
## 🚀 Features
|
||||||
|
|
||||||
|
|||||||
-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