如題 目前
電腦中安裝了虛擬機 虛擬機的Openvas是使用官網提供的docker compose,
官網網址
這部分也能順利進入web介面,也可以正常掃描。
那目前主要需求是可以使用python串接 也找到有python-gvm這一個套件,後續才知道API是在9390port,那目前直接使用瀏覽器連入9390沒有任何訊息,python套件也連不上
我也調整docker-compose.yml當中的gvmd的內容但還是無法。
  gvmd:
    image: registry.community.greenbone.net/community/gvmd:stable
    restart: on-failure
    ports:
      - 0.0.0.0:9390:9390
    volumes:
      - gvmd_data_vol:/var/lib/gvm
      - scap_data_vol:/var/lib/gvm/scap-data/
      - cert_data_vol:/var/lib/gvm/cert-data
      - data_objects_vol:/var/lib/gvm/data-objects/gvmd
      - vt_data_vol:/var/lib/openvas/plugins
      - psql_data_vol:/var/lib/postgresql
      - gvmd_socket_vol:/run/gvmd
      - ospd_openvas_socket_vol:/run/ospd
      - psql_socket_vol:/var/run/postgresql
      - $HOME/.ssl/serverkey.pem:/var/lib/gvm/private/CA/serverkey.pem
      - $HOME/.ssl/servercert.pem:/var/lib/gvm/CA/servercert.pem
    depends_on:
      pg-gvm:
        condition: service_started
      scap-data:
        condition: service_completed_successfully
      cert-bund-data:
        condition: service_completed_successfully
      dfn-cert-data:
        condition: service_completed_successfully
      data-objects:
        condition: service_completed_successfully
      report-formats:
        condition: service_completed_successfully
試著用ChatGPT來協助回答,如果使用的是官網提供的指令來啟動 Greenbone,並且使用了 Docker Compose,回答仍然可以串接 API,只是可能會有一些額外的配置步驟來確保 API 可以正確啟用和運作。
docker-compose 啟動 Greenbone首先,使用以下命令啟動 Greenbone 容器:
docker compose -f $DOWNLOAD_DIR/docker-compose.yml up -d
這個指令會根據 $DOWNLOAD_DIR 中的 docker-compose.yml 配置檔來啟動 GVM 的服務。此配置檔通常會啟動必要的容器(如 gvmd、openvas、gsad 等),並配置相關的環境變數。
一旦啟動,您可以使用以下命令來檢查容器的狀態:
docker compose ps
此命令會列出所有正在運行的容器,您應該能看到名為 gvm 或類似名稱的容器在運行。
在 Docker Compose 配置中,Greenbone 的 API 應該已經包含在內,尤其是 gsad(Greenbone Security Assistant Daemon)和 gvmd(Greenbone Vulnerability Manager Daemon)應該會提供 API 訪問。
gsad 通常會提供 Web 介面(通常是 9392 端口)和 API 訪問(通常是 9390 端口)。gvmd 提供漏洞管理功能,並且會與 gsad 和 openvas 互動來執行漏洞掃描。您可以進一步檢查 Docker Compose 配置檔,確認 API 訪問是否已經啟用。配置檔中應該有一些環境變數或配置參數,您可以檢查是否設置了 API 相關的設定,像是:
通常,您應該能在配置檔中看到一些與 gvmd 和 gsad 相關的環境變數設置,例如:
services:
  gvm:
    image: greenbone/gvm
    ports:
      - "9390:9390"  # API 端口
      - "9392:9392"  # Web 端口
    environment:
      - GVM_PASSWORD=yourpassword  # 設置密碼
當 GVM 容器啟動並確保 API 正常運行後,您就可以開始透過 API 進行交互。確保您知道 API 端口(默認為 9390),並且擁有正確的認證(帳號/密碼或 API token)。
例如,使用 curl 或其他 HTTP 客戶端來進行 API 請求:
curl -X GET -H "Authorization: Bearer YOUR_API_TOKEN" http://localhost:9390/greenbone/vulnerabilities
API 密碼或認證:如果您沒有在 Docker Compose 配置中指定 API 密碼或認證,您可能需要先設定一個帳號和密碼來授權 API 訪問。
您可以進入容器來創建帳號,並配置 API 密碼:
docker exec -it gvm-container-name bash
gvmd --create-user=admin --password=adminpassword
確認容器端口映射:請確保 docker-compose.yml 中的端口映射是正確的,API 端口(9390)需要映射到主機的端口。
Docker Compose 配置文件:某些配置可能會因不同版本的 Greenbone 映像或 Docker Compose 配置而有所不同,您可以根據需要進行調整。
總結來說,使用 Docker Compose 啟動 Greenbone 後,您依然可以串接其 API,只要確保配置正確並且 API 服務正常啟動即可。如果配置正確,您可以透過相應的 API 請求來進行漏洞掃描或其他操作。
另外附上,瑪斯克號稱地表最強AI的回答
https://grok.com/share/bGVnYWN5_577b7898-8404-405d-bddb-910e812ce7ec
這兩個基本上都是差不多的方式,您可以試試看