Cách cài đặt và sử dụng Vuls Vulnerability Scanner trên Ubuntu 24.04

theanh

Administrator
Nhân viên
Vuls là trình quét lỗ hổng không cần tác nhân, miễn phí và mã nguồn mở có thể chạy ở bất kỳ đâu. Bạn có thể chạy Vuls trên Cloud, tại chỗ và Docker, đồng thời hỗ trợ các bản phân phối chính. Vuls hỗ trợ nhiều cơ sở dữ liệu lỗ hổng như NVD, JVN, OVAL, RHSA/ALAS/ELSA/FreeBSD-SA.

Với Vuls, bạn có thể quét nhiều hệ điều hành bằng nhiều phương pháp. Bạn có thể quét máy chủ cục bộ của máy chủ và quét máy chủ/máy chủ từ xa qua SSH. Nó cũng cung cấp nhiều phương pháp quét, quét nhanh không yêu cầu quyền root và quét sâu yêu cầu quyền root. Vuls có thể quét nhiều máy chủ đích cùng một lúc. Khi quá trình quét hoàn tất, bạn có thể gửi kết quả qua Email và Slack.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Vuls Vulnerability Scanner trên máy chủ Ubuntu 24.04. Bạn sẽ cài đặt Vuls, tạo cơ sở dữ liệu CVE và quét Ubuntu/Debian thông qua các lần quét cục bộ và từ xa.

Điều kiện tiên quyết​

Để bắt đầu với hướng dẫn này, hãy đảm bảo bạn có những điều sau:
  • Máy chủ Ubuntu 24.04
  • Người dùng không phải root có quyền root
  • Máy Ubuntu/Debian bổ sung để quét từ xa qua Vuls

Cài đặt các phần phụ thuộc​

Trước khi cài đặt Vuls, bạn phải đảm bảo Golang đã được cài đặt trên hệ thống của mình. Hiện tại, phiên bản Vuls mới nhất yêu cầu Golang mới nhất, vì vậy bạn cần cài đặt Golang theo cách thủ công bằng cách tải xuống gói nhị phân.

Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Ubuntu của bạn và cài đặt các phụ thuộc như 'sqlite3', 'git', 'make' và 'gcc'.
Mã:
sudo apt update
sudo apt install sqlite3 git debian-goodies gcc make wget -y

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22326%22%3E%3C/svg%3E


Sau khi các dependency được cài đặt, bạn cần cài đặt Golang trên hệ thống của mình. Trong ví dụ này, bạn sẽ có phiên bản Golang mới nhất thông qua cài đặt nhị phân thủ công.

Chọn phiên bản Golang của bạn với các mục sau. Ví dụ Golang 1.23.2:
Mã:
export latest_version=1.23.2
Chạy lệnh 'wget' bên dưới để tải xuống Golang và giải nén nó vào thư mục '/usr/local' bằng lệnh 'tar'.
Mã:
wget https://dl.google.com/go/go$latest_version.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go$latest_version.linux-amd64.tar.gz
Sau khi Golang được đã cài đặt, hãy đăng nhập vào người dùng của bạn và tạo một thư mục 'go' mới trong thư mục gốc.
Mã:
su - arvd
mkdir $HOME/go
Tiếp theo, tạo một tệp env mới '/etc/profile.d/go-env.sh' bằng trình soạn thảo 'nano'.
Mã:
sudo nano /etc/profile.d/go-env.sh
Dán cấu hình sau để thiết lập PATH cho Golang.
Mã:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Lưu và thoát khỏi tệp khi hoàn tất.

Bây giờ, hãy thực thi '/etc/profile.d/go-env.sh' và tải nó vào phiên hiện tại của bạn với 'nguồn' lệnh.
Mã:
sudo chmod +x /etc/profile.d/go-env.sh
source /etc/profile.d/go-env.sh
Cuối cùng, hãy kiểm tra tệp nhị phân để tìm 'go' và kiểm tra phiên bản của tệp này bằng lệnh sau:
Mã:
which go
go version
Như bạn có thể thấy bên dưới, Golang '1.23.2' được cài đặt trong '/usr/local/go/bin/go'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22616%22%20height=%22247%22%3E%3C/svg%3E

Cài đặt Vuls và từ điển Vuls​

Sau khi cài đặt Golang, bạn sẽ biên dịch và cài đặt Vuls cùng các thành phần của nó để xây dựng cơ sở dữ liệu CVE theo định dạng sqlite3. Dưới đây là một số thành phần Vuls mà bạn sẽ cài đặt:
  • 'go-cve-dictionary' được sử dụng để xây dựng NVD (Cơ sở dữ liệu lỗ hổng quốc gia)
  • 'goval-dictionary' để xây dựng cơ sở dữ liệu OVAL chứa CVE cho hầu hết các bản phân phối Linux như Debian, Ubuntu và RedHat
  • 'go-exploitdb' để tìm kiếm khai thác từ cơ sở dữ liệu exploitdb
  • 'go-msfdb' để tìm kiếm CVE trong cơ sở dữ liệu Metasploit
  • 'go-kev' để xây dựng bản sao cục bộ của KEV (Lỗ hổng đã khai thác đã biết) do CISA cung cấp
  • 'go-cti' sẽ được sử dụng để xây dựng cơ sở dữ liệu CVE từCTI (Mối đe dọa mạng Trí thông minh)
