示例#1
0
 def get_requirements(cls):
     # Since we're calling the plugin, make sure we have the plugin's requirements
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.IntRequirement(
             name='pid',
             description=
             "Process ID to include (all other processes are excluded)",
             optional=True),
         requirements.StringRequirement(
             name="imphash",
             description="Search single imphash value",
             optional=True),
         requirements.StringRequirement(
             name="imphashlist",
             description="Search imphash list file",
             optional=True),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList,
                                        version=(1, 0, 0)),
         requirements.PluginRequirement(name='vadinfo',
                                        plugin=vadinfo.VadInfo,
                                        version=(1, 0, 0)),
     ]
示例#2
0
 def get_requirements(
         cls) -> List[interfaces.configuration.RequirementInterface]:
     # Since we're calling the plugin, make sure we have the plugin's requirements
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.ListRequirement(
             name='pid',
             description='Filter on specific process IDs',
             element_type=int,
             optional=True),
         requirements.BooleanRequirement(
             name='silent',
             description='Suppress common and non-persistent variables',
             optional=True),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList,
                                        version=(2, 0, 0)),
         requirements.PluginRequirement(name='hivelist',
                                        plugin=hivelist.HiveList,
                                        version=(1, 0, 0))
     ]
示例#3
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = "Memory layer for the kernel",
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
         requirements.BooleanRequirement(name = "wide",
                                         description = "Match wide (unicode) strings",
                                         default = False,
                                         optional = True),
         requirements.StringRequirement(name = "yara_rules",
                                        description = "Yara rules (as a string)",
                                        optional = True),
         requirements.URIRequirement(name = "yara_file", description = "Yara rules (as a file)", optional = True),
         requirements.IntRequirement(name = "max_size",
                                     default = 0x40000000,
                                     description = "Set the maximum size (default is 1GB)",
                                     optional = True),
         requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (1, 0, 0)),
         requirements.PluginRequirement(name = 'yarascan', plugin = yarascan.YaraScan, version = (2, 0, 0)),
         requirements.ListRequirement(name = 'pid',
                                      element_type = int,
                                      description = "Process IDs to include (all other processes are excluded)",
                                      optional = True)
     ]
示例#4
0
 def get_requirements(
         cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description="Memory layer for the kernel",
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.IntRequirement(
             name="max_size",
             default=0x40000000,
             description="Set the maximum size (default is 1GB)",
             optional=True),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList,
                                        version=(1, 0, 0)),
         requirements.IntRequirement(
             name='pid',
             description=
             "Process ID to include (all other processes are excluded)",
             optional=True),
         requirements.URIRequirement(name="yara_file",
                                     description="Yara rules (as a file)",
                                     optional=True),
         requirements.PluginRequirement(name="vadyarascan",
                                        plugin=vadyarascan.VadYaraScan,
                                        version=(1, 0, 0)),
     ]
示例#5
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
         requirements.PluginRequirement(name = 'hivelist', plugin = hivelist.HiveList, version = (1, 0, 0)),
         requirements.PluginRequirement(name = 'printkey', plugin = printkey.PrintKey, version = (1, 0, 0))
     ]
示例#6
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
         requirements.PluginRequirement(name = 'ssdt', plugin = ssdt.SSDT, version = (1, 0, 0)),
         requirements.PluginRequirement(name = 'svcscan', plugin = svcscan.SvcScan, version = (1, 0, 0))
     ]
示例#7
0
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
         requirements.PluginRequirement(name = 'poolscanner', plugin = poolscanner.PoolScanner, version = (1, 0, 0)),
         requirements.PluginRequirement(name = 'bigpools', plugin = bigpools.BigPools, version = (1, 0, 0)),
     ]
示例#8
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     # Reuse the requirements from the plugins we use
     return [
         requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (1, 0, 0)),
         requirements.PluginRequirement(name = 'modules', plugin = modules.Modules, version = (1, 0, 0)),
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols")
     ]
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     # Since we're calling the plugin, make sure we have the plugin's requirements
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
         requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (1, 0, 0)),
         requirements.PluginRequirement(name = 'poolscanner', plugin = poolscanner.PoolScanner, version = (1, 0, 0)),
         requirements.PluginRequirement(name = 'vadyarascan', plugin = vadyarascan.VadYaraScan, version = (1, 0, 0))
     ]
