> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cystack.net/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI Reference

> Hướng dẫn chi tiết CLI cho kích hoạt, quét, báo cáo, Web UI, phát hiện tên miền con, cập nhật và tự động hóa

CLI của VulnScan dùng cùng lõi quét với Web UI. CLI phù hợp cho tự động hóa, lượt quét theo lịch, tích hợp CI/CD, quy trình lặp lại của đội bảo mật, chuẩn bị môi trường hạn chế Internet và xuất báo cáo bằng script. Với xử lý phát hiện và cộng tác nhóm, nên bắt đầu bằng Web UI rồi tự động hóa các quy trình đã ổn định.

## Tổng quan command

| Command        | Mục đích                                                                   |
| -------------- | -------------------------------------------------------------------------- |
| `activate`     | Kích hoạt khóa giấy phép hoặc file kích hoạt offline.                      |
| `license`      | Hiển thị trạng thái và giới hạn giấy phép.                                 |
| `fingerprint`  | In mã định danh máy cho kích hoạt offline.                                 |
| `deactivate`   | Gỡ kích hoạt khỏi máy hiện tại.                                            |
| `web`          | Khởi động Web UI server.                                                   |
| `scan`         | Chạy quét lỗ hổng và xuất CSV, JSON hoặc PDF.                              |
| `subdomain`    | Liệt kê tên miền con cho một tên miền.                                     |
| `prep-offline` | Chuẩn bị dữ liệu quét và dữ liệu tình báo cho môi trường hạn chế Internet. |
| `update`       | Cập nhật VulnScan và dữ liệu nếu bản triển khai hỗ trợ.                    |
| `version`      | In thông tin phiên bản.                                                    |

## Global flags

| Flag            | Mô tả                                                        |
| --------------- | ------------------------------------------------------------ |
| `-c, --config`  | Đường dẫn file cấu hình. Mặc định: `./configs/default.yaml`. |
| `--log-level`   | Mức log: `debug`, `info`, `warn` hoặc `error`.               |
| `-v, --verbose` | Bật đầu ra chi tiết hơn.                                     |

Dùng cùng file cấu hình cho Web UI và CLI nếu muốn kết quả CLI nằm trong cùng cơ sở dữ liệu của không gian làm việc.

## Activate

Kích hoạt online:

```bash theme={null}
vulnscan activate --license CYSTACK-XXXX-XXXX-XXXX-XXXX
```

Kích hoạt offline:

```bash theme={null}
vulnscan fingerprint
vulnscan activate --file activation.dat
```

Flags:

| Flag        | Mô tả                                       |
| ----------- | ------------------------------------------- |
| `--license` | Khóa giấy phép do CyStack cung cấp.         |
| `--file`    | File kích hoạt offline do CyStack cung cấp. |

Sau khi kích hoạt, chạy:

```bash theme={null}
vulnscan license
```

để kiểm tra phạm vi mục tiêu, ngày hết hạn, số lượt kích hoạt và tính năng được cấp phép.

## License, fingerprint và deactivate

Xem trạng thái giấy phép:

```bash theme={null}
vulnscan license
```

In mã định danh máy:

```bash theme={null}
vulnscan fingerprint
```

Gỡ kích hoạt trên máy hiện tại:

```bash theme={null}
vulnscan deactivate
```

Nên deactivate trước khi chuyển hẳn VulnScan sang máy chủ khác để lượt kích hoạt được sử dụng đúng theo chính sách giấy phép.

## Khởi động Web UI

Chạy với địa chỉ cục bộ mặc định:

```bash theme={null}
vulnscan web
```

Bind ra interface dùng chung và đặt thư mục dữ liệu:

```bash theme={null}
vulnscan web --bind 0.0.0.0:8080 --data-dir /var/lib/cystack-vulnscan
```

Flags:

| Flag         | Mô tả                                                                                                     |
| ------------ | --------------------------------------------------------------------------------------------------------- |
| `--bind`     | Địa chỉ và cổng của Web UI server.                                                                        |
| `--data-dir` | Thư mục dữ liệu của không gian làm việc cho cơ sở dữ liệu, báo cáo, trạng thái giấy phép và file runtime. |

Ở lần chạy đầu tiên, mở URL hiển thị trong terminal và tạo tài khoản quản trị viên đầu tiên.

## Scan

`scan` chạy phát hiện tài sản, nhận diện công nghệ, kiểm tra lỗ hổng, bổ sung dữ liệu, gộp kết quả, chấm điểm rủi ro, lưu trữ và xuất báo cáo.

### Quét một mục tiêu

```bash theme={null}
vulnscan scan --target https://app.acme.com --output ./reports --format json,csv --lang en
```

### Quét nhiều mục tiêu

```bash theme={null}
vulnscan scan --target https://app.acme.com --target https://api.acme.com --output ./reports --format json,csv
```

### Quét từ file mục tiêu

Tạo `targets.txt`:

```text theme={null}
https://app.acme.com
https://api.acme.com
203.0.113.21
203.0.113.0/28
```

