JA4D and JA4D6: DHCP Fingerprinting

John Althouse

Nov 19, 2025

TL;DR

JA4D and JA4D6 are the latest additions to JA4+ and allow for easy device/operating system identification at the moment a device connects to the network, regardless of MAC address and without the need for network scanning. It’s perfect for locked-down environments, identifying hacking tools, or just knowing what’s on the network.

JA4+

JA4+ is a modular suite of network fingerprints that are easy to use and easy to share. These fingerprints have integrations in over 50 tools and products including Wireshark, Arkime, Zeek, Palo Alto Networks, Vectra, ExtraHop, eSentire, Fastly, and F5. JA4D and JA4D6 are the latest additions to the JA4+ family. 

JA4+ Network Fingerprints

Full Name

Short Name

Description

JA4

JA4

TLS Client Fingerprinting

JA4Server

JA4S

TLS Server Response / Session Fingerprinting

JA4HTTP

JA4H

HTTP Client Fingerprinting

JA4Latency

JA4L

Client to Server Latency Measurement / Light Distance

JA4LatencyServer

JA4LS

Server to Client Latency Measurement / Light Distance

JA4X509

JA4X

X509 TLS Certificate Fingerprinting

JA4SSH


JA4SSH

SSH Traffic Fingerprinting

JA4TCP

JA4T

TCP Client Fingerprinting

JA4TCPServer

JA4TS

TCP Server Response Fingerprinting

JA4TCPScan

JA4TScan

Active TCP Fingerprint Scanner

JA4DHCP

JA4D

DHCP Fingerprinting

JA4DHCPv6

JA4D6

DHCPv6 Fingerprinting

More information on JA4+ is available on our GitHub: https://github.com/FoxIO-LLC/ja4

JA4DHCP

JA4D fingerprints traditional DHCP messages over IPv4 while JA4D6 fingerprints DHCPv6 messages over IPv6. Together, they provide the ability to easily identify devices on a network without the need to rely solely on network interface MAC addresses.

As with the rest of JA4+, the fingerprints are split up into a_b_c delimited sections for easy cross-correlation and are designed to be human readable as well as machine usable. The first part of the fingerprint is the DHCP message type. There are 57 possible message types but the most common are associated with new requests. 

For a new DHCP request the standard procedure is: disco → offer → reqst → dpack

IANA Type

JA4D 5-character Code

Meaning

DHCPDISCOVER

disco

Client is looking for an IPv4 address and DHCP server

DHCPOFFER

offer

Server is offering an IPv4 address

DHCPREQUEST

reqst

Client is requesting that specific IPv4 address

DHCPACK

dpack

Server has agreed to the request

For a new DHCPv6 request the standard procedure is: solicit → advert → reqst → reply

IANA Type

JA4D6 5-character Code

Meaning

SOLICIT

solct

Client is looking for an IPv6 address and a DHCPv6 server

ADVERTISE

advrt

Server is offering an IPv6 address

REQUEST

reqst

Client is requesting that specific IPv6 address

REPLY

reply

Server has agreed to the request

Therefore, common JA4D/6 fingerprints for identifying a client are disco, reqst and solct.

Common JA4D/6 fingerprints for identifying the DHCP server are offer, dpack, advert and reply.

Examples

JA4+ Fingerprints

Operating System

Device

ja4d == disco1500nn_61-57-60-12-55_1-3-6-15-26-28-51-58-59-43-114-108

Android 16

Samsung Phone

ja4d == reqst1500in_61-57-60-12-55_1-3-6-15-26-28-51-58-59-43-114-108

Android 16

Samsung Phone

ja4d == disco0000nn_61-12-60-55_1-3-6-15-31-33-43-44-46-47-119-121-249-252

Windows 10/11

Desktop/Laptop

ja4d == reqst0000id_61-12-60-55_1-3-6-15-31-33-43-44-46-47-119-121-249-252

Windows 10/11

Desktop/Laptop

