| name | openvas |
| description | Auth/lab ref: OpenVAS / Greenbone Community Edition: broad network vulnerability scanner checking 90,000+ NVTs across hosts, services, and web apps. |
| license | GPL-2.0 |
| compatibility | Linux (recommended). |
| metadata | {"author":"AeonDave","version":"1.0"} |
OpenVAS / Greenbone Community Edition
Network and service vulnerability scanner — 90,000+ NVTs, CVEs, misconfigs, compliance.
Architecture
GSA (Web UI :9392) ─→ gvmd ─→ ospd-openvas ─→ openvas-scanner
│ │
PostgreSQL Redis (NVT cache)
Components: gvmd (manager daemon), ospd-openvas (OSP wrapper), openvas (scanner), gsa (web UI), notus-scanner (fast CVE checks via JSON advisories).
Deploy (Docker — Greenbone Community Edition)
curl -f -O https://greenbone.github.io/docs/latest/_static/docker-compose-22.4.yml
docker compose -f docker-compose-22.4.yml -p greenbone-community-edition pull
docker compose -f docker-compose-22.4.yml -p greenbone-community-edition up -d
docker compose -f docker-compose-22.4.yml -p greenbone-community-edition \
logs -f vulnerability-tests
GSA Web UI Scan Workflow
1. Configuration → Credentials # Optional: SSH/SMB creds for authenticated scan
2. Configuration → Targets # Create target (hosts/subnet, port list)
3. Configuration → Scan Configs # Choose config (see table)
4. Scans → Tasks → New Task # Bind target + config + optional credentials
5. ▶ Start Task # Execute
6. Scans → Reports → select # View findings; export XML/CSV/PDF
Scan Configurations
| Config | ID | Use |
|---|
| Full and Fast | daba56c8-73ec-11df-a475-002264764cea | Standard pentest scan |
| Full and Deep | 698f691e-7489-11df-9d8c-002264764cea | Slower, more thorough |
| Empty | 085569ce-73ed-11df-83c3-002264764cea | Base for custom configs |
| Discovery | 8715c877-47a0-438d-98a3-27c7a6ab2196 | Port/service discovery only |
| Host Discovery | 2d3f051c-55ba-11e3-bf43-406186ea4fc5 | Ping sweep only |
| System Discovery | bbca7412-a950-11e3-9109-406186ea4fc5 | OS/service fingerprinting |
gvm-cli (Command Line)
pip install gvm-tools
alias gvmcli='gvm-cli --gmp-username admin --gmp-password admin \
socket --socketpath /run/gvmd/gvmd.sock --xml'
gvmcli '<get_version/>'
gvmcli '<get_targets/>'
gvmcli '<get_tasks/>'
gvmcli '<get_results task_id="TASK_ID"/>'
gvmcli '<get_reports report_id="REPORT_ID" filter="apply_overrides=0 min_qod=70"/>'
Create Scan via CLI
gvmcli '<create_target>
<name>My Target</name>
<hosts>192.168.1.0/24</hosts>
<port_list id="33d0cd82-57c6-11e1-8ed1-406186ea4fc5"/>
</create_target>'
gvmcli '<create_task>
<name>Scan Task</name>
<target id="TARGET_ID"/>
<config id="daba56c8-73ec-11df-a475-002264764cea"/>
</create_task>'
gvmcli '<start_task task_id="TASK_ID"/>'
gvmcli '<get_tasks task_id="TASK_ID"/>'
Port List IDs
| Port List | ID |
|---|
| All IANA Assigned TCP | 33d0cd82-57c6-11e1-8ed1-406186ea4fc5 |
| All TCP and Nmap Top 100 UDP | 730ef368-57e2-11e1-a90f-406186ea4fc5 |
| All TCP | fd591a34-56fd-11e1-9f27-406186ea4fc5 |
gvm-pyshell (Python Scripting)
gvm-pyshell --gmp-username admin --gmp-password admin \
socket --socketpath /run/gvmd/gvmd.sock
>>> targets = gmp.get_targets()
>>> tasks = gmp.get_tasks()
>>> gmp.start_task(task_id='TASK_ID')
Useful Filters
gvmcli '<get_results filter="severity>7 min_qod=70 sort-reverse=severity"/>'
gvmcli '<get_nvts filter="type=cve"/>'
Feed Update (Manual)
docker compose exec ospd-openvas greenbone-nvt-sync
docker compose exec gvmd greenbone-feed-sync --type GVMD_DATA
docker compose exec gvmd greenbone-feed-sync --type SCAP
docker compose exec gvmd greenbone-feed-sync --type CERT
Common Troubleshooting
| Symptom | Fix |
|---|
| Scan stuck at 0% | Check scanner registered: gvmcli '<get_scanners/>' |
| Feed empty / old NVTs | Run greenbone-nvt-sync manually |
| GSA unreachable | Check port 9392 and SSH tunnel if remote |
| Scan very slow | Use "Full and Fast" not "Full and Deep"; reduce concurrent hosts |
| Low QoD results | Filter with min_qod=70 (confirmed findings only) |
QoD (Quality of Detection)
| QoD | Meaning |
|---|
| 100% | Package version check (most reliable) |
| 70%+ | Active exploit confirmation |
| 50% | Remote banner check |
| 30% | Unreliable/indirect detection |
Filter min_qod=70 eliminates most false positives.
References