Chạy:

```bash theme={null}
vulnscan scan --target-file ./targets.txt --output ./reports --format json,csv
```

### Bao gồm tên miền con

```bash theme={null}
vulnscan scan --target acme.com --include-subdomains --output ./reports --format json,csv
```

Dùng khi tên miền gốc nằm trong giấy phép và cần đánh giá bề mặt tấn công rộng hơn.

### Quét ứng dụng yêu cầu đăng nhập

Cookie phiên đăng nhập:

```bash theme={null}
vulnscan scan --target https://portal.acme.com --cookie "session=REDACTED; tenant=acme" --output ./reports --format json,csv
```

Bearer token hoặc API key:

```bash theme={null}
vulnscan scan --target https://api.acme.com -H "Authorization: Bearer REDACTED" -H "X-Tenant: acme" --output ./reports --format json,csv
```

HTTP Basic Auth:

```bash theme={null}
vulnscan scan --target https://staging.acme.com --basic-auth "scanner:REDACTED" --output ./reports --format json,csv
```

Dùng tài khoản kiểm thử riêng và tránh dùng phiên quản trị cá nhân nếu kế hoạch đánh giá không cho phép.

### Tạo báo cáo

CSV và JSON:

```bash theme={null}
vulnscan scan --target https://app.acme.com --output ./reports --format csv,json
```

PDF tiếng Anh:

```bash theme={null}
vulnscan scan --target https://app.acme.com --output ./reports --format pdf --lang en
```

PDF tiếng Việt nếu hỗ trợ:

```bash theme={null}
vulnscan scan --target https://app.acme.com --output ./reports --format pdf --lang vi
```

### Scan flags

| Flag                   | Mô tả                                                              |
| ---------------------- | ------------------------------------------------------------------ |
| `--target`             | Mục tiêu IP, CIDR, dải địa chỉ, tên miền hoặc URL. Có thể lặp lại. |
| `--target-file`        | File chứa mỗi dòng một mục tiêu.                                   |
| `--include-subdomains` | Phát hiện và quét tên miền con cho mục tiêu dạng tên miền.         |
| `--cookie`             | Cookie string cho quét web có xác thực.                            |
| `--basic-auth`         | HTTP Basic Auth credential dạng `user:password`.                   |
| `-H, --header`         | HTTP header tùy chỉnh. Có thể lặp lại.                             |
| `-o, --output`         | Thư mục lưu file báo cáo.                                          |
| `--format`             | Danh sách định dạng: `json`, `csv`, `pdf`.                         |
| `--lang`               | Ngôn ngữ báo cáo: `en` hoặc `vi`.                                  |

## Phát hiện tên miền con

Liệt kê tên miền con:

```bash theme={null}
vulnscan subdomain --target acme.com
```

Trả về JSON:

```bash theme={null}
vulnscan subdomain --target acme.com --json
```

Flags:

| Flag       | Mô tả                     |
| ---------- | ------------------------- |
| `--target` | Tên miền gốc cần liệt kê. |
| `--json`   | Xuất kết quả dạng JSON.   |

Dùng phát hiện tên miền con trước khi quét rộng để hiểu phạm vi và số lượng mục tiêu.

## Offline preparation

Chuẩn bị dữ liệu quét và dữ liệu tình báo cho môi trường offline hoặc pre-baked:

```bash theme={null}
vulnscan prep-offline
```

Chạy lệnh này trước khi đưa package vào mạng hạn chế. Deployment offline vẫn cần giấy phép hợp lệ và quy trình cập nhật riêng.

## Update và version

In version:

```bash theme={null}
vulnscan version
```

Cập nhật VulnScan:

```bash theme={null}
vulnscan update
```

Tuân thủ quy trình quản lý thay đổi của tổ chức trước khi cập nhật bộ quét trong môi trường vận hành chính.

## Mẫu tự động hóa

### Quét Internet-facing hằng đêm

```bash theme={null}
vulnscan scan --target-file ./production-targets.txt --include-subdomains --output ./nightly-reports --format json,csv --lang en
```

### Kiểm tra bảo mật trong CI

```bash theme={null}
vulnscan scan --target https://staging.acme.com -H "Authorization: Bearer REDACTED" --output ./ci-reports --format json --log-level warn
```

### Báo cáo khách hàng tiếng Việt

```bash theme={null}
vulnscan scan --target https://customer-portal.acme.com --output ./customer-report --format pdf --lang vi
```

## Checklist CLI

* Chỉ quét mục tiêu thuộc giấy phép.
* Giữ cấu hình CLI đồng bộ với Web UI nếu cần nhất quán dữ liệu.
* Dùng file mục tiêu cho tự động hóa lặp lại.
* Dùng tài khoản kiểm thử riêng cho quét có xác thực.
* Lưu báo cáo trong thư mục có kiểm soát.
* Dùng JSON cho tích hợp và CSV cho theo dõi khắc phục.
* Review kết quả nghiêm trọng cao trên Web UI khi cần xử lý theo nhóm.
