NTLM over HTTP Evil Proxy (MiTM) ve Pass The Hash Saldırısı

NTLM

NTLM over HTTP Authentication protokolü, “Local Intranet” alanlarında son dönemde çok yaygın olan bir saldırı yöntemine maruz kalmaktadır. Bu yöntemde Intranet’te gezinen domain kullanıcılarının, Internet Explorer (IWA) tarafından otomatik yollanan NTLM kimlik bilgileri, kötü niyetli olarak hazırlanmış bir Proxy’den geçirilir ve yine Intranet altındaki başka bir sunucuya yetkisiz erişim sağlamak için kullanılır. Özetle, kullanıcının farkına varmadan yolladığı NTLM kimlik bilgileri bir Proxy’ye yönlendirilir ve bu Proxy’nin başka bir sunucuya giriş yapması sağlanır.

Genel bir saldırı senaryosu şu şekilde özetlenebilir:
“Intranet’te bulunan bir sitedeki XSS açığı veya herkese açık bir paylaşım (share) kullanılmasıyla sahte Proxy’nin çalıştığı site adresinin kullanıcı tarafından ziyaret edilmesi sağlanır. Bundan sonraki adımda, Internet Explorer bu adresi Trust Zone içinde (Intranet) görüp, NTLM ile Authentication yapmaya çalışarak hash bilgilerini bu sahte Proxy’ye yollar. Sahte Proxy önceden belirlenmiş bir sunucuya bu Hash bilgilerini iletir (Pass The Hash) ve yetkisiz erişim Proxy tarafından sağlanmış olur.”

Yöntemi incelemeden önce NTLM mesaj tipleri ve NTLM over HTTP kimlik doğrulama aşamaları hakkında kısa bir bilgilendirme yapmak yerinde olacaktır. NTLM over HTTP için kullanılan mesaj tipleri ile bağlantıyı mantıksal olarak daha güvenli hale getirmek ve gerekli kimlik bilgilerini elde etmek hedeflenir. Bu kimlik bilgileri elde edilirken, Hash bilgilerinin iletişim kurmaya çalışan iki tarafa has bilgilerle donatılması hedeflenir. Böylece bütün bir paroladan elde dilen Hash bilgisi değil, tarafların birbirleri hakkında sahip olabilecekleri bilgilerden elde edilmiş Hash bilgileri kimlik doğrulama aşamasının temelini oluşturur. Kullanılan mesaj tipleri (Type) şunlardır:

Type1: Bu mesaj tipinde istemciye ait “host name” ve “domain name” bilgileri bulunur.
Type2: Bu mesaj tipinde sunucuya ait NTLM challenge bilgisi bulunur.
Type3: Bu mesaj tipinde “username”, “host name”, “NT domain name” ve iki adet “paroladan üretilmiş” cevap içeriği daha bulunur.
Type mesajlarınının içeriği NTLM versiyon içeriklerine göre farklılık gösterse de kullanılan mantıksal yapı aşağıdaki gibi olup, anlatılacak olan Proxy saldırısı yöntemine dair bir çözüm getirmemektedir.
Normal bir NTLM over HTTP bağlantısı aşağıda gösterildiği gibi gerçekleştirilir:

• En önce istemci tarafından HTTP istek yollanır,
• Buna karşılık sunucu tarafı NTLM kimlik doğrulaması için kendinde var olan standartları söyler ve Type1 mesaj ister,
• İstemci gerekli bilgiyi sağlayarak Type 1 mesaj bilgisini sunucuya ulaştırır ve Type 2 mesajı ister,
• Sunucu istemciye istediği Type 2 mesajı yollar ve Type 3 mesaj için beklemeye geçer,
• İstemci, sunucuya Type 3 mesaj bilgisini iletir ve bu bilginin onaylanarak TCP tabanlı oturumun açılmasını bekler, eğer kimlik doğrulama gerçekleşmez ise oturum açılmaz.

NTLM

Arada kötü niyetli bir Proxy’nin olduğu durumlarda ise bağlantı şu şekilde gerçekleşir:

• En önce istemci tarafından HTTP istek yollanır,
• Saldırgan Proxy bunu ulaşmak istediği sunucuya iletir.
• Buna karşılık sunucu tarafı NTLM kimlik doğrulaması için kendinde var olan standartları söyler ve Type1 mesaj ister,
• Saldırgan Proxy bunu istemciye iletir.
• İstemci gerekli bilgiyi sağlayarak Type 1 Hash bilgisini sunucuya ulaştırır ve Type 2 mesajı ister,
• Saldırgan Proxy bunu ulaşmak istediği sunucuya iletir.
• Sunucu istemciye istediği Type 2 mesajı yollar ve Type 3 mesaj için beklemeye geçer,
• Saldırgan Proxy bunu istemciye iletir.
• İstemci, Proxy’ye Type 3 mesaj bilgisini iletir. Proxy de bu bilgiyi sunucuya aktarır ve bu bilginin onaylanarak TCP tabanlı oturumun açılmasını bekler. Eğer kimlik doğrulama gerçekleşmez ise oturum açılmaz.

Oturum açılma adımı gerçekleştiği anda TCP bağlantının ucunda olan saldırgan Proxy olduğu için, oturum bu Proxy üzerinden açılmış olur. Artık istemciye gerek yoktur ve Proxy ile istemci arasındaki bağlantı sonlandırılarak, ulaşmak istenen sisteme yetkisiz erişim sağlanmış olur.
NTLM

NTLM Authentication’ın doğası gereği etkilendiği bilinen diğer saldırı yöntemleri şunlardır:
1. NTLM Downgrade
2. NTLM Challenge Spoofing
3. Spoofing tabanlı Man In The Middle saldırıları
4. Ağda yakalanan Challenge Key’leri ile NTLM Hashlerinin kırılması

TCP tabanlı oturum açma yöntemini kullanan bir kimlik doğrulama sisteminin, bütün doğrulama adımlarını OSI 7. Uygulama katmanında HTTP paketleri içinde çözüyor olması, burada anlatılan sorunun kök nedeni sayılabilir. Proxy’ler iyi amaçla kullanılıyor olsalar bile doğaları gereği araya giren üçüncü şahıs durumundadırlar.

Arada Proxy kullanılabilen her çeşit kimlik doğrulama yöntemi bu tarz saldırılara maruz kalabilir. Bu durumda yukarıda anlatılan saldırı tipi için alınabilecek önlem şu şekilde olabilir:

Intranet’te Domain dahilinde gezinirken, Internet Explorer ayarlarında “Local Intranet” güvenlik ayarının seçilmesi, tarayıcı ile yapılan gezinti yerel ağ içindeyse otomatik oturum açma özelliğini de devreye sokmaktadır. Bu otomatik oturum açma özelliği IE ayarlarından kapatılabilir ve kimlik bilgilerinin manuel girilmesi sağlanabilir. Böylece kullanıcı farkında olmadan Hash bilgileri başka sunuculara yollanmayacaktır. Ancak, saldırgan Proxy tarafından koşturulan sahte bir ekrana manuel giriş yapılması durumunda Hash bilgilerinin tekrar karşıya iletilmesi ve saldırının başarılı olarak sonuçlanması daima olanaklıdır.

Gökhan MUHARREMOĞLU