dissect.target 3.14.dev29__py3-none-any.whl → 3.15__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- dissect/target/containers/ewf.py +1 -1
- dissect/target/containers/vhd.py +5 -2
- dissect/target/filesystem.py +36 -18
- dissect/target/filesystems/dir.py +10 -4
- dissect/target/filesystems/jffs.py +122 -0
- dissect/target/helpers/compat/path_310.py +506 -0
- dissect/target/helpers/compat/path_311.py +539 -0
- dissect/target/helpers/compat/path_312.py +443 -0
- dissect/target/helpers/compat/path_39.py +545 -0
- dissect/target/helpers/compat/path_common.py +223 -0
- dissect/target/helpers/cyber.py +512 -0
- dissect/target/helpers/fsutil.py +128 -666
- dissect/target/helpers/hashutil.py +17 -57
- dissect/target/helpers/keychain.py +9 -3
- dissect/target/helpers/loaderutil.py +1 -1
- dissect/target/helpers/mount.py +47 -4
- dissect/target/helpers/polypath.py +73 -0
- dissect/target/helpers/record_modifier.py +100 -0
- dissect/target/loader.py +2 -1
- dissect/target/loaders/asdf.py +2 -0
- dissect/target/loaders/cyber.py +37 -0
- dissect/target/loaders/log.py +14 -3
- dissect/target/loaders/raw.py +2 -0
- dissect/target/loaders/remote.py +12 -0
- dissect/target/loaders/tar.py +13 -0
- dissect/target/loaders/targetd.py +2 -0
- dissect/target/loaders/velociraptor.py +12 -3
- dissect/target/loaders/vmwarevm.py +2 -0
- dissect/target/plugin.py +272 -143
- dissect/target/plugins/apps/ssh/openssh.py +11 -54
- dissect/target/plugins/apps/ssh/opensshd.py +4 -3
- dissect/target/plugins/apps/ssh/putty.py +236 -0
- dissect/target/plugins/apps/ssh/ssh.py +58 -0
- dissect/target/plugins/apps/vpn/openvpn.py +6 -0
- dissect/target/plugins/apps/webserver/apache.py +309 -95
- dissect/target/plugins/apps/webserver/caddy.py +5 -2
- dissect/target/plugins/apps/webserver/citrix.py +82 -0
- dissect/target/plugins/apps/webserver/iis.py +9 -12
- dissect/target/plugins/apps/webserver/nginx.py +5 -2
- dissect/target/plugins/apps/webserver/webserver.py +25 -41
- dissect/target/plugins/child/wsl.py +1 -1
- dissect/target/plugins/filesystem/ntfs/mft.py +10 -0
- dissect/target/plugins/filesystem/ntfs/mft_timeline.py +10 -0
- dissect/target/plugins/filesystem/ntfs/usnjrnl.py +10 -0
- dissect/target/plugins/filesystem/ntfs/utils.py +28 -5
- dissect/target/plugins/filesystem/resolver.py +6 -4
- dissect/target/plugins/general/default.py +0 -2
- dissect/target/plugins/general/example.py +0 -1
- dissect/target/plugins/general/loaders.py +3 -5
- dissect/target/plugins/os/unix/_os.py +3 -3
- dissect/target/plugins/os/unix/bsd/citrix/_os.py +68 -28
- dissect/target/plugins/os/unix/bsd/citrix/history.py +130 -0
- dissect/target/plugins/os/unix/generic.py +17 -12
- dissect/target/plugins/os/unix/linux/fortios/__init__.py +0 -0
- dissect/target/plugins/os/unix/linux/fortios/_os.py +534 -0
- dissect/target/plugins/os/unix/linux/fortios/generic.py +30 -0
- dissect/target/plugins/os/unix/linux/fortios/locale.py +109 -0
- dissect/target/plugins/os/windows/log/evt.py +1 -1
- dissect/target/plugins/os/windows/log/schedlgu.py +155 -0
- dissect/target/plugins/os/windows/regf/firewall.py +1 -1
- dissect/target/plugins/os/windows/regf/shimcache.py +1 -1
- dissect/target/plugins/os/windows/regf/trusteddocs.py +1 -1
- dissect/target/plugins/os/windows/registry.py +1 -1
- dissect/target/plugins/os/windows/sam.py +3 -0
- dissect/target/plugins/os/windows/sru.py +41 -28
- dissect/target/plugins/os/windows/tasks.py +5 -2
- dissect/target/target.py +7 -3
- dissect/target/tools/dd.py +7 -1
- dissect/target/tools/fs.py +8 -1
- dissect/target/tools/info.py +22 -16
- dissect/target/tools/mount.py +28 -3
- dissect/target/tools/query.py +146 -117
- dissect/target/tools/reg.py +21 -16
- dissect/target/tools/shell.py +30 -6
- dissect/target/tools/utils.py +28 -0
- dissect/target/volumes/bde.py +14 -10
- dissect/target/volumes/luks.py +18 -10
- {dissect.target-3.14.dev29.dist-info → dissect.target-3.15.dist-info}/METADATA +4 -3
- {dissect.target-3.14.dev29.dist-info → dissect.target-3.15.dist-info}/RECORD +85 -67
- dissect/target/plugins/os/unix/linux/fortigate/_os.py +0 -175
- /dissect/target/{plugins/os/unix/linux/fortigate → helpers/compat}/__init__.py +0 -0
- {dissect.target-3.14.dev29.dist-info → dissect.target-3.15.dist-info}/COPYRIGHT +0 -0
- {dissect.target-3.14.dev29.dist-info → dissect.target-3.15.dist-info}/LICENSE +0 -0
- {dissect.target-3.14.dev29.dist-info → dissect.target-3.15.dist-info}/WHEEL +0 -0
- {dissect.target-3.14.dev29.dist-info → dissect.target-3.15.dist-info}/entry_points.txt +0 -0
- {dissect.target-3.14.dev29.dist-info → dissect.target-3.15.dist-info}/top_level.txt +0 -0
dissect/target/volumes/luks.py
CHANGED
@@ -52,7 +52,9 @@ class LUKSVolumeSystem(EncryptedVolumeSystem):
|
|
52
52
|
**volume_details,
|
53
53
|
)
|
54
54
|
|
55
|
-
def unlock_with_volume_encryption_key(
|
55
|
+
def unlock_with_volume_encryption_key(
|
56
|
+
self, key: bytes, keyslot: Optional[int] = None, is_wildcard: bool = False
|
57
|
+
) -> None:
|
56
58
|
try:
|
57
59
|
if keyslot is None:
|
58
60
|
for keyslot in self.luks.keyslots.keys():
|
@@ -68,25 +70,31 @@ class LUKSVolumeSystem(EncryptedVolumeSystem):
|
|
68
70
|
|
69
71
|
log.debug("Unlocked LUKS volume with provided volume encryption key")
|
70
72
|
except ValueError:
|
71
|
-
|
73
|
+
if not is_wildcard:
|
74
|
+
log.exception("Failed to unlock LUKS volume with provided volume encryption key")
|
72
75
|
|
73
|
-
def unlock_with_passphrase(self, passphrase: str, keyslot: Optional[int] = None) -> None:
|
76
|
+
def unlock_with_passphrase(self, passphrase: str, keyslot: Optional[int] = None, is_wildcard: bool = False) -> None:
|
74
77
|
try:
|
75
78
|
self.luks.unlock_with_passphrase(passphrase, keyslot)
|
76
79
|
log.debug("Unlocked LUKS volume with provided passphrase")
|
77
80
|
except ValueError:
|
78
|
-
|
81
|
+
if not is_wildcard:
|
82
|
+
log.exception("Failed to unlock LUKS volume with provided passphrase")
|
79
83
|
|
80
|
-
def unlock_with_key_file(
|
84
|
+
def unlock_with_key_file(
|
85
|
+
self, key_file: pathlib.Path, keyslot: Optional[int] = None, is_wildcard: bool = False
|
86
|
+
) -> None:
|
81
87
|
if not key_file.exists():
|
82
|
-
|
88
|
+
if not is_wildcard:
|
89
|
+
log.error("Provided key file does not exist: %s", key_file)
|
83
90
|
return
|
84
91
|
|
85
92
|
try:
|
86
93
|
self.luks.unlock_with_key_file(key_file, keyslot=keyslot)
|
87
94
|
log.debug("Unlocked LUKS volume with key file %s", key_file)
|
88
95
|
except ValueError:
|
89
|
-
|
96
|
+
if not is_wildcard:
|
97
|
+
log.exception("Failed to unlock LUKS volume with key file %s", key_file)
|
90
98
|
|
91
99
|
def unlock_volume(self) -> AlignedStream:
|
92
100
|
keyslots = list(map(str, self.luks.keyslots.keys()))
|
@@ -99,12 +107,12 @@ class LUKSVolumeSystem(EncryptedVolumeSystem):
|
|
99
107
|
keyslot = None
|
100
108
|
|
101
109
|
if key.key_type == KeyType.RAW:
|
102
|
-
self.unlock_with_volume_encryption_key(key.value, keyslot)
|
110
|
+
self.unlock_with_volume_encryption_key(key.value, keyslot, key.is_wildcard)
|
103
111
|
if key.key_type == KeyType.PASSPHRASE:
|
104
|
-
self.unlock_with_passphrase(key.value, keyslot)
|
112
|
+
self.unlock_with_passphrase(key.value, keyslot, key.is_wildcard)
|
105
113
|
elif key.key_type == KeyType.FILE:
|
106
114
|
key_file = pathlib.Path(key.value)
|
107
|
-
self.unlock_with_key_file(key_file, keyslot)
|
115
|
+
self.unlock_with_key_file(key_file, keyslot, key.is_wildcard)
|
108
116
|
|
109
117
|
if self.luks.unlocked:
|
110
118
|
log.info("Volume %s unlocked with %s (keyslot: %d)", self.fh, key, self.luks._active_keyslot_id)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: dissect.target
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.15
|
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
|
@@ -31,7 +31,7 @@ Requires-Dist: dissect.ntfs <4.0.dev,>=3.4.dev
|
|
31
31
|
Requires-Dist: dissect.regf <4.0.dev,>=3.3.dev
|
32
32
|
Requires-Dist: dissect.util <4.0.dev,>=3.0.dev
|
33
33
|
Requires-Dist: dissect.volume <4.0.dev,>=3.0.dev
|
34
|
-
Requires-Dist: flow.record ~=3.
|
34
|
+
Requires-Dist: flow.record ~=3.14.0
|
35
35
|
Requires-Dist: structlog
|
36
36
|
Provides-Extra: cb
|
37
37
|
Requires-Dist: dissect.target[full] ; extra == 'cb'
|
@@ -46,6 +46,7 @@ Requires-Dist: dissect.etl <4.0.dev,>=3.0.dev ; extra == 'full'
|
|
46
46
|
Requires-Dist: dissect.extfs <4.0.dev,>=3.0.dev ; extra == 'full'
|
47
47
|
Requires-Dist: dissect.fat <4.0.dev,>=3.0.dev ; extra == 'full'
|
48
48
|
Requires-Dist: dissect.ffs <4.0.dev,>=3.0.dev ; extra == 'full'
|
49
|
+
Requires-Dist: dissect.jffs <2.0.dev,>=1.0.dev ; extra == 'full'
|
49
50
|
Requires-Dist: dissect.shellitem <4.0.dev,>=3.0.dev ; extra == 'full'
|
50
51
|
Requires-Dist: dissect.squashfs <2.0.dev,>=1.0.dev ; extra == 'full'
|
51
52
|
Requires-Dist: dissect.sql <4.0.dev,>=3.0.dev ; extra == 'full'
|
@@ -62,7 +63,7 @@ Requires-Dist: dissect.target[full] ; extra == 'smb'
|
|
62
63
|
Requires-Dist: impacket ==0.10.0 ; extra == 'smb'
|
63
64
|
Provides-Extra: yara
|
64
65
|
Requires-Dist: dissect.target[full] ; extra == 'yara'
|
65
|
-
Requires-Dist: yara-python ; extra == 'yara'
|
66
|
+
Requires-Dist: yara-python-wheel ; extra == 'yara'
|
66
67
|
|
67
68
|
# dissect.target
|
68
69
|
|
@@ -1,22 +1,22 @@
|
|
1
1
|
dissect/target/__init__.py,sha256=Oc7ounTgq2hE4nR6YcNabetc7SQA40ldSa35VEdZcQU,63
|
2
2
|
dissect/target/container.py,sha256=9ixufT1_0WhraqttBWwQjG80caToJqvCX8VjFk8d5F0,9307
|
3
3
|
dissect/target/exceptions.py,sha256=VVW_Rq_vQinapz-2mbJ3UkxBEZpb2pE_7JlhMukdtrY,2877
|
4
|
-
dissect/target/filesystem.py,sha256=
|
5
|
-
dissect/target/loader.py,sha256=
|
6
|
-
dissect/target/plugin.py,sha256=
|
4
|
+
dissect/target/filesystem.py,sha256=aLkvZMgeah39Nhlscawh77cm2mzFYI9J5h3uT3Rigtc,53876
|
5
|
+
dissect/target/loader.py,sha256=0-LcZNi7S0qsXR7XGtrzxpuCh9BsLcqNR1T15O7SnBM,7257
|
6
|
+
dissect/target/plugin.py,sha256=YXsxV8ppceE5054Ki1OiC-v09FdcJ7SaddrqQXDq9cU,48235
|
7
7
|
dissect/target/report.py,sha256=06uiP4MbNI8cWMVrC1SasNS-Yg6ptjVjckwj8Yhe0Js,7958
|
8
|
-
dissect/target/target.py,sha256=
|
8
|
+
dissect/target/target.py,sha256=HxqqnGW0i0Y4a6Q4DjgNmqkJmJ-_IrkvksNgSPwa7LI,32143
|
9
9
|
dissect/target/volume.py,sha256=aQZAJiny8jjwkc9UtwIRwy7nINXjCxwpO-_UDfh6-BA,15801
|
10
10
|
dissect/target/containers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
dissect/target/containers/asdf.py,sha256=DJp0QEFwUjy2MFwKYcYqIR_BS1fQT1Yi9Kcmqt0aChM,1366
|
12
|
-
dissect/target/containers/ewf.py,sha256=
|
12
|
+
dissect/target/containers/ewf.py,sha256=FTEPZpogDzymrbAeSnLuHNNStifLzNVhUvtbEMOyo0E,1342
|
13
13
|
dissect/target/containers/hdd.py,sha256=Y1qYpk3GePCpq2HZIyqyoGch7nzN8aeI3zWG3UGhf5o,1069
|
14
14
|
dissect/target/containers/hds.py,sha256=xijSUSRM392Ckc9QsOsvjx7PMyeoR4qOlWGG0w4nqUU,1145
|
15
15
|
dissect/target/containers/qcow2.py,sha256=FtXLZA-Xkegbv--dStusQntUiDqM1idSFWMtJRiL7eM,1128
|
16
16
|
dissect/target/containers/raw.py,sha256=1etzdlHSoO77HDaBZcKINTY5MermtKjdKnG7EKwpFrw,1087
|
17
17
|
dissect/target/containers/split.py,sha256=mgCoSdtEMs_JK3OOlSB0aEIZEwfUDECAHlxIermwlyM,2402
|
18
18
|
dissect/target/containers/vdi.py,sha256=Dqv--Pp8XHtHApOhSludeX8N7qDAzy2MW5E1BWGKKLo,1065
|
19
|
-
dissect/target/containers/vhd.py,sha256=
|
19
|
+
dissect/target/containers/vhd.py,sha256=l6ODEPK1Z8HZpK3T0Ty2Dp7O7RPr9qnqi_N82ERY2q8,1123
|
20
20
|
dissect/target/containers/vhdx.py,sha256=h03uhQBhwdixSwCeHbZ2LKcycBIek-_fEUl7uV3yM74,960
|
21
21
|
dissect/target/containers/vmdk.py,sha256=5fQGkJy4esXONXrKLbhpkQDt8Fwx19YENK2mOm7kIEk,1000
|
22
22
|
dissect/target/data/autocompletion/target_bash_completion.sh,sha256=wrOQ_ED-h8WFcjCmY6n4qKl84tWJv9l8ShFHDfJqJyA,3592
|
@@ -25,12 +25,13 @@ dissect/target/filesystems/ad1.py,sha256=nEPzaaRsb6bL4ItFo0uLdmdLvrmK9BjqHeD3FOp
|
|
25
25
|
dissect/target/filesystems/btrfs.py,sha256=5MBi193ZvclkEQcxDr_sDHfj_FYU_hyYNRL4YqpDu4M,6243
|
26
26
|
dissect/target/filesystems/cb.py,sha256=6LcoJiwsYu1Han31IUzVpZVDTifhTLTx_gLfNpB_p6k,5329
|
27
27
|
dissect/target/filesystems/config.py,sha256=n1MR7a3tGXszpusLSDxZdTYo8IRLtDC_Xd95zPDTzzA,11295
|
28
|
-
dissect/target/filesystems/dir.py,sha256=
|
28
|
+
dissect/target/filesystems/dir.py,sha256=7GRvojL151_Vk9e3vqgZbWE3I8IL9bU6LUKc_xjk6D4,4050
|
29
29
|
dissect/target/filesystems/exfat.py,sha256=PRkZPUVN5NlgB1VetFtywdNgF6Yj5OBtF5a25t-fFvw,5917
|
30
30
|
dissect/target/filesystems/extfs.py,sha256=9Cke-H0CL-SPd3-xvdAgfc3YA5hYso0sq6hm0C9vGII,4640
|
31
31
|
dissect/target/filesystems/fat.py,sha256=ZSw-wS57vo5eIXJndfI1rZkGu_qh-vyioMzCZFZ_UTE,4611
|
32
32
|
dissect/target/filesystems/ffs.py,sha256=Wu8sS1jjmD0QXXcAaD2h_zzfvinjco8qvj0hErufZ-4,4555
|
33
33
|
dissect/target/filesystems/itunes.py,sha256=6LPUHSf2qpHacMgA4bdlEKUIV_BaLxmIxyLESXqNexI,6345
|
34
|
+
dissect/target/filesystems/jffs.py,sha256=Ceqa5Em2pepnXMH_XZFmSNjQyWPo1uWTthBFSMWfKRo,3926
|
34
35
|
dissect/target/filesystems/ntfs.py,sha256=fGgCKjdO5GrPC21DDr0SwIxmwR7KruNIqGUzysboirA,7068
|
35
36
|
dissect/target/filesystems/smb.py,sha256=uxfcOWwEoDCw8Qpsa94T5Pn-SKd4WXs4OOrzVVI55d8,6406
|
36
37
|
dissect/target/filesystems/squashfs.py,sha256=ehzlThXB7n96XUvQnsK5tWLsA9HIxYN-Zxl7aO9D7ts,3921
|
@@ -42,33 +43,43 @@ dissect/target/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
42
43
|
dissect/target/helpers/cache.py,sha256=_0w_iPD1OM066Ueyadb70erQW05jNnpJe-bDDN1UyXc,8444
|
43
44
|
dissect/target/helpers/config.py,sha256=6917CZ6eDHaK_tOoiVEIndyhRXO6r6eCBIleq6f47PQ,2346
|
44
45
|
dissect/target/helpers/configutil.py,sha256=V105MdN5umMf-kJLVcmeuOLGz3ciL4LSzaq2qJBoEVs,19758
|
46
|
+
dissect/target/helpers/cyber.py,sha256=MsGSF6BCWTIasqIk-PYySO0LQ9rfpgcz-kXtwr8aQ30,15746
|
45
47
|
dissect/target/helpers/descriptor_extensions.py,sha256=uT8GwznfDAiIgMM7JKKOY0PXKMv2c0GCqJTCkWFgops,2605
|
46
48
|
dissect/target/helpers/docs.py,sha256=J5U65Y3yOTqxDEZRCdrEmO63XQCeDzOJea1PwPM6Cyc,5146
|
47
|
-
dissect/target/helpers/fsutil.py,sha256=
|
48
|
-
dissect/target/helpers/hashutil.py,sha256=
|
49
|
-
dissect/target/helpers/keychain.py,sha256=
|
49
|
+
dissect/target/helpers/fsutil.py,sha256=jGinb11-w6TvbzH7z-9F6J09X5CY3_yxBoNsKxsFAXE,18637
|
50
|
+
dissect/target/helpers/hashutil.py,sha256=SD24rcV_y0sBEl7M9T-isjm-VzJvCiTN2BoWMqAOAVI,2160
|
51
|
+
dissect/target/helpers/keychain.py,sha256=R-PTfm9XPhCz3K7kqA1OiKUw31PNnBARZGRfoJfoAgk,3497
|
50
52
|
dissect/target/helpers/lazy.py,sha256=823VtmdWsbJyVZvNWopDhQdqq2i1xtj6b8IKfveboKw,1771
|
51
|
-
dissect/target/helpers/loaderutil.py,sha256=
|
53
|
+
dissect/target/helpers/loaderutil.py,sha256=YHaIgTY_NhJ76TpNaTvXnEDaXU9XXs8F6UCiqq7LVTQ,2465
|
52
54
|
dissect/target/helpers/localeutil.py,sha256=Y4Fh4jDSGfm5356xSLMriUCN8SZP_FAHg_iodkAxNq4,1504
|
53
|
-
dissect/target/helpers/mount.py,sha256=
|
55
|
+
dissect/target/helpers/mount.py,sha256=JxhUYyEbDnHfzPpfuWy4nV9OwCJPoDSGdHHNiyvd_l0,3949
|
54
56
|
dissect/target/helpers/network_managers.py,sha256=tjqkVWn7i3PpBPkYnKUU0XxhqTTJlIjOc7Y2jpzdzA4,24525
|
57
|
+
dissect/target/helpers/polypath.py,sha256=h8p7m_OCNiQljGwoZh5Aflr9H2ot6CZr6WKq1OSw58o,2175
|
55
58
|
dissect/target/helpers/record.py,sha256=lWl7k2Mp9Axllm0tXzPGJx2zj2zONsyY_p5g424T0Lc,4826
|
59
|
+
dissect/target/helpers/record_modifier.py,sha256=BiZ_gtqVxuByLWrga1lfglk3X-TcMrJC0quxPpXoIRo,3138
|
56
60
|
dissect/target/helpers/regutil.py,sha256=kX-sSZbW8Qkg29Dn_9zYbaQrwLumrr4Y8zJ1EhHXIAM,27337
|
57
61
|
dissect/target/helpers/shell_folder_ids.py,sha256=Behhb8oh0kMxrEk6YYKYigCDZe8Hw5QS6iK_d2hTs2Y,24978
|
58
62
|
dissect/target/helpers/ssh.py,sha256=LPssHXyfL8QYmLi2vpa3wElsGboLG_A1Y8kvOehpUr4,6338
|
59
63
|
dissect/target/helpers/targetd.py,sha256=ELhUulzQ4OgXgHsWhsLgM14vut8Wm6btr7qTynlwKaE,1812
|
60
64
|
dissect/target/helpers/utils.py,sha256=r36Bn0UL0E6Z8ajmQrHzC6RyUxTRdwJ1PNsd904Lmzs,4027
|
65
|
+
dissect/target/helpers/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
|
+
dissect/target/helpers/compat/path_310.py,sha256=PsLDIodlp3Hv5u-w7GDl6_LnTtchBYcRjz2MicX1egg,16982
|
67
|
+
dissect/target/helpers/compat/path_311.py,sha256=2aydxCMWu1pN8PTBCo8HUbHRMC1xO-hj013j4QxaogE,18182
|
68
|
+
dissect/target/helpers/compat/path_312.py,sha256=oYa9SzcUI6FZmayQSy-HHPiIdPk5FX0XAQjnjGLsjCc,15223
|
69
|
+
dissect/target/helpers/compat/path_39.py,sha256=FIyZ3sb-XQhJnm02jVdOc6ncjCWa9OVxlCb_yap8A1o,18638
|
70
|
+
dissect/target/helpers/compat/path_common.py,sha256=HY00SfF5zrlUybTVMBRBM_mpLyK8e4C8_1HRQM65A7U,7355
|
61
71
|
dissect/target/helpers/data/windowsZones.xml,sha256=4OijeR7oxI0ZwPTSwCkmtcofOsUCjSnbZ4dQxVOM_4o,50005
|
62
72
|
dissect/target/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
63
73
|
dissect/target/loaders/ad1.py,sha256=1_VmPZckDzXVvNF-HNtoUZqabnhCKBLUD3vVaitHQ00,571
|
64
|
-
dissect/target/loaders/asdf.py,sha256=
|
74
|
+
dissect/target/loaders/asdf.py,sha256=dvPPDBrnz2JPXpCbqsu-NgQWIdVGMOit2KAdhIO1iiQ,972
|
65
75
|
dissect/target/loaders/cb.py,sha256=EGhdytBKBdofTd89juavDZZbmupEZmMBadeUXvVIK20,6612
|
76
|
+
dissect/target/loaders/cyber.py,sha256=4dxXltOxlykFvYl2izg7Y-MajFLw8owOWm67xJcqTLA,1339
|
66
77
|
dissect/target/loaders/dir.py,sha256=nEJepNGI4EEP7MX3X15xysH9agKDmlKjfyd1DDulieU,4968
|
67
78
|
dissect/target/loaders/hyperv.py,sha256=_IOUJEO0BXaCBZ6sjIX0DZTkG9UNW5Vs9VcNHYv073w,5928
|
68
79
|
dissect/target/loaders/itunes.py,sha256=69aMTQiiGYpmD_EYSmf9mO1re8C3jAZIEStmwlMxdAk,13146
|
69
80
|
dissect/target/loaders/kape.py,sha256=t5TfrGLqPeIpUUpXzIl6aHsqXMEGDqJ5YwDCs07DiBA,1237
|
70
81
|
dissect/target/loaders/local.py,sha256=Ul-LCd_fY7SyWOVR6nH-NqbkuNpxoZVmffwrkvQElU8,16453
|
71
|
-
dissect/target/loaders/log.py,sha256=
|
82
|
+
dissect/target/loaders/log.py,sha256=cCkDIRS4aPlX3U-n_jUKaI2FPSV3BDpfqKceaU7rBbo,1507
|
72
83
|
dissect/target/loaders/multiraw.py,sha256=4a3ZST0NwjnfPDxHkcEfAcX2ddUlT_C-rcrMHNg1wp4,1046
|
73
84
|
dissect/target/loaders/ova.py,sha256=6h4O-7i87J394C6KgLsPkdXRAKNwtPubzLNS3vBGs7U,744
|
74
85
|
dissect/target/loaders/ovf.py,sha256=ELMq6J2y6cPKbp7pjWAqMMnFYefWxXNqzIiAQdvGGXQ,1061
|
@@ -76,20 +87,20 @@ dissect/target/loaders/phobos.py,sha256=XtxF7FZXfZrXJruFUZUQzxlREyfc86dTxph7BNoN
|
|
76
87
|
dissect/target/loaders/profile.py,sha256=5ylgmzEEGyBFW3izvb-BZ7dGByXN9OFyRnnggR98P9w,1667
|
77
88
|
dissect/target/loaders/pvm.py,sha256=b-PvHNTbRVdOnf7-OR5dbikbDTCFlW85b-9Z8PEL2Cs,406
|
78
89
|
dissect/target/loaders/pvs.py,sha256=dMqdYSBQtH9QLM3tdu0mokLBcn73edg_HUtYtqrdi6E,955
|
79
|
-
dissect/target/loaders/raw.py,sha256=
|
80
|
-
dissect/target/loaders/remote.py,sha256=
|
90
|
+
dissect/target/loaders/raw.py,sha256=wfi1qnmLritNfBOqJbyEjsb2C8RjAZHO8IJ9R3XaNjI,412
|
91
|
+
dissect/target/loaders/remote.py,sha256=4cGCQfBwuhh5vo0zgVCK8V3I0w9SSWX3AjbW9eebPRg,9512
|
81
92
|
dissect/target/loaders/res.py,sha256=8b178x05t9K31wOeP8yGD1IdR3RpiMGz7wcvtHmmHjk,8819
|
82
93
|
dissect/target/loaders/smb.py,sha256=qP8m4Jq7hvAvUCF9jB4yr2Zut7p_R02_vxziNN3R1to,13070
|
83
94
|
dissect/target/loaders/tanium.py,sha256=P9euiQzvVaQQtMQlEmNe0V25w1BkQFRZBuS-0-ksHpY,1585
|
84
|
-
dissect/target/loaders/tar.py,sha256=
|
95
|
+
dissect/target/loaders/tar.py,sha256=mfUZCZexjUeZVJFiPvW_OUutObjPGzJY9QOAXnFG70E,3562
|
85
96
|
dissect/target/loaders/target.py,sha256=Bp3kcfW-ntkgDZ9IpYPMoR-4FDBPqcLD_W88Z9IU--o,692
|
86
|
-
dissect/target/loaders/targetd.py,sha256=
|
97
|
+
dissect/target/loaders/targetd.py,sha256=sfbn2_j3il2G-rPywAoNT5YPtD5KmKkmBv1zrPDRs6I,8250
|
87
98
|
dissect/target/loaders/utm.py,sha256=e5x5ZI3HeL0STh4S-CaQb68Rnug4SVZR9zlmHaGFj0M,978
|
88
99
|
dissect/target/loaders/vb.py,sha256=CnQcn7bAkMzIB1y-lWLtPPXdIVsyeDaT6hTZEurjkV4,2072
|
89
100
|
dissect/target/loaders/vbox.py,sha256=8JD7D8iAY9JRvTHsrosp5ZMsZezuLhZ10Zt8sEL7KBI,732
|
90
|
-
dissect/target/loaders/velociraptor.py,sha256=
|
101
|
+
dissect/target/loaders/velociraptor.py,sha256=tikJEVCUDloWJNd5J3jJjNcVkOp-OnEe1O79DY2WLWw,4372
|
91
102
|
dissect/target/loaders/vma.py,sha256=AAY5-s-nz6wgvmcFkptJD7nNXhpkdf6SqEKVOrJaIKs,644
|
92
|
-
dissect/target/loaders/vmwarevm.py,sha256=
|
103
|
+
dissect/target/loaders/vmwarevm.py,sha256=1MlKoIuWSwpYmpuLxDuVacvaYHUhAGO1KgZxzrc4fyg,428
|
93
104
|
dissect/target/loaders/vmx.py,sha256=o1rYYKu6ReleqqHf2aeRcNrmoRcngWZNhz1h7GlmggQ,962
|
94
105
|
dissect/target/loaders/xva.py,sha256=WmqdM9qGrZcChx0PiiTLyMTSatJIy_ItGO9cPMALQSE,709
|
95
106
|
dissect/target/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -115,63 +126,67 @@ dissect/target/plugins/apps/remoteaccess/teamviewer.py,sha256=SiEH36HM2NvdPuCjfL
|
|
115
126
|
dissect/target/plugins/apps/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
116
127
|
dissect/target/plugins/apps/shell/powershell.py,sha256=biPSMRWxPI6kRqP0-75yMtrw0Ti2Bzfl_xI3xbmmF48,2641
|
117
128
|
dissect/target/plugins/apps/ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
|
-
dissect/target/plugins/apps/ssh/openssh.py,sha256=
|
119
|
-
dissect/target/plugins/apps/ssh/opensshd.py,sha256=
|
129
|
+
dissect/target/plugins/apps/ssh/openssh.py,sha256=jDNP8aq9JHivosexPlxWRUgeJo1MHclb336dzO1zRJc,7086
|
130
|
+
dissect/target/plugins/apps/ssh/opensshd.py,sha256=DaXKdgGF3GYHHA4buEvphcm6FF4C8YFjgD96Dv6rRnM,5510
|
131
|
+
dissect/target/plugins/apps/ssh/putty.py,sha256=N8ssjutUVN50JNA5fEIVISbP5sJ7bGTFidRbX3uNG5Y,9404
|
132
|
+
dissect/target/plugins/apps/ssh/ssh.py,sha256=uCaoWlT2bgKLUHA1aL6XymJDWJ8JmLsN8PB1C66eidY,1409
|
120
133
|
dissect/target/plugins/apps/vpn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
121
|
-
dissect/target/plugins/apps/vpn/openvpn.py,sha256=
|
134
|
+
dissect/target/plugins/apps/vpn/openvpn.py,sha256=NZeFSFgGAifevGIQBusdbBRFOPxu0584Th8rKE-XSus,6875
|
122
135
|
dissect/target/plugins/apps/vpn/wireguard.py,sha256=45WvCqQQGrG3DVDH5ghcsGpM_BomF4RcTLzcIvnyuNs,6554
|
123
136
|
dissect/target/plugins/apps/webhosting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
124
137
|
dissect/target/plugins/apps/webhosting/cpanel.py,sha256=OeFQnu9GmpffIlFyK-AR2Qf8tjyMhazWEAUyccDU5y0,2979
|
125
138
|
dissect/target/plugins/apps/webserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
126
|
-
dissect/target/plugins/apps/webserver/apache.py,sha256=
|
127
|
-
dissect/target/plugins/apps/webserver/caddy.py,sha256=
|
128
|
-
dissect/target/plugins/apps/webserver/
|
129
|
-
dissect/target/plugins/apps/webserver/
|
130
|
-
dissect/target/plugins/apps/webserver/
|
139
|
+
dissect/target/plugins/apps/webserver/apache.py,sha256=H38Zj41EkfS27x98gBTuPHJmTOmlhfMK73PX6zQ4YOY,14933
|
140
|
+
dissect/target/plugins/apps/webserver/caddy.py,sha256=qZsAK_tILGvroV4SWkDKc-Otwd41bUEtv9H9TuHmt-0,6422
|
141
|
+
dissect/target/plugins/apps/webserver/citrix.py,sha256=FEPdBteEJeeGg3B95W_27O9wLJVhenEc5A5fSLDmK18,3044
|
142
|
+
dissect/target/plugins/apps/webserver/iis.py,sha256=UwRVzLqnKScijdLoZFfpkSUzKTQosicZpn16q__4QBU,14669
|
143
|
+
dissect/target/plugins/apps/webserver/nginx.py,sha256=WA5soi1FU1c44oHRcyOoHK3gH8Jzc_Qi5uXcimDYukw,4129
|
144
|
+
dissect/target/plugins/apps/webserver/webserver.py,sha256=a7a2lLrhsa9c1AXnwiLP-tqVv-IUbmaVaSZI5S0fKa8,1500
|
131
145
|
dissect/target/plugins/child/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
132
146
|
dissect/target/plugins/child/esxi.py,sha256=GfgQzxntcHcyxAE2QjMJ-TrFhklweSXLbYh0uuv-klg,693
|
133
147
|
dissect/target/plugins/child/hyperv.py,sha256=R2qVeu4p_9V53jO-65znN0LwX9v3FVA-9jbbtOQcEz8,2236
|
134
148
|
dissect/target/plugins/child/virtuozzo.py,sha256=Mx4ZxEl21g7IYkzraw4FBZup5EfrkFDv4WuTE3hxguw,1206
|
135
149
|
dissect/target/plugins/child/vmware_workstation.py,sha256=8wkA_tSufvBUyp4XQHzRzFETf5ROlyyO_MVS3TExyfw,1570
|
136
|
-
dissect/target/plugins/child/wsl.py,sha256=
|
150
|
+
dissect/target/plugins/child/wsl.py,sha256=IssQgYET1T-XR5ZX2lGlNFJ_u_3QECpMF_7kXu09HTE,2469
|
137
151
|
dissect/target/plugins/filesystem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
138
152
|
dissect/target/plugins/filesystem/acquire_handles.py,sha256=-pX_akH5GrYe0HofXOa2Il75knZH6ZKgru4BFcrElkM,1731
|
139
153
|
dissect/target/plugins/filesystem/acquire_hash.py,sha256=OVxI19-Bl1tdqCiFMscFMLmyoiBOsuAjL-Q8aQpEwl0,1441
|
140
154
|
dissect/target/plugins/filesystem/icat.py,sha256=bOMi04IlljnKwxTWTZJKtK7RxKnabFu3WcXyUwzkE-4,4090
|
141
|
-
dissect/target/plugins/filesystem/resolver.py,sha256=
|
155
|
+
dissect/target/plugins/filesystem/resolver.py,sha256=HfyASUFV4F9uD-yFXilFpPTORAsRDvdmTvuYHgOaOWg,4776
|
142
156
|
dissect/target/plugins/filesystem/walkfs.py,sha256=aCEBmT3uoQdMdSGUshMOsKpcjrzAFg3HzeYW24PJZwk,2296
|
143
157
|
dissect/target/plugins/filesystem/yara.py,sha256=q_pbrQArNaWP4ILRzK7VQhukIw16LhUvntoviHmZ38Q,2241
|
144
158
|
dissect/target/plugins/filesystem/ntfs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
145
|
-
dissect/target/plugins/filesystem/ntfs/mft.py,sha256=
|
146
|
-
dissect/target/plugins/filesystem/ntfs/mft_timeline.py,sha256=
|
147
|
-
dissect/target/plugins/filesystem/ntfs/usnjrnl.py,sha256=
|
148
|
-
dissect/target/plugins/filesystem/ntfs/utils.py,sha256=
|
159
|
+
dissect/target/plugins/filesystem/ntfs/mft.py,sha256=Za-fsTcKlAlhm9ugJlMdwsJVf2Osrh4PrEGSFuv-Eeo,9564
|
160
|
+
dissect/target/plugins/filesystem/ntfs/mft_timeline.py,sha256=vvNFAZbr7s3X2OTYf4ES_L6-XsouTXcTymfxnHfZ1Rw,6791
|
161
|
+
dissect/target/plugins/filesystem/ntfs/usnjrnl.py,sha256=uiT1ipmcAo__6VIUi8R_vvIu22vdnjMACKwLSAbzYjs,3704
|
162
|
+
dissect/target/plugins/filesystem/ntfs/utils.py,sha256=xG7Lgw9NX4tDDrZVRm0vycFVJTOM7j-HrjqzDh0f4uA,3136
|
149
163
|
dissect/target/plugins/filesystem/unix/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
150
164
|
dissect/target/plugins/filesystem/unix/capability.py,sha256=oTJVEr8Yszejd-FxU0D8J49ATxNrJOcUnBFIc96k8kg,5920
|
151
165
|
dissect/target/plugins/filesystem/unix/suid.py,sha256=Q0Y5CyPm34REruyZYP5siFAka4i7QEOOxZ9K2L-SxPY,1290
|
152
166
|
dissect/target/plugins/general/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
153
167
|
dissect/target/plugins/general/config.py,sha256=Mdy9uhWn4OJ96zfXpLgjVifV5SrViqHnpSnKhC1mjZE,3432
|
154
|
-
dissect/target/plugins/general/default.py,sha256=
|
155
|
-
dissect/target/plugins/general/example.py,sha256=
|
156
|
-
dissect/target/plugins/general/loaders.py,sha256=
|
168
|
+
dissect/target/plugins/general/default.py,sha256=8W_9JV3jKEeETlyTrB25sACoIIFmmO8wlVU5Zoi51W0,1425
|
169
|
+
dissect/target/plugins/general/example.py,sha256=6B_YOqajRBLNWBEOfIL_HnLaEANBF8KKoc0mweihiug,6034
|
170
|
+
dissect/target/plugins/general/loaders.py,sha256=6iUxhlSAgo7qSE8_XFxgiihK8sdMiP-s4k0W5Iv8m9k,879
|
157
171
|
dissect/target/plugins/general/osinfo.py,sha256=RdK5mw3-H9H3sGXz8yP8U_p3wUG1Ww7_HBKZpFdsbTE,1358
|
158
172
|
dissect/target/plugins/general/plugins.py,sha256=4URjS6DN1Ey6Cqlbyx6NfFGgQZpWDrqxl8KLcZFODGE,4479
|
159
173
|
dissect/target/plugins/general/scrape.py,sha256=Fz7BNXflvuxlnVulyyDhLpyU8D_hJdH6vWVtER9vjTg,6651
|
160
174
|
dissect/target/plugins/general/users.py,sha256=IOqopQ9Y7CKGkALRUr16y8DwxsidYC5tcPErGZCXxyA,2845
|
161
175
|
dissect/target/plugins/os/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
162
176
|
dissect/target/plugins/os/unix/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
163
|
-
dissect/target/plugins/os/unix/_os.py,sha256=
|
177
|
+
dissect/target/plugins/os/unix/_os.py,sha256=MdSnIc-1Tb3VVjJdy6JilnJuFtHr6aREgLfVTlia63M,13384
|
164
178
|
dissect/target/plugins/os/unix/cronjobs.py,sha256=2ssj97UVJueyATVl7NMJmqd9uHflQ2tXUqdOCFIEje8,3182
|
165
179
|
dissect/target/plugins/os/unix/datetime.py,sha256=gKfBdPyUirt3qmVYfOJ1oZXRPn8wRzssbZxR_ARrtk8,1518
|
166
180
|
dissect/target/plugins/os/unix/etc.py,sha256=HoPEC1hxqurSnAXQAK-jf_HxdBIDe-1z_qSw_n-ViI4,258
|
167
|
-
dissect/target/plugins/os/unix/generic.py,sha256=
|
181
|
+
dissect/target/plugins/os/unix/generic.py,sha256=6_MJrV1LbIxNQJwAZR0HEQljoxwF5BPQC1SfCTcaSHg,2127
|
168
182
|
dissect/target/plugins/os/unix/history.py,sha256=1o6ZLQTDimo9FSm9h_8QpCWlg8_qTb8ewDMgDqdAeV8,6619
|
169
183
|
dissect/target/plugins/os/unix/locale.py,sha256=V3R7mEyrH3f-h7SGAucByaYYDA2SIil9Qb-s3dPmDEA,3961
|
170
184
|
dissect/target/plugins/os/unix/packagemanager.py,sha256=Wm2AAJOD_B3FAcZNXgWtSm_YwbvrHBYOP8bPmOXNjG4,2427
|
171
185
|
dissect/target/plugins/os/unix/shadow.py,sha256=TvN04uzFnUttNMZAa6_1XdXSP-8V6ztbZNoetDvfD0w,3535
|
172
186
|
dissect/target/plugins/os/unix/bsd/_os.py,sha256=e5rttTOFOmd7e2HqP9ZZFMEiPLBr-8rfH0XH1IIeroQ,1372
|
173
187
|
dissect/target/plugins/os/unix/bsd/citrix/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
174
|
-
dissect/target/plugins/os/unix/bsd/citrix/_os.py,sha256=
|
188
|
+
dissect/target/plugins/os/unix/bsd/citrix/_os.py,sha256=u9agLXoMt_k-nARtSJ78_-ScJae4clZhkqFiEVsB9b8,7910
|
189
|
+
dissect/target/plugins/os/unix/bsd/citrix/history.py,sha256=cXMA4rZQBsOMwd_aLbXjW_CAEzNnsr2bUZB9cPufnQo,4498
|
175
190
|
dissect/target/plugins/os/unix/bsd/freebsd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
176
191
|
dissect/target/plugins/os/unix/bsd/freebsd/_os.py,sha256=Vqiyn08kv1IioNUwpgtBJ9SToCFhLCsJdpVhl5E7COM,789
|
177
192
|
dissect/target/plugins/os/unix/bsd/ios/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -202,8 +217,10 @@ dissect/target/plugins/os/unix/linux/debian/apt.py,sha256=dkTfLrS-MS8wfrXILFLHDo
|
|
202
217
|
dissect/target/plugins/os/unix/linux/debian/dpkg.py,sha256=DPBLQiHAF7ZS8IorRsGAiBj4HhvwuJbmkMEHOuTZisw,5735
|
203
218
|
dissect/target/plugins/os/unix/linux/debian/vyos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
204
219
|
dissect/target/plugins/os/unix/linux/debian/vyos/_os.py,sha256=q8qG2FLJhUbpjfwlNCmWAhFdTWMzSWUh7s7H8m4x7Fw,1741
|
205
|
-
dissect/target/plugins/os/unix/linux/
|
206
|
-
dissect/target/plugins/os/unix/linux/
|
220
|
+
dissect/target/plugins/os/unix/linux/fortios/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
221
|
+
dissect/target/plugins/os/unix/linux/fortios/_os.py,sha256=mYwmGAeY1GQdPdFbGxwNhlRuMD2hTuL1nlEAaXhao4o,19091
|
222
|
+
dissect/target/plugins/os/unix/linux/fortios/generic.py,sha256=tT4-lE0Z_DeDIN3zHrQbE8JB3cRJop1_TiEst-Au0bs,1230
|
223
|
+
dissect/target/plugins/os/unix/linux/fortios/locale.py,sha256=VDdk60sqe2JTfftssO05C667-_BpI3kcqKOTVzO3ueU,5209
|
207
224
|
dissect/target/plugins/os/unix/linux/redhat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
208
225
|
dissect/target/plugins/os/unix/linux/redhat/_os.py,sha256=l_SygO1WMBTvaLvAvhe08yPHLBpUZ9wizW28a9_JhJE,578
|
209
226
|
dissect/target/plugins/os/unix/linux/redhat/yum.py,sha256=kEvB-C2CNoqxSbgGRZiuo6CMPBo_hMWy2KQIE4SNkdQ,2134
|
@@ -235,13 +252,13 @@ dissect/target/plugins/os/windows/locale.py,sha256=yXVdclpUqss9h8Nq7N4kg3OHwWGDf
|
|
235
252
|
dissect/target/plugins/os/windows/notifications.py,sha256=64xHHueHwtJCc8RTAF70oa0RxvqfCu_DBPWRSZBnYZc,17386
|
236
253
|
dissect/target/plugins/os/windows/prefetch.py,sha256=5hRxdIP9sIV5Q9TAScMjLbl_mImZ37abvdE_pAd6rh4,10398
|
237
254
|
dissect/target/plugins/os/windows/recyclebin.py,sha256=4GSj0Q3YvONufnqANbnG0ffiMQyToCiL5s35Wmu4JOQ,4898
|
238
|
-
dissect/target/plugins/os/windows/registry.py,sha256=
|
239
|
-
dissect/target/plugins/os/windows/sam.py,sha256=
|
255
|
+
dissect/target/plugins/os/windows/registry.py,sha256=IBRqltJ_4fZpVuwMVCAH_nS8JUaNVjsC1jh9AZSNHL4,12788
|
256
|
+
dissect/target/plugins/os/windows/sam.py,sha256=Es_8ROQ6R6-akuTtegCdsJHXzZJNhzgoFuS8y9xNN8E,15267
|
240
257
|
dissect/target/plugins/os/windows/services.py,sha256=_6YkuoZD8LUxk72R3n1p1bOBab3A1wszdB1NuPavIGM,6037
|
241
|
-
dissect/target/plugins/os/windows/sru.py,sha256=
|
258
|
+
dissect/target/plugins/os/windows/sru.py,sha256=sOM7CyMkW8XIXzI75GL69WoqUrSK2X99TFIfdQR2D64,17767
|
242
259
|
dissect/target/plugins/os/windows/startupinfo.py,sha256=kl8Y7M4nVfmJ71I33VCegtbHj-ZOeEsYAdlNbgwtUOA,3406
|
243
260
|
dissect/target/plugins/os/windows/syscache.py,sha256=WBDx6rixaVnCRsJHLLN_9YWoTDbzkKGbTnk3XmHSSUM,3443
|
244
|
-
dissect/target/plugins/os/windows/tasks.py,sha256=
|
261
|
+
dissect/target/plugins/os/windows/tasks.py,sha256=8DRsIAuIJPaH_G18l8RYfnK_WkEqVx2xDJ1FnIc_i0g,5716
|
245
262
|
dissect/target/plugins/os/windows/thumbcache.py,sha256=23YjOjTNoE7BYITmg8s9Zs8Wih2e73BkJJEaKlfotcI,4133
|
246
263
|
dissect/target/plugins/os/windows/ual.py,sha256=TYF-R46klEa_HHb86UJd6mPrXwHlAMOUTzC0pZ8uiq0,9787
|
247
264
|
dissect/target/plugins/os/windows/wer.py,sha256=OId9gnqU-z2D_Xl51J9THWTIegre06QsftWnGz7IQb4,7563
|
@@ -255,9 +272,10 @@ dissect/target/plugins/os/windows/exchange/exchange.py,sha256=ofoapuDQXefIX4sTzw
|
|
255
272
|
dissect/target/plugins/os/windows/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
256
273
|
dissect/target/plugins/os/windows/log/amcache.py,sha256=TabtjNx9Ve-u-Fn0K95A0v_SLGzn2YeNPHrcQvjVKJc,5877
|
257
274
|
dissect/target/plugins/os/windows/log/etl.py,sha256=9skhXdKvgmdKE1f3P9MhxvLprKvIGBv5RhOHq-XK91U,6966
|
258
|
-
dissect/target/plugins/os/windows/log/evt.py,sha256=
|
275
|
+
dissect/target/plugins/os/windows/log/evt.py,sha256=vK9XHc-hOxf6BbLKMNzGNlbCRWN2nlksQoCLdHqPgnw,7049
|
259
276
|
dissect/target/plugins/os/windows/log/evtx.py,sha256=Ue-6uX-vMfzmmSN5bQgEXks0E42Yx-zPl3Gy1TCa6Cg,6038
|
260
277
|
dissect/target/plugins/os/windows/log/pfro.py,sha256=BCjg3OZzkIP4-HzRa1b1dPkDv_B4sbd78fl40obUVkM,2706
|
278
|
+
dissect/target/plugins/os/windows/log/schedlgu.py,sha256=vzMOcCSrGRTMNQUZzvyQorZzbTNgs1UJiPe0zeOOupQ,5515
|
261
279
|
dissect/target/plugins/os/windows/regf/7zip.py,sha256=Vc336zhS6R8W98GGlLtPJ_OR0vEP014QnBtYwbx_HUo,3217
|
262
280
|
dissect/target/plugins/os/windows/regf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
263
281
|
dissect/target/plugins/os/windows/regf/appxdebugkeys.py,sha256=2GlbBZITBDhu3JKHgsGCd_6umHFgDw6OQA4g4rHg63E,3935
|
@@ -265,7 +283,7 @@ dissect/target/plugins/os/windows/regf/auditpol.py,sha256=62WMlZwSzBb-99ujaeGkkO
|
|
265
283
|
dissect/target/plugins/os/windows/regf/bam.py,sha256=W46KjD2bQC52qSajc2lNX36lkjzylKzH7xulnhEKrL8,2053
|
266
284
|
dissect/target/plugins/os/windows/regf/cit.py,sha256=vErcoGfslyuZsaZiGbSGm6KxnJmUjobMwoy03jb6774,38244
|
267
285
|
dissect/target/plugins/os/windows/regf/clsid.py,sha256=OvvA7Rwm29c1wXarXWXOMkqspA44oOQrQ_0rAJGYAU0,3601
|
268
|
-
dissect/target/plugins/os/windows/regf/firewall.py,sha256=
|
286
|
+
dissect/target/plugins/os/windows/regf/firewall.py,sha256=cDUj-dY6myWtPenI4Vrzp1u_1ndq0EtGDs78RoqSA0Y,3141
|
269
287
|
dissect/target/plugins/os/windows/regf/mru.py,sha256=HYg4UnbsjvzZKS9qcqxkocUeIGQieMLXPjkjgZ1qbTY,13560
|
270
288
|
dissect/target/plugins/os/windows/regf/muicache.py,sha256=qoA7S8SiZakIreQqxc_QH1av6Lnlprf5SGr4s55b-8E,3707
|
271
289
|
dissect/target/plugins/os/windows/regf/nethist.py,sha256=QHbG9fmZNmjSVhrgqMvMo12YBaQedzeToS7ZD9eIJ28,3111
|
@@ -273,8 +291,8 @@ dissect/target/plugins/os/windows/regf/recentfilecache.py,sha256=Wr6u7SajA9BtUiy
|
|
273
291
|
dissect/target/plugins/os/windows/regf/regf.py,sha256=IbLnOurtlprXAo12iYRdw6fv5J45SuMAqt-mXVYaZi4,3357
|
274
292
|
dissect/target/plugins/os/windows/regf/runkeys.py,sha256=qX-6xOrgBq7_B00C1BoQtI0Ovzou6Sx3XemV0Ra4JMs,4178
|
275
293
|
dissect/target/plugins/os/windows/regf/shellbags.py,sha256=EKBWBjxvSfxc7WFKmICZs8QUJnjhsCKesjl_NHEnSUo,25621
|
276
|
-
dissect/target/plugins/os/windows/regf/shimcache.py,sha256=
|
277
|
-
dissect/target/plugins/os/windows/regf/trusteddocs.py,sha256=
|
294
|
+
dissect/target/plugins/os/windows/regf/shimcache.py,sha256=4SHtwh-ajhgcyR2-vsBbjnsyBtEVPwlgk5j8e1TQkWM,9972
|
295
|
+
dissect/target/plugins/os/windows/regf/trusteddocs.py,sha256=4g4m1FYljOpYqGG-7NGyj738Tfnz0uEaN2is2YzkMgg,3669
|
278
296
|
dissect/target/plugins/os/windows/regf/usb.py,sha256=mfMQPKUct7fqpxJgquySrorPf5KWBzwWCLVKa9qSatc,7182
|
279
297
|
dissect/target/plugins/os/windows/regf/userassist.py,sha256=kEthM9oDDBA6UbGxunbyTfXX320Z_2YlTMYoUQyxZyY,5469
|
280
298
|
dissect/target/plugins/os/windows/task_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -283,31 +301,31 @@ dissect/target/plugins/os/windows/task_helpers/tasks_records.py,sha256=vpCyKqLQS
|
|
283
301
|
dissect/target/plugins/os/windows/task_helpers/tasks_xml.py,sha256=oOsYse2-BrliVQRXlHD1-89hsmNrJqg42DJy681AW0U,15268
|
284
302
|
dissect/target/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
285
303
|
dissect/target/tools/build_pluginlist.py,sha256=5fomcuMwsVzcnYx5Htf5f9lSwsLeUUvomLUXNA4t7m4,849
|
286
|
-
dissect/target/tools/dd.py,sha256=
|
287
|
-
dissect/target/tools/fs.py,sha256=
|
288
|
-
dissect/target/tools/info.py,sha256=
|
304
|
+
dissect/target/tools/dd.py,sha256=rTM-lgXxrYBpVAtJqFqAatDz45bLoD8-mFt_59Q3Lio,1928
|
305
|
+
dissect/target/tools/fs.py,sha256=cizCrW8rqdpT1irA8g6mslkaXX7CynWVQ7fvRUrcxNU,3719
|
306
|
+
dissect/target/tools/info.py,sha256=3smHr8I71yj3kCjsQ5nXkOHI9T_N8UwvkVa1CNOxB-s,5461
|
289
307
|
dissect/target/tools/logging.py,sha256=5ZnumtMWLyslxfrUGZ4ntRyf3obOOhmn8SBjKfdLcEg,4174
|
290
|
-
dissect/target/tools/mount.py,sha256=
|
291
|
-
dissect/target/tools/query.py,sha256=
|
292
|
-
dissect/target/tools/reg.py,sha256=
|
293
|
-
dissect/target/tools/shell.py,sha256=
|
294
|
-
dissect/target/tools/utils.py,sha256=
|
308
|
+
dissect/target/tools/mount.py,sha256=L_0tSmiBdW4aSaF0vXjB0bAkTC0kmT2N1hrbW6s5Jow,3254
|
309
|
+
dissect/target/tools/query.py,sha256=1LbvUKSmXOCMb4xqP3t86JkOgFzKlc7mLCqcczfLht8,16018
|
310
|
+
dissect/target/tools/reg.py,sha256=tII0MLqJ-3lOt7jE-zHUDqYrk0P4euPjiSS_99FT6LE,2378
|
311
|
+
dissect/target/tools/shell.py,sha256=EBRNKiIV3ljaXKAXraA6DmrIw8Cy5h9irAuwlblP3zo,43251
|
312
|
+
dissect/target/tools/utils.py,sha256=bhVZ3-8YynpHkBl4m1T4IpSpCArAXnEjjYwAFGW5JPg,10595
|
295
313
|
dissect/target/tools/dump/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
296
314
|
dissect/target/tools/dump/run.py,sha256=yHn9xl_VjasgiuLpjtZdnLW32QCbkwHfnnTPY6Ck_aw,9689
|
297
315
|
dissect/target/tools/dump/state.py,sha256=ZBNz4ou2Xk20K1H8R83S1gq6qcqPvPPVAaPWzpKpX34,9123
|
298
316
|
dissect/target/tools/dump/utils.py,sha256=nYcLQvPpDgzckM62hokGBh4z32DNH6d6oA8KelvoPMU,7564
|
299
317
|
dissect/target/volumes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
300
|
-
dissect/target/volumes/bde.py,sha256=
|
318
|
+
dissect/target/volumes/bde.py,sha256=8kazEzIIlpvBueOwJ6UI-WW3nit4INzKdyeNW5GUmng,3939
|
301
319
|
dissect/target/volumes/ddf.py,sha256=X0yBIFbG7Z_CJDVqxEBLDynM_NoSwIWEKVsQFOS-Tn4,1749
|
302
320
|
dissect/target/volumes/disk.py,sha256=6KN6FtW7TQ1yN1wSmGqbLQFjBP-aqld-lY3oSvkibz4,991
|
303
|
-
dissect/target/volumes/luks.py,sha256=
|
321
|
+
dissect/target/volumes/luks.py,sha256=OmCMsw6rCUXG1_plnLVLTpsvE1n_6WtoRUGQbpmu1zA,4414
|
304
322
|
dissect/target/volumes/lvm.py,sha256=wwQVR9I3G9YzmY6UxFsH2Y4MXGBcKL9aayWGCDTiWMU,2269
|
305
323
|
dissect/target/volumes/md.py,sha256=j1K1iKmspl0C_OJFc7-Q1BMWN2OCC5EVANIgVlJ_fIE,1673
|
306
324
|
dissect/target/volumes/vmfs.py,sha256=-LoUbn9WNwTtLi_4K34uV_-wDw2W5hgaqxZNj4UmqAQ,1730
|
307
|
-
dissect.target-3.
|
308
|
-
dissect.target-3.
|
309
|
-
dissect.target-3.
|
310
|
-
dissect.target-3.
|
311
|
-
dissect.target-3.
|
312
|
-
dissect.target-3.
|
313
|
-
dissect.target-3.
|
325
|
+
dissect.target-3.15.dist-info/COPYRIGHT,sha256=m-9ih2RVhMiXHI2bf_oNSSgHgkeIvaYRVfKTwFbnJPA,301
|
326
|
+
dissect.target-3.15.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
327
|
+
dissect.target-3.15.dist-info/METADATA,sha256=BvTH2UUruQcHfNYXMWPo6SHAgz7UpvaXcUplDQYBKxI,11107
|
328
|
+
dissect.target-3.15.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
329
|
+
dissect.target-3.15.dist-info/entry_points.txt,sha256=tvFPa-Ap-gakjaPwRc6Fl6mxHzxEZ_arAVU-IUYeo_s,447
|
330
|
+
dissect.target-3.15.dist-info/top_level.txt,sha256=Mn-CQzEYsAbkxrUI0TnplHuXnGVKzxpDw_po_sXpvv4,8
|
331
|
+
dissect.target-3.15.dist-info/RECORD,,
|
@@ -1,175 +0,0 @@
|
|
1
|
-
from __future__ import annotations
|
2
|
-
|
3
|
-
import gzip
|
4
|
-
import os
|
5
|
-
import socket
|
6
|
-
from typing import BinaryIO, Iterator, Optional
|
7
|
-
|
8
|
-
from dissect.target.filesystem import Filesystem
|
9
|
-
from dissect.target.helpers.record import UnixUserRecord
|
10
|
-
from dissect.target.plugin import OperatingSystem, export
|
11
|
-
from dissect.target.plugins.os.unix.linux._os import LinuxPlugin
|
12
|
-
from dissect.target.target import Target
|
13
|
-
|
14
|
-
|
15
|
-
def netmask_to_bits(netmask):
|
16
|
-
socket.inet_aton(netmask)
|
17
|
-
|
18
|
-
|
19
|
-
def parselines(fp):
|
20
|
-
parts = []
|
21
|
-
string = None
|
22
|
-
|
23
|
-
for line in fp:
|
24
|
-
line = line.strip()
|
25
|
-
|
26
|
-
for parsed_line in line.split(" "):
|
27
|
-
if parsed_line.startswith('"'):
|
28
|
-
if parsed_line.endswith('"'):
|
29
|
-
parts.append(parsed_line[1:-1])
|
30
|
-
else:
|
31
|
-
string = [parsed_line[1:]]
|
32
|
-
elif parsed_line.endswith('"') and parsed_line[-2] != "\\":
|
33
|
-
string.append(parsed_line[:-1])
|
34
|
-
parts.append(" ".join(string))
|
35
|
-
string = None
|
36
|
-
elif string:
|
37
|
-
string.append(parsed_line)
|
38
|
-
else:
|
39
|
-
parts.append(parsed_line)
|
40
|
-
|
41
|
-
if string:
|
42
|
-
string.append("\n")
|
43
|
-
|
44
|
-
if parts and not string:
|
45
|
-
yield parts
|
46
|
-
parts = []
|
47
|
-
|
48
|
-
|
49
|
-
class ConfigNode:
|
50
|
-
children = None
|
51
|
-
|
52
|
-
def __init__(self):
|
53
|
-
self.children = {}
|
54
|
-
|
55
|
-
def set(self, path, value):
|
56
|
-
n = self
|
57
|
-
|
58
|
-
for part in path[:-1]:
|
59
|
-
if part not in n.children:
|
60
|
-
n.children[part] = ConfigNode()
|
61
|
-
n = n.children[part]
|
62
|
-
|
63
|
-
n.children[path[-1]] = value
|
64
|
-
|
65
|
-
def __contains__(self, attr):
|
66
|
-
return attr in self.children
|
67
|
-
|
68
|
-
def __getattr__(self, attr):
|
69
|
-
return self.children[attr]
|
70
|
-
|
71
|
-
def __getitem__(self, index):
|
72
|
-
return self.children[index]
|
73
|
-
|
74
|
-
def items(self):
|
75
|
-
return self.children.items()
|
76
|
-
|
77
|
-
|
78
|
-
class FortigateConfig:
|
79
|
-
def __init__(self, fp):
|
80
|
-
self.config = ConfigNode()
|
81
|
-
|
82
|
-
stack = []
|
83
|
-
|
84
|
-
for p in parselines(fp):
|
85
|
-
# print stack
|
86
|
-
cmd = p[0]
|
87
|
-
# print p
|
88
|
-
|
89
|
-
if cmd == "config":
|
90
|
-
if p[1] == "vdom" and stack == [["vdom"]]:
|
91
|
-
continue
|
92
|
-
|
93
|
-
stack.append(p[1:])
|
94
|
-
|
95
|
-
elif cmd == "edit":
|
96
|
-
stack.append(p[1:])
|
97
|
-
|
98
|
-
elif cmd == "end":
|
99
|
-
stack.pop()
|
100
|
-
|
101
|
-
elif cmd == "next":
|
102
|
-
stack.pop()
|
103
|
-
|
104
|
-
elif cmd == "set":
|
105
|
-
path = []
|
106
|
-
for part in stack:
|
107
|
-
path += part
|
108
|
-
|
109
|
-
path.append(p[1])
|
110
|
-
self.config.set(path, p[2:])
|
111
|
-
|
112
|
-
|
113
|
-
class FortigatePlugin(LinuxPlugin):
|
114
|
-
def __init__(self, target: Target):
|
115
|
-
super().__init__(target)
|
116
|
-
self.target = target
|
117
|
-
|
118
|
-
fp = self.open_config()
|
119
|
-
self.config = FortigateConfig(fp)
|
120
|
-
fp.close()
|
121
|
-
|
122
|
-
@export(record=UnixUserRecord)
|
123
|
-
def users(self) -> Iterator[UnixUserRecord]:
|
124
|
-
raise NotImplementedError()
|
125
|
-
|
126
|
-
@export(property=True)
|
127
|
-
def os(self) -> str:
|
128
|
-
return OperatingSystem.FORTIGATE.value
|
129
|
-
|
130
|
-
def open_config(self) -> BinaryIO:
|
131
|
-
fs = self.target.filesystems[0]
|
132
|
-
if fs.exists("system.conf"):
|
133
|
-
fp = fs.open("system.conf")
|
134
|
-
elif fs.exists("config/sys_global.conf.gz"):
|
135
|
-
entry = fs.get("config/sys_global.conf.gz")
|
136
|
-
if entry.is_symlink():
|
137
|
-
entry = fs.get("config/" + os.path.basename(entry.readlink()))
|
138
|
-
|
139
|
-
fp = entry.open()
|
140
|
-
fp = gzip.GzipFile(fileobj=fp)
|
141
|
-
|
142
|
-
return fp
|
143
|
-
|
144
|
-
@classmethod
|
145
|
-
def detect(cls, target: Target) -> Optional[Filesystem]:
|
146
|
-
for fs in target.filesystems:
|
147
|
-
if fs.exists("/config") and fs.exists("/rootfs.gz"):
|
148
|
-
return fs
|
149
|
-
|
150
|
-
return None
|
151
|
-
|
152
|
-
@classmethod
|
153
|
-
def create(cls, target: Target, sysvol: Filesystem) -> FortigatePlugin:
|
154
|
-
target.fs.mount("/", sysvol)
|
155
|
-
return cls(target)
|
156
|
-
|
157
|
-
@export(property=True)
|
158
|
-
def hostname(self) -> str:
|
159
|
-
return self.config.config.system["global"].hostname[0]
|
160
|
-
|
161
|
-
@export(property=True)
|
162
|
-
def ips(self) -> list[str]:
|
163
|
-
r = []
|
164
|
-
for _, conf in self.config.config.system.interface.children.items():
|
165
|
-
if "ip" in conf:
|
166
|
-
r.append(conf.ip[0])
|
167
|
-
return r
|
168
|
-
|
169
|
-
@export(property=True)
|
170
|
-
def version(self) -> str:
|
171
|
-
fp = self.open_config()
|
172
|
-
r = fp.readline().split("=")[1].rsplit("-", 1)[0]
|
173
|
-
fp.close()
|
174
|
-
|
175
|
-
return "Fortigate " + r
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|