Beispiel #1
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.settings = getattr(settings, 'SELENE', DEFAULT_SETTINGS)
        self.transform = EtreeCheckCommandTransform()
    def test_no_status_transform(self):
        transform = EtreeCheckCommandTransform()

        with self.assertRaises(GvmError):
            transform('<foo/')
Beispiel #3
0
 def __init__(self,
              connection: GvmConnection,
              *,
              transform: Optional[Callable[[str], Any]] = None):
     super().__init__(connection, transform=EtreeCheckCommandTransform())
     self._gmp_transform = transform
#!/usr/bin/env python3

import gvm
from gvm.protocols.latest import Gmp
from gvm.transforms import EtreeCheckCommandTransform
from gvm.errors import GvmError

connection = gvm.connections.TLSConnection(hostname='localhost')

username = '******'
password = '******'

transform = EtreeCheckCommandTransform()

try:
    with Gmp(connection=connection, transform=transform) as gmp:
        gmp.authenticate(username, password)

        users = gmp.get_users()
        tasks = gmp.get_tasks()
        targets = gmp.get_targets()
        scanners = gmp.get_scanners()
        configs = gmp.get_configs()
        feeds = gmp.get_feeds()
        nvts = gmp.get_nvts()
        print("Users\n------------")
        for user in users.xpath('user'):
            print(user.find('name').text)
        print("\nTasks\n------------")
        for task in tasks.xpath('task'):
            print(task.find('name').text)
Beispiel #5
0
def main():
    do_not_run_as_root()

    parser = create_parser(description=HELP_TEXT, logfilename='gvm-script.log')

    parser.add_protocol_argument()

    parser.add_argument(
        'scriptname',
        metavar="SCRIPT",
        help='Path to script to be executed (example: myscript.gmp)',
    )
    parser.add_argument('scriptargs',
                        nargs='*',
                        metavar="ARG",
                        help='Arguments for the script')
    args, script_args = parser.parse_known_args()

    connection = create_connection(**vars(args))

    transform = EtreeCheckCommandTransform()

    global_vars = {
        '__version__': __version__,
        '__api_version__': __api_version__,
    }

    username = None
    password = None

    if args.protocol == PROTOCOL_OSP:
        protocol_class = Osp
        name = 'osp'
    else:
        protocol_class = Gmp
        name = 'gmp'

    try:
        with protocol_class(connection, transform=transform) as protocol:
            global_vars[name] = protocol
            global_vars['__name__'] = '__{}__'.format(name)

            if args.protocol == PROTOCOL_GMP:
                if args.gmp_username:
                    (username, password) = authenticate(
                        protocol,
                        username=args.gmp_username,
                        password=args.gmp_password,
                    )

            argv = [os.path.abspath(args.scriptname), *args.scriptargs]

            shell_args = Namespace(
                username=username,
                password=password,
                argv=argv,
                # for backwards compatibility we add script here
                script=argv,
                # the unknown args, which are owned by the script.
                script_args=script_args,
            )

            global_vars['args'] = shell_args

            run_script(args.scriptname, global_vars)

    except Exception as e:  # pylint: disable=broad-except
        print(e, file=sys.stderr)
        sys.exit(1)

    sys.exit(0)