Windows.Registry.PortProxy
Windows.Registry.PortProxy
Enumerates Windows port proxy registry entries configured via netsh or attack tools for network redirection.
This artifact will return any items in the Windows PortProxy service
registry path. The most common configuration of this service is via
the LOLBin netsh.exe. Metasploit and other common attack tools
also have related configuration modules.
name: Windows.Registry.PortProxy
description: |
Enumerates Windows port proxy registry entries configured via
netsh or attack tools for network redirection.
This artifact will return any items in the Windows PortProxy service
registry path. The most common configuration of this service is via
the LOLBin `netsh.exe`. Metasploit and other common attack tools
also have related configuration modules.
reference:
- Port Proxy detection (http://www.dfirnotes.net/portproxy_detection/)
- ATT&CK T1090 - Connection Proxy (https://attack.mitre.org/techniques/T1090/) \
Adversaries may use a connection proxy to direct network traffic between
systems or act as an intermediary for network communications to a command
and control server to avoid direct connections to their infrastructure.
author: Matt Green - @mgreen27
precondition: SELECT OS From info() where OS = 'windows'
parameters:
- name: KeyGlob
default: HKEY_LOCAL_MACHINE\SYSTEM\*ControlSet*\services\PortProxy\**
sources:
- name: PortProxy
query: |
SELECT OSPath,
OSPath[-3] AS ProxyType,
OSPath[-2] AS Protocol,
regex_replace(source=OSPath.Basename, re="/", replace=":") as Listening,
regex_replace(source=Data.value, re="/", replace=":") as Destination,
Mtime as ModifiedTime,
Type
FROM glob(globs=KeyGlob, accessor="registry")
WHERE Type
reports:
- type: CLIENT
template: |
Port Forwarding: PortProxy
==========================
{{ .Description }}
{{ define "report" }}
LET report = SELECT Protocol,
ProxyType,
Listening,
Destination,
ModifiedTime,
ProxyType + Protocol + Listening + Destination as ServiceKey
FROM source(source='PortProxy')
GROUP BY ServiceKey
{{ end }}
{{ Query "report" "SELECT ProxyType, Protocol, Listening, Destination, ModifiedTime FROM report" | Table }}
- type: HUNT
template: |
Port Forwarding: PortProxy
==========================
{{ .Description }}
{{ define "report" }}
LET report = SELECT Fqdn,
Protocol,
ProxyType,
Listening,
Destination,
ModifiedTime,
ProxyType + Protocol + Listening + Destination as ServiceKey
FROM source(source='PortProxy')
GROUP BY ServiceKey
{{ end }}
{{ Query "report" "SELECT Fqdn, ProxyType, Protocol, Listening, Destination, ModifiedTime FROM report" | Table }}