shtëpi · Siguria · Kërkohet ngritja e të drejtave të aksesit. Ngritja e privilegjeve të përdoruesve në Windows

Kërkohet ngritja e të drejtave të aksesit. Ngritja e privilegjeve të përdoruesve në Windows

Shumë programe kërkojnë ngritjen e të drejtave në fillim (një ikonë mbrojtëse pranë ikonës), por në fakt ata nuk kërkojnë të drejta administratori për funksionimin e tyre normal (për shembull, ju i keni dhënë manualisht të drejtat e nevojshme përdoruesve për direktorinë e programit në ProgramFiles dhe degët e regjistrit që përdoren nga programi). Prandaj, kur ekzekutoni një program të tillë si një përdorues i thjeshtë, nëse kontrolli i llogarisë së përdoruesit është aktivizuar në kompjuter, do të shfaqet një kërkesë UAC dhe përdoruesi do t'i kërkohet të fusë fjalëkalimin e administratorit. Për të anashkaluar këtë mekanizëm, shumë thjesht çaktivizojnë UAC ose i japin përdoruesit të drejtat e administratorit në kompjuter duke e shtuar atë në grupin e administratorëve lokalë. Natyrisht, të dyja këto metoda janë të pasigurta.

Pse një aplikacion i rregullt mund të ketë nevojë për të drejtat e administratorit

Programi mund të ketë nevojë për të drejtat e administratorit për të modifikuar skedarë të caktuar (regjistrat, konfigurimet, etj.) në dosjen e tij në C:\Program Files (x86)\SomeApp). Si parazgjedhje, përdoruesit nuk kanë të drejta për të redaktuar këtë drejtori, prandaj, për funksionimin normal të një programi të tillë, kërkohen të drejtat e administratorit. Për të zgjidhur këtë problem, duhet t'i caktoni manualisht të drejtat e ndryshimit/shkrimit të përdoruesit (ose grupit të përdoruesve) në dosjen e programit si administrator në nivelin NTFS.

shënim. Në fakt, praktika e ruajtjes së ndryshimit të të dhënave të aplikacionit në drejtorinë e vet nën C:\Program Files është e pasaktë. Është më e saktë të ruash të dhënat e aplikacionit në profilin e përdoruesit. Por kjo është një çështje e dembelizmit dhe paaftësisë së zhvilluesve.

Drejtimi i një programi që kërkon të drejta administratori nga një përdorues standard

Ne kemi përshkruar më parë se si mund të përdorni parametrin RunAsInvoker. Megjithatë, kjo metodë nuk është mjaft fleksibël. Mund ta përdorni gjithashtu me ruajtjen e fjalëkalimit të administratorit /SAVECRED (gjithashtu i pasigurt). Le të shqyrtojmë një mënyrë më të thjeshtë për të detyruar çdo program të nisë pa të drejta administratori (dhe pa futur fjalëkalimin e administratorit) me UAC të aktivizuar (4.3 ose niveli 2).

Për shembull, le të marrim mjetin e redaktimit të regjistrit - regedit.exe(ai ndodhet në drejtorinë C:\windows\system32). Kur ekzekutoni regedit.exe, shfaqet një dritare UAC dhe, nëse nuk konfirmoni ngritjen e privilegjit, Redaktori i Regjistrit nuk fillon.

Le të krijojmë një skedar në desktop run-as-non-admin.bat me tekstin e mëposhtëm:

cmd /min /C "vendos __COMPAT_LAYER=RUNASINVOKER && nis "" %1"

Tani për të detyruar aplikacionin të funksionojë pa të drejta administratori dhe të shtypni kërkesën UAC, thjesht tërhiqni skedarin e dëshiruar exe në këtë skedar bat në desktop.

Pas kësaj, Redaktori i Regjistrit duhet të fillojë pa u shfaqur kërkesa UAC. Hapni menaxherin e procesit dhe shtoni një kolonë I ngritur(Me leje më të larta), do të shihni që sistemi ka një proces regedit.exe me një status jo të ngritur (që funksionon me të drejtat e përdoruesit).

Provoni të redaktoni çdo parametër në degën HKLM. Siç mund ta shihni, qasja për të redaktuar regjistrin në këtë degë është mohuar (ky përdorues nuk ka të drejta për të shkruar në degët e regjistrit të sistemit). Por ju mund të shtoni dhe modifikoni çelësat në degën e regjistrit të përdoruesit - HKCU.

Në të njëjtën mënyrë, ju mund të nisni një aplikacion specifik përmes një skedari bat, thjesht specifikoni shtegun drejt skedarit të ekzekutueshëm.

run-app-as-non-admin.bat

Cakto ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

Mund të shtoni gjithashtu një meny konteksti, e cila shton mundësinë që të gjitha aplikacionet të nisin pa lartësi. Për ta bërë këtë, krijoni skedarin e mëposhtëm reg dhe importojeni atë në regjistër.

Redaktori i Regjistrit të Windows Versioni 5.00


@="cmd /min /C \"vendos __COMPAT_LAYER=RUNASINVOKER && nis \"\" \"%1\"\""

Pas kësaj, për të nisur ndonjë aplikacion pa të drejta administratori, thjesht zgjidhni artikullin "" në menunë e kontekstit.

Variabli i mjedisit __COMPAT_LAYER dhe parametri RunAsInvoker

Variabla e mjedisit __COMPAT_LAYER ju lejon të vendosni nivele të ndryshme përputhshmërie për aplikacionet (tab Përputhshmëria në vetitë e skedarit exe). Duke përdorur këtë variabël, mund të specifikoni cilësimet e pajtueshmërisë me të cilat duhet të ekzekutohet programi. Për shembull, për të ekzekutuar aplikacionin në modalitetin e pajtueshmërisë me Windows 7 dhe rezolucionin 640x480, vendosni:

vendos __COMPAT_LAYER=Win7RTM 640x480

Ndër opsionet e ndryshores __COMPAT_LAYER që janë interesante për ne, ne theksojmë parametrat e mëposhtëm:

  • RunAsInvoker- nisja e një aplikacioni me privilegjet e procesit prind pa një kërkesë UAC.
  • RunAsHighest- nisja e aplikacionit me të drejta maksimale në dispozicion të përdoruesit (kërkesa UAC shfaqet nëse përdoruesi ka të drejta administratori).
  • RunAsAdmin- nisni aplikacionin me të drejta administratori (prompti AUC shfaqet gjithmonë).

Ato. Parametri RunAsInvoker nuk ofron të drejta administratori, por vetëm bllokon pamjen e dritares UAC.

UAC(Kontrolli i llogarisë së përdoruesit) është një teknologji e kontrollit të llogarisë që u shfaq për herë të parë në Windows Vista dhe më të vjetër. Kjo teknologji parandalon programet të kryejnë veprime që kërkojnë të drejta administratori. Kur programi kryen veprime të tilla, puna e tij pezullohet dhe përdoruesit i paraqitet një dritare kërkese në desktopin e mbrojtur (në mënyrë që të jetë e pamundur të shtypet programatikisht butoni OK). Për shembull, nëse programi juaj duhet të bëjë ndryshime në çelësin e regjistrit HKEY_LOCAL_MACHINE, atëherë ajo do të ketë nevojë për të drejtat e administratorit.
Për të zgjidhur këtë problem, mund të përdorni zbatimin e një skedari manifest në projekt, të cilin sistemi operativ do ta lexojë dhe do të përcaktojë automatikisht parametrat e nevojshëm për nisjen.
Le të shqyrtojmë futjen e një skedari manifest në aplikacion " Formulari i Windows" Për ta bërë këtë, hapni Visual Studio (versioni 2012 përdoret në këtë shembull) dhe krijoni një projekt " Formulari i Windows" hap" Eksploruesi i zgjidhjeve(Solution Explorer), i cili ofron një pamje të organizuar të projekteve dhe skedarëve të tyre, shkoni te menyja Pamje» - « Eksploruesi i zgjidhjeve" Klikoni me të djathtën në " Eksploruesi i zgjidhjeve" me emrin e projektit dhe zgjidhni nga menyja e kontekstit, " Shto» - « Krijo element...».

Do të hapet një dritare e re " Shtimi i një elementi të ri -..."kërko elementin Visual C# me emrin" Skedari i manifestit të aplikacionit", zgjidhni atë dhe klikoni " Shto».

NË " Eksploruesi i zgjidhjeve"Do të keni një artikull të ri me emrin e skedarit të manifestit. Ai gjithashtu do të hapet automatikisht në redaktuesin e kodit.

Për të konfiguruar të drejtat e nevojshme për të ekzekutuar aplikacionin, duhet të përcaktoni nivelin e sigurisë dhe të përshkruani elementin " kërkuarNiveli i Ekzekutimit" Ky element nuk ka elementë fëmijë dhe ka atributet e mëposhtme:
1) Niveli- E detyrueshme. Vendos nivelin e sigurisë që kërkohet nga aplikacioni. Vlerat e mëposhtme janë të disponueshme për këtë atribut:
  • si thirrës- aplikimi fillon me të drejtat e procesit prind. Kjo do të thotë që nëse ekzekutoni një program nga një aplikacion që tashmë po ekzekutohet me të drejta administratori, ai automatikisht do të ketë të njëjtat të drejta. Kjo mënyrë rekomandohet nga Microsoft në shumicën e rasteve. Ato. Këto janë ato programe që nuk kërkojnë të drejta administratori;
  • më e larta e disponueshme— aplikacioni niset me të drejta më të larta se sa ka përdoruesi aktual. Regedit.exe, Mmc.exe janë nisur me këto të drejta;
  • kërkon Administratorin- Kërkohen të drejta të plota administratori. Ato. kërkohet për aplikacionet që nuk mund të ekzekutohen pa të drejta administratori.

Instalimi i aplikacioneve " Kliko një herë" është e mundur vetëm me vlerën "asInvoker". Çdo vlerë tjetër nuk do të lejojë instalimin.

2) uiAccess- Fakultative. Tregon nëse aplikacioni kërkon qasje në elementët e mbrojtur të ndërfaqes së përdoruesit për të zbatuar veçoritë e aksesueshmërisë. Vlerat e disponueshme " e vërtetë"Dhe" i rremë", vlera e paracaktuar është " i rremë". Kuptimi" e vërtetë" duhet të ketë vetëm aplikacione të nënshkruara dhe të niset nga dosjet "\Program Files\" dhe "\windows\system32\". Më shpesh, kjo nuk është e nevojshme.
Në mënyrë që programi të kërkojë ngritjen e të drejtave në nivelin e Administratorit pas fillimit, zëvendësoni atributin " Niveli"vlera e paracaktuar" si thirrës"në" kërkon Administratorin».

Ndërtoni një zgjidhje duke shtypur " F6" Nëse keni bërë gjithçka në mënyrë korrekte, atëherë në sistemet operative Windows Vista dhe më të vjetër, një ikonë mbrojtëse do të shfaqet në ikonën e skedarit të ekzekutueshëm të programit, duke treguar se ky program kërkon ngritjen e të drejtave.

Për të kontrolluar lejet e aplikacionit tuaj, mund të përdorni listën e mëposhtme.
vargu s = WindowsPrincipal i ri(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) ? "Administrator" : "Përdorues i rregullt"; Nëse keni një aplikacion konsol, atëherë parimi i funksionimit është i njëjtë.

Hmm, ndryshimi midis njërës dhe tjetrës është vetëm në mënyrën se si vendosen parametrat e përputhshmërisë, në rastin e parë - me dorë, në të dytën - e njëjta gjë, vetëm përmes magjistarit. Por gjithsesi faleminderit për përgjigjen e detajuar))

Faleminderit, e di))))))))))))))))))))

Ok, unë jam një administrator (ndoshta pak analfabet, por shpresoj të arrij...) Si mund të më lejohet të ekzekutoj këtë aplikacion (dhe vetëm këtë)? Në të njëjtën kohë, në mënyrë që të mos vrapojë vazhdimisht në kompjuterin e tij (për të futur fjalëkalimin e administratorit lokal, të cilin ai nuk duhet ta dijë) kur duhet të nisë këtë aplikacion.

Ju jam shumë mirënjohës që më kujtuat një pjesë të leksionit me temën “Sistemet Operative”. Më lejoni t'ju jap një shembull tjetër, tani klasik:

Ndonjëherë një përdorues duhet të ndryshojë fjalëkalimin e tij të hyrjes. Vetë përdoruesi nuk ka të drejta për të hyrë në bazën e të dhënave të fjalëkalimeve. Sidoqoftë, programi që ai përdor për të ndryshuar fjalëkalimin funksionon me të drejta të ngritura. E cila i lejon atij të ndryshojë përfundimisht fjalëkalimin e tij.

Pra, rasti im është i ngjashëm. Si t'i "tregoj" sistemit që një program duhet të funksionojë me të drejta të ngritura? Në këtë rast, ai do të lansohet nga një përdorues nga grupi "përdorues"/"përdorues i fuqisë".

Kjo në fakt mund të bëhet duke ekzekutuar programin si një "detyrë e planifikuar" si një përdorues tjetër. Gjithçka do të ishte mirë - madje fillon, por ndërfaqja grafike (dritaret e programit) nuk shfaqet në desktopin e përdoruesit...

Kontradikta konceptuale??? Unë dhashë një shembull më lart - detyra është mjaft standarde për çdo OS. Thjesht nuk dua ta zgjidh me mjete të palëve të treta (që nuk përfshihen në Windows Vista). Unë tashmë e kam çaktivizuar UAC-në - në çdo rast aplikacioni funksionon si duhet vetëm me të drejtat e administratorit, kështu është - specifik.... Nuk duket e mundur përfshirja e këtij përdoruesi në grupin lokal "Administratorët" për arsye sigurie. .

