Powershell Betiği Kullanılarak MS16-032 Zafiyeti İle Hak Yükselme Saldırısının Gerçekleştirilmesi

İstemci taraflı saldırıların en önemli sebeplerinden birisi yama yönetiminin etkin bir şekilde gerçekleştirilmemesidir. Bu yazıda Secondary Logon servisindeki MS16-032 adlı zafiyetin Powershell ile hazırlanmış bir kodu ile istismar edilerek, standart bir Windows kullanıcısının yetkilerinin SYSTEM hakkına yükseltilmesi incelenecektir.

Windows işletim sisteminde oturumu kapatmadan farklı bir kullanıcı olarak sistemde bir oturum elde etme veya komut çalıştırma ihtiyacı olabilir. Örneğin RUNAS komutu ile yetkili herhangi bir hesabın kimlik bilgileri ile oturum kapatılmadan komut çalıştırılabilir. Bu işlemin yapılmasını Secondary Logon servisi sağlar. Yani, Service Logon servisi ile yetkili herhangi bir token ile yeni bir proses oluşturulabilir. Ancak bu servisteki bir güvenlik açığı sebebi (talepleri düzgün bir şekilde ele alamaması dolayısı) ile standart bir token ile SYSTEM hesabı yetkileri ile yeni bir proses başlatılabilir.

Bu zafiyete ait istismar kodu exploit-db.com sayfasından indirilebilir.

https://www.exploit-db.com/exploits/39719

local-privilege-escalation-by-exploiting-ms16-032-vulnerability-via-powershell-script-01

 

Betik çalıştırılmadan önce standart bir kullanıcı ile oturum açılmıştır. Ayrıca Secondary Logon servisi çalışmamaktadır.

net user StandartHesap | findstr Local

local-privilege-escalation-by-exploiting-ms16-032-vulnerability-via-powershell-script-02

 

Bu kullanıcı ile hak yükseltme gerçekleştirmek için exploit-db’den indirilen kod çalıştırılacaktır.

cd .\Desktop
Import-Module .\39719.ps1

local-privilege-escalation-by-exploiting-ms16-032-vulnerability-via-powershell-script-03

 

Yukarıda görüldüğü gibi, Import-Module komutu çalıştırıldığında betiklerin çalıştırılamayacağı hatası alınabilir. Bu hatayı almamak için Powershell Execution Politikası ayarlanır.

Powershell.exe -ExecutionPolicy Unrestricted
Import-Module .\39719.ps1
Invoke-MS16-032

local-privilege-escalation-by-exploiting-ms16-032-vulnerability-via-powershell-script-04

 

Not: İstismarın gerçekleşmesi için işletim sisteminin en az 2 çekirdeği olmalıdır.

Not: Windows komut satırından tek bir komutla çalıştırmak için aşağıdaki gibi bir komut kullanılabilir.

Powershell -ExecutionPolicy Unrestricted -NoLogo -NoProfile -Command “Import-Module .\39719.ps1; Invoke-MS16-032”

Not: Meterpreter bağlantısı sağlayacak olan Powershell senaryolarında, komut satırından çıkış yapılmadan betiğin çalıştırılması gerekebilir.

Powershell -ExecutionPolicy Bypass -NoExit -File Betik.ps1

 

Böylece SYSTEM yetkileri ile çalışan yeni bir komut satırı açılır. Ayrıca Secondary Logon servisi otomatik olarak başlamıştır.

whoami

local-privilege-escalation-by-exploiting-ms16-032-vulnerability-via-powershell-script-05

 

Not: Powershell betiği çalıştırıldığında SYSTEM yetkileri ile çalışan cmd.exe başlatılmıştır. Eğer başka bir uygulamanın çalışması istenirse “C:\Windows\System32\cmd.exe” ile ifade edilen satırların güncellenmesi gerekmektedir.

Not: Meterpreter erişimi elde edilmişse, istirmar işlemi için MSF ms16_032_secondary_logon_handle_privesc hak yükseltme modülü de kullanılabilir.

Bu zafiyetten korunmak için Microsoft tarafından yama yayınlanmıştır.

https://technet.microsoft.com/en-us/library/security/ms16-032.aspx

 

Kaynak:

https://googleprojectzero.blogspot.com.tr/2016/03/exploiting-leaked-thread-handle.html
https://www.youtube.com/watch?v=74EKxv6KxAg

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.