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

Sign up to get free protection for your applications and to get access to all the features.
@@ -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))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dissect.target
3
- Version: 3.18.dev16
3
+ Version: 3.19.dev1
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
@@ -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.dev1.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
349
+ dissect.target-3.19.dev1.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
350
+ dissect.target-3.19.dev1.dist-info/METADATA,sha256=bNNn8eDSCLjMdDV-O56FQolA5nyhvCYTiZuRrsvS1V8,12718
351
+ dissect.target-3.19.dev1.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
352
+ dissect.target-3.19.dev1.dist-info/entry_points.txt,sha256=tvFPa-Ap-gakjaPwRc6Fl6mxHzxEZ_arAVU-IUYeo_s,447
353
+ dissect.target-3.19.dev1.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
354
+ dissect.target-3.19.dev1.dist-info/RECORD,,