dissect.target 3.18.dev16__py3-none-any.whl → 3.19.dev2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,6 +10,7 @@ import time
10
10
  import urllib
11
11
  from dataclasses import dataclass
12
12
  from functools import lru_cache
13
+ from getpass import getpass
13
14
  from pathlib import Path
14
15
  from struct import pack, unpack_from
15
16
  from threading import Thread
@@ -270,19 +271,25 @@ class Broker:
270
271
  case = None
271
272
  bytes_received = 0
272
273
  monitor = False
274
+ username = None
275
+ password = None
273
276
 
274
277
  diskinfo = {}
275
278
  index = {}
276
279
  topo = {}
277
280
  factor = 1
278
281
 
279
- def __init__(self, broker: Broker, port: str, key: str, crt: str, ca: str, case: str, **kwargs):
282
+ def __init__(
283
+ self, broker: Broker, port: str, key: str, crt: str, ca: str, case: str, username: str, password: str, **kwargs
284
+ ):
280
285
  self.broker_host = broker
281
286
  self.broker_port = int(port)
282
287
  self.private_key_file = key
283
288
  self.certificate_file = crt
284
289
  self.cacert_file = ca
285
290
  self.case = case
291
+ self.username = username
292
+ self.password = password
286
293
  self.command = kwargs.get("command", None)
287
294
 
288
295
  def clear_cache(self) -> None:
@@ -393,6 +400,7 @@ class Broker:
393
400
  tls_version=ssl.PROTOCOL_TLS,
394
401
  ciphers=None,
395
402
  )
403
+ self.mqtt_client.username_pw_set(self.username, self.password)
396
404
  self.mqtt_client.tls_insecure_set(True) # merely having the correct cert is ok
397
405
  self.mqtt_client.on_connect = self._on_connect
398
406
  self.mqtt_client.on_message = self._on_message
@@ -411,6 +419,8 @@ class Broker:
411
419
  @arg("--mqtt-ca", dest="ca", help="certificate authority file")
412
420
  @arg("--mqtt-command", dest="command", help="direct command to client(s)")
413
421
  @arg("--mqtt-diag", action="store_true", dest="diag", help="show MQTT diagnostic information")
422
+ @arg("--mqtt-username", dest="username", help="Username for connection")
423
+ @arg("--mqtt-password", action="store_true", dest="password", help="Ask for password before connecting")
414
424
  class MQTTLoader(Loader):
415
425
  """Load remote targets through a broker."""
416
426
 
@@ -435,7 +445,10 @@ class MQTTLoader(Loader):
435
445
  if cls.broker is None:
436
446
  if (uri := kwargs.get("parsed_path")) is None:
437
447
  raise LoaderError("No URI connection details have been passed.")
448
+
438
449
  options = dict(urllib.parse.parse_qsl(uri.query, keep_blank_values=True))
450
+ if options.get("password"):
451
+ options["password"] = getpass()
439
452
  cls.broker = Broker(**options)
440
453
  cls.broker.connect()
441
454
  num_peers = int(options.get("peers", 1))
@@ -17,9 +17,14 @@ from dissect.sql import sqlite3
17
17
  from dissect.target.helpers.fsutil import TargetPath
18
18
 
19
19
  try:
20
- from dissect.hypervisor.util.envelope import Envelope, KeyStore
20
+ from dissect.hypervisor.util.envelope import (
21
+ HAS_PYCRYPTODOME,
22
+ HAS_PYSTANDALONE,
23
+ Envelope,
24
+ KeyStore,
25
+ )
21
26
 
22
- HAS_ENVELOPE = True
27
+ HAS_ENVELOPE = HAS_PYCRYPTODOME or HAS_PYSTANDALONE
23
28
  except ImportError:
24
29
  HAS_ENVELOPE = False
25
30
 
@@ -70,7 +75,8 @@ class ESXiPlugin(UnixPlugin):
70
75
 
71
76
  def _cfg(self, path: str) -> Optional[str]:
72
77
  if not self._config:
73
- raise ValueError("No ESXi config!")
78
+ self.target.log.warning("No ESXi config!")
79
+ return None
74
80
 
75
81
  value_name = path.strip("/").split("/")[-1]
76
82
  obj = _traverse(path, self._config)
@@ -95,13 +101,13 @@ class ESXiPlugin(UnixPlugin):
95
101
  def create(cls, target: Target, sysvol: Filesystem) -> ESXiPlugin:
96
102
  cfg = parse_boot_cfg(sysvol.path("boot.cfg").open("rt"))
97
103
 
104
+ # Mount all the visor tars in individual filesystem layers
105
+ _mount_modules(target, sysvol, cfg)
106
+
98
107
  # Create a root layer for the "local state" filesystem
99
108
  # This stores persistent configuration data
100
109
  local_layer = target.fs.append_layer()
101
110
 
102
- # Mount all the visor tars in individual filesystem layers
103
- _mount_modules(target, sysvol, cfg)
104
-
105
111
  # Mount the local.tgz to the local state layer
106
112
  _mount_local(target, local_layer)
107
113
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.18.dev16
3
+ Version: 3.19.dev2
4
4
  Summary: This module ties all other Dissect modules together, it provides a programming API and command line tools which allow easy access to various data sources inside disk images or file collections (a.k.a. targets)
5
5
  Author-email: Dissect Team <dissect@fox-it.com>
6
6
  License: Affero General Public License v3
@@ -86,7 +86,7 @@ dissect/target/loaders/itunes.py,sha256=rKOhlDRypQBGkuSZudMDS1Mlb9XV6BD5FRvM7tGq
86
86
  dissect/target/loaders/kape.py,sha256=t5TfrGLqPeIpUUpXzIl6aHsqXMEGDqJ5YwDCs07DiBA,1237
87
87
  dissect/target/loaders/local.py,sha256=Ul-LCd_fY7SyWOVR6nH-NqbkuNpxoZVmffwrkvQElU8,16453
88
88
  dissect/target/loaders/log.py,sha256=cCkDIRS4aPlX3U-n_jUKaI2FPSV3BDpfqKceaU7rBbo,1507
89
- dissect/target/loaders/mqtt.py,sha256=wba1AFopF4ANvA5YiXd6_8T-5kRBLsiKA5xCPmrD7Xk,16024
89
+ dissect/target/loaders/mqtt.py,sha256=pn2VtFh0jeYXMod4CuZOKGhe2ScQixJ1Xhx6MHe0rzk,16540
90
90
  dissect/target/loaders/multiraw.py,sha256=4a3ZST0NwjnfPDxHkcEfAcX2ddUlT_C-rcrMHNg1wp4,1046
91
91
  dissect/target/loaders/ova.py,sha256=6h4O-7i87J394C6KgLsPkdXRAKNwtPubzLNS3vBGs7U,744
92
92
  dissect/target/loaders/overlay.py,sha256=tj99HKvNG5_JbGfb1WCv4KNSbXXSnEcPQY5XT-JUxn8,992
@@ -208,7 +208,7 @@ dissect/target/plugins/os/unix/bsd/osx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JC
208
208
  dissect/target/plugins/os/unix/bsd/osx/_os.py,sha256=KvP7YJ7apVwoIop7MR-8q5QbVGoB6MdR42l6ssEe6es,4081
209
209
  dissect/target/plugins/os/unix/bsd/osx/user.py,sha256=qopB0s3n7e6Q7NjWzn8Z-dKtDtU7e6In4Vm7hIvvedo,2322
210
210
  dissect/target/plugins/os/unix/esxi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
211
- dissect/target/plugins/os/unix/esxi/_os.py,sha256=8kFFK9986zN8hXmDUWwdQHtbV33nWKerRuisg_xbsoQ,17504
211
+ dissect/target/plugins/os/unix/esxi/_os.py,sha256=JOJ6j57vFCojgBNkju-7MG2nQqwl4Qc-agXTwjhZPgY,17644
212
212
  dissect/target/plugins/os/unix/etc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
213
  dissect/target/plugins/os/unix/etc/etc.py,sha256=ZyuMfP1QKA2_l8XQVu5CLex049MVFre3Yru5otiAqpE,2531
214
214
  dissect/target/plugins/os/unix/linux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -345,10 +345,10 @@ dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1z
345
345
  dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
346
346
  dissect/target/volumes/md.py,sha256=j1K1iKmspl0C_OJFc7-Q1BMWN2OCC5EVANIgVlJ_fIE,1673
347
347
  dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
348
- dissect.target-3.18.dev16.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
349
- dissect.target-3.18.dev16.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
350
- dissect.target-3.18.dev16.dist-info/METADATA,sha256=HFgrM2p1NkkrKOfp2q-w2d1ZBjaV1g9jKJhmQ5A_8nw,12719
351
- dissect.target-3.18.dev16.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
352
- dissect.target-3.18.dev16.dist-info/entry_points.txt,sha256=tvFPa-Ap-gakjaPwRc6Fl6mxHzxEZ_arAVU-IUYeo_s,447
353
- dissect.target-3.18.dev16.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
354
- dissect.target-3.18.dev16.dist-info/RECORD,,
348
+ dissect.target-3.19.dev2.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
349
+ dissect.target-3.19.dev2.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
350
+ dissect.target-3.19.dev2.dist-info/METADATA,sha256=8ZAfE4mjiIJsSWyLx6PmXtP3R43fOvhJTPzWRwgk-Zw,12718
351
+ dissect.target-3.19.dev2.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
352
+ dissect.target-3.19.dev2.dist-info/entry_points.txt,sha256=tvFPa-Ap-gakjaPwRc6Fl6mxHzxEZ_arAVU-IUYeo_s,447
353
+ dissect.target-3.19.dev2.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
354
+ dissect.target-3.19.dev2.dist-info/RECORD,,