CoRCTF 2025 — CoRPhone Android Kernel Pwn #1393
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
What this is
CoRPhone is an Android kernel exploitation challenge for CoRCTF 2025. It models a realistic delivery path where an untrusted Android app downloads raw kernel exploit shellcode and executes it in memory via JNI (no on‑disk binary).
Provided artifacts
• Challenge archive (Dockerized device environment): corphone.tar.gz
• Android kernel with debug symbols for reversing...
🔧 Technical Details
In‑memory shellcode execution via JNI (Android): Deliver a raw shellcode blob over HTTP(S) to an untrusted app and execute it directly in memory through a JNI bridge, avoiding on‑disk artifacts. Generic pattern: fetch bytes → pass to native routine → set RX permissions → call entrypoint; here it’s triggered with
pwn https://<server>/sc
.ELF‑to‑shellcode packaging pipeline: Compile an exploit as a static/portable ELF (
musl-gcc
) and transform it into position‑independent raw shellcode using pwntools. This enables memory‑only loading by a host process that treats the blob as code rather than a file.Symbol‑assisted kernel reversing workflow: Use a symbolized
vmlinux
to recover structures, function names, and offsets for exploit dev; prototype on a fast debug image if available, but always re‑validate on the real target because kernel/system images differ and offsets/mitigations may not match.🤖 Agent Actions
I analyzed the CoRPhone Android kernel pwn challenge and updated HackTricks with the two main reusable techniques highlighted in the repo:
What I changed and where
Why these pages and not others
References added
No other sections were changed. If you want, I can also add a brief note in the reverse-shells pages about hosting sc and listener setup, but I kept the focus on techniques central to the blog (JNI memory-only native code exec and packaging).
This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.
🗑️ File Cleanup