tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Data deel tussen en oor toepassings op iOS-toestelle word gefasiliteer deur die UIPasteboard
meganisme, wat in twee primêre kategorieë verdeel is:
- Sisteemwye algemene plakbord: Dit word gebruik om data te deel met enige toepassing en is ontwerp om data te behou oor toestelherlaai en toepassingsverwydering, 'n kenmerk wat beskikbaar is sedert iOS 10.
- Pasgemaakte / Genoemde plakborde: Hierdie is spesifiek vir datadeel binne 'n toepassing of met 'n ander toepassing wat dieselfde span-ID deel, en is nie ontwerp om te hou oor die lewe van die toepassingsproses wat hulle skep nie, volgens veranderinge wat in iOS 10 bekendgestel is.
Sekuriteits oorwegings speel 'n beduidende rol wanneer plakborde gebruik word. Byvoorbeeld:
- Daar is geen meganisme vir gebruikers om toepassingsregte te bestuur om toegang tot die plakbord te verkry nie.
- Om die risiko van ongeoorloofde agtergrondmonitering van die plakbord te verminder, is toegang beperk tot wanneer die toepassing in die voorgrond is (sedert iOS 9).
- Die gebruik van volhoubare genoem plakborde word ontmoedig ten gunste van gedeelde houers weens privaatheidskwessies.
- Die Universele Klembord kenmerk wat met iOS 10 bekendgestel is, wat toelaat dat inhoud oor toestelle gedeel word via die algemene plakbord, kan deur ontwikkelaars bestuur word om data vervaldatums in te stel en outomatiese inhoudsoordrag te deaktiveer.
Om te verseker dat sensitiewe inligting nie per ongeluk gestoor word op die globale plakbord is van kardinale belang. Boonop 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 te voorkom dat sensitiewe inligting na die klembord gekopieer word.
Statiese Analise
Vir statiese analise, soek die bronkode of binêre vir:
generalPasteboard
om gebruik van die sisteemwye algemene plakbord te identifiseer.pasteboardWithName:create:
enpasteboardWithUniqueName
vir die skep van pasgemaakte plakborde. Verifieer of volhoubaarheid geaktiveer is, alhoewel dit verouderd is.
Dinamiese Analise
Dinamiese analise behels die haak of opspoor van spesifieke metodes:
- Monitor
generalPasteboard
vir sisteemwye gebruik. - Volg
pasteboardWithName:create:
enpasteboardWithUniqueName
vir pasgemaakte implementasies. - Observeer verouderde
setPersistent:
metode-aanroepe om vir volhoubaarheidinstellings te kyk.
Belangrike besonderhede om te monitor sluit in:
- Plakbordname en inhoud (byvoorbeeld, om te kyk vir strings, URL's, beelde).
- Aantal items en datatipes wat teenwoordig is, met gebruik van standaard en pasgemaakte datatipes.
- Vervaldatums en plaaslike slegs opsies deur die
setItems:options:
metode te ondersoek.
'n Voorbeeld van die gebruik van 'n moniteringstoestel is objection se plakbordmoniter, wat die generalPasteboard elke 5 sekondes vir veranderinge pols en die nuwe data uitset.
Hier is 'n eenvoudige JavaScript-skripvoorbeeld, geïnspireer deur die objection se benadering, om veranderinge van die plakbord elke 5 sekondes 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/
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.