{"id":33,"date":"2007-02-21T22:35:50","date_gmt":"2007-02-21T21:35:50","guid":{"rendered":"http:\/\/blog.m-ri.de\/index.php\/2007\/02\/21\/uac-und-createnamedpipe-mit-lpsecurityattributesnull\/"},"modified":"2008-01-08T12:29:47","modified_gmt":"2008-01-08T11:29:47","slug":"uac-und-createnamedpipe-mit-lpsecurityattributesnull","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2007\/02\/21\/uac-und-createnamedpipe-mit-lpsecurityattributesnull\/","title":{"rendered":"UAC und CreateNamedPipe mit lpSecurityAttributes==NULL"},"content":{"rendered":"<p>Das Leben steckt einfach voller \u00dcberraschungen. Da hat man einen Service der im <em>LocalSystem<\/em> Account l\u00e4uft. Mit diesem Service wird \u00fcber Named Pipes kommuniziert.<\/p>\n<p>Das Programm, das diesen Service steuert soll nur f\u00fcr Administratoren verf\u00fcgbar sein und greift lesend und schreibend auf diese Pipe zu. Der Admin nutzt dieses Programm oft, muss man dazu sagen.<\/p>\n<p>In der Vergangenheit war da nicht viel zu tun. Einfach <em>lpSecurityAttributes<\/em> auf NULL setzen und OK. Der Admin hat dann einfach das Steuerungsprogramm gestartet und war gl\u00fccklich.<br \/>\nNun unter Vista l\u00e4uft aber das Steuerungsprogramm nicht mehr mit administrativen Privilegien.<\/p>\n<ul>\n<li>Ist das Programm nicht Vista aware (also hat kein Trustinfo Manifest), dann hat man keinen Zugriff auf die Pipe. Den in diesem Fall wird der Admin Token ausgefiltert!<\/li>\n<li>Ist es Vista aware und man setzt <em>asInvoker <\/em>als Trustinfo, dann hat man auch keinen Zugriff. Logo.<\/li>\n<li>Nur <em>requireAdministrator<\/em> f\u00fchrt zum gew\u00fcnschten Ziel. Nat\u00fcrlich wieder mit der (manchmal) l\u00e4stigen Meldung f\u00fcr ein Programm das h\u00e4ufig benutzt wird.<\/li>\n<\/ul>\n<p>&#8212;<br \/>\n\u2757 Also liebe Programmierer Gemeinde! Bitte die <em>SECURITY_ATTRIBUTES <\/em>richtig ausf\u00fcllen mit einer DACL die eben nicht mehr nur den <em>lokalen Admin <\/em>enth\u00e4lt.\u00a0 Diese bei <em>CreateNamedPipe<\/em> verwenden und dann kann das Programm auch normal mit asInvoker gestartet werden.<\/p>\n<p>Ach ja! Und ehe ich es vergessen ein <em>NULL DACL<\/em> ist hier nicht im Sinne des Erfinders&#8230; \ud83d\ude42<\/p>\n<p>\ud83d\ude10 Insgesamt \u00e4rgerlich:<br \/>\nMan m\u00f6chte es dem Benutzer m\u00f6glichst einfach machen Programme zu nutzen. Der Vista-Admin-Privileg Dialog st\u00f6rt da manchmal (nicht immer). Also was macht man? Man setzt die Rechte f\u00fcr die Names Pipes und andere Objekte dieser Welt herunter, weil der Admin Token eben nicht mehr Bestandteil der Rechte ist f\u00fcr Programme die mit <em>asInvoker <\/em>gestartet werden.<br \/>\nDie Folge: Die Programme werden mit weniger Sicherheitsschranken gebaut, als zuvor.<br \/>\nWar das im Sinne des Erfinders?<\/p>\n<p>BTW: Da man sich mittlerweile schon blind angew\u00f6hnt hat, diesen Dialog zu best\u00e4tigen kann man sich fragen ob da noch ein Sicherheitsaspekt verbleibt, weil keiner mehr liest, welches Programm eigentlich administrative Rechte haben will.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Leben steckt einfach voller \u00dcberraschungen. Da hat man einen Service der im LocalSystem Account l\u00e4uft. Mit diesem Service wird \u00fcber Named Pipes kommuniziert. Das Programm, das diesen Service steuert soll nur f\u00fcr Administratoren verf\u00fcgbar sein und greift lesend und schreibend auf diese Pipe zu. Der Admin nutzt dieses Programm oft, muss man dazu sagen. &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2007\/02\/21\/uac-und-createnamedpipe-mit-lpsecurityattributesnull\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eUAC und CreateNamedPipe mit lpSecurityAttributes==NULL\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,17],"tags":[69,58,358,61],"class_list":["post-33","post","type-post","status-publish","format-standard","hentry","category-programmieren","category-vista-2","tag-manifest","tag-uac","tag-vista","tag-winapi"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/33\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}