{"id":93,"date":"2015-05-26T17:18:08","date_gmt":"2015-05-26T16:18:08","guid":{"rendered":"http:\/\/kolbi.cz\/blog\/?p=93"},"modified":"2017-12-15T17:05:16","modified_gmt":"2017-12-15T16:05:16","slug":"fingerprinting-netscaler-gateway-version","status":"publish","type":"post","link":"https:\/\/kolbi.cz\/blog\/2015\/05\/26\/fingerprinting-netscaler-gateway-version\/","title":{"rendered":"Fingerprinting, Netscaler Gateway Version information leaking"},"content":{"rendered":"<p>recently i wanted to know the running\u00a0version from a remote Netscaler Gateway &#8211; but i didnt have an admin login or any other access to the appliance. since Netscaler is a widely used security solution, there should be no way of identifying the version &#8211; but it turned out, there is a very simple way.<\/p>\n<p>anyone who has got a user login to a netscaler might be able to download the Netscaler Gateway plugin and installing it will reveal the exact version of the Netscaler build. but a security analyst or a hacker usually dont have any logins to the remote system and therefore this option will not work.<\/p>\n<p>but Netscaler Gateway offers the possibility to run endpoint analysis to query certain services or files on the client computer. this can even be configured to run before a user logs in &#8211; wait &#8211; before a user logs in means also, that the endpoint client must be available for users that dont supplied credentials yet.<\/p>\n<p>here is the weak point actually. with forceful browsing we can download the\u00a0endpoint analysis client and check the version. this will match the exact build of the Netscaler!<\/p>\n<p>all you need is the base url for the Netscaler Gateway portal and to download the EPA client, you just add &#8220;<strong>\/epa\/scripts\/win\/nsepa_setup.exe<\/strong>&#8221; to it.<\/p>\n<p><a href=\"http:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/fingerprint.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-94 size-full\" src=\"http:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/fingerprint.jpg\" alt=\"fingerprint\" width=\"476\" height=\"145\" srcset=\"https:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/fingerprint.jpg 476w, https:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/fingerprint-300x91.jpg 300w\" sizes=\"auto, (max-width: 476px) 100vw, 476px\" \/><\/a><\/p>\n<p>using <a href=\"http:\/\/www.7-zip.org\/download.html\">7-zip<\/a> you can extract the files without installing them. just open the\u00a0nsepa_setup.exe in 7zip, select\u00a0nsepa.msi and press ctrl + pagedn<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-95\" src=\"http:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/7zipmsi-300x172.jpg\" alt=\"7zipmsi\" width=\"300\" height=\"172\" srcset=\"https:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/7zipmsi-300x172.jpg 300w, https:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/7zipmsi.jpg 502w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-96 alignnone\" src=\"http:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/7zipnsepa-300x132.jpg\" alt=\"7zipnsepa\" width=\"300\" height=\"132\" srcset=\"https:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/7zipnsepa-300x132.jpg 300w, https:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/7zipnsepa.jpg 505w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>now you can extract the\u00a0nsepa.exe and check its properties. the version matches the exact remote Netscaler build!<\/p>\n<p><a href=\"http:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/nsepa.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-97 size-medium\" src=\"http:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/nsepa-300x223.png\" alt=\"nsepa\" width=\"300\" height=\"223\" srcset=\"https:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/nsepa-300x223.png 300w, https:\/\/kolbi.cz\/blog\/wp-content\/uploads\/2015\/05\/nsepa.png 448w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>actually this shouldnt be possible &#8211; because this gives an attacker a good start too look for vulnerabilities in certain Netscaler builds!<\/strong><\/p>\n<p>if you dont need the EPA scan at all, you can simply disable the download with a responder policy using\u00a0HTTP.REQ.URL.ENDSWITH(&#8220;\/nsepa_setup.exe&#8221;), bind it to the Netscaler Gateway virtual server and select DROP or RESET as action. you will have to do this for the x64 binary (nsepa_setup64.exe) aswell.<\/p>\n<p><strong>follow up:<\/strong> i have informed citrix security about this issue and they responded:<\/p>\n<p><em>The behaviour that you have identified is normal for the current implementations of NetScaler Gateway. We understand that this behaviour may provide a remote user with the ability to determine the appliance firmware version and we are currently considering enhancements to change this behaviour in a future version of the product.\u00a0 In the meantime, it is possible to configure a policy, such as the one you reference in your blog posting, that will prevent the unauthorised download of this binary.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>recently i wanted to know the running\u00a0version from a remote Netscaler Gateway &#8211; but i didnt have an admin login or any other access to <a class=\"mh-excerpt-more\" href=\"https:\/\/kolbi.cz\/blog\/2015\/05\/26\/fingerprinting-netscaler-gateway-version\/\" title=\"Fingerprinting, Netscaler Gateway Version information leaking\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":97,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,9,14],"tags":[],"class_list":["post-93","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-citrix","category-netscaler","category-security"],"_links":{"self":[{"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/posts\/93","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/comments?post=93"}],"version-history":[{"count":15,"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/posts\/93\/revisions"}],"predecessor-version":[{"id":465,"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/posts\/93\/revisions\/465"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/media\/97"}],"wp:attachment":[{"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/media?parent=93"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/categories?post=93"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kolbi.cz\/blog\/wp-json\/wp\/v2\/tags?post=93"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}