Windows Local Privilege Escalation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ikiwa hujui ni nini Windows Access Tokens, soma ukurasa ufuatao kabla ya kuendelea:
Access TokensAngalia ukurasa ufuatao kwa maelezo zaidi kuhusu ACLs - DACLs/SACLs/ACEs:
ACLs - DACLs/SACLs/ACEsIkiwa hujui ni nini integrity levels katika Windows unapaswa kusoma ukurasa ufuatao kabla ya kuendelea:
Integrity LevelsKuna mambo tofauti katika Windows ambayo yanaweza kukuzuia kuhesabu mfumo, kuendesha executable au hata kubaini shughuli zako. Unapaswa kusoma ukurasa ufuatao na kuhesabu mifumo hii yote ya ulinzi kabla ya kuanza kuhesabu privilege escalation:
Windows Security ControlsAngalia ikiwa toleo la Windows lina udhaifu wowote unaojulikana (angalia pia patches zilizotumika).
This site is handy for searching out detailed information about Microsoft security vulnerabilities. This database has more than 4,700 security vulnerabilities, showing the massive attack surface that a Windows environment presents.
On the system
post/windows/gather/enum_patches
post/multi/recon/local_exploit_suggester
winpeas (Winpeas has watson embedded)
Locally with system information
Github repos of exploits:
Je, kuna taarifa yoyote ya akidi/Juicy iliyohifadhiwa katika mabadiliko ya mazingira?
Unaweza kujifunza jinsi ya kuwasha hii katika https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/
Maelezo ya utekelezaji wa PowerShell pipeline yanarekodiwa, ikiwa ni pamoja na amri zilizotekelezwa, mwito wa amri, na sehemu za scripts. Hata hivyo, maelezo kamili ya utekelezaji na matokeo ya pato yanaweza kutokuwepo.
Ili kuwezesha hili, fuata maelekezo katika sehemu ya "Transcript files" ya hati, ukichagua "Module Logging" badala ya "Powershell Transcription".
Ili kuona matukio 15 ya mwisho kutoka kwa kumbukumbu za PowersShell unaweza kutekeleza:
Rekodi kamili ya shughuli na maudhui yote ya utekelezaji wa skripti inanakiliwa, kuhakikisha kwamba kila block ya msimbo inarekodiwa inavyotekelezwa. Mchakato huu unahifadhi njia ya ukaguzi ya kina ya kila shughuli, muhimu kwa uchunguzi na kuchambua tabia mbaya. Kwa kurekodi shughuli zote wakati wa utekelezaji, ufahamu wa kina kuhusu mchakato unapatikana.
Logging events for the Script Block can be located within the Windows Event Viewer at the path: Application and Services Logs > Microsoft > Windows > PowerShell > Operational. Ili kuona matukio 20 ya mwisho unaweza kutumia:
Unaweza kuathiri mfumo ikiwa masasisho hayajatolewa kwa kutumia httpS bali http.
Unaanza kwa kuangalia ikiwa mtandao unatumia masasisho ya WSUS yasiyo ya SSL kwa kuendesha yafuatayo:
Ikiwa unapata jibu kama:
Na ikiwa HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer
ni sawa na 1
.
Basi, inaweza kutumika. Ikiwa rejista ya mwisho ni sawa na 0, basi, kipengele cha WSUS kitaachwa.
Ili kutumia udhaifu huu unaweza kutumia zana kama: Wsuxploit, pyWSUS - Hizi ni silaha za MiTM zilizotengenezwa kwa ajili ya kuingiza 'sasisho' za 'bandia' katika trafiki ya WSUS isiyo na SSL.
Soma utafiti hapa:
WSUS CVE-2020-1013
Soma ripoti kamili hapa. Kimsingi, hii ndiyo kasoro ambayo bug hii inatumia:
Ikiwa tuna uwezo wa kubadilisha proxy yetu ya mtumiaji wa ndani, na Windows Updates inatumia proxy iliyowekwa katika mipangilio ya Internet Explorer, basi tuna uwezo wa kuendesha PyWSUS kwa ndani ili kukamata trafiki yetu wenyewe na kuendesha msimbo kama mtumiaji aliyeinuliwa kwenye mali yetu.
Zaidi ya hayo, kwa kuwa huduma ya WSUS inatumia mipangilio ya mtumiaji wa sasa, pia itatumia duka lake la vyeti. Ikiwa tutaunda cheti kilichojisaini wenyewe kwa jina la mwenyeji wa WSUS na kuongeza cheti hiki katika duka la vyeti la mtumiaji wa sasa, tutakuwa na uwezo wa kukamata trafiki ya WSUS ya HTTP na HTTPS. WSUS haitumii mitindo kama HSTS kutekeleza uthibitisho wa aina ya kuaminiwa kwa matumizi ya kwanza kwenye cheti. Ikiwa cheti kilichowasilishwa kinaaminika na mtumiaji na kina jina sahihi la mwenyeji, kitakubaliwa na huduma.
Unaweza kutumia udhaifu huu kwa kutumia zana WSUSpicious (mara tu itakapokuwa huru).
Udhaifu wa kuinua mamlaka ya ndani upo katika mazingira ya domaine ya Windows chini ya hali maalum. Hali hizi ni pamoja na mazingira ambapo saini ya LDAP haitekelezwi, watumiaji wana haki za kujitengenezea zinazowawezesha kuunda Resource-Based Constrained Delegation (RBCD), na uwezo wa watumiaji kuunda kompyuta ndani ya domaine. Ni muhimu kutambua kuwa masharti haya yanakidhiwa kwa kutumia mipangilio ya kawaida.
Pata udhaifu katika https://github.com/Dec0ne/KrbRelayUp
Kwa maelezo zaidi kuhusu mtiririko wa shambulio angalia https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/
Ikiwa hizi 2 za rejista zime wezeshwa (thamani ni 0x1), basi watumiaji wa mamlaka yoyote wanaweza kusanidi (kutekeleza) *.msi
faili kama NT AUTHORITY\SYSTEM.
Ikiwa una kikao cha meterpreter unaweza kujiandaa kutumia mbinu hii kwa kutumia moduli exploit/windows/local/always_install_elevated
Tumia amri Write-UserAddMSI
kutoka power-up kuunda ndani ya saraka ya sasa faili la MSI la Windows ili kupandisha mamlaka. Skripti hii inaandika msanidi programu wa MSI ulioandaliwa awali ambao unahitaji kuongeza mtumiaji/kikundi (hivyo utahitaji ufikiaji wa GIU):
Just execute the created binary to escalate privileges.
Soma hii tutorial ili kujifunza jinsi ya kuunda MSI wrapper ukitumia zana hizi. Kumbuka kwamba unaweza kufunga faili ya ".bat" ikiwa unataka tu kutekeleza mistari ya amri.
MSI WrapperGenerate with Cobalt Strike or Metasploit a new Windows EXE TCP payload in C:\privesc\beacon.exe
Fungua Visual Studio, chagua Create a new project na andika "installer" kwenye kisanduku cha utafutaji. Chagua mradi wa Setup Wizard na bonyeza Next.
Toa mradi jina, kama AlwaysPrivesc, tumia C:\privesc
kwa eneo, chagua weka suluhisho na mradi katika saraka moja, na bonyeza Create.
Endelea kubonyeza Next hadi ufikie hatua ya 3 ya 4 (chagua faili za kujumuisha). Bonyeza Add na chagua payload ya Beacon uliyotengeneza hivi karibuni. Kisha bonyeza Finish.
Taja mradi wa AlwaysPrivesc katika Solution Explorer na katika Properties, badilisha TargetPlatform kutoka x86 hadi x64.
Kuna mali nyingine unaweza kubadilisha, kama Author na Manufacturer ambazo zinaweza kufanya programu iliyosakinishwa ionekane kuwa halali zaidi.
Bonyeza-kulia mradi na chagua View > Custom Actions.
Bonyeza-kulia Install na chagua Add Custom Action.
Bonyeza mara mbili kwenye Application Folder, chagua faili yako ya beacon.exe na bonyeza OK. Hii itahakikisha kwamba payload ya beacon inatekelezwa mara tu installer inapotekelezwa.
Chini ya Custom Action Properties, badilisha Run64Bit kuwa True.
Hatimaye, build it.
Ikiwa onyo File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'
linaonyeshwa, hakikisha umeweka jukwaa kuwa x64.
Ili kutekeleza installation ya faili ya uharibifu .msi
katika background:
Ili kutumia udhaifu huu unaweza kutumia: exploit/windows/local/always_install_elevated
Mipangilio hii inaamua nini kinachorekodiwa, hivyo unapaswa kulipa kipaumbele
Windows Event Forwarding, ni muhimu kujua wapi kumbukumbu zinatumwa
LAPS imeundwa kwa ajili ya usimamizi wa nywila za Msimamizi wa ndani, kuhakikisha kwamba kila nywila ni ya kipekee, iliyopangwa kwa nasibu, na inasasishwa mara kwa mara kwenye kompyuta zilizounganishwa kwenye eneo. Nywila hizi zinahifadhiwa kwa usalama ndani ya Active Directory na zinaweza kufikiwa tu na watumiaji ambao wamepewa ruhusa ya kutosha kupitia ACLs, kuwapa uwezo wa kuona nywila za msimamizi wa ndani ikiwa wameidhinishwa.
LAPSIkiwa inafanya kazi, nywila za maandiko wazi zinahifadhiwa katika LSASS (Huduma ya Mfumo wa Mamlaka ya Usalama wa Ndani). Maelezo zaidi kuhusu WDigest kwenye ukurasa huu.
Kuanza na Windows 8.1, Microsoft ilianzisha ulinzi ulioimarishwa kwa Mamlaka ya Usalama wa Mitaa (LSA) ili kuzuia juhudi za michakato isiyoaminika kusoma kumbukumbu yake au kuingiza msimbo, ikilinda zaidi mfumo huo. Maelezo zaidi kuhusu Ulinzi wa LSA hapa.
Credential Guard ilianzishwa katika Windows 10. Kusudi lake ni kulinda akiba za taarifa za kuingia zilizohifadhiwa kwenye kifaa dhidi ya vitisho kama vile mashambulizi ya pass-the-hash.| Taarifa zaidi kuhusu Credentials Guard hapa.
Akreditif za eneo zinathibitishwa na Mamlaka ya Usalama wa Mitaa (LSA) na kutumiwa na vipengele vya mfumo wa uendeshaji. Wakati data za kuingia za mtumiaji zinathibitishwa na kifurushi cha usalama kilichosajiliwa, akreditif za eneo kwa mtumiaji kawaida huanzishwa. Maelezo zaidi kuhusu Cached Credentials hapa.
Unapaswa kuangalia kama kuna vikundi vyovyote ambavyo unahusishwa navyo vina ruhusa za kuvutia
Ikiwa wewe ni mwanachama wa kundi lolote lenye mamlaka unaweza kuwa na uwezo wa kupandisha mamlaka. Jifunze kuhusu makundi yenye mamlaka na jinsi ya kuyatumia vibaya ili kupandisha mamlaka hapa:
Privileged GroupsJifunze zaidi kuhusu nini ni token katika ukurasa huu: Windows Tokens. Angalia ukurasa ufuatao ili ujifunze kuhusu token za kuvutia na jinsi ya kuzitumia vibaya:
Abusing TokensKwanza kabisa, orodhesha michakato angalia nywila ndani ya mstari wa amri wa mchakato. Angalia kama unaweza kufuta baadhi ya binary inayotembea au kama una ruhusa za kuandika kwenye folda ya binary ili kutumia uwezekano wa DLL Hijacking attacks:
Daima angalia uwezekano wa electron/cef/chromium debuggers zinazoendesha, unaweza kuzitumia kuboresha mamlaka.
Kuangalia ruhusa za binaries za michakato
Kuangalia ruhusa za folda za binaries za michakato (DLL Hijacking)
Unaweza kuunda dump ya kumbukumbu ya mchakato unaoendesha kwa kutumia procdump kutoka sysinternals. Huduma kama FTP zina akili wazi katika kumbukumbu, jaribu kutupa kumbukumbu na kusoma akili hizo.
Programu zinazotumia SYSTEM zinaweza kumruhusu mtumiaji kuzindua CMD, au kuvinjari saraka.
Mfano: "Windows Help and Support" (Windows + F1), tafuta "command prompt", bonyeza "Click to open Command Prompt"
Pata orodha ya huduma:
Unaweza kutumia sc kupata taarifa za huduma
Inashauriwa kuwa na binary accesschk kutoka Sysinternals ili kuangalia kiwango cha ruhusa kinachohitajika kwa kila huduma.
Inashauriwa kuangalia kama "Authenticated Users" wanaweza kubadilisha huduma yoyote:
Unaweza kupakua accesschk.exe kwa XP hapa
Ikiwa unapata kosa hili (kwa mfano na SSDPSRV):
Kosa la mfumo 1058 limetokea. &#xNAN;Thuduma haiwezi kuanzishwa, ama kwa sababu imezimwa au kwa sababu haina vifaa vilivyowezeshwa vinavyohusishwa nayo.
Unaweza kuifanya iweze kuanzishwa kwa kutumia
Kumbuka kwamba huduma ya upnphost inategemea SSDPSRV ili kufanya kazi (kwa XP SP1)
Njia nyingine ya kutatua tatizo hili ni kukimbia:
Katika hali ambapo kundi la "Watumiaji walioidhinishwa" lina SERVICE_ALL_ACCESS kwenye huduma, mabadiliko ya binary ya kutekeleza ya huduma yanawezekana. Ili kubadilisha na kutekeleza sc:
Privileges zinaweza kupandishwa kupitia ruhusa mbalimbali:
SERVICE_CHANGE_CONFIG: Inaruhusu kubadilisha usanidi wa binary ya huduma.
WRITE_DAC: Inaruhusu kubadilisha ruhusa, ikisababisha uwezo wa kubadilisha usanidi wa huduma.
WRITE_OWNER: Inaruhusu kupata umiliki na kubadilisha ruhusa.
GENERIC_WRITE: Inarithi uwezo wa kubadilisha usanidi wa huduma.
GENERIC_ALL: Pia inarithi uwezo wa kubadilisha usanidi wa huduma.
Kwa ajili ya kugundua na kutumia udhaifu huu, exploit/windows/local/service_permissions inaweza kutumika.
Angalia kama unaweza kubadilisha binary inayotekelezwa na huduma au kama una ruhusa za kuandika kwenye folda ambapo binary inapatikana (DLL Hijacking). Unaweza kupata kila binary inayotekelezwa na huduma kwa kutumia wmic (sio katika system32) na kuangalia ruhusa zako kwa kutumia icacls:
Unaweza pia kutumia sc na icacls:
Unapaswa kuangalia kama unaweza kubadilisha usajili wa huduma yoyote. Unaweza kuangalia idhini zako juu ya usajili wa huduma kwa kufanya:
Inapaswa kuangaliwa ikiwa Authenticated Users au NT AUTHORITY\INTERACTIVE wana FullControl
ruhusa. Ikiwa ndivyo, faili ya binary inayotekelezwa na huduma inaweza kubadilishwa.
Ili kubadilisha Njia ya faili ya binary inayotekelezwa:
Ikiwa una ruhusa hii juu ya rejista hii inamaanisha unaweza kuunda rejista ndogo kutoka hii. Katika kesi ya huduma za Windows hii ni ya kutosha kutekeleza msimbo wowote:
AppendData/AddSubdirectory permission over service registryIkiwa njia ya executable haiko ndani ya nukuu, Windows itajaribu kutekeleza kila kitu kinachomalizika kabla ya nafasi.
Kwa mfano, kwa njia C:\Program Files\Some Folder\Service.exe Windows itajaribu kutekeleza:
Orodha ya njia za huduma zisizo na nukuu, ukiondoa zile zinazomilikiwa na huduma za Windows zilizojengwa ndani:
Unaweza kugundua na kutumia udhaifu huu kwa kutumia metasploit: exploit/windows/local/trusted\_service\_path
Unaweza kuunda binary ya huduma kwa mikono kwa kutumia metasploit:
Windows inaruhusu watumiaji kubaini hatua zitakazochukuliwa ikiwa huduma itashindwa. Kipengele hiki kinaweza kuwekewa mipangilio ili kiashirie faili la binary. Ikiwa faili hili la binary linaweza kubadilishwa, kupandisha hadhi kunaweza kuwa na uwezekano. Maelezo zaidi yanaweza kupatikana katika nyaraka rasmi.
Angalia idhini za faili za binary (labda unaweza kubadilisha moja na kupandisha hadhi) na za maktaba (DLL Hijacking).
Angalia ikiwa unaweza kubadilisha faili fulani ya usanidi ili kusoma faili maalum au ikiwa unaweza kubadilisha binary fulani ambayo itatekelezwa na akaunti ya Msimamizi (schedtasks).
Njia moja ya kupata ruhusa dhaifu za folda/faili katika mfumo ni kufanya:
Angalia kama unaweza kubadilisha baadhi ya rejista au binary ambayo itatekelezwa na mtumiaji tofauti. Soma ukurasa ufuatao kujifunza zaidi kuhusu maeneo ya autoruns ya kuvutia ili kupandisha mamlaka:
Privilege Escalation with AutorunsTafuta madereva ya tatu ya ajabu/yenye udhaifu.
Ikiwa una idhini za kuandika ndani ya folda iliyopo kwenye PATH unaweza kuwa na uwezo wa kuhamasisha DLL inayopakuliwa na mchakato na kuongeza mamlaka.
Angalia idhini za folda zote ndani ya PATH:
Kwa maelezo zaidi kuhusu jinsi ya kutumia udhibiti huu:
Writable Sys Path +Dll Hijacking PrivescAngalia kwa kompyuta nyingine zinazojulikana zilizowekwa kwa nguvu kwenye faili ya hosts
Angalia kwa huduma zilizozuiliwa kutoka nje
Angalia ukurasa huu kwa amri zinazohusiana na Firewall (orodhesha sheria, tengeneza sheria, zima, zima...)
Zaidi ya amri za kuhesabu mtandao hapa
Binary bash.exe
pia inaweza kupatikana katika C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe
Ikiwa unapata mtumiaji wa root unaweza kusikiliza kwenye bandari yoyote (wakati wa kwanza unapotumia nc.exe
kusikiliza kwenye bandari itakuuliza kupitia GUI ikiwa nc
inapaswa kuruhusiwa na firewall).
Ili kuanza bash kama root kwa urahisi, unaweza kujaribu --default-user root
Unaweza kuchunguza mfumo wa faili wa WSL
katika folda C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
From https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault Windows Vault inahifadhi taarifa za mtumiaji kwa ajili ya seva, tovuti na programu nyingine ambazo Windows inaweza kuingia kwa watumiaji kiotomatiki. Katika hali ya kwanza, hii inaweza kuonekana kama sasa watumiaji wanaweza kuhifadhi taarifa zao za Facebook, taarifa za Twitter, taarifa za Gmail n.k., ili waingie kiotomatiki kupitia vivinjari. Lakini si hivyo.
Windows Vault inahifadhi taarifa ambazo Windows inaweza kuingia kwa watumiaji kiotomatiki, ambayo ina maana kwamba programu yoyote ya Windows inayohitaji taarifa ili kufikia rasilimali (seva au tovuti) inaweza kutumia Credential Manager & Windows Vault na kutumia taarifa zilizotolewa badala ya watumiaji kuingiza jina la mtumiaji na nenosiri kila wakati.
Ila programu zinaposhirikiana na Credential Manager, sidhani kama inawezekana kwao kutumia taarifa za rasilimali fulani. Hivyo, ikiwa programu yako inataka kutumia vault, inapaswa kwa namna fulani kuwasiliana na meneja wa taarifa na kuomba taarifa za rasilimali hiyo kutoka kwenye vault ya uhifadhi ya kawaida.
Tumia cmdkey
kuorodhesha taarifa zilizohifadhiwa kwenye mashine.
Kisha unaweza kutumia runas
na chaguo la /savecred
ili kutumia akiba ya taarifa za kuingia. Mfano ufuatao unaita binary ya mbali kupitia sehemu ya SMB.
Kutumia runas
na seti ya akidi iliyotolewa.
Note that mimikatz, lazagne, credentialfileview, VaultPasswordView, or from Empire Powershells module.
Data Protection API (DPAPI) inatoa njia ya usimbaji wa data wa simetriki, hasa inayotumika ndani ya mfumo wa uendeshaji wa Windows kwa usimbaji wa funguo za kibinafsi zisizo za simetriki. Usimbaji huu unatumia siri ya mtumiaji au mfumo kuchangia kwa kiasi kikubwa katika entropy.
DPAPI inaruhusu usimbaji wa funguo kupitia funguo za simetriki ambazo zinatokana na siri za kuingia za mtumiaji. Katika hali zinazohusisha usimbaji wa mfumo, inatumia siri za uthibitishaji wa kikoa cha mfumo.
Funguo za RSA za mtumiaji zilizohifadhiwa, kwa kutumia DPAPI, zinahifadhiwa katika saraka ya %APPDATA%\Microsoft\Protect\{SID}
, ambapo {SID}
inawakilisha Identifier ya Usalama wa mtumiaji. Funguo ya DPAPI, iliyoko pamoja na funguo kuu inayolinda funguo za kibinafsi za mtumiaji katika faili hiyo hiyo, kwa kawaida ina bytes 64 za data za nasibu. (Ni muhimu kutambua kwamba ufikiaji wa saraka hii umewekwa vizuizi, kuzuia orodha ya yaliyomo kupitia amri ya dir
katika CMD, ingawa inaweza kuorodheshwa kupitia PowerShell).
Unaweza kutumia mimikatz module dpapi::masterkey
na hoja sahihi (/pvk
au /rpc
) ili kuifungua.
Faili za akisi zilizolindwa na nenosiri kuu kwa kawaida zinapatikana katika:
You can use mimikatz module dpapi::cred
with the appropiate /masterkey
to decrypt.
You can extract many DPAPI masterkeys from memory with the sekurlsa::dpapi
module (if you are root).
PowerShell credentials mara nyingi hutumiwa kwa ajili ya scripting na kazi za automatisering kama njia ya kuhifadhi akiba za siri zilizofichwa kwa urahisi. Akiba hizo zinalindwa kwa kutumia DPAPI, ambayo kwa kawaida inamaanisha zinaweza kufichuliwa tu na mtumiaji yule yule kwenye kompyuta ile ile zilipoundwa.
Ili kufichua akiba za PS kutoka kwenye faili inayozihifadhi unaweza kufanya:
Unaweza kuzipata kwenye HKEY_USERS\<SID>\Software\Microsoft\Terminal Server Client\Servers\
na katika HKCU\Software\Microsoft\Terminal Server Client\Servers\
Use the Mimikatz dpapi::rdg
module with appropriate /masterkey
to decrypt any .rdg files
You can extract many DPAPI masterkeys from memory with the Mimikatz sekurlsa::dpapi
module
Watu mara nyingi hutumia programu ya StickyNotes kwenye vituo vya kazi vya Windows kuhifadhi nywila na habari nyingine, bila kujua ni faili ya database. Faili hii iko katika C:\Users\<user>\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite
na kila wakati inafaa kutafutwa na kuchunguzwa.
Kumbuka kwamba ili kurejesha nywila kutoka AppCmd.exe unahitaji kuwa Administrator na kuendesha chini ya kiwango cha Juu cha Uaminifu.
AppCmd.exe iko katika saraka ya %systemroot%\system32\inetsrv\
.
Ikiwa faili hii ipo basi inawezekana kwamba baadhi ya credentials zimewekwa na zinaweza kurejeshwa.
This code was extracted from PowerUP:
Angalia kama C:\Windows\CCM\SCClient.exe
inapatikana .
Wakati wa kufunga hufanywa kwa haki za SYSTEM, nyingi zina udhaifu wa DLL Sideloading (Taarifa kutoka https://github.com/enjoiz/Privesc).
SSH private keys zinaweza kuhifadhiwa ndani ya funguo za registry HKCU\Software\OpenSSH\Agent\Keys
hivyo unapaswa kuangalia kama kuna kitu chochote cha kuvutia huko:
Ikiwa utaona ingizo lolote ndani ya njia hiyo, labda itakuwa ni funguo za SSH zilizohifadhiwa. Imehifadhiwa kwa usimbuaji lakini inaweza kufichuliwa kwa urahisi kwa kutumia https://github.com/ropnop/windows_sshagent_extract. Taarifa zaidi kuhusu mbinu hii hapa: https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/
Ikiwa huduma ya ssh-agent
haiko inayoendesha na unataka ianze kiotomatiki wakati wa kuanzisha, endesha:
Inaonekana kwamba mbinu hii si halali tena. Nilijaribu kuunda funguo za ssh, kuziongeza na ssh-add
na kuingia kupitia ssh kwenye mashine. Usajili HKCU\Software\OpenSSH\Agent\Keys haupo na procmon haikugundua matumizi ya dpapi.dll
wakati wa uthibitishaji wa funguo zisizo sawa.
Unaweza pia kutafuta faili hizi kwa kutumia metasploit: post/windows/gather/enum_unattend
Mifano ya maudhui:
Tafuta faili inayoitwa SiteList.xml
Kipengele kilikuwa na upatikanaji wa awali ambacho kiliruhusu usambazaji wa akaunti za wasimamizi wa ndani za kawaida kwenye kundi la mashine kupitia Mipangilio ya Kundi (GPP). Hata hivyo, njia hii ilikuwa na mapungufu makubwa ya usalama. Kwanza, Vitu vya Mipangilio ya Kundi (GPOs), vilivyohifadhiwa kama faili za XML katika SYSVOL, vinaweza kufikiwa na mtumiaji yeyote wa kikoa. Pili, nywila ndani ya hizi GPPs, zilizofichwa kwa AES256 kwa kutumia funguo za kawaida zilizoorodheshwa hadharani, zinaweza kufichuliwa na mtumiaji yeyote aliyeidhinishwa. Hii ilileta hatari kubwa, kwani inaweza kuruhusu watumiaji kupata haki za juu.
Ili kupunguza hatari hii, kazi ilitengenezwa kutafuta faili za GPP zilizohifadhiwa kwa ndani ambazo zina uwanja wa "cpassword" usio tupu. Punde tu inapotafuta faili kama hiyo, kazi hiyo inafichua nywila na inarudisha kitu maalum cha PowerShell. Kitu hiki kinajumuisha maelezo kuhusu GPP na mahali ambapo faili hiyo ipo, kusaidia katika kutambua na kurekebisha udhaifu huu wa usalama.
Tafuta katika C:\ProgramData\Microsoft\Group Policy\history
au katika C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history (kabla ya W Vista) kwa ajili ya faili hizi:
Groups.xml
Services.xml
Scheduledtasks.xml
DataSources.xml
Printers.xml
Drives.xml
Ili kufichua cPassword:
Kutumia crackmapexec kupata nywila:
Mfano wa web.config wenye akreditif:
Unaweza kila wakati kuomba mtumiaji aingize taarifa zake za kuingia au hata taarifa za mtumiaji mwingine ikiwa unafikiri anaweza kujua hizo (zingatia kwamba kuomba mteja moja kwa moja kwa taarifa za kuingia ni hatari sana):
Faili zinazojulikana ambazo zamani zilikuwa na nywila katika maandishi wazi au Base64
Tafuta faili zote zilizopendekezwa:
Unapaswa pia kuangalia Bin kutafuta akiba ndani yake
Ili kurejesha nywila zilizohifadhiwa na programu kadhaa unaweza kutumia: http://www.nirsoft.net/password_recovery_tools.html
Funguo nyingine zinazowezekana za rejista zenye akiba
Kutoa funguo za openssh kutoka kwenye rejista.
Unapaswa kuangalia kwa dbs ambapo nywila kutoka Chrome au Firefox zimehifadhiwa. Pia angalia historia, alama na vipendwa vya vivinjari ili labda baadhi ya nywila zimehifadhiwa huko.
Zana za kutoa nywila kutoka kwa vivinjari:
Mimikatz: dpapi::chrome
Component Object Model (COM) ni teknolojia iliyojengwa ndani ya mfumo wa uendeshaji wa Windows inayoruhusu mawasiliano kati ya vipengele vya programu za lugha tofauti. Kila kipengele cha COM kinatambulishwa kupitia kitambulisho cha darasa (CLSID) na kila kipengele kinatoa kazi kupitia moja au zaidi ya interfaces, zinazotambulishwa kupitia kitambulisho cha interface (IIDs).
Darasa na interfaces za COM zinafafanuliwa katika rejista chini ya HKEY_CLASSES_ROOT\CLSID na HKEY_CLASSES_ROOT\Interface mtawalia. Rejista hii inaundwa kwa kuunganisha HKEY_LOCAL_MACHINE\Software\Classes + HKEY_CURRENT_USER\Software\Classes = HKEY_CLASSES_ROOT.
Ndani ya CLSIDs za rejista hii unaweza kupata rejista ya mtoto InProcServer32 ambayo ina thamani ya kawaida inayoelekeza kwenye DLL na thamani inayoitwa ThreadingModel ambayo inaweza kuwa Apartment (Single-Threaded), Free (Multi-Threaded), Both (Single au Multi) au Neutral (Thread Neutral).
Kimsingi, ikiwa unaweza kuandika tena yoyote ya DLLs ambazo zitatekelezwa, unaweza kuinua mamlaka ikiwa hiyo DLL itatekelezwa na mtumiaji tofauti.
Ili kujifunza jinsi washambuliaji wanavyotumia COM Hijacking kama njia ya kudumu angalia:
COM HijackingTafuta maudhui ya faili
Tafuta faili yenye jina fulani
Tafuta kwenye rejista kwa majina ya funguo na nywila
MSF-Credentials Plugin ni plugin ya msf niliunda plugin hii ili kutekeleza kiotomatiki kila moduli ya metasploit POST inayotafuta akidi ndani ya mwathirika. Winpeas inatafuta kiotomatiki faili zote zinazokuwa na nywila zilizotajwa katika ukurasa huu. Lazagne ni chombo kingine kizuri cha kutoa nywila kutoka kwa mfumo.
Chombo SessionGopher kinatafuta sessions, majina ya watumiaji na nywila za zana kadhaa zinazohifadhi data hii kwa maandiko wazi (PuTTY, WinSCP, FileZilla, SuperPuTTY, na RDP)
Fikiria kwamba mchakato unaotendeka kama SYSTEM unafungua mchakato mpya (OpenProcess()
) kwa ufikiaji kamili. Mchakato huo huo pia unaunda mchakato mpya (CreateProcess()
) kwa ruhusa za chini lakini unarithi handles zote za wazi za mchakato mkuu.
Kisha, ikiwa una ufikiaji kamili kwa mchakato wa chini wa ruhusa, unaweza kuchukua handle ya wazi kwa mchakato wa ruhusa ulioanzishwa na OpenProcess()
na kuingiza shellcode.
Read this example for more information about how to detect and exploit this vulnerability.
Read this other post for a more complete explanation on how to test and abuse more open handlers of processes and threads inherited with different levels of permissions (not only full access).
Sehemu za kumbukumbu zilizoshirikiwa, zinazoitwa pipes, zinawezesha mawasiliano ya mchakato na uhamasishaji wa data.
Windows inatoa kipengele kinachoitwa Named Pipes, kinachowezesha michakato isiyo na uhusiano kushiriki data, hata kupitia mitandao tofauti. Hii inafanana na usanifu wa mteja/server, ambapo majukumu yanafafanuliwa kama named pipe server na named pipe client.
Wakati data inatumwa kupitia pipe na mteja, server iliyoweka pipe ina uwezo wa kuchukua utambulisho wa mteja, ikiwa ina haki zinazohitajika za SeImpersonate. Kutambua mchakato wa ruhusa unaowasiliana kupitia pipe unayoweza kuiga kunatoa fursa ya kupata ruhusa za juu kwa kukubali utambulisho wa mchakato huo mara tu unapoingiliana na pipe uliyounda. Kwa maelekezo juu ya kutekeleza shambulio kama hilo, mwongozo wa kusaidia unaweza kupatikana here na here.
Pia zana ifuatayo inaruhusu kukamata mawasiliano ya named pipe kwa zana kama burp: https://github.com/gabriel-sztejnworcel/pipe-intercept na zana hii inaruhusu kuorodhesha na kuona pipes zote ili kupata privescs https://github.com/cyberark/PipeViewer
Wakati unapata shell kama mtumiaji, kunaweza kuwa na kazi zilizopangwa au michakato mingine inayotekelezwa ambayo inasafirisha akidi kwenye mstari wa amri. Skripti iliyo hapa chini inakamata mistari ya amri za mchakato kila sekunde mbili na kulinganisha hali ya sasa na hali ya awali, ikitoa tofauti zozote.
Ikiwa una ufikiaji wa kiolesura cha picha (kupitia console au RDP) na UAC imewezeshwa, katika toleo fulani la Microsoft Windows inawezekana kuendesha terminal au mchakato mwingine wowote kama "NT\AUTHORITY SYSTEM" kutoka kwa mtumiaji asiye na haki.
Hii inafanya iwezekane kupandisha haki na kupita UAC kwa wakati mmoja kwa kutumia udhaifu huo huo. Zaidi ya hayo, hakuna haja ya kufunga chochote na faili ya binari inayotumika wakati wa mchakato, imesainiwa na kutolewa na Microsoft.
Baadhi ya mifumo iliyoathiriwa ni ifuatayo:
Ili kutumia udhaifu huu, ni lazima ufanye hatua zifuatazo:
You have all the necessary files and information in the following GitHub repository:
https://github.com/jas502n/CVE-2019-1388
Soma hii ili ujifunze kuhusu Viwango vya Uaminifu:
Integrity LevelsKisha soma hii ili ujifunze kuhusu UAC na UAC bypasses:
UAC - User Account ControlIkiwa tayari unafanya kazi kwenye mchakato wa High Integrity, kupita kwa SYSTEM kunaweza kuwa rahisi tu kwa kuunda na kutekeleza huduma mpya:
Kutoka kwa mchakato wa High Integrity unaweza kujaribu kuwezesha viingilio vya AlwaysInstallElevated kwenye rejista na kufunga shell ya kurudi kwa kutumia .msi wrapper. Maelezo zaidi kuhusu funguo za rejista zinazohusika na jinsi ya kufunga pakiti ya .msi hapa.
Unaweza kupata msimbo hapa.
Ikiwa una hizo haki za tokeni (labda utaweza kuzipata katika mchakato wa High Integrity), utaweza kufungua karibu mchakato wowote (michakato isiyo na ulinzi) kwa kutumia haki ya SeDebug, nakala ya tokeni ya mchakato, na kuunda mchakato wowote na tokeni hiyo. Kutumia mbinu hii kawaida huchaguliwa mchakato wowote unaotembea kama SYSTEM na haki zote za tokeni (ndiyo, unaweza kupata michakato ya SYSTEM bila haki zote za tokeni). Unaweza kupata mfano wa msimbo unaotekeleza mbinu iliyopendekezwa hapa.
Mbinu hii inatumika na meterpreter ili kupandisha hadhi katika getsystem
. Mbinu hii inajumuisha kuunda bomba na kisha kuunda/kutumia huduma kuandika kwenye bomba hilo. Kisha, server iliyounda bomba hilo kwa kutumia haki ya SeImpersonate
itakuwa na uwezo wa kujifanya kuwa tokeni ya mteja wa bomba (huduma) ikipata haki za SYSTEM.
Ikiwa unataka kujifunza zaidi kuhusu bomba za jina unapaswa kusoma hii.
Ikiwa unataka kusoma mfano wa jinsi ya kutoka kwa high integrity hadi System kwa kutumia bomba za jina unapaswa kusoma hii.
Ikiwa utaweza kudhibiti dll inayopakiwa na mchakato unaotembea kama SYSTEM utaweza kutekeleza msimbo wowote kwa kutumia ruhusa hizo. Hivyo, Dll Hijacking pia ni muhimu kwa aina hii ya kupandisha hadhi, na zaidi, ikiwa ni rahisi zaidi kufikia kutoka kwa mchakato wa high integrity kwani itakuwa na ruhusa za kuandika kwenye folda zinazotumika kupakia dlls. Unaweza kujifunza zaidi kuhusu Dll hijacking hapa.
Soma: https://github.com/itm4n/FullPowers
Zana bora ya kutafuta njia za kupandisha hadhi za ndani za Windows: WinPEAS
PS
PrivescCheck
PowerSploit-Privesc(PowerUP) -- Angalia makosa ya usanidi na faili nyeti (angalia hapa). Imegundulika.
JAWS -- Angalia makosa fulani ya usanidi na kukusanya taarifa (angalia hapa).
privesc -- Angalia makosa ya usanidi
SessionGopher -- Inatoa taarifa za kikao zilizohifadhiwa za PuTTY, WinSCP, SuperPuTTY, FileZilla, na RDP. Tumia -Thorough katika eneo.
Invoke-WCMDump -- Inatoa taarifa za kuingia kutoka kwa Meneja wa Taarifa. Imegundulika.
DomainPasswordSpray -- Piga nenosiri zilizokusanywa kwenye domain
Inveigh -- Inveigh ni zana ya PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer na man-in-the-middle.
WindowsEnum -- Uainishaji wa msingi wa privesc Windows
Sherlock ~~~~ -- Tafuta udhaifu wa privesc unaojulikana (IMEFUTWA kwa Watson)
WINspect -- Ukaguzi wa ndani (Inahitaji haki za Admin)
Exe
Watson -- Tafuta udhaifu wa privesc unaojulikana (inahitaji kukusanywa kwa kutumia VisualStudio) (imekusanywa awali)
SeatBelt -- Inatafuta mwenyeji akitafuta makosa ya usanidi (zaidi ni zana ya kukusanya taarifa kuliko privesc) (inahitaji kukusanywa) (imekusanywa awali)
LaZagne -- Inatoa taarifa za kuingia kutoka kwa programu nyingi (exe iliyokusanywa awali katika github)
SharpUP -- Port ya PowerUp kwa C#
Beroot ~~~~ -- Angalia makosa ya usanidi (executable iliyokusanywa katika github). Haipendekezwi. Haifanyi kazi vizuri katika Win10.
Windows-Privesc-Check -- Angalia makosa yanayoweza kutokea (exe kutoka python). Haipendekezwi. Haifanyi kazi vizuri katika Win10.
Bat
winPEASbat -- Zana iliyoundwa kwa msingi wa chapisho hili (haihitaji accesschk kufanya kazi vizuri lakini inaweza kuitumia).
Local
Windows-Exploit-Suggester -- Inasoma matokeo ya systeminfo na inapendekeza exploits zinazofanya kazi (python ya ndani) Windows Exploit Suggester Next Generation -- Inasoma matokeo ya systeminfo na inapendekeza exploits zinazofanya kazi (python ya ndani)
Meterpreter
multi/recon/local_exploit_suggestor
Lazima uunde mradi kwa kutumia toleo sahihi la .NET (ona hii). Ili kuona toleo lililosakinishwa la .NET kwenye mwenyeji wa mwathirika unaweza kufanya:
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)