hacktricks/mobile-pentesting/ios-pentesting/ios-uipasteboard.md

6.9 KiB

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

{% embed url="https://websec.nl/" %}

Data deling binne en tussen toepassings op iOS-toestelle word gefasiliteer deur die UIPasteboard meganisme, wat verdeel is in twee primêre kategorieë:

  • Stelselwye algemene plakbord: Dit word gebruik vir die deel van data met enige toepassing en is ontwerp om data oor toestelherstarts en toepassingsverwyderings te behou, 'n funksie wat beskikbaar is sedert iOS 10.
  • Aangepaste / Genoemde plakborde: Hierdie is spesifiek vir data deling binne 'n toepassing of met 'n ander toepassing wat dieselfde span-ID deel, en is nie ontwerp om verder te bestaan as die leeftyd van die toepassingsproses wat hulle skep nie, volgens veranderinge wat in iOS 10 ingevoer is.

Sekuriteits oorwegings speel 'n belangrike rol wanneer plakborde gebruik word. Byvoorbeeld:

  • Daar is geen meganisme vir gebruikers om toepassingsregte te bestuur om die plakbord te benader nie.
  • Om die risiko van ongemagtigde agtergrondmonitering van die plakbord te verminder, is toegang beperk tot wanneer die toepassing in die voorgrond is (sedert iOS 9).
  • Die gebruik van volhoubare genoemde plakborde word afgeraad ten gunste van gedeelde houers weens privaatheidskwessies.
  • Die Universele Plakbord-funksie wat met iOS 10 ingevoer is, wat inhoud toelaat om oor toestelle gedeel te word via die algemene plakbord, kan deur ontwikkelaars bestuur word om dataverval en die outomatiese oordrag van inhoud te deaktiveer.

Dit is belangrik om te verseker dat sensitiewe inligting nie per ongeluk op die globale plakbord gestoor word nie. Daarbenewens behoort toepassings ontwerp te wees om die misbruik van globale plakborddata vir onbedoelde aksies te voorkom, en word ontwikkelaars aangemoedig om maatreëls te implementeer om die kopie van sensitiewe inligting na die knipbord te voorkom.

Statische Analise

Vir statiese analise, soek deur die bronkode of binêre lêer vir:

  • generalPasteboard om die gebruik van die stelselwye algemene plakbord te identifiseer.
  • pasteboardWithName:create: en pasteboardWithUniqueName vir die skep van aangepaste plakborde. Verifieer of volhoubaarheid ingeskakel is, alhoewel dit verouderd is.

Dinamiese Analise

Dinamiese analise behels die hake of naspeuring van spesifieke metodes:

  • Monitor generalPasteboard vir stelselwye gebruik.
  • Spoor pasteboardWithName:create: en pasteboardWithUniqueName vir aangepaste implementasies.
  • Waarneming van verouderde setPersistent: metode-oproepe om volhoubaarheidsinstellings te kontroleer.

Belangrike besonderhede om te monitor sluit in:

  • Plakbordname en inhoud (byvoorbeeld, soek vir strings, URL's, beelde).
  • Aantal items en datatipes teenwoordig, wat standaard en aangepaste datatipekontroles benut.
  • Verval- en plaaslike-alleen-opsies deur die setItems:options: metode te ondersoek.

'n Voorbeeld van 'n moniteringstoolgebruik is objection se plakbordmoniter, wat elke 5 sekondes die generalPasteboard ondervra vir veranderinge en die nuwe data uitvoer.

Hier is 'n eenvoudige JavaScript-skripsievoorbeeld, geïnspireer deur die benadering van objection, om elke 5 sekondes veranderinge van die plakbord te lees en te log:

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

Verwysings

{% embed url="https://websec.nl/" %}

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: