Redes¶
Qué son¶
Windows recuerda las redes a las que se unió un sistema y cómo se configuró su red.
SOFTWARE:- Perfiles de red (
NetworkList\Profiles): uno por cada red a la que se conectó el sistema, con su nombre (el SSID de una red Wi-Fi), su categoría (pública, privada, dominio), el tipo de conexión (cableada, inalámbrica, VPN, banda ancha móvil) y cuándo se conectó el sistema a ella por primera y por última vez. - Firmas (
NetworkList\Signatures): lo que identifica cada red, como la dirección MAC de la puerta de enlace y el sufijo DNS. - Tarjetas de red (
NetworkCards): los adaptadores. SYSTEM(por conjunto de control):- Interfaces TCP/IP: direcciones, servidor y concesión DHCP, servidores DNS, dominio.
- Recursos compartidos que ofrece el sistema (
LanmanServer\Shares). - Proxies de puertos (
PortProxy): los túneles que configuranetsh interface portproxy, que los atacantes usan para pivotar y para llegar a RDP a través de otro puerto. - Rutas persistentes.
- La zona horaria, que convierte las horas locales de los perfiles a UTC.
Mejor conclusión: el sistema se conectó a una red con este nombre y esta puerta de enlace, por primera y por última vez a estas horas. Tenía esta dirección asignada por este servidor DHCP y ofrecía estos recursos compartidos y túneles cuando se guardó el hive. El nombre de una red por sí solo no identifica dónde estaba: muchas redes se llaman "Network" o comparten un SSID.
Ubicación¶
C:\Windows\System32\config\SOFTWARE
Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID}
ProfileName, Description, Category, NameType, Managed, DateCreated, DateLastConnected
Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed|Unmanaged\<signature>
ProfileGuid, DefaultGatewayMac, DnsSuffix, FirstNetwork
Microsoft\Windows NT\CurrentVersion\NetworkCards\<n> ServiceName, Description
C:\Windows\System32\config\SYSTEM (ControlSet00N\…)
Services\Tcpip\Parameters\Interfaces\{GUID} IP, DHCP, DNS, lease times
Services\LanmanServer\Shares one value per share
Services\PortProxy\v4tov4|v4tov6|v6tov4|v6tov6\tcp listen = connect
Services\Tcpip\Parameters\PersistentRoutes destination,mask,gateway,metric
Control\TimeZoneInformation
Recopile ambos hives con sus registros de transacciones. El hive SYSTEM es necesario para convertir las horas de los perfiles a UTC.
Precauciones para el analista¶
- Las horas de los perfiles son locales.
DateCreatedyDateLastConnectedse escriben en la hora local del sistema. FirstConnectedLocalyLastConnectedLocallas conservan tal como se encontraron.FirstConnectedUTCyLastConnectedUTClas convierten con la zona horaria del hive SYSTEM del sistema (TimeZone) y su regla de horario de verano.- Una hora anterior a un cambio de zona horaria, o de un año con otra regla de horario de verano (fechas de EE. UU. anteriores a 2007), puede estar desfasada en esa diferencia.
- Sin un hive SYSTEM legible y un conjunto de control actual válido, solo se proporcionan horas locales. Los saltos del horario de verano y las horas ambiguas repetidas no tienen una única marca de tiempo UTC demostrable: UTC se deja vacío y
Problemsexplica la limitación. Los desplazamientos o fechas no válidos tampoco se convierten. - Solo la primera y la última. Cada perfil tiene una primera y una última conexión, no todas las conexiones. La última escritura de la clave del perfil suele coincidir con la última conexión.
- Los nombres se repiten. Windows denomina las redes cableadas no administradas "Network",
"Network 2", etc. Los SSID de Wi-Fi no son únicos. Utilice
GatewayMacyDnsSuffixpara distinguir las redes, y correlaciónelos con los registros DHCP y el inventario de activos. La MAC de una puerta de enlace no es necesariamente el BSSID de un punto de acceso Wi-Fi y por sí sola no determina la ubicación física. - Los recursos compartidos, los proxies y las rutas son configuración: un recurso compartido o un proxy de puertos puede configurarse y no usarse nunca. Ningún valor tiene una hora propia; la última escritura de la clave es el momento en que cambió cualquiera de ellos.
- Interfaces: una clave de interfaz bajo un GUID sin direcciones es un adaptador que no está configurado. Con DHCP, las direcciones son las de la última concesión. Una dirección estática que quedó de antes de DHCP no se muestra como en uso.
- Conjuntos de control: de forma predeterminada se lee el conjunto de control que Windows usó
por última vez.
--all-control-setslos lee todos, lo que puede mostrar un recurso compartido o un proxy que se eliminó del actual.
Análisis con Juntei¶
Usage: juntei parse-registry networks <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find SOFTWARE and SYSTEM hives
-f, --file <FILE> Parse one hive
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Filtering:
--all-control-sets Every control set, not only the one in use
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry networks -d evidence/ -o networks.csv
juntei parse-registry networks -d evidence/ -t jsonl \
| jq 'select(.Source == "port_proxy" or .Source == "share")'
El resumen enumera las últimas redes a las que se conectó (de la más reciente a la más antigua) y todos los recursos compartidos, proxies de puertos y rutas persistentes.
Campos de salida¶
| Campo | Interpretación |
|---|---|
Host, SourcePath |
Host y el hive. |
ControlSet, IsCurrentControlSet |
Para los registros de SYSTEM: el conjunto de control y si es el que Windows usó por última vez. |
Source |
network_profile, network_signature (una firma sin perfil), network_card, interface, share, port_proxy, route. |
ProfileName |
El nombre de un perfil (el SSID de una red Wi-Fi); la descripción de una firma. |
Category, ConnectionType |
public, private, domain; wired, wireless, vpn, mobile_broadband (o, en caso contrario, el número). |
FirstConnectedUTC, LastConnectedUTC |
DateCreated y DateLastConnected convertidos a UTC con TimeZone. |
FirstConnectedLocal, LastConnectedLocal |
Lo mismo, tal como se encontró (hora local, con precisión de milisegundos). |
TimeZone |
La zona horaria utilizada para la conversión. |
GatewayMAC, DNS-Suffix |
La dirección MAC de la puerta de enlace y el sufijo DNS de las firmas del perfil (| entre varios). |
InterfaceGUID |
El GUID de una interfaz; el ServiceName de una tarjeta de red. |
IP-Address, DhcpServer, LeaseObtainedUTC, LeaseExpiresUTC |
Las direcciones en uso de una interfaz, el servidor DHCP y la concesión. |
ShareName, SharePath |
Un recurso compartido y la carpeta que ofrece. |
ListenAddress, ListenPort, ConnectAddress, ConnectPort |
Un proxy de puertos: dónde escucha y hacia dónde reenvía. |
Route |
Una ruta persistente tal como se almacena: destination,netmask,gateway,metric. |
Details |
Otros valores, como Name=Value; … (CSV) o un objeto (JSON): la descripción de un perfil, Managed, el primer nombre y las claves de firma; el adaptador de una interfaz (de NetworkCards), máscaras, puertas de enlace, servidores DNS y dominio; el tipo, el comentario y otros campos de un recurso compartido; el tipo de un proxy; las partes de una ruta. |
KeyPath, ValueName, KeyLastWrittenUTC |
La clave, el valor de un recurso compartido, proxy o ruta, y la última escritura de la clave. |
DataRaw |
Bytes que no se decodifican: una hora que no es un SYSTEMTIME válido, un recurso compartido que no es una lista de cadenas. |
TransactionLogStatus, LogsApplied |
Contexto de la recuperación del Registro. |
Problems |
Valores de tipo o tamaño incorrecto, fechas imposibles y nombres que no tienen la forma esperada. |
Estrategia de investigación¶
- Ordene los perfiles por
LastConnectedUTCy revise las redes en torno al incidente: redes Wi-Fi desconocidas, puntos de acceso móviles, VPN. - Utilice
GatewayMacyDnsSuffixpara distinguir redes con el mismo nombre y para relacionar una red entre hosts. - Revise todos los proxies de puertos y recursos compartidos. Un proxy de puertos hacia el 3389 o
el 445 de un host interno, o un recurso compartido de una carpeta de preparación
(
C:\ProgramData,C:\Users\Public), es una pista. Correlacione con los registros de eventos (creación del procesonetsh, eventos de recursos compartidos 5142/5144) y con las horas de las claves. - Utilice las direcciones y las horas de concesión de las interfaces para situar el host en la red, y relaciónelas con los registros del cortafuegos, DHCP y proxy.
- Utilice
--all-control-setsyparse-registry read --recover-deletedpara los recursos compartidos, proxies y perfiles eliminados.