Tor's windows "--service install" should warn if it installs on a global writeable path
Seems like there is a platform-specific (windows) configuration-specific (requires multi-user setup, and specific install proceedure) local root exploit on Windows, if "--service install" is used on the wrong directory level.
In the future we should warn if "--service install" is used insecurely, and we should provide installer wizards to do this right.
IMO this is a very unlikely issue so I assigned it to 042, but feel free to move if you think so.
Title: When tor.exe is running as a Windows service, it may be subject to privilege escalation Scope: None Weakness: Privilege Escalation Severity: Low Link: https://hackerone.com/reports/602533 Date: 2019-06-06 18:17:39 +0000 By: @xiaoyinl Details: According to https://2019.www.torproject.org/docs/faq#NTService, you can run Tor as a Windows service. To install Tor as a service, you run `tor --service install`. However, the installed Tor service uses the same tor.exe image path as the service path. The Tor service runs under `NT authority\local service` account, so if an admin unzips tor.exe into a folder that is writable by non-admin users (e.g. C:\tor), then a malicious standard user can gain LocalService privilege by planting a malicious DLL into the folder where tor.exe is located. To make things worse, it's common that admins unzip tor.exe into a nonadmin-writable directory, because if it's unzipped into one of the admins' user directories (like Downloads, Documents, etc.), then the service won't even run, because LocalService account has no access to admin's directories. Actually, the OP of https://trac.torproject.org/projects/tor/ticket/29345 "fixed" his problem by unzipping tor into C:\\: > In fact, if you extract tor files in a Tor folder located in C:\ you probably won't have this problem of permissions This unfortunately made him vulnerable to privilege escalation. **Reproduce**: 1. download Tor from https://www.torproject.org/dist/torbrowser/8.5.1/tor-win32-0.3.5.8.zip 2. unzip it into C:\\tor-win32-0.3.5.8. 3. Open an admin command prompt, run C:\\tor-win32-0.3.5.8\\Tor\\tor.exe --service install 4. Log in a standard Windows user, create a malicious iphlpapi.dll, and copy this file into C:\\tor-win32-0.3.5.8\\Tor\\ 5. Restart your system. The malicious iphlpapi.dll should run. **Fix**: To fix this bug, when installed as a service, copy Tor's executable folder into a protected directory, like C:\\Program Files, or C:\\Windows. Then use the protected tor.exe as the service path. ## Impact A malicious Windows local standard user can gain LocalService privilege. He can then deanonymize Tor traffic, and can interfere other Windows services running on LocalService account. 2019-06-07 10:04:29 +0000: @xiaoyinl (comment) This report is about local privilege escalation. There is no social engineering involved. The attacker is a **local** non-administrator user, so the attacker can copy the malicious dll file to `C:\tor-win32-0.3.5.8\Tor\` himself. Then the attacker can have access to LocalService data files and Registry hives.