[![Logo](https://www.paloaltonetworks.com/wp-content/uploads/2021/07/PANW_Parent.png)](https://www.paloaltonetworks.com/)  
[![Unit42 Logo](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/unit42-logo-white.svg)](https://unit42.paloaltonetworks.com/)  
Menu

* [Tools](https://unit42.paloaltonetworks.com/tools/)
* [ATOMs](https://unit42.paloaltonetworks.com/atoms/)
* [Security Consulting](https://www.paloaltonetworks.com/unit42)
* [About Us](https://unit42.paloaltonetworks.com/about-unit-42/)
* [**Under Attack?**](https://start.paloaltonetworks.com/contact-unit42.html)
* [Threat Research Center](https://unit42.paloaltonetworks.com "Threat Research")
* [Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/ "Threat Research")
* [Malware](https://unit42.paloaltonetworks.com/category/malware/ "Malware")  
  [Malware](https://unit42.paloaltonetworks.com/category/malware/)

# Inside TDrop2: Technical Analysis of new Dark Seoul Malware

![Clock Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-clock.svg) 10 min read

* ![Profile Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-profile-grey.svg)  
  By:

* ![Published Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-calendar-grey.svg)  
  Published:November 23, 2015

* ![Tags Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-category.svg)  
  Categories:
  
  * [Malware](https://unit42.paloaltonetworks.com/category/malware/)
  * [Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/)

* ![Tags Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-tags-grey.svg)  
  Tags:
  
  * [Dark Seoul Malware](https://unit42.paloaltonetworks.com/tag/dark-seoul-malware/)
  * [TDrop2](https://unit42.paloaltonetworks.com/tag/tdrop2/)
  * [Technical analysis](https://unit42.paloaltonetworks.com/tag/technical-analysis/)

* [![Download Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-download.svg)](https://unit42.paloaltonetworks.com/inside-tdrop2-technical-analysis-of-new-dark-seoul-malware/?pdf=download&lg=en&_wpnonce=f6e4b1f2e6 "Click here to download")

* [![Print Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-print.svg)](https://unit42.paloaltonetworks.com/inside-tdrop2-technical-analysis-of-new-dark-seoul-malware/?pdf=print&lg=en&_wpnonce=f6e4b1f2e6 "Click here to print")

Share![Down arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/down-arrow.svg)

* ![Link Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-share-link.svg)
* [![Link Email](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-sms.svg)](mailto:?subject=Inside%20TDrop2:%20Technical%20Analysis%20of%20new%20Dark%20Seoul%20Malware&body=Check%20out%20this%20article%20https%3A%2F%2Funit42.paloaltonetworks.com%2Finside-tdrop2-technical-analysis-of-new-dark-seoul-malware%2F "Share in email")
* [![Facebook Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-fb-share.svg)](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Funit42.paloaltonetworks.com%2Finside-tdrop2-technical-analysis-of-new-dark-seoul-malware%2F "Share in Facebook")
* [![LinkedIn Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-linkedin-share.svg)](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Funit42.paloaltonetworks.com%2Finside-tdrop2-technical-analysis-of-new-dark-seoul-malware%2F&title=Inside%20TDrop2:%20Technical%20Analysis%20of%20new%20Dark%20Seoul%20Malware "Share in LinkedIn")
* [![Twitter Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-twitter-share.svg)](https://twitter.com/intent/tweet?url=https%3A%2F%2Funit42.paloaltonetworks.com%2Finside-tdrop2-technical-analysis-of-new-dark-seoul-malware%2F&text=Inside%20TDrop2:%20Technical%20Analysis%20of%20new%20Dark%20Seoul%20Malware "Share in Twitter")
* [![Reddit Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-reddit-share.svg)](https://www.paloaltonetworks.com//www.reddit.com/submit?url=https%3A%2F%2Funit42.paloaltonetworks.com%2Finside-tdrop2-technical-analysis-of-new-dark-seoul-malware%2F&ts=markdown "Share in Reddit")
* [![Mastodon Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-mastodon-share.svg)](https://mastodon.social/share?text=Inside%20TDrop2:%20Technical%20Analysis%20of%20new%20Dark%20Seoul%20Malware%20https%3A%2F%2Funit42.paloaltonetworks.com%2Finside-tdrop2-technical-analysis-of-new-dark-seoul-malware%2F "Share in Mastodon")
  Palo Alto Networks recently identified a new campaign targeting the transportation sector in Europe with ties to the Dark Seoul and Operation Troy campaigns that took place in 2013. This new campaign used updated instances of the Tdrop malware family discovered in the Operation Troy campaign. For more information on the new campaign discovered by Unit 42, please refer to our recent [blog post](https://blog.paloaltonetworks.com/2015/11/tdrop2-attacks-suggest-dark-seoul-attackers-return/).

In this attack, attackers embedded the TDrop2 malware inside a legitimate video software package hosted on the software distributor's website. By doing this, they were able to target organizations that relied on the distributor's security camera solution and infect their systems with malware. They created a true Trojan horse, which sneaks into a network as a gift, but when opened, the attacker's army leaps out.

### Trojanized Video Player (Stage 1)

The malware used for the attempted infection purported to be a legitimate video player, providing viewing software for security camera solutions. The following two unique file names were involved in the attack.

* \[redacted\]Player\_full.exe
* \[redacted\]Player\_light.exe

The difference between the files involves the specific video player that was dropped and executed during runtime. Each file would drop and execute the full or light version of the legitimate video player respective to the file name.

Both the legitimate copy of the video player, as well as a malicious executable were bundled into a single executable. These files were added to the end of the Trojan executable, as seen below.

[![trojan video player layout](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img1.png)](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img1.png) Figure 1 Layout of Trojan video player

When initially run, the malware checks to see if its parent process is either explorer.exe or cmd.exe. In the event the malware is not running in the context of either of these processes, it will exit. This check exists in a number of the subsequent processes/executables used by the TDrop2 malware variant.

[![identifying parent process](http://blog.paloaltonetworks.com/wp-content/uploads/2015/11/img2-500x288.png)](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img2.png) Figure 2 Function identifying and checking parent process

Subsequently, the malware proceeds to extract both the video player and the embedded malware using a series of calls to [CreateFile](<https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx>), [CreateFileMapping](<https://msdn.microsoft.com/en-us/library/windows/desktop/aa366537(v=vs.85).aspx>), [GetFileSize](<https://msdn.microsoft.com/en-us/library/windows/desktop/aa364955(v=vs.85).aspx>), and [MapViewOfFile](<https://msdn.microsoft.com/en-us/library/windows/desktop/aa366761(v=vs.85).aspx>). Once extracted, the file writes it to a new file on disk prior to executing it. The video player is written to one of the following locations, based on the original filename:

* %TEMP%\\\[redacted\]Player\_full.exe
* %TEMP%\\\[redacted\]Player\_light.exe

The malware itself is written to the %TEMP% directory as well. The filename is derived by randomly choosing an executable name from the system32 directory. The randomly chosen executable must not contain any of the following strings:

* setup
* install
* update

### Dropped Malware (Stage 2)

This dropped malware begins by performing the same parent process check witnessed in the original sample. In the event the malware is not running within the parent process of cmd.exe or explorer.exe, it will exit immediately. This malware sample will also dynamically load a number of functions and libraries. After the kernel32.dll and ntdll.dll libraries are loaded via calls to [GetModuleHandle](<https://msdn.microsoft.com/en-us/library/windows/desktop/ms683199(v=vs.85).aspx>), the following process takes place:

1. Create a char array containing the desired function name and store this array to a variable
2. Load this library via a call to [GetProcAddress](<https://msdn.microsoft.com/en-us/library/windows/desktop/ms683212(v=vs.85).aspx>)
3. Store this function offset in a global variable
4. Free the memory containing the char array

[![malware loading functions at runtime](http://blog.paloaltonetworks.com/wp-content/uploads/2015/11/img-3-500x341.png)](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img-3.png) Figure 3 Malware dynamically loading functions at runtime

In total, the following 14 functions are loaded during runtime:

|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|
| \* CreateFileA \* GetFileSize \* CloseHandle \* VirtualAlloc \* GetModuleFileNameA \* CreateProcessA \* NtUnmapViewOfSection | \* VirtualAllocEx \* WriteProcessMemory \* GetThreadContext \* SetThreadContext \* ResumeThread \* TerminateProcess \* TerminateThread |

After these functions are loaded, the malware will randomly select an executable from the system32 using the same routine witnessed in the earlier sample. The malware proceeds to spawn a new process of the selected executable and performs a technique called [process hollowing](https://www.autosectools.com/process-hollowing.pdf) to hide itself inside a legitimate executable. This leads us to the next stage of our malware

### Injected Malware (Stage 3)

This particular stage of malware acts as a downloader. The parent process check is not used in this particular sample. The malware initially attempts to download a file from the following location:

* http://www.combra\[.\]eu/includes/images/logo.jpg

While the link above shows a file extension of an image, the transferred file is in fact a modified executable file.

[![malware downloading executable file](http://blog.paloaltonetworks.com/wp-content/uploads/2015/11/img-4-500x129.png)](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img-4.png) Figure 4 Malware downloading modified executable file

The downloaded file has the first two bytes of the PE file format replaced with the characters 'DW', instead of the usual 'MZ'. After the download occurs, the malware immediately corrects the first two bytes with the 'MZ' characters prior to writing the file to disk.

[![malware overwriting downloaded file](http://blog.paloaltonetworks.com/wp-content/uploads/2015/11/img-5-500x177.png)](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img-5.png) Figure 5 Malware overwriting first two bytes of downloaded file

The downloaded file is dropped to the system32 folder. The malware selects a randomly chosen DLL from this directory. The base name of this DLL is used to write the downloaded file. As an example, in the event apcups.dll was selected, the malware would write the downloaded file to apcups.exe in the same folder. The downloader then proceeds to execute this downloaded file in a new process.

### JPG Executable (Stage 4)

As we've seen in previous samples, this executable file begins by checking the parent process for the presence of 'cmd.exe' or 'explorer.exe'. It proceeds to randomly select an executable file in the system32 folder, and performs [process hollowing](https://www.autosectools.com/process-hollowing.pdf) against it. The injected executable contains the last stage of the TDrop2 malware variant.

### Final Payload (Stage 5)

Upon execution, we once again see the parent process check to determine if the malware is running within the 'cmd.exe' or 'explorer.exe' parent process. It continues to dynamically load a number of libraries and functions for later use. A feature that has yet to be seen is that of string encryption. Strings are encrypted using the following function, represented in Python:  
def decrypt(data): length = len(data) c = 1 o = "" while c \< length: o += chr(ord(data\[0\]) ^ ord(data\[c\])) c += 1 return o

|-----------------|----------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 | def decrypt(data): length = len(data) c = 1 o = "" while c \< length: o += chr(ord(data\[0\]) ^ ord(data\[c\])) c += 1 return o |

After dynamically loading functions and libraries, the malware iterates through the running processes and attempts to determine if the 'V3lite.exe' process is running. This process name is associated with the South Korean-based AhnLab security software provider. In the event this process is running, the malware will attempt to kill the process' class window.

The final payload proceeds to generate the following mutex to ensure only one copy of the malware is running concurrently:

Global\\SPPLMUTEX

The payload then spawns two threads---one to maintain persistence and another to gather victim information and perform command and control operations. Persistence is achieved by setting the following registry key:

HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

The name of the registry key in the above instances is derived from the basename of the supplied argument. In the event the supplied argument was C:\\malware.exe, the registry key would be named 'malware', and the path for this key would be 'C:\\malware.exe'.

The persistence thread runs in a loop where the registry keys are set every 60 seconds, ensuring persistence even in the event an administrator manually deletes the registry keys.

The other thread begins by collecting information about the victim, such as the following:

* Computer Name
* IP Address
* Registered Owner
* Registered Organization
* Installation Date

These data points are used to generate a unique victim ID, which is stored in the following registry key:

HKCU\\SOFTWARE\\Microsoft\\HY08A\\Build

The malware will continue to decrypt and store embedded C2 URLs. The following URLs have been identified:

* http://mcm-yachtmanagement\[.\]com/installx/install\_ok.php
* http://www.junfac\[.\]com/tires/skin/tires.php

The final payload proceeds to enter its command and control loop. It initially performs a DNS check against microsoft.com to ensure it has Internet connectivity. After this check is performed, it enters an infinite loop, with a sleep interval set at a default of 30 minutes. The malware will periodically poll the C2 server and determine if any commands are received. The initial POST request contains a unique victim identifier that was previously generated.

[![malware connecting to C2 server](http://blog.paloaltonetworks.com/wp-content/uploads/2015/11/img-6-500x108.png)](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img-6.png) Figure 6 Malware connecting to C2 server

The optional response by the C2 server is both encoded and encrypted.

[![C2 server response](http://blog.paloaltonetworks.com/wp-content/uploads/2015/11/img-7-500x242.png)](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img-7.png) Figure 7 C2 server response to malware request

The data is first encrypted using an unidentified algorithm. The two keys used for this encryption are generated using another unidentified algorithm. The following Python script can be used to generate the keys. A default salt of 'FFFFFFFF' is used.  
def key\_generation(rounds=8, buf="FFFFFFFF"): out = \[0\] out2 = \[\] for x in range(rounds): out2.append(0) c = 0 result = 0x616E6F6E while(c \< rounds): result = (result + ((result \>\> 8) | ((result \& 0xFFFFFF80 ^ 16 \* (8 \* result ^ (result ^ 2 \* result) \& 0xFFFFFFF8)) \<\< 17))) \& 0xFFFFFFFF out.append(chr(result \& 0xFF)) print hex(result), hex(ord(out\[-1\])) c+=1 c = 0 while(c \< len(buf)): result += ord(buf\[c\]) \& 0xFFFFFFFF v7 = 32 while v7: result = (result + ((result \>\> 8) | ((result \& 0xFFFFFF80 ^ 16 \* (8 \* result ^ (result ^ 2 \* result) \& 0xFFFFFFF8)) \<\< 17))) \& 0xFFFFFFFF v7-=1 if rounds \> 0: while v7 \< rounds: result = (result + ((result \>\> 8) | ((result \& 0xFFFFFF80 ^ 16 \* (8 \* result ^ (result ^ 2 \* result) \& 0xFFFFFFF8)) \<\< 17))) \& 0xFFFFFFFF out\[v7\] = chr(ord(out\[v7\]) + result \& 0xFF) v7 += 1 c+=1 key1 = pack("\>I", unpack("I", ''.join(out\[0:4\]))\[0\]) key2 = pack("\>I", unpack("I", ''.join(out\[4:8\]))\[0\]) return (key1, key2)

|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | def key\_generation(rounds=8, buf="FFFFFFFF"): out = \[0\] out2 = \[\] for x in range(rounds): out2.append(0) c = 0 result = 0x616E6F6E while(c \< rounds): result = (result + ((result \>\> 8) | ((result \& 0xFFFFFF80 ^ 16 \* (8 \* result ^ (result ^ 2 \* result) \& 0xFFFFFFF8)) \<\< 17))) \& 0xFFFFFFFF out.append(chr(result \& 0xFF)) print hex(result), hex(ord(out\[-1\])) c+=1 c = 0 while(c \< len(buf)): result += ord(buf\[c\]) \& 0xFFFFFFFF v7 = 32 while v7: result = (result + ((result \>\> 8) | ((result \& 0xFFFFFF80 ^ 16 \* (8 \* result ^ (result ^ 2 \* result) \& 0xFFFFFFF8)) \<\< 17))) \& 0xFFFFFFFF v7-=1 if rounds \> 0: while v7 \< rounds: result = (result + ((result \>\> 8) | ((result \& 0xFFFFFF80 ^ 16 \* (8 \* result ^ (result ^ 2 \* result) \& 0xFFFFFFF8)) \<\< 17))) \& 0xFFFFFFFF out\[v7\] = chr(ord(out\[v7\]) + result \& 0xFF) v7 += 1 c+=1 key1 = pack("\>I", unpack("I", ''.join(out\[0:4\]))\[0\]) key2 = pack("\>I", unpack("I", ''.join(out\[4:8\]))\[0\]) return (key1, key2) |

Additionally, the following Python script can be used for encryption/decryption  
def encrypt\_decrypt(d, key1=0xBE095818, key2=0xD0D45242): ''' key1/key2 default values the result of using 'FFFFFFFF' in key\_generation algorithm. ''' count = len(d) out\_buffer = "" pos = 0 while True: slic3 = d\[pos:pos+384\] count = len(slic3) + 3 if slic3 == "": break v6 = key1 v7 = 0 v8 = 0x369CF result = 0x369CF v20 = \[0x31, 0, 0, 0, 0, 0, 0, 0\] u = 0 while count != 1: if u \< len(slic3): v10 = v7 \>\> (result \& 7) v11 = result \>\> 3 v12 = v10 \& 1 v13 = v20\[1\] \>\> (v11 \& 7) v11 = v11 \>\> 3 v14 = 2 \* v12 | v13 \& 1 v15 = v20\[2\] \>\> (v11 \& 7) v11 = v11 \>\> 3 v16 = 2 \* v14 | v15 \& 1 v17 = v20\[3\] \>\> (v11 \& 7) v11 = v11 \>\> 3 out\_buffer += chr(((v20\[7\] \>\> ((v11 \>\> 9) \& 7)) \& 1 | 2 \* (2 \* (2 \* (2 \* (2 \* v16 | v17 \& 1) | (v20\[4\] \>\> (v11 \& 7)) \& 1) | (v20\[5\] \>\> ((v11 \>\> 3) \& 7)) \& 1) | (v20\[6\] \>\> ((v11 \>\> 6) \& 7)) \& 1)) ^ ord(slic3\[u\])) result = (v8 \>\> 1) \& 0xFFFFFF | ((16 \* (v8 \& 1) ^ (v8 ^ (2 \* (v8 ^ 4 \* v8))) \& 0x10) \<\< 19) \& 0xFFFFFFFF v8 = (v8 \>\> 1) \& 0xFFFFFF | ((16 \* (v8 \& 1) ^ (v8 ^ (2 \* (v8 ^ 4 \* v8))) \& 0x10) \<\< 19) \& 0xFFFFFFFF t = (key2 \>\> 1) | ((16 \* v6 ^ (v6 ^ 2 \* (v6 ^ 4 \* v6)) \& 0xFFFFFFF0) \<\< 27) \& 0xFFFFFFFF t1 = pack("I", t) v20\[4\] = ord(t1\[0\]) v20\[5\] = ord(t1\[1\]) v20\[6\] = ord(t1\[2\]) v20\[7\] = ord(t1\[3\]) t = (v6 \>\> 1) | (key2 \<\< 31) \& 0xFFFFFFFF t1 = pack("I", t) v20\[0\] = ord(t1\[0\]) v20\[1\] = ord(t1\[1\]) v20\[2\] = ord(t1\[2\]) v20\[3\] = ord(t1\[3\]) key2 = (key2 \>\> 1) | ((16 \* v6 ^ (v6 ^ 2 \* (v6 ^ 4 \* v6)) \& 0xFFFFFFF0) \<\< 27) \& 0xFFFFFFFF v6 = t v7 = v20\[0\] u += 1 count -= 1 pos += 384 return out\_buffer

|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | def encrypt\_decrypt(d, key1=0xBE095818, key2=0xD0D45242): ''' key1/key2 default values the result of using 'FFFFFFFF' in key\_generation algorithm. ''' count = len(d) out\_buffer = "" pos = 0 while True: slic3 = d\[pos:pos+384\] count = len(slic3) + 3 if slic3 == "": break v6 = key1 v7 = 0 v8 = 0x369CF result = 0x369CF v20 = \[0x31, 0, 0, 0, 0, 0, 0, 0\] u = 0 while count != 1: if u \< len(slic3): v10 = v7 \>\> (result \& 7) v11 = result \>\> 3 v12 = v10 \& 1 v13 = v20\[1\] \>\> (v11 \& 7) v11 = v11 \>\> 3 v14 = 2 \* v12 | v13 \& 1 v15 = v20\[2\] \>\> (v11 \& 7) v11 = v11 \>\> 3 v16 = 2 \* v14 | v15 \& 1 v17 = v20\[3\] \>\> (v11 \& 7) v11 = v11 \>\> 3 out\_buffer += chr(((v20\[7\] \>\> ((v11 \>\> 9) \& 7)) \& 1 | 2 \* (2 \* (2 \* (2 \* (2 \* v16 | v17 \& 1) | (v20\[4\] \>\> (v11 \& 7)) \& 1) | (v20\[5\] \>\> ((v11 \>\> 3) \& 7)) \& 1) | (v20\[6\] \>\> ((v11 \>\> 6) \& 7)) \& 1)) ^ ord(slic3\[u\])) result = (v8 \>\> 1) \& 0xFFFFFF | ((16 \* (v8 \& 1) ^ (v8 ^ (2 \* (v8 ^ 4 \* v8))) \& 0x10) \<\< 19) \& 0xFFFFFFFF v8 = (v8 \>\> 1) \& 0xFFFFFF | ((16 \* (v8 \& 1) ^ (v8 ^ (2 \* (v8 ^ 4 \* v8))) \& 0x10) \<\< 19) \& 0xFFFFFFFF t = (key2 \>\> 1) | ((16 \* v6 ^ (v6 ^ 2 \* (v6 ^ 4 \* v6)) \& 0xFFFFFFF0) \<\< 27) \& 0xFFFFFFFF t1 = pack("I", t) v20\[4\] = ord(t1\[0\]) v20\[5\] = ord(t1\[1\]) v20\[6\] = ord(t1\[2\]) v20\[7\] = ord(t1\[3\]) t = (v6 \>\> 1) | (key2 \<\< 31) \& 0xFFFFFFFF t1 = pack("I", t) v20\[0\] = ord(t1\[0\]) v20\[1\] = ord(t1\[1\]) v20\[2\] = ord(t1\[2\]) v20\[3\] = ord(t1\[3\]) key2 = (key2 \>\> 1) | ((16 \* v6 ^ (v6 ^ 2 \* (v6 ^ 4 \* v6)) \& 0xFFFFFFF0) \<\< 27) \& 0xFFFFFFFF v6 = t v7 = v20\[0\] u += 1 count -= 1 pos += 384 return out\_buffer |

After the data is encrypted, it is then base64-encoded using a custom alphabet. The following alphabet is used:

3bcd1fghijklmABCDEFGH-J+LMnopq4stuvwxyzNOPQ7STUVWXYZ0e2ar56R89K/

When the previously mentioned C2 response is both decoded and decrypted, we are presented with the following data:  
tick 7880 systeminfo \& net view \& netstat -naop tcp \& tasklist \& dir /a "%userprofile%\\AppData\\Local\\Microsoft\\Outlook" \& dir /a "%temp%\\\*.exe" \& dir "%ProgramFiles%" \& dir "%ProgramFiles%\\Microsoft Office" 1018; 60

|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 | tick 7880 systeminfo \& net view \& netstat -naop tcp \& tasklist \& dir /a "%userprofile%\\AppData\\Local\\Microsoft\\Outlook" \& dir /a "%temp%\\\*.exe" \& dir "%ProgramFiles%" \& dir "%ProgramFiles%\\Microsoft Office" 1018; 60 |

The command structure of the C2 response always begins with the string 'tick'. The number following this string is most likely a unique command identifier. The malware will store these command identifiers in the following files:

* %TEMP%\\MSI2001.LOG
* %TEMP%\\MSI2002.LOG

In the event the number after the tick was previously witnessed, the command from the C2 will be ignored. The remaining lines are then parsed. The following commands are supported:

|-------------|-------------------------------------------|
| **Command** | **Description**                           |
| 1001        | Modify C2 URLs                            |
| 1003        | Download                                  |
| 1013        | Download/execute malware in other process |
| 1018        | Modify wait interval time                 |
| 1025        | Download/execute and return response      |
| Default     | Execute command and return results        |

Once again, using the previous example, the malware will first ensure that the command was not previously parsed/executed. In the event it is new, it will proceed to execute the various reconnaissance commands found on line #2. The results of these commands are uploaded to the C2 server.

[![malware uploading command results](http://blog.paloaltonetworks.com/wp-content/uploads/2015/11/img-8-500x249.png)](https://unit42.paloaltonetworks.com/wp-content/uploads/2015/11/img-8.png) Figure 8 Malware uploading command results to C2 server

As we can see in the above network traffic, the malware attempts to disguise the data as a .gif image. Finally, the malware will parse the third line, which instructs the malware to modify the wait interval to a value of '60'. This interval value is set in the following registry key:

HKCU\\Software\\Microsoft\\HY08A\\Policy

Additionally, in the event the C2 response instructs the malware to update C2 URLs, it will be in the following format:

1001; \[unique\_identifier\] \[url\]

The malware will encrypt the URL string with a 4-byte XOR key of "\\x01\\x02\\x03\\x04" and store this data in the following registry key:

HKCU\\Software\\Microsoft\\HY08A\\\[unique\_identifier\]

### Conclusion

The TDrop2 malware family that was witnessed in a recent attack against a European transportation company provided a minimal set of commands to the attackers. It was most likely used to establish a foothold, perform reconnaissance and deploy further malware into the victim's network. While the malware lacked a large set of capabilities, it had a wealth of interesting and advanced features, such as the custom encryption/encoding witnessed in the network traffic, the use of process hollowing against a randomly selected Microsoft Windows binary, and the downloading component that attempted to bypass network security measures by modifying the executable header.

We created the AutoFocus tag [TDrop2](https://autofocus.paloaltonetworks.com/#/tag/Unit42.TDrop2) to identify samples of this new variant and added known C2 domains and hash values to the Threat Prevention product set. At this time, WildFire is able to correctly identify the samples associated with this campaign as malicious.

### Sample Identifiers

**Stage 1**

|-----------|------------------------------------------------------------------|
| MD5       | 56C9BB7A7F3AF5F55F4E4FA94E8C6ACC                                 |
| SHA1      | 1B86A66A0A0D6A619D8F2CD1E2904EF7395B3F81                         |
| SHA256    | 43EB1B6BF1707E55A39E87985EDA455FB322AFAE3D2A57339C5E29054FB52042 |
| Timestamp | 2015-05-20 14:27:55 UTC                                          |

|-----------|------------------------------------------------------------------|
| MD5       | 23637A57EA2F984AFAF991D4E90E3F4A                                 |
| SHA1      | 6270129B7EE49AEF969E8C18FAD584E7CB2E512E                         |
| SHA256    | A02E1CB1EFBE8F3551CC3A4B452C2B7F93565860CDE44D26496AABD0D3296444 |
| Timestamp | 2015-05-20 14:27:55 UTC                                          |

**Stage 2**

|-----------|------------------------------------------------------------------|
| MD5       | 285352CAD75DC32BAAE10ABF68005397                                 |
| SHA1      | 01635C842F4CEE4E5A97FBA2341207B1372A4559                         |
| SHA256    | EE878A8ADEE367371242D624F79531FCB81850A25AF0A46B1F82CFB5975F1C89 |
| Timestamp | 2005-09-13 08:15:56 UTC                                          |

|-----------|------------------------------------------------------------------|
| MD5       | F6F3D7264F7478B472894B90A66EA2A2                                 |
| SHA1      | 8BB8E4193ED7A115B97046AFAA6CF371F237885F                         |
| SHA256    | 3E9BFA7F4EFD3B5687872FEAE62138FAB14E4AF48E2A018C8113325C3D79D6CB |
| Timestamp | 2015-07-30 23:45:41 UTC                                          |

**Stage 3**

|-----------|------------------------------------------------------------------|
| MD5       | 29289C19C414CF79E61E095C1500938A                                 |
| SHA1      | 25D283BEA4136F07C13FF3902821A207A9F67A7F                         |
| SHA256    | 2356DB510C8C2D5F72945D3D0B9B826DA55AD93C4CD2461961888468EC2F1591 |
| Timestamp | 2015-08-24 18:29:52 UTC                                          |

|-----------|------------------------------------------------------------------|
| MD5       | C89A97B99063A74EEEA8B7288196CB96                                 |
| SHA1      | 6C53A43ACFB8F3A1C7B37EB614CBD89DD7E70DFE                         |
| SHA256    | E64443E3F3D86D0AB86DAEB0B9E51D2ADA44B23CEBEE68AF9889C8AC72D2ED97 |
| Timestamp | 2015-08-24 18:29:52 UTC                                          |

**Stage 4**

|-----------|------------------------------------------------------------------|
| MD5       | C89A97B99063A74EEEA8B7288196CB96                                 |
| SHA1      | 7315E7FD14518B8A27750D5F717A9FA6BBA71880                         |
| SHA256    | A10CF8B278AF1BBC93E03E29908202197365792FCB0ADD8D02A1E0BDBF94121E |
| Timestamp | 2015-05-24 09:33:48 UTC                                          |

**Stage 5**

|-----------|------------------------------------------------------------------|
| MD5       | B67638C91EAE7DB255E41F7CC0CCE46B                                 |
| SHA1      | 0EF3EC648B63BADADB6BA947E4F90F12C2C8B7E8                         |
| SHA256    | 49A665D51E0F17C6554F11BE7ABCDCC98B94A68F6041FD02A74291540FC05A79 |
| Timestamp | 2015-09-14 17:53:14 UTC                                          |

Back to top

### Tags

* [Dark Seoul Malware](https://unit42.paloaltonetworks.com/tag/dark-seoul-malware/ "Dark Seoul Malware")
* [TDrop2](https://unit42.paloaltonetworks.com/tag/tdrop2/ "TDrop2")
* [Technical analysis](https://unit42.paloaltonetworks.com/tag/technical-analysis/ "technical analysis")  
  [Threat Research Center](https://unit42.paloaltonetworks.com "Threat Research") [Next: Our Commitment to Sharing Threat Intelligence](https://unit42.paloaltonetworks.com/our-commitment-to-sharing-threat-intelligence/ "Our Commitment to Sharing Threat Intelligence")

### Related Articles

* [A Mega Malware Analysis Tutorial Featuring Donut-Generated Shellcode](https://unit42.paloaltonetworks.com/donut-malware-analysis-tutorial/ "article - table of contents")
* [TDrop2 Attacks Suggest Dark Seoul Attackers Return](https://unit42.paloaltonetworks.com/tdrop2-attacks-suggest-dark-seoul-attackers-return/ "article - table of contents")

## Related Malware Resources

![Pictorial representation of post-exploitation identity misuse in SPIFFE/SPIRE. Close-up of a person wearing glasses, with computer code reflected in the lenses.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/09/12_Security-Technology_Category_1920x900-786x368.jpg)  
[![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) September 10, 2026 [#### The Machine With Many Faces: Post-Exploitation Identity Misuse in SPIFFE/SPIRE](https://unit42.paloaltonetworks.com/kubernetes-spiffe-spire-identity-spoofing/)

* [API](https://unit42.paloaltonetworks.com/tag/api/ "API")

* [Cryptographic](https://unit42.paloaltonetworks.com/tag/cryptographic/ "cryptographic")

* [JSON](https://unit42.paloaltonetworks.com/tag/json/ "JSON")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/kubernetes-spiffe-spire-identity-spoofing/ "The Machine With Many Faces: Post-Exploitation Identity Misuse in SPIFFE/SPIRE")  
  ![Pictorial representation of a pay-per-install threat group campaign prodiving infection service for spreading malware. A close-up of a computer circuit board with a central microchip is depicted. Red digital data streams in the form of glowing binary numbers and arrows appear to flow in and out of the chip, symbolizing data processing and transfer. The scene is illuminated with a futuristic blue and red glow.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/09/04_Malware_Category_1920x900-6-786x368.jpg)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) September 9, 2026 [#### Untracked Nightmares: The Threats Hiding Behind Commodity Infrastructure](https://unit42.paloaltonetworks.com/ppi-network-malware-campaign-analysis/)

* [ARKTunnel](https://unit42.paloaltonetworks.com/tag/arktunnel/ "ARKTunnel")

* [C2](https://unit42.paloaltonetworks.com/tag/c2/ "C2")

* [CL-CRI-1171](https://unit42.paloaltonetworks.com/tag/cl-cri-1171/ "CL-CRI-1171")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/ppi-network-malware-campaign-analysis/ "Untracked Nightmares: The Threats Hiding Behind Commodity Infrastructure")  
  ![Pictorial representation of attackers using AI tools to target Latin American organizations. A vibrant cityscape with silhouettes of numerous people walking along a bustling street. The scene is illuminated by bright urban lights and digital-like particles, creating a dynamic and futuristic atmosphere.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/09/AdobeStock_768915868-2-1-786x373.jpg)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) September 3, 2026 [#### Attackers Expose Ongoing AI Tool Use Targeting Organizations in Latin America](https://unit42.paloaltonetworks.com/ai-tool-use-targeting-latam-orgs/)

* [Agentic AI](https://unit42.paloaltonetworks.com/tag/agentic-ai/ "Agentic AI")

* [ChatGPT](https://unit42.paloaltonetworks.com/tag/chatgpt/ "ChatGPT")

* [CL-CRI-1131](https://unit42.paloaltonetworks.com/tag/cl-cri-1131/ "CL-CRI-1131")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/ai-tool-use-targeting-latam-orgs/ "Attackers Expose Ongoing AI Tool Use Targeting Organizations in Latin America")  
  ![Pictorial representation of vishing campaigns in Microsoft Teams. A digital image of a skull formed by blue binary code on a black background, with scattered ones and zeros and digital noise, symbolizes how stealthy prompt injection attacks can exploit AI logic to bypass security controls.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/08/01_Malware_Category_1920x900-5-786x368.jpg)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) August 31, 2026 [#### Spring Ring: An Inside Look at Voice Phishing Campaigns in Microsoft Teams](https://unit42.paloaltonetworks.com/spring-ring-voice-phishing-campaigns/)

* [Cloaked Ursa](https://unit42.paloaltonetworks.com/tag/cloaked-ursa/ "Cloaked Ursa")

* [Entra ID](https://unit42.paloaltonetworks.com/tag/entra-id/ "Entra ID")

* [Microsoft Teams](https://unit42.paloaltonetworks.com/tag/microsoft-teams/ "Microsoft Teams")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/spring-ring-voice-phishing-campaigns/ "Spring Ring: An Inside Look at Voice Phishing Campaigns in Microsoft Teams")  
  ![Pictorial representation of AI-enabled malware. A vibrant digital interface displaying various icons and graphs, resembling a futuristic network or data analysis dashboard. The scene is illuminated with glowing lights and patterns.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/08/AdobeStock_1270203474-2-1-786x368.png)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) August 25, 2026 [#### The State of AI-Enabled Malware August 2026: From Brand Abuse to Agentic Execution](https://unit42.paloaltonetworks.com/ai-enabled-malware-analysis/)

* [Backdoor](https://unit42.paloaltonetworks.com/tag/backdoor/ "backdoor")

* [Bitcoin](https://unit42.paloaltonetworks.com/tag/bitcoin/ "Bitcoin")

* [DLL hijacking](https://unit42.paloaltonetworks.com/tag/dll-hijacking/ "DLL hijacking")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/ai-enabled-malware-analysis/ "The State of AI-Enabled Malware August 2026: From Brand Abuse to Agentic Execution")  
  ![Pictorial representation of identity abuse through trusted communication channels. Close-up view of a digital screen displaying a glitched and pixelated image of a skull-like shape.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/08/02_Malware_Category_1920x900-2-786x368.jpg)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) August 20, 2026 [#### Identity Abuse Through Trusted Communication Channels](https://unit42.paloaltonetworks.com/communication-channel-identity-risks/)

* [Authentication](https://unit42.paloaltonetworks.com/tag/authentication/ "authentication")

* [Identity theft](https://unit42.paloaltonetworks.com/tag/identity-theft/ "identity theft")

* [Malware](https://unit42.paloaltonetworks.com/tag/malware/ "malware")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/communication-channel-identity-risks/ "Identity Abuse Through Trusted Communication Channels")  
  ![Pictorial representation of Kimwolf botnet malware family. Digital screen with a warning sign reading "Malware." The background features lines of computer code and graphics, creating a sense of cybersecurity threat.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/08/07_Malware_Category_1920x900-3-786x368.jpg)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) August 11, 2026 [#### Kimwolf v7: An Evolution of the Kimwolf Botnet](https://unit42.paloaltonetworks.com/kimwolf-v7-botnet-malware/)

* [Android APK](https://unit42.paloaltonetworks.com/tag/android-apk/ "Android APK")

* [Ethereum](https://unit42.paloaltonetworks.com/tag/ethereum/ "Ethereum")

* [HTTP](https://unit42.paloaltonetworks.com/tag/http/ "HTTP")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/kimwolf-v7-botnet-malware/ "Kimwolf v7: An Evolution of the Kimwolf Botnet")  
  ![Pictorial representatiom pf Aeternum's blockchain C2. A close-up of a computer circuit board with a central microchip is depicted. Red digital data streams in the form of glowing binary numbers and arrows appear to flow in and out of the chip. The scene is illuminated with a futuristic blue and red glow.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/08/04_Malware_Category_1920x900-4-786x368.jpg)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) August 10, 2026 [#### The Permanent Threat: Analyzing Aeternum's Blockchain-Based C2 Operations and Communications](https://unit42.paloaltonetworks.com/aeternum-blockchain-c2-analysis/)

* [Aeternum](https://unit42.paloaltonetworks.com/tag/aeternum/ "Aeternum")

* [Infection chain](https://unit42.paloaltonetworks.com/tag/infection-chain/ "infection chain")

* [JSON](https://unit42.paloaltonetworks.com/tag/json/ "JSON")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/aeternum-blockchain-c2-analysis/ "The Permanent Threat: Analyzing Aeternum’s Blockchain-Based C2 Operations and Communications")  
  ![Pictorial representation of ChainDrop, a self-propagating npm worm. An artistic depiction of a digital workspace featuring an open laptop with a red virus on the screen.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/08/03_Malware_Category_1920x900-7-786x368.jpg)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/07/top-threats.svg)High Profile Threats](https://unit42.paloaltonetworks.com/category/top-cyberthreats/) August 6, 2026 [#### ChainDrop: Inside a Self-Propagating npm Worm](https://unit42.paloaltonetworks.com/chaindrop-npm-worm-analysis/)

* [Blockchain](https://unit42.paloaltonetworks.com/tag/blockchain/ "blockchain")

* [ChainDrop](https://unit42.paloaltonetworks.com/tag/chaindrop/ "ChainDrop")

* [Claude code](https://unit42.paloaltonetworks.com/tag/claude-code/ "Claude code")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/chaindrop-npm-worm-analysis/ "ChainDrop: Inside a Self-Propagating npm Worm")  
  ![Pictorial representation of Token-jacking. A person types on a laptop with multiple digital interface elements projected, including an "AI" icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/08/AdobeStock_1246251272-2-786x369.jpg)  
  [![category icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2024/06/icon-threat-research.svg)Threat Research](https://unit42.paloaltonetworks.com/category/threat-research/) August 6, 2026 [#### Token Jacking: Cybercriminals Could Be Stealing Your AI Resources](https://unit42.paloaltonetworks.com/ai-token-jacking/)

* [AI API](https://unit42.paloaltonetworks.com/tag/ai-api/ "AI API")

* [AI gateway](https://unit42.paloaltonetworks.com/tag/ai-gateway/ "AI gateway")

* [API keys](https://unit42.paloaltonetworks.com/tag/api-keys/ "API keys")  
  [Read now ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/ai-token-jacking/ "Token Jacking: Cybercriminals Could Be Stealing Your AI Resources")

* ![Slider arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/slider-arrow-left.svg)

* ![Slider arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/slider-arrow-left.svg)  
  ![Close button](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/close-modal.svg) ![Enlarged Image]()  
  ![Newsletter](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/03/unit42-footer-subscribe-desktop.png)  
  ![UNIT 42 Small Logo](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/palo-alto-logo-small.svg) Get updates from Unit 42

## Peace of mind comes from staying ahead of threats. Subscribe today.

Your Email

Subscribe for email updates to all Unit 42 threat research.  
By submitting this form, you agree to our [Terms of Use](https://www.paloaltonetworks.com/legal-notices/terms-of-use "Terms of Use") and acknowledge our [Privacy Statement.](https://www.paloaltonetworks.com/legal-notices/privacy "Privacy Statement")

This site is protected by reCAPTCHA and the Google [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms) apply.

Invalid captcha!
Subscribe ![Right Arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/right-arrow.svg) ![loader](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-loader.svg)  
{#footer} Products and Services

* [AI-Powered Network Security Platform](https://www.paloaltonetworks.com/network-security)

* [Secure AI by Design](https://www.paloaltonetworks.com/ai-security)

* [Prisma AIRS](https://www.paloaltonetworks.com/ai-security/prisma-airs)

* [AI Access Security](https://www.paloaltonetworks.com/sase/ai-access-security)

* [Cloud Delivered Security Services](https://www.paloaltonetworks.com/network-security/security-subscriptions)

* [Advanced Threat Prevention](https://www.paloaltonetworks.com/network-security/advanced-threat-prevention)

* [Advanced URL Filtering](https://www.paloaltonetworks.com/network-security/advanced-url-filtering)

* [Advanced WildFire](https://www.paloaltonetworks.com/network-security/advanced-wildfire)

* [Advanced DNS Security](https://www.paloaltonetworks.com/network-security/advanced-dns-security)

* [Enterprise Data Loss Prevention](https://www.paloaltonetworks.com/sase/enterprise-data-loss-prevention)

* [Enterprise IoT Security](https://www.paloaltonetworks.com/network-security/enterprise-device-security)

* [Medical IoT Security](https://www.paloaltonetworks.com/network-security/medical-device-security)

* [Industrial OT Security](https://www.paloaltonetworks.com/network-security/ot-security-solution)

* [SaaS Security](https://www.paloaltonetworks.com/sase/saas-security)

* [Next-Generation Firewalls](https://www.paloaltonetworks.com/network-security/next-generation-firewall)

* [Hardware Firewalls](https://www.paloaltonetworks.com/network-security/hardware-firewall-innovations)

* [Software Firewalls](https://www.paloaltonetworks.com/network-security/software-firewalls)

* [Strata Cloud Manager](https://www.paloaltonetworks.com/network-security/strata-cloud-manager)

* [SD-WAN for NGFW](https://www.paloaltonetworks.com/network-security/sd-wan-subscription)

* [PAN-OS](https://www.paloaltonetworks.com/network-security/pan-os)

* [Panorama](https://www.paloaltonetworks.com/network-security/panorama)

* [Secure Access Service Edge](https://www.paloaltonetworks.com/sase)

* [Prisma SASE](https://www.paloaltonetworks.com/sase)

* [Application Acceleration](https://www.paloaltonetworks.com/sase/app-acceleration)

* [Autonomous Digital Experience Management](https://www.paloaltonetworks.com/sase/adem)

* [Enterprise DLP](https://www.paloaltonetworks.com/sase/enterprise-data-loss-prevention)

* [Prisma Access](https://www.paloaltonetworks.com/sase/access)

* [Prisma Browser](https://www.paloaltonetworks.com/sase/prisma-browser)

* [Prisma SD-WAN](https://www.paloaltonetworks.com/sase/sd-wan)

* [Remote Browser Isolation](https://www.paloaltonetworks.com/sase/remote-browser-isolation)

* [SaaS Security](https://www.paloaltonetworks.com/sase/saas-security)

* [AI-Driven Security Operations Platform](https://www.paloaltonetworks.com/cortex)

* [Cloud Security](https://www.paloaltonetworks.com/cortex/cloud)

* [Cortex Cloud](https://www.paloaltonetworks.com/cortex/cloud)

* [Application Security](https://www.paloaltonetworks.com/cortex/cloud/application-security)

* [Cloud Posture Security](https://www.paloaltonetworks.com/cortex/cloud/cloud-posture-security)

* [Cloud Runtime Security](https://www.paloaltonetworks.com/cortex/cloud/runtime-security)

* [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud)

* [AI-Driven SOC](https://www.paloaltonetworks.com/cortex)

* [Cortex XSIAM](https://www.paloaltonetworks.com/cortex/cortex-xsiam)

* [Cortex XDR](https://www.paloaltonetworks.com/cortex/cortex-xdr)

* [Cortex XSOAR](https://www.paloaltonetworks.com/cortex/cortex-xsoar)

* [Cortex Xpanse](https://www.paloaltonetworks.com/cortex/cortex-xpanse)

* [Unit 42 Managed Detection \& Response](https://www.paloaltonetworks.com/cortex/managed-detection-and-response)

* [Managed XSIAM](https://www.paloaltonetworks.com/cortex/managed-xsiam)

* [Next-Generation Identity Security](https://www.paloaltonetworks.com/idira)

* [Privileged Access Management](https://www.paloaltonetworks.com/idira/human/privileged-access-management)

* [Identity and Access Management](https://www.paloaltonetworks.com/idira/human/identity-and-access-management)

* [Endpoint Privilege Manager](https://www.paloaltonetworks.com/idira/human/endpoint-privilege-manager)

* [Identity Governance](https://www.paloaltonetworks.com/idira/human/identity-governance)

* [Workforce Password Management](https://www.paloaltonetworks.com/idira/human/workforce-password-management)

* [Agentic Identities](https://www.paloaltonetworks.com/idira/agentic)

* [Secrets Management](https://www.paloaltonetworks.com/idira/machine/secrets-management)

* [Unified Secrets Governance](https://www.paloaltonetworks.com/idira/machine/unified-secrets-governance)

* [Application Credentials Delivery](https://www.paloaltonetworks.com/idira/machine/application-credentials-delivery)

* [Vendor Privileged Access](https://www.paloaltonetworks.com/idira/human/vendor-privileged-access)

* [Threat Intel and Incident Response Services](https://www.paloaltonetworks.com/unit42)

* [Prepare for Emerging Risks](https://www.paloaltonetworks.com/unit42/frontier-ai-defense)

* [Strengthen Your Defenses](https://www.paloaltonetworks.com/unit42/strengthen-your-defenses)

* [Build Your Security Strategy](https://www.paloaltonetworks.com/unit42/build-your-security-strategy)

* [Understand the Adversary](https://www.paloaltonetworks.com/unit42/threat-intelligence)

* [Respond to a Cyber Attack](https://www.paloaltonetworks.com/unit42/respond)  
  Company

* [About Us](https://www.paloaltonetworks.com/about-us)

* [Careers](https://jobs.paloaltonetworks.com/en/)

* [Contact Us](https://www.paloaltonetworks.com/company/contact-sales)

* [Corporate Responsibility](https://www.paloaltonetworks.com/about-us/corporate-responsibility)

* [Customers](https://www.paloaltonetworks.com/customers)

* [Investor Relations](https://investors.paloaltonetworks.com/)

* [Location](https://www.paloaltonetworks.com/about-us/locations)

* [Newsroom](https://www.paloaltonetworks.com/company/newsroom)  
  Popular Links

* [Blog](https://www.paloaltonetworks.com/blog/)

* [Communities](https://www.paloaltonetworks.com/communities)

* [Content Library](https://www.paloaltonetworks.com/resources)

* [Cyberpedia](https://www.paloaltonetworks.com/cyberpedia)

* [Event Center](https://events.paloaltonetworks.com/)

* [Manage Email Preferences](https://start.paloaltonetworks.com/preference-center)

* [Products A-Z](https://www.paloaltonetworks.com/products/products-a-z)

* [Product Certifications](https://www.paloaltonetworks.com/legal-notices/trust-center/certifications)

* [Report a Vulnerability](https://www.paloaltonetworks.com/security-disclosure)

* [Sitemap](https://www.paloaltonetworks.com/sitemap)

* [Tech Docs](https://docs.paloaltonetworks.com/)

* [Unit 42](https://unit42.paloaltonetworks.com/)

* [Do Not Sell or Share My Personal Information](https://panwedd.exterro.net/portal/dsar.htm?target=panwedd)
  ![Palo Alto Networks Logo](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/pan-logo-dark.svg)

* [Privacy](https://www.paloaltonetworks.com/legal-notices/privacy)

* [Trust Center](https://www.paloaltonetworks.com/legal-notices/trust-center)

* [Terms of Use](https://www.paloaltonetworks.com/legal-notices/terms-of-use)

* [Documents](https://www.paloaltonetworks.com/legal)

Copyright © 2026 Palo Alto Networks. All Rights Reserved

* [![Youtube](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/social/youtube-black.svg)](https://www.youtube.com/user/paloaltonetworks)
* [![Podcast](https://www.paloaltonetworks.com/content/dam/pan/en_US/images/icons/podcast.svg)](https://www.paloaltonetworks.com/podcasts/threat-vector)
* [![Facebook](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/social/facebook-black.svg)](https://www.facebook.com/PaloAltoNetworks/)
* [![LinkedIn](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/social/linkedin-black.svg)](https://www.linkedin.com/company/palo-alto-networks)
* [![Twitter](https://www.paloaltonetworks.com/etc/clientlibs/clean/imgs/social/twitter-x-black.svg)](https://twitter.com/PaloAltoNtwks)
* EN  
  Select your language  
  ![Play](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/player-play-icon.svg) ![Pause](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/player-pause-icon1.svg) ![Minimize](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-minimize.svg) ![Close button](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/close-modal.svg)

### Default Heading

Read the article ![Right Arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/right-arrow.svg)  
Seekbar

![Play](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/player-play-icon.svg) ![Pause](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/player-pause-icon1.svg)  
![Volume](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-volume.svg)  
Volume
![Minimize](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-minimize.svg)
