7.1 KiB
Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- **💬 Discord grubuna katılın veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm'da takip edin.
- Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
{% embed url="https://websec.nl/" %}
iOS cihazlarında uygulamalar arasında ve içinde veri paylaşımı, UIPasteboard
mekanizması aracılığıyla sağlanır ve iki temel kategoriye ayrılır:
- Sistem genel panosu: Bu, verilerin herhangi bir uygulama ile paylaşılması için kullanılır ve iOS 10'dan beri mevcut olan verilerin cihaz yeniden başlatmaları ve uygulama kaldırmaları boyunca kalıcı olmasını sağlar.
- Özel / Adlandırılmış panolar: Bunlar, bir uygulama içinde veya aynı takım kimliğini paylaşan başka bir uygulama ile veri paylaşımı için özeldir ve oluşturan uygulama sürecinin yaşam süresinden öteye geçmeyecek şekilde tasarlanmıştır, iOS 10'da yapılan değişiklikleri takip eder.
Güvenlik düşünceleri, panoları kullanırken önemli bir rol oynar. Örneğin:
- Kullanıcıların panoya erişim izinlerini yönetmek için bir mekanizma yoktur.
- Panonun izinsiz arka planda izlenmesi riskini azaltmak için erişim, uygulama önde iken kısıtlanmıştır (iOS 9'dan beri).
- Gizlilik endişeleri nedeniyle kalıcı adlandırılmış panoların kullanımı yerine paylaşılan konteynerlerin tercih edilir.
- iOS 10 ile tanıtılan Evrensel Pano özelliği, içeriğin genel panoyoluyla cihazlar arasında paylaşılmasına izin verir ve geliştiriciler tarafından veri süresi ve otomatik içerik transferini devre dışı bırakmak için yönetilebilir.
Hassas bilgilerin yanlışlıkla genel panoya kaydedilmediğinden emin olmak önemlidir. Ayrıca, uygulamaların genel panodaki verilerin yanlış amaçlar için kullanılmasını önlemek için tasarlanması ve geliştiricilerin hassas bilgilerin panoya kopyalanmasını önlemek için önlemler alması teşvik edilir.
Statik Analiz
Statik analiz için kaynak kodu veya ikili dosyada arama yapın:
- Sistem genel panosu kullanımını belirlemek için
generalPasteboard
'u arayın. - Özel panolar oluşturmak için
pasteboardWithName:create:
vepasteboardWithUniqueName
'i arayın. Kalıcılığın etkin olup olmadığını doğrulayın, ancak bu yöntem artık kullanımdan kaldırılmıştır.
Dinamik Analiz
Dinamik analiz, belirli yöntemleri kancalama veya izleme işlemi içerir:
- Sistem genel kullanım için
generalPasteboard
'u izleyin. - Özel uygulamalar için
pasteboardWithName:create:
vepasteboardWithUniqueName
'i izleyin. - Kalıcılık ayarlarını kontrol etmek için kullanılan artık kullanılmayan
setPersistent:
yöntem çağrılarını izleyin.
İzlenmesi gereken temel detaylar şunlardır:
- Pano adları ve içerikleri (örneğin, dizeler, URL'ler, resimler kontrol edilir).
- Standart ve özel veri türü kontrollerinden yararlanarak mevcut öğe sayısı ve veri türleri.
setItems:options:
yöntemini inceleyerek süre ve yalnızca yerel seçeneklerini kontrol edin.
Bir izleme aracı kullanımı örneği objection'ın pano izleyicisidir, bu araç genelPasteboard'u her 5 saniyede bir değişiklikleri izler ve yeni verileri çıktılar.
İşte, objection'ın yaklaşımından esinlenerek her 5 saniyede bir panodan değişiklikleri okuyan ve kaydeden basit bir JavaScript betiği örneği:
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
var items = "";
var count = Pasteboard.changeCount().toString();
setInterval(function () {
const currentCount = Pasteboard.changeCount().toString();
const currentItems = Pasteboard.items().toString();
if (currentCount === count) { return; }
items = currentItems;
count = currentCount;
console.log('[* Pasteboard changed] count: ' + count +
' hasStrings: ' + Pasteboard.hasStrings().toString() +
' hasURLs: ' + Pasteboard.hasURLs().toString() +
' hasImages: ' + Pasteboard.hasImages().toString());
console.log(items);
}, 1000 * 5);
Referanslar
- https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8
- https://hackmd.io/@robihamanto/owasp-robi
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/
{% embed url="https://websec.nl/" %}
Sıfırdan kahraman oluncaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Family koleksiyonumuzu keşfedin, özel NFT'lerimizle tanışın
- 💬 Discord grubumuza katılın veya telegram grubumuza katılın veya bizi Twitter'da 🐦 @carlospolopm** takip edin.**
- Hacking püf noktalarınızı paylaşarak PR'ler göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.