ci / audit (push) Successful in 24s
GLPI target → Discovery config → OpenVAS scanner → report c3294575-3db4-4ad1-8e50-3ca6d23fb137 (18 info, 1 low ICMP-timestamp, 2 unscored). VM shut back down. Pipeline scripts in openvas/scan-pipeline/. https://projects.knownelement.com/issues/389
43 lines
1.8 KiB
Plaintext
43 lines
1.8 KiB
Plaintext
from lxml import etree
|
|
|
|
# find Discovery scan config
|
|
cfg = etree.fromstring(gmp.send_command('<get_configs details="0"/>').encode())
|
|
config_id = None
|
|
for c in cfg.findall('.//config'):
|
|
if (c.findtext('name') or '').strip() == 'Discovery':
|
|
config_id = c.get('id')
|
|
break
|
|
print('config=' + str(config_id))
|
|
|
|
# find the target for the pbs (glpi-*)
|
|
tg = etree.fromstring(gmp.send_command('<get_targets filter="rows=-1"/>').encode())
|
|
target_id = None
|
|
for t in tg.findall('.//target'):
|
|
if 'proxmox-pbs' in (t.findtext('name') or '') or '100.127.238.29' in (t.findtext('hosts') or ''):
|
|
target_id = t.get('id')
|
|
print('target=' + (t.findtext('name') or ''))
|
|
break
|
|
print('target_id=' + str(target_id))
|
|
|
|
# find the openvas scanner
|
|
sc = etree.fromstring(gmp.send_command('<get_scanners/>').encode())
|
|
scanner_id = None
|
|
for s in sc.findall('.//scanner'):
|
|
if 'openvas' in (s.findtext('name') or '').lower() or 'OSP' in (s.findtext('type') or ''):
|
|
scanner_id = s.get('id')
|
|
break
|
|
print('scanner=' + str(scanner_id))
|
|
|
|
if config_id and target_id and scanner_id:
|
|
r = etree.fromstring(gmp.send_command(
|
|
f'<create_task><name>first-discovery-sectestbed-pbs [#389]</name>'
|
|
f'<comment>OAM lane first scan; sectestbed target, GLPI-fed</comment>'
|
|
f'<config id="{config_id}"/><target id="{target_id}"/><scanner id="{scanner_id}"/></create_task>').encode())
|
|
task_id = r.findtext('.//task') if r.find('.//task') is not None else None
|
|
print('create_status=' + str(r.get('status')))
|
|
if task_id is not None:
|
|
tid = task_id.get('id') if hasattr(task_id, 'get') else task_id.text
|
|
s = etree.fromstring(gmp.send_command(f'<start_task task_id="{tid}"/>').encode())
|
|
print('start_status=' + str(s.get('status')))
|
|
print('task_id=' + str(tid))
|