tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Deljenje podataka unutar i između aplikacija na iOS uređajima olakšano je mehanizmom UIPasteboard, koji je podeljen u dve glavne kategorije:

  • Sistemsku opštu pasteboard: Ovo se koristi za deljenje podataka sa bilo kojom aplikacijom i dizajnirano je da zadrži podatke tokom ponovnog pokretanja uređaja i deinstalacija aplikacija, funkcija koja je dostupna od iOS 10.
  • Prilagođene / imenovane pasteboard: Ove su specifične za deljenje podataka unutar aplikacije ili sa drugom aplikacijom koja deli isti tim ID, i nisu dizajnirane da traju duže od života procesa aplikacije koja ih kreira, u skladu sa promenama uvedenim u iOS 10.

Bezbednosna razmatranja igraju značajnu ulogu prilikom korišćenja pasteboard-a. Na primer:

  • Ne postoji mehanizam za korisnike da upravljaju dozvolama aplikacija za pristup pasteboard-u.
  • Da bi se smanjio rizik od neovlašćenog praćenja pasteboard-a u pozadini, pristup je ograničen na trenutke kada je aplikacija u prvom planu (od iOS 9).
  • Korišćenje trajnih imenovanih pasteboard-a se ne preporučuje zbog briga o privatnosti.
  • Universal Clipboard funkcija uvedena sa iOS 10, koja omogućava deljenje sadržaja između uređaja putem opšteg pasteboard-a, može se upravljati od strane programera kako bi se postavila isteka podataka i onemogućio automatski prenos sadržaja.

Osiguranje da osetljive informacije nisu nenamerno sačuvane na globalnom pasteboard-u je ključno. Pored toga, aplikacije bi trebale biti dizajnirane da spreče zloupotrebu podataka globalnog pasteboard-a za neželjene radnje, a programeri se podstiču da implementiraju mere za sprečavanje kopiranja osetljivih informacija u međuspremnik.

Staticka analiza

Za statičku analizu, pretražujte izvorni kod ili binarni fajl za:

  • generalPasteboard da identifikujete korišćenje sistemske opšte pasteboard.
  • pasteboardWithName:create: i pasteboardWithUniqueName za kreiranje prilagođenih pasteboard-a. Proverite da li je trajnost omogućena, iako je ovo zastarelo.

Dinamička analiza

Dinamička analiza uključuje povezivanje ili praćenje specifičnih metoda:

  • Pratite generalPasteboard za sistemsku upotrebu.
  • Pratite pasteboardWithName:create: i pasteboardWithUniqueName za prilagođene implementacije.
  • Posmatrajte zastarele pozive setPersistent: da proverite postavke trajnosti.

Ključni detalji koje treba pratiti uključuju:

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

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

Evo jednostavnog primera JavaScript skripte, inspirisane pristupom objection-a, za čitanje i logovanje promena iz pasteboard-a svake 5 sekundi:

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)

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks