1
2
3
4
5
6 import logging
7 import libvirt
8
9 from lib.cuckoo.common.abstracts import LibVirtMachinery
10 from lib.cuckoo.common.exceptions import CuckooCriticalError
11 from lib.cuckoo.common.exceptions import CuckooMachineError
12
13 -class ESX(LibVirtMachinery):
14 """Virtualization layer for ESXi/ESX based on python-libvirt."""
29
31 for credential in credentials:
32 if credential[0] == libvirt.VIR_CRED_AUTHNAME:
33 credential[4] = self.options.esx.username
34 elif credential[0] == libvirt.VIR_CRED_NOECHOPROMPT:
35 credential[4] = self.options.esx.password
36 else:
37 raise CuckooCriticalError("ESX machinery did not recieve an object to inject a username or password into")
38
39 return 0
40
42 try:
43 self.auth = [[libvirt.VIR_CRED_AUTHNAME, libvirt.VIR_CRED_NOECHOPROMPT], self._auth_callback, None]
44 return libvirt.openAuth(self.dsn, self.auth, 0)
45 except libvirt.libvirtError as libvex:
46 raise CuckooCriticalError("libvirt returned an exception on connection: %s" % libvex)
47