6.6 KiB
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-repos.
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:
enpasteboardWithUniqueName
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:
enpasteboardWithUniqueName
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
- https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8
- https://hackmd.io/@robihamanto/owasp-robi
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-repos.