hacktricks/mobile-pentesting/ios-pentesting/ios-uipasteboard.md
2024-02-10 13:11:20 +00:00

6.6 KiB

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Deljenje podataka unutar i između aplikacija na iOS uređajima omogućeno je mehanizmom UIPasteboard, koji se deli na dve osnovne kategorije:

  • Sistemski opšti pasteboard: Koristi se za deljenje podataka sa bilo kojom aplikacijom i dizajniran je da trajno čuva podatke čak i nakon restartovanja uređaja ili deinstalacije aplikacije, funkcija koja je dostupna od iOS 10.
  • Prilagođeni / Imenovani pasteboard-ovi: Ovi pasteboard-ovi su namenjeni za deljenje podataka unutar aplikacije ili sa drugom aplikacijom koja deli isti ID tima, i nisu dizajnirani da traju duže od životnog veka procesa aplikacije koja ih kreira, u skladu sa promenama uvedenim u iOS 10.

Bezbednosni aspekti igraju značajnu ulogu prilikom korišćenja pasteboard-ova. Na primer:

  • Ne postoji mehanizam za korisnike da upravljaju dozvolama aplikacije za pristup pasteboard-u.
  • Da bi se umanjio rizik od neovlašćenog praćenja pasteboard-a u pozadini, pristup je ograničen samo kada je aplikacija u prvom planu (od iOS 9).
  • Upotreba trajnih imenovanih pasteboard-ova se ne preporučuje zbog problema sa privatnošću, već se preporučuje korišćenje deljenih kontejnera.
  • Funkcija Univerzalni Clipboard koja je uvedena sa iOS 10, omogućava deljenje sadržaja između uređaja putem opšteg pasteboard-a, a može se upravljati od strane programera postavljanjem vremena isteka podataka i onemogućavanjem automatskog prenosa sadržaja.

Važno je obezbediti da se osetljive informacije ne čuvaju slučajno na globalnom pasteboard-u. Takođe, aplikacije treba da budu dizajnirane tako da spreče zloupotrebu podataka sa globalnog pasteboard-a za neželjene radnje, a programeri se podstiču da preduzmu mere kako bi sprečili kopiranje osetljivih informacija na clipboard.

Statistička analiza

Za statističku analizu, pretražite izvorni kod ili binarnu datoteku za:

  • generalPasteboard kako biste identifikovali upotrebu sistemskog opšteg pasteboard-a.
  • pasteboardWithName:create: i pasteboardWithUniqueName za kreiranje prilagođenih pasteboard-ova. Proverite da li je omogućena trajnost, iako je ovo zastarelo.

Dinamička analiza

Dinamička analiza uključuje hakovanje ili praćenje određenih metoda:

  • Pratite generalPasteboard za sistemsku upotrebu.
  • Pratite pasteboardWithName:create: i pasteboardWithUniqueName za prilagođene implementacije.
  • Posmatrajte pozive zastarele metode setPersistent: kako biste proverili postavke trajnosti.

Ključni detalji za praćenje uključuju:

  • Imena pasteboard-ova i sadržaj (na primer, provera za stringove, URL-ove, slike).
  • Broj stavki i tipovi podataka prisutni, koristeći standardne i prilagođene provere tipova podataka.
  • Opcije isteka i lokalne opcije pregledom metode setItems:options:.

Primer korišćenja alata za praćenje je objection-ov pasteboard monitor, koji svakih 5 sekundi proverava generalPasteboard za promene i prikazuje nove podatke.

Evo jednostavnog primera JavaScript skripta, inspirisanog pristupom objection-a, za čitanje i beleženje promena sa pasteboard-a svakih 5 sekundi:

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);

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: