RAGBAZRAGBAZ/forensics
school
syllabus teacher's manual student instructions methodology live acquisition
labs
lab 1 · baseline & authorized acquisitionlab 2 · persistence huntlab 3 · live artifact acquisitionlab 4 · boot-chain imaging & verificationlab 5 · blind assessment · capstone
tools
apts.sh apts_tui.py acquire_artifacts.sh
studio
↩ school overview ↩ ragbaz.cc
reference · methodology

the five-phase loop

A repeatable investigation loop and the six persistence surfaces it targets. This is the conceptual spine every lab hangs from.


DFIR, not pentesting

You are not attacking a target — you are examining a device you own for indicators of compromise. That single reframe changes the mindset from "can I break in" to "what would persistence look like, and where does it hide." Everything below follows from that question.

the loop

P1
preserve

Decide if volatile state matters before touching anything. If yes, do not reboot. Weigh network isolation — it preserves data but can tip off an operator. Document the starting state.

P2
triage

Turn symptoms into testable hypotheses: battery/thermal, data volume, unknown apps, unprompted 2FA, overlays. A lead, never a verdict.

P3
acquire

Collect to the workstation. Analyze offline. Never trust the subject device to narrate its own state.

P4
analyze

Work the six persistence surfaces. The question is always how something survives reboot and resists removal — not merely whether something bad is installed.

P5
report

IOC list, timeline, confidence level, remediation. For confirmed deep compromise, the honest recommendation is often reflash, not removal.

six persistence surfaces

A backdoor's job is to persist and hide. Learn to check these six places reflexively and you catch the overwhelming majority of stalkerware and commodity RATs.

surfacewhy attackers abuse itwhere to look
device adminResists uninstall; can lock or wipe. The skill is distinguishing legitimate MDM from stalkerware.dumpsys device_policy
accessibilityScreen-read + input injection. The single most abused surface — banking trojans and RATs live here.settings get secure enabled_accessibility_services
notification listenersReads every notification, including OTP / 2FA codes and message previews.settings get secure enabled_notification_listeners
boot receiversThe classic reboot-persistence mechanism.dumpsys package r android.intent.action.BOOT_COMPLETED
overlaySYSTEM_ALERT_WINDOW — draw over other apps; with accessibility, enables credential-phishing overlays.dumpsys package | grep SYSTEM_ALERT_WINDOW
sideload sourceApps whose installer is null / shell bypassed store review.pm list packages -i <pkg>

the caveat that matters most

A sophisticated rootkit with kernel-level access can lie to ADB, hiding its own processes and files from the very queries the triage tools run. Lean on integrity signals it cannot fake from userspace — verified-boot state and bootloader lock — and finish with offline imaging and known-good comparison. A clean triage output does not equal a clean device.