gcarrilao/php-openvas-manager

PHP与OpenVas Manager协议之间的中间件

dev-master 2019-08-01 16:09 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:01 UTC


README

PHP应用程序和Openvas Manager协议之间的中间件。

作者

Federico Carrilao : federicoca95@gmail.com Facundo Gregorini : gregojff@gmail.com

复杂度

存在简单的和复杂的XML之间的定义复杂度。所有查询都通过反射创建。如果没有参数,则不需要指定复杂度。

无复杂度

<get_version/>
print_r($ov->get_version());

false,简单查询示例

<get_reports report_id="f0fdf522-276d-4893-9274-fb8699dc2270"/>
$options= array(
	"complexity" => False,
	"report_id" => "92a80a0a-bf25-4927-ae99-f8a9d5e3ed9d",
);

print_r($ov->get_reports($options));

true,复杂查询示例

<create_task>
  <name>Scan Webserver</name>
  <comment>Hourly scan of the webserver</comment>
  <config id="daba56c8-73ec-11df-a475-002264764cea"/>
  <target id="b493b7a8-7489-11df-a3ec-002264764cea" />
  <scanner id="15348381-3180-213f-4eec-123591912388"/>
</create_task>


<create_target>
  <name>All GNU/Linux machines</name>
  <hosts>192.168.1.0/24</hosts>
</create_target>
$options= array(
		"complexity" => true,
		"name" => "New task",
		"comment" => "Test Task",
		"target" => array( "id" =>"0aeba03c-86cb-477b-9656-d4fe9cff6c60"),
		"config" => array( "id" =>"74db13d6-7489-11df-91b9-002264764cea"),
);
print_r($ov->create_task($options));

$options= array(
	"complexity" => true,
	"name" => "Maquina 2",
	"hosts" => "192.168.1.196",
);


print_r($ov->create_target($options));

使用模式

方法的工作方式如下:__call方法被重新定义。当PHP中不存在方法时,它会重定向到__call。此方法能够识别根据其复杂度应该如何组装XML查询,并将其发送到OpenvasManager。收到的答案是xml,并将其转换为PHP对象。定义了一个唯一的方法“get_report_csv”,用于获取报告的csv结果。

获取版本

$ov = new OpenvasManager("localhost","9390","admin","admin");

print_r($ov->get_version());

获取目标

print_r($ov->get_targets());

获取特定目标

$options= array(
	"complexity" => false,
	"target_id" => "2e0b354e-c410-4dd6-90ba-b71156887838",
);

print_r($ov->get_targets($options));

创建目标

$options= array(
	"complexity" => true,
	"name" => "Maquina 2",
	"hosts" => "192.168.1.196",
);


print_r($ov->create_target($options));

创建任务

$options= array(
		"complexity" => true,
		"name" => "New task",
		"comment" => "Test Task",
		"target" => array( "id" =>"0aeba03c-86cb-477b-9656-d4fe9cff6c60"),
		"config" => array( "id" =>"74db13d6-7489-11df-91b9-002264764cea"),
);
print_r($ov->create_task($options));

开始任务

$options= array(
		"task_id" => "225eee06-b029-4bed-8b83-ab4cf7943a63",
);
print_r($ov->start_task($options));

获取报告

$options= array(
	"complexity" => False,
	"report_id" => "92a80a0a-bf25-4927-ae99-f8a9d5e3ed9d",
);

print_r($ov->get_reports($options));

获取CSV格式的报告

$ov->get_report_csv("92a80a0a-bf25-4927-ae99-f8a9d5e3ed9d");