hacktricks/mobile-pentesting/ios-pentesting/ios-uipasteboard.md
2024-02-11 02:07:06 +00:00

6.6 KiB

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

Ander maniere om HackTricks te ondersteun:

Data-deling binne en tussen programme 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 deling van data met enige toepassing en is ontwerp om data te behou oor toestelherstarts en toepassingsverwyderings, 'n funksie wat beskikbaar is sedert iOS 10.
  • Aangepaste / Genoemde plakborde: Hierdie is spesifiek vir die deling van data binne 'n toepassing of met 'n ander toepassing wat dieselfde span-ID deel, en is nie ontwerp om te behou buite die leeftyd van die toepassingsproses wat dit skep nie, volgens veranderinge wat in iOS 10 ingevoer is.

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

  • Daar is geen meganisme vir gebruikers om toepassingstoestemming om die plakbord te gebruik, te bestuur 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 afgeraai ten gunste van gedeelde houers as gevolg van privaatheidskwessies.
  • Die Universele Knipbord-funksie wat met iOS 10 bekendgestel is en dit moontlik maak om inhoud oor toestelle te deel via die algemene plakbord, kan deur ontwikkelaars bestuur word om data-verval en outomatiese inhoudsoordrag te deaktiveer.

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

Statische Analise

Vir statiese analise, soek die bronkode of binêre kode vir:

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

Dinamiese Analise

Dinamiese analise behels die hake of naspeur van spesifieke metodes:

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

Sleutelbesonderhede om dop te hou, sluit in:

  • Plakbordname en inhoud (byvoorbeeld deur te kyk vir strings, URL's, afbeeldings).
  • Aantal items en datatipes teenwoordig, deur gebruik te maak van standaard- en aangepaste datatipekontroles.
  • Verval- en slegs-plaaslike opsies deur die setItems:options: metode te ondersoek.

'n Voorbeeld van die gebruik van 'n moniteringsinstrument is die 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

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

Ander maniere om HackTricks te ondersteun: