{"id":553,"date":"2008-08-01T09:38:09","date_gmt":"2008-08-01T08:38:09","guid":{"rendered":"http:\/\/soci.hu\/blog\/?p=553"},"modified":"2008-08-04T22:58:50","modified_gmt":"2008-08-04T21:58:50","slug":"a-windows-integrity-control-hetkoznapi-hatasa","status":"publish","type":"post","link":"https:\/\/soci.hu\/blog\/index.php\/2008\/08\/01\/a-windows-integrity-control-hetkoznapi-hatasa\/","title":{"rendered":"A Windows Integrity Control h\u00e9tk\u00f6znapi hat\u00e1sa"},"content":{"rendered":"<p>A <a href=\"http:\/\/www.securityfocus.com\/infocus\/1887\">Windows Integrity Control<\/a> (WIC) r\u00e9gebbi nev\u00e9n Mandatory Integrity Control (MIC) az a mechanizmus a Vist\u00e1ban \u00e9s a Windows 2008-ban, amely miatt egy alacsonyabb szinte besorolt processz nem tud Windows \u00fczeneteket k\u00fcldeni egy magasabb szinten fut\u00f3 processznek. A klasszikus probl\u00e9ma ami miatt ezt bevezett\u00e9k az interakt\u00edv szervizek hekkel\u00e9se volt. Ha egy System account alatt fut\u00f3 szerviznek van Interact with the Desktop be\u00e1ll\u00edt\u00e1sa, akkor ki tud rakni ablakot az interakt\u00edvan bejelentkezett felhaszn\u00e1l\u00f3 asztal\u00e1ra. Ez l\u00e1tsz\u00f3lag \u00e1rtatlan dolog. Azonban a magas jogosults\u00e1gokkal fut\u00f3 szerviz GUI-nak tudunk mi, kis privil\u00e9gium\u00fa felhaszn\u00e1l\u00f3k \u00fczeneteket k\u00fcldeni. Ez azt jelenti, hogy ha pl. a textboxok tartalm\u00e1t a szerviz nem ellen\u0151rzi j\u00f3l, egy j\u00f3l ir\u00e1nyzott hossz\u00fa sz\u00f6veggel buffer overrunt okozhatunk a szervizben, megfelel\u0151 \u00fcgyess\u00e9ggel a sz\u00f6vegben elrejtett bin\u00e1ris k\u00f3dot v\u00e9grehajtatva vele. Ez az alapprobl\u00e9ma, ezzel nem lehet mit kezdeni Vista el\u0151tt, egy\u00fctt kell \u00e9lni vele. G\u00e1z, de ez van. Sokszor mondt\u00e1k, ne \u00edrjunk ilyen szervizt, de egyszer\u0171bb volt ezt csin\u00e1lni, mint k\u00fcl\u00f6n \u00edrni egy szervizt \u00e9s egy sima userk\u00e9nt fut\u00f3 klienst, ami mondjuk named pipe-on vagy egy\u00e9b IPC-n kereszt\u00fcl kommunik\u00e1l egym\u00e1ssal, biztons\u00e1gosan.<br \/>\nVist\u00e1ban egy szerviz magas integrit\u00e1si szinten fut, m\u00edg egy nemadmin felhaszn\u00e1l\u00f3 (aki lehet, hogy admin, de az UAC miatt nem admin, mint \u00e9n is) az k\u00f6zepesen. (\u00c9rdekess\u00e9gk\u00e9ppen, egy protected m\u00f3dban fut\u00f3 IE7 eset\u00e9n az \u00e1ltala elind\u00edtott folyamtok alacsony szinten futnak.)<br \/>\nA WIC miatt egy k\u00f6zepes folyamat (sima user, sima app) nem tud \u00fczenetet k\u00fcldeni egy magas szinten fut\u00f3 folyamatnak (szerviz), \u00edgy az el\u0151bbi hekkel\u00e9si probl\u00e9ma megoldott.<br \/>\nNo, aminek aprop\u00f3j\u00e1n \u00edrom ezt, az a k\u00f6vetkez\u0151. A c\u00e9ges VPN-t egy Citrix Firebox SSL programmal \u00e9rj\u00fck el. Ezt admink\u00e9nt kell futtatni, hogy meg tudja v\u00e1ltoztatni a h\u00e1l\u00f3zati be\u00e1ll\u00edt\u00e1sokat. Admink\u00e9nt \u00edgy \u0151 magas integrit\u00e1si szinten fut. Hogy a jelsz\u00f3t ne kelljen beg\u00e9pelnem el\u0151szeretettel haszn\u00e1lom a <a href=\"http:\/\/keepass.info\/\">KeePass<\/a> automatikus g\u00e9pel\u0151 szolg\u00e1ltat\u00e1s\u00e1t, \u00edgy CTRL-ALT-A-ra az ablak c\u00edme alapj\u00e1n benyom olyan billenty\u0171kombin\u00e1ci\u00f3t a c\u00e9lablakba, amit meg\u00e1lmodtunk. Ez viszont term\u00e9szetesen nem megy az el\u0151bbi helyzetben, mert a KeePass nemadmink\u00e9nt, \u00edgy k\u00f6zepes integrit\u00e1s\u00fa szinten fut. Az integrit\u00e1si szinteket a process explorer mutatja meg, egy processzn\u00e9l a security f\u00fcl\u00f6n.<br \/>\nEllenpr\u00f3bak\u00e9nt admink\u00e9nt futtattam KeePasst, \u00edgy egyb\u0151l g\u00e9pelt.<br \/>\nUgyanez a probl\u00e9ma j\u00f6tt el\u0151, csak rejtettebb m\u00f3don, amikor proteced m\u00f3dban fut\u00f3 IE alatt fejlesztett AddInb\u00f3l adtam ki <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/aa363362(VS.85).aspx\">OutputDebugString<\/a> h\u00edv\u00e1st (ezt h\u00edvja meg a DefaultTraceListener is .NET-ben). A <a href=\"http:\/\/technet.microsoft.com\/en-us\/sysinternals\/bb896647.aspx\">DebugView<\/a> elvileg az ilyen h\u00edv\u00e1sok kimenet\u00e9t adja vissza, de nem j\u00f6tt meg bele semmilyen \u00fczenet. Ut\u00e1nan\u00e9ztem, ilyenkor is \u00fczenetek form\u00e1j\u00e1ban mennek \u00e1t a sz\u00f6vegek, ergo megint a WIC k\u00f6p\u00f6tt a levesbe. A megold\u00e1s az volt, hogy alacsony integrit\u00e1si szinten kellett futtatni a DebugView-t. Erre \u00edrtam egy kis programocsk\u00e1t (<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/bb625960.aspx\">ez alapj\u00e1n<\/a>), ami egy processzt egy adott integrit\u00e1si szinten ind\u00edt el. A <a href=\"http:\/\/technet.microsoft.com\/en-us\/sysinternals\/bb897553.aspx\">PsExec<\/a>t\u0151l v\u00e1rn\u00e9k el valami ilyesmit. Ha valaki tud ilyen k\u00e9sz utilt, akkor k\u00e9rem jelezze.<\/p>\n<p>Update: megv\u00e1laszolom magamnak, a psexec -l Low Integrity-vel ind\u00edt el egy processzt. :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Windows Integrity Control (WIC) r\u00e9gebbi nev\u00e9n Mandatory Integrity Control (MIC) az a mechanizmus a Vist\u00e1ban \u00e9s a Windows 2008-ban, amely miatt&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,23,54],"tags":[],"class_list":["post-553","post","type-post","status-publish","format-standard","hentry","category-szakmai-elet","category-vista","category-windows-server-2008"],"_links":{"self":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=553"}],"version-history":[{"count":0,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/553\/revisions"}],"wp:attachment":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}