power shell saldırılarının ayak i̇zleri

25
PowerShell Saldırılarının Ayak İzleri HALİL ÖZTÜRKCİ ADEO BİLİŞİM DANIŞMANLIK HİZMETLERİ A.Ş

Upload: adeo-security

Post on 13-Jan-2017

390 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Power shell saldırılarının ayak i̇zleri

PowerShell SaldırılarınınAyakİzleriHALİL ÖZTÜRKCİ

ADEOBİLİŞİMDANIŞMANLIKHİZMETLERİA .Ş

Page 2: Power shell saldırılarının ayak i̇zleri

BenKimimADEOKurucuOrtağıveGüvenlikBirimiYöneticisi

TürkiyeBilişimVakfıYönetimKuruluÜyesi

Bahçeşehir &Bilgi&TOBBÜniversiteleriÖğretimGörevlisi

AdliBilişimUzmanı

BeyazŞapkalıHacker

AdliBilişimDerneği&USMED

MicrosoftMVP,EnterpriseSecurity

SANSMentor (www.sans.org)

CISSP,GPEN,GCFA,GREM,CHFI,CEH...

ww.halilozturkci.com

Page 3: Power shell saldırılarının ayak i̇zleri

ADEOHakkında2008yılındakuruldu.

İstanbulveAnkara’daikiofisivar.

SibergüvenlikkonusundaTürkiye’debirçokşirketevekurumahizmetveriyor.

Ankara’daCyberCrimeCenterismiyleaçtığıTürkiye’ninilközeladlibilişimlaboratuvarınasahip.

SiberGüvenlikhizmetlerimizindetaylarıwww.adeosecurity.comadresindemevcut.

halilozturkci

Page 4: Power shell saldırılarının ayak i̇zleri

AjandaPowerShell NedirPowerShell SaldırıAraçlarıPowerShell İleSaldırganNelerYapabilirPowerShell SaldırılarınınAyakİzlerininAnalizi

Page 5: Power shell saldırılarının ayak i̇zleri

PowerShell Nedir?WindowsPowerShell,MicrosofttarafındanWindowskomutsatırıCmd.exe veWindowsScript Host'a alternatifolarakgeliştirilenyeninesilbirkomutsatırıuygulamasıdır.

WindowsPowerShell 1.0sürümüWindowsXP,WindowsServer2003veWindowsVistaiçinücretsizolarakindirilebilmektedir.

Windows7'denitibarenWindowsPowerShell2.0işletimsistemiileberabergelmektedir.

YantaraftakitablodaPowerShell sürümleriniişletimsistemleribazındagörebilirsiniz.

Page 6: Power shell saldırılarının ayak i̇zleri