示例#10
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     ## TODO: we might add a regex option on the name later, but otherwise we're good
     ## TODO: and we don't want any CLI options from pslist, modules, or moddump
     return [
         requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (2, 0, 0)),
         requirements.PluginRequirement(name = 'modules', plugin = modules.Modules, version = (1, 0, 0)),
         requirements.VersionRequirement(name = 'dlllist', component = dlllist.DllList, version = (2, 0, 0)),
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
     ]
 def get_requirements(cls):
     return [
         requirements.PluginRequirement(name='ssdt',
                                        plugin=ssdt.SSDT,
                                        version=(1, 0, 0)),
         requirements.PluginRequirement(name='driverscan',
                                        plugin=driverscan.DriverScan,
                                        version=(1, 0, 0)),
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
     ]
示例#12
0
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.PluginRequirement(name='hivelist',
                                        plugin=hivelist.HiveList,
                                        version=(1, 0, 0)),
         requirements.PluginRequirement(name='lsadump',
                                        plugin=lsadump.Lsadump,
                                        version=(1, 0, 0))
     ]
示例#13
0
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList,
                                        version=(2, 0, 0)),
         requirements.VersionRequirement(name='info',
                                         component=info.Info,
                                         version=(1, 0, 0)),
         requirements.ListRequirement(
             name='pid',
             element_type=int,
             description=
             "Process ID to include (all other processes are excluded)",
             optional=True),
         requirements.BooleanRequirement(
             name='dump',
             description="Extract listed processes",
             default=False,
             optional=True)
     ]
 def get_requirements(
         cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="vmlinux", description="Linux kernel symbols"),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList,
                                        version=(1, 0, 0)),
         requirements.ListRequirement(
             name='pid',
             element_type=int,
             description=
             "Process IDs to include (all other processes are excluded)",
             optional=True),
         requirements.ListRequirement(
             name='name',
             element_type=str,
             description=
             "Process name to include (all other processes are excluded)",
             optional=True),
         requirements.StringRequirement(name='out',
                                        description="JSON output file",
                                        optional=True)
     ]
示例#15
0
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.BooleanRequirement(
             name="dump_memory",
             description="Dumps the hidden memory to files.",
             default=False,
             optional=True),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList,
                                        version=(1, 0, 0)),
         requirements.IntRequirement(
             name='pid',
             description=
             "Process ID to include (all other processes are excluded)",
             optional=True),
         requirements.BooleanRequirement(
             name='test_only_orphaned_pages',
             description=
             'Only test pages for not belonging to any VAD (detects MAS remapping).',
             default=False,
             optional=True)
     ]
示例#16
0
 def get_requirements(
         cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.PluginRequirement(name='hivelist',
                                        plugin=hivelist.HiveList,
                                        version=(1, 0, 0)),
         requirements.IntRequirement(name='offset',
                                     description="Hive Offset",
                                     default=None,
                                     optional=True),
         requirements.StringRequirement(name='key',
                                        description="Key to start from",
                                        default=None,
                                        optional=True),
         requirements.BooleanRequirement(
             name='recurse',
             description='Recurses through keys',
             default=False,
             optional=True)
     ]
示例#17
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(name='primary',
                                                  description="Memory layer for the kernel",
                                                  architectures=['Intel32', 'Intel64']),
         requirements.SymbolTableRequirement(name='vmlinux',
                                             description="Linux kernel symbols"),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList, version=(1, 0, 0)),
         requirements.ListRequirement(name='pids',
                                      description="Filter on specific process IDs. Default is pid 1",
                                      element_type=int,
                                      default=DEFAULT_PIDS_VALUE,
                                      optional=True),
         requirements.BooleanRequirement(name='all',
                                         description="Shows information about mount points for each process mount "
                                         "namespace. It could take a while depending on the number of processes "
                                         "running. Note that if this argument is not specified it uses the root "
                                         "mount namespace based on pid 1.",
                                         optional=True,
                                         default=False),
         requirements.BooleanRequirement(name='mount-format',
                                         description="Shows a brief summary of a process mount points information "
                                         "with similar output format to the older /proc/[pid]/mounts or the "
                                         "user-land command 'mount -l'.",
                                         optional=True,
                                         default=False),
     ]
示例#18
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     # Since we're calling the plugin, make sure we have the plugin's requirements
     return [requirements.TranslationLayerRequirement(name = 'primary',
                                                      description = 'Memory layer for the kernel',
                                                      architectures = ["Intel32", "Intel64"]),
             requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
             # TODO: Convert this to a ListRequirement so that people can filter on sets of ranges
             requirements.IntRequirement(name = 'address',
                                         description = "Process virtual memory address to include " \
                                                       "(all other address ranges are excluded). This must be " \
                                                       "a base address, not an address within the desired range.",
                                         optional = True),
             requirements.ListRequirement(name = 'pid',
                                          description = 'Filter on specific process IDs',
                                          element_type = int,
                                          optional = True),
             requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (2, 0, 0)),
             requirements.BooleanRequirement(name = 'dump',
                                             description = "Extract listed memory ranges",
                                             default = False,
                                             optional = True),
             requirements.IntRequirement(name = 'maxsize',
                                         description = "Maximum size for dumped VAD sections " \
                                                       "(all the bigger sections will be ignored)",
                                         default = cls.MAXSIZE_DEFAULT,
                                         optional = True),
             ]
