Skip to content

Commit 8690319

Browse files
authored
Extend webserver collection (#264)
1 parent 9a1e62f commit 8690319

File tree

2 files changed

+37
-13
lines changed

2 files changed

+37
-13
lines changed

acquire/acquire.py

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,18 @@
1717
import urllib.request
1818
import warnings
1919
from collections import defaultdict
20-
from itertools import chain, product
20+
from itertools import product
2121
from pathlib import Path
2222
from typing import TYPE_CHECKING, BinaryIO, NamedTuple, NoReturn
2323

2424
from dissect.target import Target
2525
from dissect.target.filesystems import ntfs
2626
from dissect.target.helpers import fsutil
2727
from dissect.target.loaders.local import _windows_get_devices
28-
from dissect.target.plugins.apps.webserver import iis
28+
from dissect.target.plugins.apps.webserver.apache import ApachePlugin
29+
from dissect.target.plugins.apps.webserver.caddy import CaddyPlugin
30+
from dissect.target.plugins.apps.webserver.iis import IISLogsPlugin
31+
from dissect.target.plugins.apps.webserver.nginx import NginxPlugin
2932
from dissect.target.plugins.os.windows.cam import CamPlugin
3033
from dissect.target.plugins.os.windows.log import evt, evtx
3134
from dissect.target.tools.utils.cli import args_to_uri
@@ -870,15 +873,36 @@ class IIS(Module):
870873

871874
@classmethod
872875
def get_spec_additions(cls, target: Target, cli_args: argparse.Namespace) -> Iterator[tuple]:
873-
spec = {
874-
("glob", "sysvol\\Windows\\System32\\LogFiles\\W3SVC*\\*.log"),
875-
("glob", "sysvol\\Windows.old\\Windows\\System32\\LogFiles\\W3SVC*\\*.log"),
876-
("glob", "sysvol\\inetpub\\logs\\LogFiles\\*.log"),
877-
("glob", "sysvol\\inetpub\\logs\\LogFiles\\W3SVC*\\*.log"),
878-
("glob", "sysvol\\Resources\\Directory\\*\\LogFiles\\Web\\W3SVC*\\*.log"),
879-
}
880-
iis_plugin = iis.IISLogsPlugin(target)
881-
spec.update(("path", log_path) for log_path in chain(*iis_plugin.log_dirs.values()))
876+
warnings.warn(
877+
"--iis is deprecated in favor of --webserver-logs and will be removed in acquire 3.22",
878+
DeprecationWarning,
879+
stacklevel=2,
880+
)
881+
return Webserver.get_spec_additions(cls, target, cli_args)
882+
883+
884+
@register_module("--webserver")
885+
class Webserver(Module):
886+
DESC = "Various webserver logs and configuration files"
887+
888+
@classmethod
889+
def get_spec_additions(cls, target: Target, cli_args: argparse.Namespace) -> Iterator[tuple]:
890+
spec = set()
891+
subclasses = [
892+
ApachePlugin,
893+
CaddyPlugin,
894+
IISLogsPlugin,
895+
NginxPlugin,
896+
]
897+
898+
for subclass in subclasses:
899+
if subclass.__name__ == "IISLogsPlugin" and target.os != "windows":
900+
continue
901+
902+
webserver = subclass(target)
903+
for log_path in webserver.get_all_paths():
904+
spec.add(("path", log_path))
905+
882906
return spec
883907

884908

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ classifiers = [
2626
]
2727
dependencies = [
2828
"dissect.cstruct>=4,<5",
29-
"dissect.target>=3.24,<4",
29+
"dissect.target>=3.25.dev,<4", # TODO: update on release
3030
]
3131
dynamic = ["version"]
3232

@@ -47,7 +47,7 @@ full = [
4747
dev = [
4848
"acquire[full]",
4949
"dissect.cstruct>=4.0.dev,<5.0.dev",
50-
"dissect.target[dev]>=3.24.dev,<4.0.dev",
50+
"dissect.target[dev]>=3.25.dev,<4.0.dev",
5151
]
5252

5353
[dependency-groups]

0 commit comments

Comments
 (0)