Tahmin edilmesi zor AD kullanıcı adı biçimini numaralandırma


Özellikle kapsamı geniş olduğunda harici Pentest’ten oldukça keyif alıyorum. Geçmişte çok ilginç şeylerle karşılaştım ama bu yazıda karşılaştığım küçük bir olayı paylaşmak istedim…

Arka plan:

Harici Sızma Testi için, normalde müşterinin genel AD uç noktalarında zayıf kimlik doğrulama ve parola püskürtmeden yararlanarak ilk gün içinde müşterinin dahili sisteminde bir yer edinmeyi hedefliyorum. Buna Lync/Skype, OWA, Citrix ve ServiceDesk, BYOD uygulamaları vb. gibi diğer 3. taraf uygulamaları dahildir. Müşteri zayıf şifre kullanıyorsa veya MFA’sı eksikse, bu normalde beni hemen işe alır ve hedefi tamamlarım ve aramaya gücüm yeter. bir organizasyona girmenin daha ilginç yolları. Bu harika bir şey çünkü bana kuruluşun özel uygulamasındaki (3. taraf uygulamadaki 0 ​​gün dahil) güvenlik açıklarını tespit etmem için zaman kazandırıyor.

Bu sefer değil…

Bu özel müşteri için, Initstring’in harika aracını kullanarak çok sayıda kullanıcı adını numaralandırdıktan sonra Linkedin2username https://github.com/initstring/linkedin2username, bunu fark ettim Lyncsmash https://github.com/nyxgeek/lyncsmash bana geçerli kullanıcılar için herhangi bir sonuç vermedi.

Biraz deneme yaptıktan sonra, herhangi bir sonuç elde etmekte zorlandığım için müşteriyle iletişime geçerek AD kullanıcı adı biçimini istedim. Müşteriden gelen yanıt, kendisinin nasıl atandığının farkında olmadığı çok “özel” formatlar kullandıkları yönündeydi.

Hımm… Kahretsin…

Kutunun dışında düşünmek…

Bir süre önce Github’da arama yaparak bir kuruluşun kullanıcı adı formatını bulmayı başardım. Ancak bu müşteri Github’u kullanmıyordu. Neyse ki bir meslektaşım aşağıdaki gibi diğer araçları kullanmayı önerdi: FOCA Bu tür bilgileri açığa çıkarabilecek şirket belgelerinden meta verileri çıkarmak için.

Ampul anı

Ampul anı!

FOCA https://github.com/ElevenPaths/FOCA’yı önceki numaralandırılmış alt alan adında çalıştırdıktan sonra, şirketin kullanıcı adı biçimini ortaya çıkaran bazı isabetlerle karşılaştım ve bunlar şöyle bir şey oldu: QWEAB003. Numaralandırılmış kullanıcı adlarını karşılaştırırken hemen ilk 3 karakterin olduğunu fark ettim. QWE her zaman sabittirler, A ismin ilk karakteri, B soyadının ilk karakteri ve son 3 rakamı 001 ile 020 arasında görünüyordu. Aynı baş harflere sahip birden fazla kullanıcı olabileceği için son 3 rakamı anlamlıydı (örn. John Doe, James Doodoo)

Tüm olası kullanıcı adı kombinasyonlarını sıralamak için hızlı bir şekilde temel bir python betiği yazdım.

from string import ascii_uppercase

for a in ascii_uppercase:
    for b in ascii_uppercase:
    	for num1 in range(3):
    		for num2 in range(10):  # from 000 to 020 to save time
                	print("QWE{}{}0{}{}".format(a,b,num1,num2))


''' Sample output:
QWEAA000 
QWEAA001 
QWEAA002
...
QWEZZ018
QWEZZ019

Daha sonra bunu besledim lyncsmash ve tabii ki, isabetler aldım ve zayıf şifreler ve MFA eksikliği nedeniyle bazı kullanıcıların güvenliğini çok hızlı bir şekilde ele geçirip iç ağlarına erişim sağlamayı başardım.



Source link