示例#19
0
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Kernel Address Space',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "darwin", description = "Mac Kernel"),
         requirements.PluginRequirement(name = 'tasks', plugin = tasks.Tasks, version = (1, 0, 0))
     ]
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "darwin", description = "Linux kernel symbols"),
         requirements.PluginRequirement(name = 'tasks', plugin = tasks.Tasks, version = (1, 0, 0))
     ]
示例#21
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "darwin", description = "Mac kernel symbols"),
         requirements.PluginRequirement(name = 'lsmod', plugin = lsmod.Lsmod, version = (1, 0, 0))
     ]
示例#22
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "vmlinux", description = "Linux kernel symbols"),
         requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (1, 0, 0)),
     ]
示例#23
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     # Since we're calling the plugin, make sure we have the plugin's requirements
     return [requirements.TranslationLayerRequirement(name = 'primary',
                                                      description = 'Memory layer for the kernel',
                                                      architectures = ["Intel32", "Intel64"]),
             requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
             # TODO: Convert this to a ListRequirement so that people can filter on sets of ranges
             requirements.IntRequirement(name = 'address',
                                         description = "Process virtual memory address to include " \
                                                       "(all other address ranges are excluded). This must be " \
                                                       "a base address, not an address within the desired range.",
                                         optional = True),
             requirements.IntRequirement(
                 name = 'pid', description = "Process ID to include (all other processes are excluded)",
                 optional = True),
             requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (1, 0, 0)),
             requirements.PluginRequirement(name = 'vadinfo', plugin = vadinfo.VadInfo, version = (1, 0, 0)),
             ]
示例#24
0
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "vmlinux", description = "Linux kernel symbols"),
         requirements.PluginRequirement(name = 'lsmod', plugin = lsmod.Lsmod, version = (1, 0, 0)),
         requirements.VersionRequirement(name = 'linuxutils', component = linux.LinuxUtilities, version = (1, 0, 0))
     ]
示例#25
0
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name="darwin",
                                             description="Mac kernel"),
         requirements.VersionRequirement(name='macutils',
                                         component=mac.MacUtilities,
                                         version=(1, 1, 0)),
         requirements.PluginRequirement(name='lsmod',
                                        plugin=lsmod.Lsmod,
                                        version=(1, 0, 0)),
         requirements.PluginRequirement(name='kauth_scopes',
                                        plugin=kauth_scopes.Kauth_scopes,
                                        version=(1, 0, 0))
     ]
示例#26
0
 def get_requirements(cls):
     return (super().get_requirements() + [
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.PluginRequirement(
             name='pslist', plugin=pslist.PsList, version=(1, 0, 0)),
         requirements.IntRequirement(
             name='pid', description="Process ID", optional=True)
     ])
示例#27
0
 def get_requirements(
         cls) -> List[interfaces.configuration.RequirementInterface]:
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="nt_symbols", description="Windows kernel symbols"),
         requirements.ListRequirement(
             name='pid',
             description='Filter on specific process IDs',
             element_type=int,
             optional=True),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList,
                                        version=(1, 0, 0)),
         requirements.PluginRequirement(name='hivelist',
                                        plugin=hivelist.HiveList,
                                        version=(1, 0, 0))
     ]
示例#28
0
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(
             name='primary',
             description='Memory layer for the kernel',
             architectures=["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(
             name="darwin", description="Mac kernel symbols"),
         requirements.PluginRequirement(name='pslist',
                                        plugin=pslist.PsList,
                                        version=(2, 0, 0))
     ]
示例#29
0
 def get_requirements(cls):
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "darwin", description = "Linux kernel symbols"),
         requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (2, 0, 0)),
         requirements.ListRequirement(name = 'pid',
                                      description = 'Filter on specific process IDs',
                                      element_type = int,
                                      optional = True)
     ]
 def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
     # Since we're calling the plugin, make sure we have the plugin's requirements
     return [
         requirements.TranslationLayerRequirement(name = 'primary',
                                                  description = 'Memory layer for the kernel',
                                                  architectures = ["Intel32", "Intel64"]),
         requirements.SymbolTableRequirement(name = "nt_symbols", description = "Windows kernel symbols"),
         requirements.IntRequirement(name = 'pid',
                                     description = "Process ID to include (all other processes are excluded)",
                                     optional = True),
         requirements.PluginRequirement(name = 'pslist', plugin = pslist.PsList, version = (1, 0, 0))
     ]