tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

iOS cihazlarda uygulamalar arasında veri paylaşımı, iki ana kategoriye ayrılan UIPasteboard mekanizması ile sağlanır:

  • Sistem genel panosu: Bu, herhangi bir uygulama ile veri paylaşmak için kullanılır ve cihaz yeniden başlatıldığında ve uygulama kaldırıldığında verilerin kalıcı olmasını sağlamak için tasarlanmıştır; bu özellik iOS 10'dan beri mevcuttur.
  • Özel / İsimlendirilmiş panolar: Bunlar, bir uygulama içinde veya aynı takım kimliğini paylaşan başka bir uygulama ile veri paylaşımı için özel olarak tasarlanmıştır ve oluşturuldukları uygulama sürecinin ömründen öteye kalıcı olmaları amaçlanmamıştır; bu, iOS 10 ile getirilen değişiklikleri takip eder.

Güvenlik hususları, panoları kullanırken önemli bir rol oynamaktadır. Örneğin:

  • Kullanıcıların panoya erişim için uygulama izinlerini yönetebileceği bir mekanizma yoktur.
  • Yetkisiz arka plan izleme riskini azaltmak için erişim, uygulama ön planda olduğunda kısıtlanmıştır (iOS 9'dan beri).
  • Gizlilik endişeleri nedeniyle kalıcı isimlendirilmiş panoların kullanımı, paylaşılan konteynerler lehine teşvik edilmemektedir.
  • iOS 10 ile tanıtılan Evrensel Panoya özelliği, içeriğin genel pano aracılığıyla cihazlar arasında paylaşılmasına olanak tanır ve geliştiricilerin veri süresini ayarlamasına ve otomatik içerik aktarımını devre dışı bırakmasına olanak tanır.

Hassas bilgilerin yanlışlıkla genel panoda saklanmadığından emin olmak çok önemlidir. Ayrıca, uygulamalar, genel pano verilerinin istenmeyen eylemler için kötüye kullanılmasını önleyecek şekilde tasarlanmalı ve geliştiricilerin hassas bilgilerin panoya kopyalanmasını önlemek için önlemler alması teşvik edilmelidir.

Statik Analiz

Statik analiz için, kaynak kodda veya ikili dosyada şunları arayın:

  • generalPasteboard: sistem genel panosu kullanımını belirlemek için.
  • pasteboardWithName:create: ve pasteboardWithUniqueName: özel panolar oluşturmak için. Kalıcılığın etkin olup olmadığını doğrulayın, ancak bu artık önerilmemektedir.

Dinamik Analiz

Dinamik analiz, belirli yöntemleri izlemek veya takip etmekle ilgilidir:

  • Sistem genel kullanım için generalPasteboard'ı izleyin.
  • Özel uygulamalar için pasteboardWithName:create: ve pasteboardWithUniqueName'ı takip edin.
  • Kalıcılık ayarlarını kontrol etmek için önerilmeyen setPersistent: yöntem çağrılarını gözlemleyin.

İzlenmesi gereken ana detaylar şunlardır:

  • Pano isimleri ve içerikler (örneğin, dizeler, URL'ler, resimler kontrol edilerek).
  • Mevcut öğe sayısı ve veri türleri, standart ve özel veri türü kontrolleri kullanılarak.
  • Süresi dolmuş ve yerel seçenekler için setItems:options: yöntemini inceleyerek.

Bir izleme aracı kullanımına örnek olarak, objection'ın pano izleyicisi, her 5 saniyede bir genel panoyu değişiklikler için sorgular ve yeni verileri çıktılar.

İşte objection'ın yaklaşımından esinlenerek, panodan her 5 saniyede bir değişiklikleri okumak ve kaydetmek için basit bir JavaScript örneği:

javascript
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

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin