{"id":19576,"date":"2022-09-29T17:23:00","date_gmt":"2022-09-29T15:23:00","guid":{"rendered":"https:\/\/herolab.usd.de\/?page_id=19576"},"modified":"2023-03-03T12:56:05","modified_gmt":"2023-03-03T11:56:05","slug":"usd-2022-0006","status":"publish","type":"page","link":"https:\/\/herolab.usd.de\/en\/security-advisories\/usd-2022-0006\/","title":{"rendered":"usd-2022-0006"},"content":{"rendered":"<p>[et_pb_section fb_built=\"1\" _builder_version=\"4.16\" _module_preset=\"default\" background_color=\"#2E353D\" custom_padding=\"||0px|||\" global_colors_info=\"{}\"][et_pb_row _builder_version=\"4.16\" _module_preset=\"default\" custom_padding=\"4px|||||\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\" _builder_version=\"4.16\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.17.4\" _module_preset=\"cc5ac6f4-ebbd-4b3f-bc92-4dfc1f15fe2c\" global_colors_info=\"{}\"]<\/p>\n<h1>usd-2022-0006 | NCP Secure Enterprise Client - Privilege Escalation<\/h1>\n<p><strong>Advisory ID:<\/strong> usd-2022-0006<br \/><strong>Product:<\/strong> NCP Secure Enterprise Client<br \/><strong>Affected Version:<\/strong> 12.22<br \/><strong>Vulnerability Type:<\/strong> Privilege Escalation<br \/><strong>Security Risk:<\/strong> Critical<br \/><strong>Vendor URL::<\/strong> https\/\/www.ncp-e.com\/<br \/><strong>Vendor Status:<\/strong> Fixed<\/p>\n<h3>Description<\/h3>\n<p>The <em>NCP Secure Enterprise<\/em> client is a <em>VPN<\/em> and networking application that is utilized by many organisations to connect workstations<br \/>to the cooperate network. The client supports a <em>Support Assistant<\/em> feature, which allows low privileged user accounts to obtain diagnostic<br \/>information from the operating system. The corresponding information is gathered by high privileged services and stored within the directory<br \/><em><em>C:\\Users\\\\AppData\\Local\\Temp\\NcpSupport*<\/em>. Since this directory is fully user controlled, a low privileged user can create <\/em>symbolic links<em><br \/>within it. This can be used to trick the <\/em>NCP Secure Enterprise<em> client to change permissions on configuration files that are used by the client internally.<br \/>One of these configuration files contains the file system path of <\/em>dynamic linked library<em> (<\/em>DLL<em>) files that are loaded during startup by the<br \/>application. Also high privileged services, that are installed together with the <\/em>NCP Secure Enterprise<em> client, load the corresponding <\/em>DLL* files,<br \/>resulting in a privilege escalation vulnerability.<\/p>\n<h3>Proof of Concept<\/h3>\n<p>To elevate permissions using the vulnerability, the following steps need to be performed:<\/p>\n<ol>\n<li>Start the <em>Support Assistant<\/em> and wait until all diagnostic information has been collected.<\/li>\n<li>Create a <em>symbolic link<\/em> that originates from <strong>C:\\Users\\\\AppData\\Local\\Temp\\NcpSupport\\services.txt<\/strong><br \/>and points to the file <strong>C:\\ProgramData\\NCP\\SecureClient\\data\\ncppki.conf<\/strong>.<\/li>\n<li>Abort the <em>Support Assistant<\/em> and restart it.<\/li>\n<li>Open <strong>C:\\ProgramData\\NCP\\SecureClient\\data\\ncppki.conf<\/strong> and adjust the configuration settings<br \/><strong>DLLWIN95<\/strong> and <strong>DLLWINNT<\/strong> to point to the <em>DLL<\/em> file you want to load.<\/li>\n<li>After rebooting the system, the specified <em>DLL<\/em> file is loaded with <em>System<\/em> privileges.<\/li>\n<\/ol>\n<p>The reboot seems not even to be necessary and the <em>DLL<\/em> is also loaded automatically at a certain point of time.<br \/>In the following, each step is explained in more detail:<\/p>\n<p>First we start the <em>Support Assistant<\/em> by using the tray icon of the <em>NCP Secure Enterprise<\/em> client. The <em>Support Assistant<\/em><br \/>feature can be found in the upper right of the graphical user interface within the <em>Help<\/em> menu.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2022\/06\/support-assistant-3.png\" width=\"882\" height=\"415\" alt=\"\" class=\"wp-image-18584 alignnone size-full\" srcset=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2022\/06\/support-assistant-3.png 882w, https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2022\/06\/support-assistant-3-480x226.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 882px, 100vw\" \/><\/p>\n<p>After the diagnostic information has been collected, we create a <em>symbolic link<\/em> pointing from <strong>C:\\Users\\\\AppData\\Local\\Temp\\NcpSupport\\services.txt<\/strong><br \/>to <strong>C:\\ProgramData\\NCP\\SecureClient\\data\\ncppki.conf<\/strong>. Moreover, we verify that the file is not writable for low privileged user accounts:<\/p>\n<div class=\"codehilite\" style=\"background: #263238;color: #eff\">\n<pre style=\"line-height: 125%\"><span style=\"background: #263238\"><\/span><span class=\"nb\" style=\"background: #263238;color: #82aaff\">PS <\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\&gt;<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">icacls<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ProgramData<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">NCP<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SecureClient<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">data<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ncppki<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">conf<\/span><br \/><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ProgramData<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">NCP<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SecureClient<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">data<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ncppki<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">conf<\/span>\n              <span class=\"n\" style=\"background: #263238;color: #eff\">NT-AUTORIT\u00c4T<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SYSTEM<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">I<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">F<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span>\n              <span class=\"n\" style=\"background: #263238;color: #eff\">VORDEFINIERT<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Administratoren<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">I<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">F<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span>\n              <span class=\"n\" style=\"background: #263238;color: #eff\">VORDEFINIERT<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Benutzer<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">I<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">RX<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span>\n\n<span class=\"n\" style=\"background: #263238;color: #eff\">1<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Dateien<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">erfolgreich<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">verarbeitet<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">,<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">bei<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">0<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Dateien<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">ist<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">ein<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Verarbeitungsfehler<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">aufgetreten<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span>\n\n<span class=\"nb\" style=\"background: #263238;color: #82aaff\">PS <\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\&gt;<\/span> <span class=\"nv\" style=\"background: #263238;color: #89ddff\">$code<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">=<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">(<\/span><span class=\"nb\" style=\"background: #263238;color: #82aaff\">iwr <\/span><span class=\"n\" style=\"background: #263238;color: #eff\">https<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\/\/<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">raw<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">githubusercontent<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">com<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\/<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">usdAG<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\/<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SharpLink<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\/<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">main<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\/<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SharpLink<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">cs<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">).<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">content<\/span><br \/><span class=\"nb\" style=\"background: #263238;color: #82aaff\">PS <\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\&gt;<\/span> <span class=\"nb\" style=\"background: #263238;color: #82aaff\">Add-Type<\/span> <span class=\"nv\" style=\"background: #263238;color: #89ddff\">$code<\/span>\n\n<span class=\"nb\" style=\"background: #263238;color: #82aaff\">PS <\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\&gt;<\/span> <span class=\"nv\" style=\"background: #263238;color: #89ddff\">$s<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">=<\/span> <span class=\"nb\" style=\"background: #263238;color: #82aaff\">New-Object<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">de<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">usd<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SharpLink<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Symlink<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">(<\/span><span class=\"s2\" style=\"background: #263238;color: #c3e88d\">\"C:\\Users\\labuser\\AppData\\Local\\Temp\\NcpSupport\\Services.txt\"<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">,<\/span> <span class=\"s2\" style=\"background: #263238;color: #c3e88d\">\"C:\\ProgramData\\NCP\\SecureClient\\data\\ncppki.conf\"<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span><br \/><span class=\"nb\" style=\"background: #263238;color: #82aaff\">PS <\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\&gt;<\/span> <span class=\"nv\" style=\"background: #263238;color: #89ddff\">$s<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Open<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">()<\/span><br \/><span class=\"p\" style=\"background: #263238;color: #89ddff\">[+]<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Creating<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Junction<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Users<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">labuser<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">AppData<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Local<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Temp<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">NcpSupport<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">-&gt;<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">RPC<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">CONTROL<\/span><br \/><span class=\"p\" style=\"background: #263238;color: #89ddff\">[+]<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Creating<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">DosDevice<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Global<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">GLOBALROOT<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">RPC<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">CONTROL<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Services<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">txt<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">-&gt;<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">\\??\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ProgramData<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">NCP<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SecureClient<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">data<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ncppki<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">conf<\/span><br \/><span class=\"p\" style=\"background: #263238;color: #89ddff\">[+]<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Symlink<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">setup<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">successfully<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><\/pre>\n<\/div>\n<p>Now the <em>Support Assistant<\/em> is aborted and restarted. After this action has been performed, the file <strong>C:\\ProgramData\\NCP\\SecureClient\\data\\ncppki.conf<\/strong><br \/>is under full control of the invoking user account:<\/p>\n<div class=\"codehilite\" style=\"background: #263238;color: #eff\">\n<pre style=\"line-height: 125%\"><span style=\"background: #263238\"><\/span><span class=\"nb\" style=\"background: #263238;color: #82aaff\">PS <\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\&gt;<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">icacls<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ProgramData<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">NCP<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SecureClient<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">data<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ncppki<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">conf<\/span><br \/><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ProgramData<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">NCP<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SecureClient<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">data<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ncppki<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">conf<\/span>\n              <span class=\"n\" style=\"background: #263238;color: #eff\">NT-AUTORIT\u00c4T<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SYSTEM<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">I<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">F<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span>\n              <span class=\"n\" style=\"background: #263238;color: #eff\">VORDEFINIERT<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Administratoren<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">I<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">F<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span>\n              <span class=\"n\" style=\"background: #263238;color: #eff\">LAB<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">labuser<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">I<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">F<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span>\n              <span class=\"n\" style=\"background: #263238;color: #eff\">VORDEFINIERT<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">Benutzer<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">I<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">RX<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span>\n\n<span class=\"n\" style=\"background: #263238;color: #eff\">1<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Dateien<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">erfolgreich<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">verarbeitet<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">,<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">bei<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">0<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Dateien<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">ist<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">ein<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Verarbeitungsfehler<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">aufgetreten<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><\/pre>\n<\/div>\n<p>It is worth noting that the <em>NCP Secure Enterprise<\/em> client does not assign permissions to arbitrary files. Permissions for the current<br \/>invoking user seem to be granted, when the folder that contains the file is writable by the invoking user. For other files (e.g. <strong>C:\\Windows\\win.ini<\/strong>)<br \/>the <em>NCP Secure Enterprise<\/em> client deletes the corresponding file. This behavior is reported in a separate issue.<\/p>\n<p>Now with write access to <strong>C:\\ProgramData\\NCP\\SecureClient\\data\\ncppki.conf<\/strong>, one can modify the configuration items<br \/><strong>WIN95DLL<\/strong> and <strong>WINNTDLL<\/strong> to point to an arbitrary location.<\/p>\n<div class=\"codehilite\" style=\"background: #263238;color: #eff\">\n<pre style=\"line-height: 125%\"><span style=\"background: #263238\"><\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\&gt;<\/span><span class=\"nb\" style=\"background: #263238;color: #82aaff\">type <\/span><span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ProgramData<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">NCP<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SecureClient<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">data<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">ncppki<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">conf<\/span>\n\n<span class=\"no\" style=\"background: #263238;color: #eff\">[General]<\/span><br \/><span class=\"p\" style=\"background: #263238;color: #89ddff\">...<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">SNIP<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">...<\/span>\n\n<span class=\"no\" style=\"background: #263238;color: #eff\">[CTAPI 3]<\/span><br \/><span class=\"n\" style=\"background: #263238;color: #eff\">Visible<\/span>         <span class=\"p\" style=\"background: #263238;color: #89ddff\">=<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">1<\/span><br \/><span class=\"n\" style=\"background: #263238;color: #eff\">ReaderName<\/span>      <span class=\"p\" style=\"background: #263238;color: #89ddff\">=<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">SCM<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">1x0<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">PIN<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">Pad<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">reader<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span> <span class=\"p\" style=\"background: #263238;color: #89ddff\">(<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">CT-API<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">)<\/span><br \/><span class=\"n\" style=\"background: #263238;color: #eff\">DLLWIN95<\/span>        <span class=\"p\" style=\"background: #263238;color: #89ddff\">=<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">usd<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">scm11098<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">dll<\/span><br \/><span class=\"n\" style=\"background: #263238;color: #eff\">DLLWINNT<\/span>        <span class=\"p\" style=\"background: #263238;color: #89ddff\">=<\/span> <span class=\"n\" style=\"background: #263238;color: #eff\">C<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">:\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">usd<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">\\<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">scm110nt<\/span><span class=\"p\" style=\"background: #263238;color: #89ddff\">.<\/span><span class=\"n\" style=\"background: #263238;color: #eff\">dll<\/span><\/pre>\n<\/div>\n<p>After rebooting the system, the specified <em>DLL<\/em> file is loaded by a service running as <strong>NT Authority\\System<\/strong>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2022\/06\/poc-1024x414.png\" width=\"1024\" height=\"414\" alt=\"\" class=\"wp-image-18582 alignnone size-large\" srcset=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2022\/06\/poc-1024x414.png 1024w, https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2022\/06\/poc-980x396.png 980w, https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2022\/06\/poc-480x194.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/p>\n<p>Even if the <em>NCP Secure Enterprise<\/em> client would have deleted the file <strong>C:\\ProgramData\\NCP\\SecureClient\\data\\ncppki.conf<\/strong> instead,<br \/>a privilege escalation would have been possible, since the folder *<em>C:\\ProgramData\\NCP\\SecureClient\\data*<\/em> is writable by low<br \/>privileged user accounts.<\/p>\n<h3>Fix<\/h3>\n<p>When changing privileges on resources within user controlled parts of the file system, applications need to be careful.<br \/>For such operations, symlinks should not be followed. When in doubt, the application should prefer to throw an error instead<br \/>of applying permissions to an incorrect target.<\/p>\n<h3>References<\/h3>\n<ul>\n<li>https:\/\/www.ncp-e.com\/<\/li>\n<li>https:\/\/github.com\/usdAG\/SharpLink<\/li>\n<\/ul>\n<h3>Timeline<\/h3>\n<ul>\n<li><strong>2022-02-02<\/strong> First contact request via <a href=\"mailto:info-mv@ncp-e.com\">info-mv@ncp-e.com<\/a><\/li>\n<li>2022-02-02 Advisory transfered to the vendor<\/li>\n<li>2022-02-15 Vendor appreciates the submission of the advisories and begins to fix the identified vulnerabilities<\/li>\n<li>2022-06-09 Responsible Disclosure Team requests an update<\/li>\n<li>2022-06-21 Vendor annouces a new software release available in August<\/li>\n<li>2022-08-31 NCP Secure Enterprise Client 13.10 is released<\/li>\n<li>2023-03-03 This advisory is published<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Credits<\/h3>\n<p>These security vulnerabilities were found by Tobias Neitzel.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>usd-2022-0006 | NCP Secure Enterprise Client - Privilege Escalation Advisory ID: usd-2022-0006Product: NCP Secure Enterprise ClientAffected Version: 12.22Vulnerability Type: Privilege EscalationSecurity Risk: CriticalVendor URL:: https\/\/www.ncp-e.com\/Vendor Status: Fixed Description The NCP Secure Enterprise client is a VPN and networking application that is utilized by many organisations to connect workstationsto the cooperate network. The client supports a [&hellip;]<\/p>\n","protected":false},"author":109,"featured_media":0,"parent":16124,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-19576","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/19576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/users\/109"}],"replies":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/comments?post=19576"}],"version-history":[{"count":0,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/19576\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/16124"}],"wp:attachment":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/media?parent=19576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}