Në lidhje me skenarin - për vrapo si ekziston një flamur që ju lejon të mbani mend fjalëkalimin, por në këtë rast përdoruesi do të jetë në gjendje të ekzekutojë ndonjë program me të drejta administratori.

Kjo do të thotë që unë nuk dua të lëshoj softuer, kodin burimor të të cilit askush nuk e ka parë, asgjë nuk dihet për furnizuesin dhe uebsajti i të cilit është "në duart e njerëzve". Po përdoruesit - eh, po të mjaftonte, atëherë ky diskutim nuk do të dilte në forum..... =(

Do të doja të besoja se jo gjithçka është aq e keqe.

Ngritja e privilegjeve është ndoshta një nga pikat kyçe nga e cila varet skenari për pentestim ose sulm të mëtejshëm. Shumë shpesh, gjithçka përfundon në këtë fazë nëse nuk është e mundur të "zgjeroni fuqitë tuaja". Prandaj, sot do të flasim pak për mënyrat që lejojnë një përdorues të rrisë privilegjet e tij jo vetëm ndaj administratorit, por edhe ndaj sistemit.

Prezantimi

Përshkallëzimi i privilegjeve është paksa i ndryshëm në Windows dhe Linux. Edhe pse të dy sistemet operative kanë numrin e zakonshëm të dobësive, studiuesit vërejnë se një server Windows plotësisht i rregulluar është shumë më i zakonshëm se një server Linux që është përditësuar në gjendjen më të fundit. Për më tepër, koha e lëshimit për arna të Windows është shpesh më e shkurtër, gjë që e bën rritjen e privilegjeve në Windows një detyrë mjaft interesante dhe ambicioze. Është ajo që ne do t'i kushtojmë historinë tonë.

Opsione

Pra, çfarë mundësish kemi për t'u ngritur në botën e Windows? Para së gjithash, kohët e fundit janë gjetur mjaft dobësi në lidhje me analizimin e shkronjave në bërthamën e OS, gjë që e bën procesin e përshkallëzimit të privilegjeve mjaft të thjeshtë nëse keni një shfrytëzim të përshtatshëm në dorë. Nëse përdorni Metasploit, atëherë mjafton vetëm një komandë për të marrë një guaskë të sistemit. Megjithatë, e gjithë kjo ka të ngjarë të funksionojë me sukses vetëm nëse sistemi nuk është plotësisht i rregulluar. Nëse të gjitha përditësimet janë instaluar në makinë, atëherë, ndryshe nga Linux, nuk do të jetë e mundur të gjenden binarët SUID, dhe variablat e mjedisit zakonisht nuk kalohen në shërbime ose procese me privilegje më të larta. Çfarë na mbetet si rezultat?

Nga administratori te sistemi, ose çfarë dinë të gjithë

Në mënyrë tipike, kur mendoni për përshkallëzimin e privilegjeve, metoda që ju vjen menjëherë në mendje është përdorimi i programuesit të detyrave. Në Windows, mund të shtoni një detyrë duke përdorur dy shërbime: at dhe schtasks. E dyta do të ekzekutojë detyrën në emër të përdoruesit që ka shtuar detyrën, ndërsa e para do të ekzekutojë në emër të sistemit. Një truk standard për të cilin ndoshta keni dëgjuar që ju lejon të ekzekutoni tastierën me të drejtat e sistemit:

Në orën 13:01 /cmd interaktive

Gjëja e dytë që ju vjen në mendje është shtimi i një shërbimi që do të nisë skedarin e kërkuar / do të ekzekutojë komandën:

@echo off @break off root root Cls echo Krijimi i shërbimit. sc create evil binpath= "cmd.exe /K start" type= own type= interact > nul 2>&1 echo Starting service. sc start evil > nul 2>&1 echo Standing by... ping 127.0.0.1 -n 4 > nul 2>&1 echo Shërbimi i heqjes. jehonë. sc fshij të keqen > nul 2>&1

Metoda e tretë është zëvendësimi i mjetit të sistemit C:\windows\system32\sethc.exe me, për shembull, cmd. Nëse dilni pas kësaj dhe shtypni tastin Shift disa herë, do të shfaqet një tastierë me të drejtat e sistemit.

Sa i përket metodave të automatizuara, Metasploit dhe sistemi i tij gete vijnë menjëherë në mendje. Një opsion alternativ është PsExec nga Sysinternals (psexec -i -s -d cmd.exe).

Ne do të shkojmë në një rrugë tjetër

Të gjitha këto metoda kanë një pengesë të përbashkët: kërkohen privilegje administratori. Kjo do të thotë që ne po përshkallëzojmë privilegjet nga një llogari e privilegjuar. Në shumicën e rasteve, kur keni marrë të drejtat e administratorit, keni një mori opsionesh se si të ngriheni edhe më lart. Pra, nuk është një detyrë shumë e vështirë. Sot do të flasim për metodat për përshkallëzimin e privilegjeve që nuk përdorin asnjë dobësi 0day, duke supozuar se kemi një sistem normal dhe një llogari të një përdoruesi të zakonshëm të paprivilegjuar.

Gjueti për kredencialet

Një nga mënyrat e besueshme dhe të qëndrueshme për të rritur privilegjet dhe për të fituar një terren në sistem është marrja e fjalëkalimeve të administratorëve ose përdoruesve me privilegje më të larta. Dhe tani është koha për të kujtuar instalimin e automatizuar të softuerit. Nëse menaxhoni një domen që përfshin një flotë të madhe makinerish, definitivisht nuk dëshironi të shkoni dhe të instaloni softuer në secilën prej tyre manualisht. Dhe do të duhet aq shumë kohë sa nuk do të ketë mjaftueshëm për asnjë detyrë tjetër. Prandaj, përdoren instalime të pambikëqyrura, të cilat gjenerojnë skedarë që përmbajnë fjalëkalime të administratorit në formën e tyre më të pastër. I cili është thjesht një thesar si për pentestuesit ashtu edhe për sulmuesit.

Instalime të pambikëqyrura

Në rastin e një instalimi të automatizuar, skedari Unattended.xml, i cili është mjaft interesant për ne, mbetet në klient, i cili zakonisht ndodhet ose në %WINDIR%\Panther\Unattend\ ose në %WINDIR%\Panther\ dhe mund të ruajeni fjalëkalimin e administratorit në tekst të qartë. Nga ana tjetër, për të marrë këtë skedar nga serveri, nuk ju nevojitet as ndonjë vërtetim. Ju duhet vetëm të gjeni serverin "Windows Deployment Services". Për ta bërë këtë, mund të përdorni shërbimet ndihmëse/skaner/dcerpc/windows_deployment _skript nga Metasploit. Megjithëse Windows Deployment Services nuk është mënyra e vetme për të kryer instalime të automatizuara, skedari Unattended.xml konsiderohet një standard, kështu që zbulimi i tij mund të konsiderohet i suksesshëm.

GPP

Skedarët XML të Preferencës së Politikës së Grupit shpesh përmbajnë një grup kredencialesh të koduara që mund të përdoren për të shtuar përdorues të rinj, për të krijuar aksione, etj. Për fat të mirë, metoda e kriptimit është e dokumentuar, kështu që ju mund të merrni me lehtësi fjalëkalime në formën e tyre të pastër. Për më tepër, ekipi i Metasploit ka bërë tashmë gjithçka për ju - thjesht përdorni modulin /post/windows/gather/credentials/gpp.rb. Nëse jeni të interesuar për detaje, atëherë të gjitha informacionet e nevojshme janë në dispozicion në këtë lidhje.

Të drejtat e përdoruesit

Shumë shpesh, përshkallëzimi i privilegjeve është pasojë e të drejtave të përdoruesit të konfiguruara gabimisht. Për shembull, kur një përdorues domeni është një administrator lokal (ose përdorues i energjisë) në host. Ose kur përdoruesit e domenit (ose anëtarët e grupeve të domenit) janë administratorë lokalë në të gjithë hostet. Në këtë rast, nuk do t'ju duhet të bëni asgjë. Por opsione të tilla nuk shfaqen shumë shpesh.

Gjithmonë InstallElevated

Ndonjëherë administratorët lejojnë përdoruesit e rregullt të instalojnë vetë programet, zakonisht përmes çelësave të mëposhtëm të regjistrit:

HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated

HKCU\SOFTWARE\Policies\Microsoft\Window s\Installer\AlwaysInstallElevated

Ata i thonë sistemit se çdo skedar MSI duhet të instalohet me privilegje të ngritura (NT AUTHORITY\SYSTEM). Prandaj, duke përdorur një skedar të krijuar posaçërisht, mund të kryeni përsëri veprime në emër të sistemit dhe të përmirësoni privilegjet tuaja.

Metasploit përfshin një modul të veçantë exploit/windows/local/always_install_elevated, i cili krijon një skedar MSI me një skedar të veçantë të ekzekutueshëm të ngulitur në të, i cili nxirret dhe ekzekutohet nga instaluesi me privilegje të sistemit. Pasi të ekzekutohet, skedari MSI ndërpret instalimin (duke thirrur një VBS të pavlefshme të krijuar posaçërisht) për të parandaluar që veprimi të regjistrohet në sistem. Përveç kësaj, nëse filloni instalimin me çelësin /quiet, përdoruesi nuk do të shohë as një gabim.

Mungon nisja automatike

Ndodh shpesh që sistemi mban një regjistrim të një skedari që duhet të lansohet automatikisht, edhe pasi vetë skedari është zhytur tashmë në harresë. Ndoshta ndonjë shërbim është hequr gabimisht - nuk ka skedar të ekzekutueshëm, por hyrja e regjistrit mbetet, dhe sa herë që filloni, sistemi përpiqet ta fillojë pa sukses, duke mbushur regjistrin e ngjarjeve me mesazhe për dështime. Kjo situatë mund të përdoret gjithashtu për të zgjeruar fuqitë tuaja. Hapi i parë është gjetja e të gjitha regjistrimeve të tilla jetimë. Për shembull, duke përdorur mjetin autorunsc nga Sysinternals.

Autorunsc.exe -a | findstr /n /R "Skedari\nuk\u gjet"

Pas së cilës, siç e keni marrë me mend, gjithçka që mbetet është të rrëshqitni disi kandidatin tuaj në vend të dosjes që mungon.

Magjia e kuotave

Po, po, kuotat jo vetëm që mund të luajnë një shaka mizore në pyetjet SQL, duke lejuar injeksionin, por edhe të ndihmojnë në rritjen e privilegjeve. Problemi është mjaft i vjetër dhe është i njohur që nga kohët e NT. Çështja është se shtigjet drejt skedarëve të ekzekutueshëm të disa shërbimeve nuk janë të rrethuara me thonjëza (për shembull, ImagePath=C:\Program Files\Common Files\Network Associates\McShield\McShield.exe), dhe ka karaktere të hapësirës në rrugë. Në këtë rast, nëse sulmuesi krijon një skedar që do të shtojë administratorë të rinj në sistem ose do të kryejë disa veprime të tjera dhe e quan atë C:\Program Files\common.exe, atëherë kur shërbimi të fillojë më pas, ai do të jetë i zakonshëm. exe që do të lëshohet, dhe pjesa e mbetur e shtegut do të merret si argument(a). Është e qartë se një përdorues i paprivilegjuar nuk do të jetë në gjendje të vendosë asgjë në Program Files, por skedari i ekzekutueshëm i shërbimit mund të gjendet në një direktori tjetër, domethënë përdoruesi do të ketë mundësinë të rrëshqasë në skedarin e tij.

Për të përdorur këtë teknikë, ju duhet të gjeni një shërbim të cenueshëm (i cili nuk do të përdorë kuotat në rrugën drejt binarit të tij). Kjo bëhet si më poshtë:

Shërbimi Wmic merr emrin, emrin e ekranit, emrin e rrugës, mënyrën e fillimit |findstr /i "auto" |findstr /i /v "c: \windows\\" |findstr /i /v """

Vërtetë, në XP kjo do të kërkojë privilegje administratori, kështu që është më mirë të përdorni metodën e mëposhtme atje: merrni një listë shërbimesh - sc query, pastaj shikoni informacionin për secilin shërbim - sc qc servicename .

Të gjitha sipas planit

Një mekanizëm tjetër që mund të ndihmojë në ngritjen e të drejtave dhe që zakonisht harrohet është planifikuesi i detyrave. Shërbimi schtasks ju lejon të caktoni detyra për ngjarje specifike. Më interesantet për ne janë ONIDLE, ONLOGON dhe ONSTART. Siç sugjerojnë emrat, ONIDLE do të ekzekutohet sa herë që kompjuteri është i papunë, ONLOGON dhe ONSTART - përkatësisht kur përdoruesi regjistrohet dhe kur fillon sistemi. Kështu, një detyrë e veçantë mund t'i caktohet secilës prej ngjarjeve. Për shembull, kur sistemi fillon, kopjoni diku një binar/keylogger/… me qëllim të keq dhe ekzekutoni atë. Kur përdoruesit identifikohen, përdorni një kartë krediti. Me pak fjalë, gjithçka kufizohet vetëm nga imagjinata juaj dhe detyra në dorë.

Truket me leje

Lejet e skedarëve janë zakonisht mbrojtja e parë që na pengon të përshkallëzojmë privilegjet tona. Do të ishte joshëse thjesht të mbishkruash disa skedarë sistemi (për shembull, i njëjti sethc.exe i përmendur në fillim të artikullit) dhe të fitosh menjëherë privilegjet e sistemit. Por të gjitha këto janë vetëm ëndrra në realitet, ne kemi vetëm leje për ta lexuar, gjë që nuk na jep absolutisht asgjë. Sidoqoftë, nuk duhet të varni hundën, sepse edhe me leje nuk është gjithçka aq e qetë - këtu, si kudo, ka gracka, njohja e të cilave të lejon të bësh të pamundurën të mundur.

Një nga drejtoritë e sistemit të mbrojtur nga ky mekanizëm është veçanërisht interesant nga pikëpamja e përshkallëzimit të privilegjeve - Program Files. Përdoruesve të paprivilegjuar u mohohet qasja atje. Megjithatë, ndonjëherë ndodh që gjatë procesit të instalimit, instaluesit të vendosin gabimisht lejet e skedarëve, duke rezultuar që të gjithë përdoruesve t'u jepet akses i plotë në skedarët e ekzekutueshëm. Çfarë rrjedh nga kjo - e keni menduar tashmë.

Një kufizim tjetër është se një i vdekshëm i zakonshëm nuk lejohet të shkruajë në rrënjën e diskut të sistemit. Sidoqoftë, për shembull, në XP, kur krijoni një drejtori të re në rrënjën e diskut, grupi BUILTIN\Users merr lejet FILE_APPEND_DATA dhe FILE_WRITE_DATA (edhe nëse pronari i dosjes është një administrator):

BUILTIN\Përdoruesit:(OI)(CI)R BUILTIN\Përdoruesit:(CI)(qasje speciale:) FILE_APPEND_DATA BUILTIN\Përdoruesit:(CI)(qasje speciale:) FILE_WRITE_DATA

Në "shtatë" ndodh pothuajse e njëjta gjë, vetëm grupi i PËRDORËSVE TË VËRTETËSUAR merr leje. Si mund të bëhet problem kjo sjellje? Është vetëm se disa aplikacione instalohen jashtë drejtorive të mbrojtura, gjë që e bën të lehtë zëvendësimin e skedarëve të tyre të ekzekutueshëm. Për shembull, një incident i tillë ndodhi me Metasploit Framework në rastin e instalimit të tij me shumë përdorues. Ky gabim u rregullua në versionin 3.5.2 dhe programi u zhvendos te Program Files.


Si të kërkoni për drejtori/skedarë të tillë

Gjetja e një drejtorie me leje të pasakta është tashmë gjysma e betejës. Sidoqoftë, së pari duhet ta gjeni. Për ta bërë këtë, mund të përdorni dy mjetet e mëposhtme: AccessChk dhe Cacls/ICacls. Për të gjetur drejtoritë "të dobëta" duke përdorur AccessChk, do t'ju duhen këto komanda:

Përdoruesit Accesschk.exe -uwdqs c:\ accesschk.exe -uwdqs "Përdorues të vërtetuar" c:\

Për të kërkuar skedarë me leje "të dobëta", përdorni sa vijon:

Përdoruesit Accesschk.exe -uwqs c:\*.* accesschk.exe -uwqs “Përdorues të vërtetuar” c:\*.*

E njëjta gjë mund të bëhet duke përdorur Cacls/ICacls:

Cacls "c:\Program Files" /T | Findstr Përdoruesit

Truket me shërbime

Një tjetër mundësi për të ngritur lart në sistem është të përfitoni nga konfigurimet e gabuara dhe gabimet e shërbimit. Siç tregon praktika, jo vetëm skedarët dhe dosjet, por edhe shërbimet që funksionojnë në sistem mund të kenë leje të pasakta. Për t'i zbuluar këto, mund të përdorni mjetin AccessChk nga i mirënjohuri Mark Russinovich:

Accesschk.exe –uwcqv *

Do të jetë shumë inkurajuese të shohësh lejen SERVICE_ALL_ACCESS për përdoruesit e vërtetuar ose përdoruesit e fuqishëm. Por edhe sa vijon mund të konsiderohet sukses i madh:

  • SERVICE_CHANGE_CONFIG - ne mund të ndryshojmë skedarin e ekzekutueshëm të shërbimit;
  • WRITE_DAC - lejet mund të ndryshohen, gjë që rezulton në marrjen e lejes SERVICE_CHANGE_CONFIG;
  • WRITE_OWNER - ju mund të bëheni pronar dhe të ndryshoni lejet;
  • GENERIC_WRITE - trashëgon lejet SERVICE_CHANGE_CONFIG;
  • GENERIC_ALL - trashëgon lejet SERVICE_CHANGE_CONFIG.

Nëse zbuloni se një (ose më shumë) nga këto leje janë caktuar për përdorues të paprivilegjuar, shanset tuaja për të përshkallëzuar privilegjet tuaja rriten në mënyrë dramatike.

Si të rritet?

Le të themi se keni gjetur një shërbim të përshtatshëm, është koha për të punuar në të. Sc do t'ju ndihmojë me këtë. Së pari, marrim informacion të plotë për shërbimin që na intereson, le të themi se është upnphost:

Sc qc upnphost

Le ta konfigurojmë duke përdorur të njëjtin mjet:

Sc config vulnsrv binpath= "përdoruesi neto john hello /add && net localgroup Administrators john /add" type= ndërvepron konfigurimin sc upnphost obj= “.\LocalSystem” fjalëkalimi=“”

Siç mund ta shihni, herën tjetër që të nisë shërbimi, në vend të skedarit të tij të ekzekutueshëm, komanda net user john hello /add && net localgroup Administrators john /add do të ekzekutohet, duke shtuar një përdorues të ri john me fjalëkalimin hello në sistem. E tëra që mbetet është të rinisni manualisht shërbimin:

Net stop upnphost net start upnphost

Kjo është e gjithë magjia.

Cili është rezultati?

Njëherë e një kohë, lexova një artikull në revistë që përshkruante teknikat bazë për përshkallëzimin e privilegjeve në Windows. Atëherë nuk i kushtova shumë rëndësi, por teoria më mbeti në kokë dhe dikur më ndihmoi shumë. Pra, shpresoj se në këtë artikull do të gjeni diçka të re për veten tuaj që një ditë do t'ju ndihmojë të kapërceni një pengesë tjetër.

Sot do të flasim për përshkallëzimin e privilegjeve të Windows. Do të mësoni se si një sulmues mund të përshkallëzojë privilegjet dhe si të mbroheni nga kjo.

Të gjitha informacionet janë vetëm për qëllime informative. As redaktorët e faqes dhe as autori i artikullit nuk janë përgjegjës për përdorimin e pahijshëm të tij.

Ngritja e privilegjeve me BeRoot

Shumica e metodave të ngritjes së privilegjeve shoqërohen me gabime në konfigurimin e softuerit të instaluar, qoftë rruga drejt skedarit të ekzekutueshëm të shërbimit, jo i rrethuar nga thonjëza dhe që përmban një hapësirë ​​(kjo situatë trajtohet në mënyrë mjaft interesante nga Windows), ose gabimisht. vendosni të drejtat për direktorinë me aplikacionin.

Njeriu është një krijesë dembel dhe nuk dëshiron t'i kontrollojë të gjitha këto me dorë çdo herë. Prandaj, herët a vonë duhej të shfaqej një mjet që do ta automatizonte këtë rutinë.

Doreza e hyrjes dytësore

Një tjetër truk interesant përfshin përdorimin e shërbimit sekondar të hyrjes. Ky shërbim ju lejon të ekzekutoni programe, konzolla të Menaxhimit të Microsoft dhe elementë të panelit të kontrollit si administrator, edhe nëse përdoruesi aktual i përket vetëm grupit "Përdoruesit" ose "Përdoruesit e fuqisë". Çështja është se ky shërbim nuk pastron dorezat kur krijon procese të reja.

Ajo që është e rëndësishme për ne është se pothuajse të gjitha versionet e Windows (x32 dhe x64) janë të ndjeshme ndaj kësaj dobësie: nga Vista në Windows 2012 Server. Por ka edhe kufizime: për të përshkallëzuar me sukses privilegjet, sistemi duhet të ketë të instaluar PowerShell 2.0 ose më të lartë, si dhe dy ose më shumë bërthama CPU. Metasploit Framework ka një modul të veçantë exploit/windows/local/ms16_032_secondary_logon_handle_privesc.

Përdorimi i tij nënkupton që ne tashmë kemi një sesion metërprerës, të cilin duhet ta specifikojmë në parametrat: vendos SESIONI 1. Epo, në rast shfrytëzimi të suksesshëm, do të kemi një sesion tjetër me privilegje të ngritura.

\ pentestlab > wmic qfe list | gjeni "3139914"

konkluzioni

Pavarësisht se sa shumë përpiqem të vendos të gjitha opsionet e mundshme për rritjen e privilegjeve në një artikull, kjo nuk ka gjasa të funksionojë, ose artikulli do të rritet në përmasa gjigante dhe do të bëhet jo interesant për ju. Pra, është koha për ta quajtur atë një ditë. Ne do të flasim për mbrojtjen në një artikull të veçantë.