Đầu tiên, hãy chạy lệnh bên dưới để tạo thư mục nhật ký mới và thay đổi quyền sở hữu cho người dùng của bạn, chẳng hạn như 'arvd'.
Mã:
sudo mkdir /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}
sudo chown arvd /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}
sudo chmod 700 /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}
Tạo một thư mục mới '$GOPATH/src/github.com/vulsio' với nội dung sau:
Mã:
mkdir -p $GOPATH/src/github.com/vulsio
Di chuyển đến thư mục '$GOPATH/src/github.com/vulsio', tải xuống mã nguồn của công cụ 'go-cve-dictionary' qua 'git', sau đó biên dịch và cài đặt nó.
Mã:
cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-cve-dictionary.git
cd go-cve-dictionary; make install

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22353%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh bên dưới để tải xuống, biên dịch và cài đặt 'goval-dictionary' công cụ.
Mã:
cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/goval-dictionary.git
cd goval-dictionary; make install

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22146%22%3E%3C/svg%3E


Sau khi cài đặt 'goval-dictionary', hãy chuyển sang công cụ tiếp theo để cài đặt 'go-exploitdb' công cụ.
Mã:
cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-exploitdb.git
cd go-exploitdb; make install
ln -s $GOPATH/src/github.com/vulsio/go-exploitdb/go-exploitdb.sqlite3 $HOME/go-exploitdb.sqlite3

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22281%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh bên dưới để cài đặt và biên dịch 'go-msfdb' công cụ.
Mã:
cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-msfdb.git
cd go-msfdb; make install

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22171%22%3E%3C/svg%3E


Sau đó, cài đặt công cụ 'go-kev' để xây dựng cơ sở dữ liệu CVE cho KEV (Lỗ hổng đã khai thác đã biết) của CIS CISA.
Mã:
cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-kev.git
cd go-kev; make install
ln -s $GOPATH/src/github.com/vulsio/go-kev/go-kev.sqlite3 $HOME/go-kev.sqlite3

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2268%22%3E%3C/svg%3E


Sau đó cài đặt công cụ 'go-cti' sẽ được sử dụng để xây dựng CVE từ CTI (Mối đe dọa mạng Trí thông minh).
Mã:
cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-cti.git
cd go-cti; make install
ln -s $GOPATH/src/github.com/vulsio/go-cti/go-cti.sqlite3 $HOME/go-cti.sqlite3

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2266%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh bên dưới để tải xuống, biên dịch và cài đặt 'vuls' vào Ubuntu của bạn máy.
Mã:
mkdir -p $GOPATH/src/github.com/future-architect
cd $GOPATH/src/github.com/future-architect
git clone https://github.com/future-architect/vuls.git
cd vuls; make install

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E


Khi mọi thứ đã được cài đặt, tệp nhị phân cho từng công cụ sẽ có sẵn trong thư mục '$GOPATH/bin'. Chạy lệnh bên dưới để kiểm tra thư mục đó.
Mã:
ls $GOPATH/bin/
Bạn có thể thấy tệp nhị phân bên dưới cho 'vuls', 'go-cve-dictionary', 'goval-dictionary', 'go-exploitdb', 'go-msfdb', 'go-kev' và 'go-cti'.

Cuối cùng, bạn cũng có thể kiểm tra lệnh 'vuls' bên dưới. Thao tác này sẽ hiển thị cho bạn thông báo trợ giúp về 'vuls'.
Mã:
vuls help

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22435%22%3E%3C/svg%3E

Tải xuống CVE (Lỗ hổng và sự cố phổ biến) cơ sở dữ liệu​

Trong ví dụ này, bạn sẽ tải xuống cơ sở dữ liệu CVE cho:
  • NVD (Cơ sở dữ liệu lỗ hổng quốc gia) qua 'go-cve-dictionary'
  • OVAL (Ngôn ngữ đánh giá và lỗ hổng mở) cho Ubuntu 24.04 qua 'goval-dictionary'
  • Cơ sở dữ liệu ExploitDB qua 'go-exploitdb'
  • Cơ sở dữ liệu Metasploit qua 'go-msfdb'
  • Danh mục KEV (Lỗ hổng đã khai thác đã biết) của CISA qua 'go-kev'
  • Cơ sở dữ liệu MITRE ATT&CK và CAPEC qua 'go-cti'
Truy cập thư mục gốc của bạn bằng lệnh sau:
Mã:
cd $HOME
Bây giờ hãy chạy lệnh bên dưới để tải xuống và xây dựng cơ sở dữ liệu CVE (Các lỗ hổng và sự cố phổ biến).
Mã:
go-cve-dictionary fetch nvd
goval-dictionary fetch ubuntu 24.04
go-exploitdb fetch exploitdb
go-msfdb fetch msfdb
go-kev fetch kevuln
go-cti fetch threat