PowerShell SaldırıAraçlarıPowerSploit - APowerShell Post-Exploitation Framework(https://github.com/PowerShellMafia/PowerSploit)

Page 7: Power shell saldırılarının ayak i̇zleri

Deep inThought:Chinese Targeting ofNational SecurityThink TanksÇinhükümetidestekliengelişmişsibersaldırıekibiolanDEEPPANDAelegeçirdiklerisistemezamanlanmışgörevolarakPowershell.exe’yi ekliyorlar.

Base64olarakencode edilmişkodparçasıC&Csunucularındançalıştırılabilirzararlıkoduindiriphafızadançalıştırıyor.DiğersistemlerebuPowerShell scriptini WMIüzerindenkopyalıyorlar.BütünbuişlemlerdestandartWindowsaraçlarınıvesistemlerdegeçerlikullanıcıhesaplarınıkullanıyorlar.

Page 8: Power shell saldırılarının ayak i̇zleri

PowerShell İleSaldırganNelerYapabilir?BirWindowssistemielegeçirensaldırganPowerShellüzerindenneredeysebütünkötüamaçlıişlemlerigerçekleştirebilir.◦ HakYükseltme(Privilege Escalation)◦ KimlikÇalma(Credential Theft)◦ AğÜzerindeDiğerHedeflereAtlama(Lateral Movement)◦ VeriBozma(DataDestruction)◦ SistemdeKalıcılıkSağlama(Persistence)◦ VeriÇalma(DataExfiltration)

Page 9: Power shell saldırılarının ayak i̇zleri

PowerShell Saldırısının İzleriNerelerdeOlabilir?

EventLogs Prefetch

Registry Network

MemoryPowerShell saldırılarınaaitayakizlerine rastlayabileceğimizbileşenler.

Page 10: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri– Event LogsSaldırganlarınPowershell kullanarakneleryaptıklarınıtamolaraköğrenememizin temelsebeplerinbaşındailgilisistemlerüzerindeyeteriseviyedeloglamanınyapılmamasıgeliyor.

WindowsServer2012R2ilebirlikteProcess Trackingaudit altındayenibirgroup policy ayarıgeldivebuayarsayesindeilgiliprosesintamkomutsatırıdetaylarıloglanabiliyor.

BuayarilkçıktığındasadeceWindows8.1veServer2012R2sistemlerindeuygulanabilirkensonrasındaçıkanyamalarınyardımıylaWindows7vesonrasıişletimsistemlerindedekullanılabilirdurumageldi.

BuayarınaktifolmasıiçinAudit Policy tanımlarındaProcess Tracking’in deaktifedilmişolmasıgerekiyor.

ButanımlardansonrailgilisistemüzerindeoluşturulanherprosesiçinEvent IDdeğeri4688olanbirlog kaydıSecurityloglarına düşer.

Page 11: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri– Event LogsAudit Process Creation

1

OluşturulanherbirproseseilişkindetaylarınSecurityloglarında yeralmasınısağlayanAudit politikası

Page 12: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri– Event LogsInclude Command Line In Process Creation Events

2

3

Oluşturulanprosesinkomutsatırındanaldığıparametrelerde

loglanabiliyor

Page 13: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri– Event LogsYereldenolsunuzaktanolsunPowerShell üzerindenbirkomutyadascriptçalıştırılmasıdurumundaaşağıdakiüçlog dosyasındabuişlemlealakalıkayıtlaroluşturulabilir.◦ •WindowsPowerShell.evtx◦ •Microsoft-Windows-PowerShell-Operational.evtx◦ •Microsoft-Windows-PowerShell-Analytic.etl

Aşağıdakiikilog dosyasındaiseWindowsRemoteManagement(WinRM)servisiüzerindengerçekleştirilenPowerShell aktivitelerineaitbilgileryeralır.◦ •Microsoft-Windows-WinRM-Operational.evtx◦ •Microsoft-Windows-WinRM-Analytic.etl

Page 14: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri– Event LogsWindowsPowerShell.evtxBulog dosyasındaPowerShell herbaşlatıldığında vesonlandırıldığındabirkayıtoluşturulur.◦ Event ID400:“Enginestate ischanged from None toAvailable.”

◦ Event ID403:“Enginestate ischanged from Available toStopped.”

◦ Event ID600:“Provider"<provider name>"is<state>”

Bukayıtlarınhiçbirindeilgilieylemigerçekleştirenkullanıcıhesabıhakkındabilgiyeralmaz.

AnalizsırasındabukayıtlarincelenerekPowerShellüzerindengerçekleştirilensaldırınınnekadarsürdüğüveyerelmiuzaktanmıgerçekleştirildiğigibibilgilereulaşılabilir.

Page 15: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri– Event LogsMicrosoft-Windows-PowerShell-Operational.evtxBulog dosyasındaPowerShell işlemlerininoperasyonuylaalakalıolaylarsaklanır.◦ Event ID40961:“PowerShell console isstartingup”◦ Event ID40962:“PowerShell console isready for userinput”

BukayıtlaryereldençalıştırılanPowerShellkonsollarınınnezamanbaşlatıldığınıve nezamankullanıcıdangirdibeklemeyehazırhalegeldiğinigösterir.

Buikiolaydadaeylemigerçekleştirenkullanıcıhesabıhakkındabilgiyeralır.

Page 16: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri– Event LogsMicrosoft-Windows-PowerShell-Analytic.evtxVarsayılanolarakAnalytic veDebug loglarıtutulmaz vegösterilmez.Detaylıanalytic loglarını görüntülemekiçinEvent Viewer’daki ViewmenüsündenShowAnalytic and Debug Log seçeneğiniseçmeli.ArdındanAnalytic loglarını toplamakistediğinizbileşenüzerindeEnable Logseçeneğiniaktifederekloglarıntoplanmasınısağlamalısınız.

Page 17: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri– Event LogsMicrosoft-Windows-PowerShell-Analytic.evtxAnalytic logları tutulmayabaşladıktansonraaşağıdakiID’lere sahipkayıtlarüzerindeanalizyapılabilir.

Event ID32850:Uzaktankomut çalıştırmaişlemininhangikullanıcıhesabıüzerindengerçekleştirildiğinigösterir.

Event ID32867/32868:UzaktançalıştırılanPowerShell komutunun vebukomutunçıktısının(payload) nelerolduğunun yeraldığıkayıtlardır.Decode edildikten sonraçalıştırılankomutveçıktılarıhakkındabilgiverir.

Page 18: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri- PrefetchPrefetch kavramı,uygulamalarındahahızlıaçılmasınısağlamakiçinWindowsXPilebirlikteduyurulanbirkavramdır.Sıkkullanılanuygulamalarınhenüzçalıştırılmadanönceilgiliuygulamanınkodlarınınhafızayayüklenerekihtiyaçduyulmasıhalindehızlıcaçalışmasıesasınadayanır.

Windowstarafındanbuuygulamayaait.PFuzantılıbirprefetch dosyasıoluşturulur.Budosyalar%windir%Prefetchklasöründeyeralırlarvebudizinaltındaenfazla128dosyayeralabilir.

BuklasördeyeralanLayout.ini dosyasısisteminaçılışısırasındayüklenendosyalarveklasörlerhakkındabilgileriçerir.

Prefetch dosyasınınkendisibirbinary dosyadırveuygulamayailişkinbilgileriçerir.Budosyanıniçerisindeuygulamanınensonnezamançalıştırıldığı,kaç kezçalıştırıldığı veuygulamayüklenirkenilk10saniyeiçindeerişilendiğerdosyalarınhangileriolduğu bilgisiyeralır.Bununyanında,uygulamanınadı veuygulamatarafındanyüklenensürücülerinbilgisi debudosyanıniçeriğindebulunur.

Bununlabirlikteilgiliprefetch dosyasınınoluşturulmazamanınabakarakuygulamanınilkkeznezamançalıştırıldığıbilgisideeldeedilebilir.

WindowsVistavesonrasındakiişletimsistemlerindeprefetch dosyalarınınbirazdahagelişmişhaliolansuperfetch dosyalarıkullanılmaktadır.

Page 19: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri- Prefetch

ÇağrılanPowerShell scriptin ilk10saniyeiçindeyüklenmesidurumunda ilgiliscript hakkındabilgilereulaşılabiliyor.BununlabirliktePowerShell’in interaktifmodda çalıştırılmasıdurumunda

çağırılanscript bilgisineprefetch dosyasıüzerindenulaşılamaz.

Page 20: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri- RegistryNormalşartlardaPowerShell üzerindengerçekleştirilensaldırılardaregistry üzerindeherhangibirizerastlanmaz.BununyanındasaldırgantarafındanelegeçirilensistemlerdePowerShell’in çalışmasınıetkileyecekdeğişiklikleryapılmışolabilir.

PowerShell Execution Policy sayesindebirsistemdehangi türdenPowerShell scriptlerinin çalışabileceğibelirlenirvesaldırganlartarafındanbuayarlardeğiştirilerekelegeçirilensistemlerüzerindeyetkisizscriptlerçalıştırılabilir.

WindowsPowerShell ortamında5farklıçalıştırmapolitikasımevcuttur.◦ Restricted – Herhangibirscript çalışmaz.WindowsPowerShell sadeceinteraktifmodda çalışabilir.VarsayılanolarakWindowsServer2012R2haricindekilerbumodda çalışır.

◦ AllSigned – Sadecegüvenilenyayıncılartarafındanimzalanmışscriptler çalışabilir.◦ RemoteSigned – İndirilenscriptler güvenilenyayıncılartarafındanimzalandıktansonraçalışabilir.WindowsServer2012R2sistemleriçinvarsayılanmod budur.

◦ Unrestricted – HerhangibirsınırlamaolmadanbütünWindowsPowerShell scriptleri çalıştırılır.İnternetnet indirilenscriptler içinsekullanıcınınkarşısındascripti çalıştırmakiçinizinisteyenbirekrançıkar.

◦ Bypass- HerhangibirsınırlamaolmadanbütünWindowsPowerShell scriptleri çalıştırılırvekullanıcılardanherhangibironayistenmez.

Page 21: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri- RegistryPowerShell Execution Policy ileilgiliayarlarregistry içindeHKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell anahtarıaltındayeralanExecutionPolicy isimlideğeraltındasaklanır.Budeğerbeşfarklışekildeyeralabilir.Bunlar◦ Restricted◦ AllSigned◦ RemoteSigned◦ Unrestricted◦ Bypass

BuanahtarsaldırgantarafındanPowerShell scriptleri çalıştırılmadanöncedeğiştirilmişolabilirvebuanahtarınsondeğiştirilmezamanı saldırınınbaşlangıcıhakkındabizebilgiverebilir.

Hatırlatma!Saldırganbuayarıdeğiştirmeden ilgiliPowerShell scriptinin çalıştırırkenkomutsatırınaekleyeceğiExecutionPolicy Bypassparametresiileçalıştırmapolitikasınıscript bazlıdeğiştirebilir.

Page 22: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri- Registry

Page 23: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri- NetworkUzaksistemlerüzerindedePowerShell script çalıştırılabiliyor.(PowerShell Remoting)

PowerShell 2.0vesonrasındailetişimiçinkullanılanikiportvar.Bunlar;◦ 5985(HTTP)◦ 5986(HTTPS)

İki iletişimdedepayloadşifreli taşınır.HTTPSiletişimindebaşlık bilgisi deşifreli taşınır.

HTTPüzerinden gerçekleşmesi durumundabaşlık bilgisi içinde sadece ilgili komutun hangikullanıcı tarafındançalıştırıldığı ve PowerShellsürümbilgisi yer alır.(NTLMSSPkimlikdoğrulamasındakiAuthorizationbaşlığı)

İçerikşifrelitaşındığıiçinhampaketverisiüzerindenanalizyapmakyerineflowüzerindenbiranaliz gerçekleştiripanormallikleritespitetmekdahadoğrubiryaklaşımdır.

Page 24: Power shell saldırılarının ayak i̇zleri

PowerShell İzleri- MemoryPowerShell üzerinden gerçekleştirilensaldırılardailgilisisteminhafızasınınimajıalınarakdasaldırganınizisürülebilir.

Powershell remoting ileuzaksistemüzerindeçalıştırılanscriptler c:\windows\system32\wsmprovhost.exeprosesitarafındanhost edilir.BuprosestensonraolacaklarçalıştırılacakPowerShell komutunabağlıdır.◦ Eğernative cmdlet komutlarındanbirisiçalıştırılacaksabudurumdawsmprovhost.exe prosesiüzerindenişlemlerdevamederayrıbirpowershell.exe child prosesioluşturulmaz.Komuttamamlandıktansonradawsmprovhost.exeprosesisonlandırılır.

◦ EğerPowerShell tarafındanayrıbirbinary dosyayüklenipçalıştırılacaksa(örneğindisktekibirçalıştırılabilirdosya)budurumdailgiliyeniproseswsmprovhost.exe’nin child prosesiolaraksistemdeçalıştırılır.Uygulamanınsonlanmasıdurumundawsmprovhost.exe desonlandırılır.

◦ Eğerkomut interaktifbirPowerShell oturumuaçacaksa(örneğinEnter-PSSession üzerinden)budurumdakomutdirektolarakwsmprovhost.exe konteksinde çalışırvewsmprovhost.exe prosesiPSSession oturumusonlanıncasonlanır.

Hafızaimajıalındıktansonrakarakterdizilerini çıkartılıpbukarakterdizileriarasındaPowerShellkomutlarıaranabilir.

Page 25: Power shell saldırılarının ayak i̇zleri

TeşekkürlerADEOSecurityLabs @2016www.adeosecurity.com