ja4d6 == solct0014nn_8-1-3-39-16-6_17-23-24-39

Windows 10/11

Desktop/Laptop

ja4d6 == reqst0014nn_8-1-2-3-5-39-16-6_17-23-24-39

Windows 10/11

Desktop/Laptop

ja4d == reqst0576nn_57-55-12-60-61_1-3-6-12-15-28-42

Embedded Linux 1.34

Ubiquiti Cameras

ja4d == reqst0576nn_57-55-60-12_1-3-6-15-28-42-121

Embedded Linux 1.30

Phillips Hue Bridge

ja4d == reqst0576nn_61-57-55-60-12_1-3-6-12-15-28-42-43

Ubiquiti

Ubiquiti Hardware

ja4d == disco1500nn_57-55-60-61-12_1-2-3-6-69

EMLAB

LIFX Smart Bulbs

ja4d == disco0576nn_57-55-61-12_1-3-26-252-42-15-6-12

LG

LG WebOS TV

ja4d == disco0576nn_57-55-61-12_1-3-26-252-43-42-6-12

Samsung

Samsung TV

ja4d == reqst0000nn_61-12-55_1-3-6-12-15-28

Epson

Epson Printer

JA4D/6 makes identifying devices on a network trivial and is far more effective than existing methods. For example, Ubiquiti identifies this device as a “Fractal Design Node 304” and it lists the OS as “Others”.

Looking at the same MAC address on Arkime we can easily see that the device has a JA4D matching Windows 10/11 in the chart above. No network scanning needed, JA4D is able to identify devices the moment they plug into the network, regardless of MAC address.

JA4D/6 can be extremely valuable in locked-down networks where only a certain operating system is allowed on the network. In those cases, one could utilize JA4D/6 to be notified of a violation the moment an unauthorized operating system connects, without the need to wait for traditional network scans to run.

Malware Detection

A common tool used by Red Teams and threat actors is Pretender. This tool exploits the fact that most internal corporate networks are setup for IPv4 only, yet all devices in those networks not only support IPv6, but prefer it. By using Pretender on a compromised system, the threat actor can effectively take over a network by advertising itself as the DHCPv6 server, which devices will prefer over the existing DHCP server, and intercept/redirect DNS, authentication, Kerberos, and other traffic. 

In an IPv4 only network, you may see JA4D6 == solict* because some systems regularly look for a DHCPv6 server. So simply looking for DHCPv6 traffic will not help identify this type of attack.

However, in an IPv4 only environment, you should never see JA4D6 == reply* and if you do, an attack might be under way.

At the time of writing, the Pretender tool produces the following JA4D6 fingerprints:

Pretender JA4D6 Fingerprints as of Nov. 2025

advrt0018nn_1-2-23-3-5_00

reply0018nn_1-2-23-3-5_00

advrt0014nn_1-2-23-3-5_00

reply0014nn_1-2-23-3-5_00

advrt0010nn_1-2-23-3-5_00

reply0010nn_1-2-23_00

If you’re a Red Teamer (hi Hector!) and you’re thinking, “oh no, this detects one of my favorite attack methods!” I think you can rest easy knowing very few companies monitor their internal network traffic. However, if they did, and with JA4+, well that would be cause for some very positive recognition in the post engagement report.

JA4D/6 are immediately available for free under the FoxIO License on Arkime, Wireshark, and Zeek, with support on Vectra, ExtraHop, and others coming soon.

A database of JA4D/6 fingerprints will be available on the new JA4DB in the coming weeks.

Zeek example:

If you already have the Zeek ja4+ plugin installed via zkg, then you only need to run “zkg upgrade” to have JA4D support. Be aware, Zeek does not currently support DHCPv6. Until that is in, you will have ja4d.log but not ja4d6.log. 

Wireshark example:

The latest JA4+ plugin for Wireshark 4.6+ can be found on our GitHub Releases.

Akime example:

The easiest way to get started with JA4+ on Arkime is to utilize their Docker deployment: https://arkime.com/udr7