data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22275%22%3E%3C/svg%3E


Sau khi quá trình hoàn tất, cơ sở dữ liệu CVE của bạn sẽ có sẵn trong thư mục gốc của bạn với định dạng '.sqlite3'. Xác minh danh sách cơ sở dữ liệu bằng lệnh sau:
Mã:
ls -ah *.sqlite3

Quét máy cục bộ bằng Vuls​

Bây giờ bạn đã cài đặt Vuls và các thành phần của nó bao gồm cơ sở dữ liệu CVE. Trong phần này, bạn sẽ quét máy Ubuntu cục bộ của mình bằng Vuls.

Trong thư mục gốc của bạn, hãy tạo một tệp mới 'config.toml' bằng trình chỉnh sửa 'nano'.
Mã:
nano config.toml
Chèn cấu hình bên dưới để thiết lập quét máy chủ cục bộ với chế độ 'nhanh.
Mã:
[servers]

[servers.localhost]
host = "localhost"
port = "local"
scanMode = [ "fast" ]
#scanMode = ["fast", "fast-root", "deep", "offline"]
Lưu tệp và thoát khỏi trình chỉnh sửa.

Bây giờ hãy chạy lệnh 'vuls' bên dưới để xác minh tệp 'config.toml'.
Mã:
vuls configtest
Nếu bạn cấu hình đúng, bạn sẽ thấy đầu ra như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22392%22%3E%3C/svg%3E


Tiếp theo, quét localhost bằng lệnh 'vuls scan' bên dưới.
Mã:
sudo vuls scan
Bạn có thể thấy bên dưới quá trình quét đã hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22548%22%3E%3C/svg%3E


Để biết thông tin chi tiết về báo cáo quét, hãy sử dụng lệnh 'vuls tui' bên dưới. Thao tác này sẽ hiển thị cho bạn giao diện người dùng đầu cuối của báo cáo Vuls.
Mã:
sudo vuls tui
Bạn có thể nhấn 'CTRL+c' để thoát khỏi TUI của Vuls.

Quét máy chủ từ xa bằng Vuls​

Trong phần này, bạn sẽ tìm hiểu cách thiết lập quét từ xa bằng Vuls. Vì vậy, bạn sẽ quét hệ thống từ xa thông qua SSH bằng Vuls. Trong ví dụ này, bạn sẽ quét máy chủ đích Debian 12 với địa chỉ IP '192.168.10.10' và người dùng là 'alice'.

Trước tiên, hãy chạy lệnh bên dưới để tải xuống cơ sở dữ liệu OVAL cho Debian 12.
Mã:
goval-dictionary fetch debian 12
Bây giờ hãy tạo khóa công khai và riêng tư SSH, sau đó tải lên máy chủ đích với 'ssh-copy-id' lệnh.
Mã:
ssh-keygen -t ed25519
ssh-copy-id [emailprotected]

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22270%22%3E%3C/svg%3E


Kết nối với máy chủ đích '192.168.10.10', sau đó cập nhật chỉ mục gói và cài đặt các gói phụ thuộc như 'debian-goodies' và 'reboot-notifier'.
Mã:
ssh [emailprotected]
sudo apt update && sudo apt install debian-goodies reboot-notifier -y
Nhập 'exit' để đăng xuất khỏi máy chủ đích.

Tiếp theo, mở cấu hình Vuls 'config.toml' bằng trình soạn thảo 'nano'.
Mã:
nano ~/config.toml
Chèn cấu hình bên dưới để thêm thông tin chi tiết về máy chủ đích. Trong trường hợp này, máy chủ đích mới sẽ được đặt tên là 'debian12' với địa chỉ IP '192.168.10.10' và xác thực qua khóa SSH.
Mã:
[servers.debian12]
host = "192.168.10.10"
port = "22"
user = "alice"
keyPath = "~/.ssh/id_ed25519"
scanMode = [ "fast-root" ] # "fast", "fast-root" or "deep"
Lưu tệp và thoát khỏi trình chỉnh sửa.

Bây giờ hãy chạy lệnh 'vuls' bên dưới để xác minh cấu hình của bạn. Hãy đảm bảo rằng bạn có cấu hình đúng và phù hợp.
Mã:
vuls configtest
Sau đó, quét máy chủ 'debian12' từ xa bằng lệnh bên dưới.
Mã:
vuls scan debian12
Bạn có thể thấy bên dưới quá trình quét từ xa qua Vuls đã hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22481%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã hoàn tất cài đặt Vuls Vulnerability Scanner trên máy chủ Ubuntu 24.04. Bạn cũng đã học cách tạo cơ sở dữ liệu CVE bằng Vuls, quét máy chủ cục bộ và từ xa bằng Vuls. Từ đây, giờ bạn có thể tích hợp Vuls với một trình quét khác như NMAP để quét cổng hoặc bạn cũng có thể cài đặt Vulsrepo cho giao diện đồ họa và web.
 
Back
Bên trên