Android Exploit Developer Review
Android Userland Fuzzing and Exploitation Course Review
It’s been a long time since I’ve written anything. I always say I’ll write, but I never do. The lack of time is noticeable, and for those who know me, they know that things always come up along the way. Moreover, this is my first post in English, where I am constantly trying to improve. So, if there are any errors, please write to me privately to correct and improve them. I will genuinely appreciate it.
I just passed the exam for the Android Userland Fuzzing and Exploitation course from MobileHackingLab. I’ve always been interested in binary exploitation, but I had never learned exploitation on Linux, much less on ARM. Fortunately, before taking the course, my great friend Renato gave me a couple of masterful lessons on Linux exploitation worthy of payment (for those who know him, we know he’s a real pwn machine). For a while, I’ve wanted to start learning ARM, especially exploitation, so when I found the course online, I didn’t hesitate to take it.
Course Content
When I found the course and saw the syllabus, I thought it was fantastic. Here it is:
- Introduction to Android Security
- Introduction to ARM Assembly
- Reverse Engineering Android Native Components
- Fuzzing and Crash Analysis
- Exploitation Lab Setup and Tool Introduction
- Exploiting Memory Info Leaks
- Modern Stack Overflow Exploitation (ASLR + NX)
- Exploiting Android Userland Heap Attacks
- For more details, here is the link to the course content: MobileHackingLab Course.
I took the course over 90 days in the lab since, as I mentioned earlier, I had no experience with Linux exploitation, and my ARM knowledge was practically nil. Additionally, with work and family responsibilities, study time is increasingly scarce, making it challenging to find those moments.
How I Approached the Course
I approached the course as follows:
- I first watched all the videos, taking notes on the most important points and things I needed to review later. I did this because I had no prior knowledge and thought it would be easier to learn this way. After watching all the videos, I reviewed each module again, doing all the exercises and taking detailed notes on each step and the points I needed to review, such as specific exercises or details.
- Lastly, I created a document where I recorded all the commands and tools used in the process. This way, if I forgot something, I knew where to quickly look it up. This helped me not only in my exam but also to resolve exercises efficiently (since time is a scarce resource, I always tried to use my study hours as effectively as possible).
Preparation
As mentioned, my prior knowledge was quite limited. However, my background in exploitation in Windows environments helped since the logic of exploitation is similar, allowing me to understand techniques like ASLR + NX more quickly. Additionally, my friend Renato’s (https://twitter.com/dplastico) masterful lessons on exploitation were invaluable.
With this preparation, I paid for the course and started studying!
Although the course does not require basic knowledge, and I believe the explanations are excellent and progress well from basic to advanced, having some prior knowledge can be very helpful:
- Knowledge of C (especially reading code)
- Debugger (GDB)
- Basic knowledge of exploitation (understanding how vulnerabilities work)
- Python programming
Laboratories
One of the strongest points of the course is the laboratories, as they use Corellium. The experience is excellent, offering speed, mobility, and flexibility. I was pleasantly surprised by how enjoyable the process was, as being able to debug from Corellium with a separate terminal is seamless.
I never encountered any issues, and everything worked smoothly. Additionally, MobileHackingLab’s team provided great support to resolve any questions. When you pay for the course, you also gain access to a Slack channel where you can interact with other students, ask questions, and quickly find answers.
All the labs are well-explained and challenging. You also receive a virtual machine configured with different tools used during the course, allowing you to work quickly or access a cloud machine.
Exam
The exam was fantastic. While I can’t go into details, I can say that it consists of two parts. The first part was relatively easier, but the second part was brutal—a real challenge and very entertaining. I enjoyed it and learned a lot.
The best part is that I truly learned from the exam.
By taking the course conscientiously, completing the exercises, and consulting with the MobileHackingLab team or other students, passing should not be a problem.
Conclusion
The course was excellent. I enjoyed it and learned a lot, meeting all my expectations. I hope MobileHackingLab continues to release more courses and content. I also want to thank the entire MobileHackingLab team for their support and availability to help.
I also thank my friends and study team: Vicente, Renato, and Miguel:
- https://twitter.com/s1kr10s
- https://twitter.com/dplastico
- https://twitter.com/vpnagel
for always being available and willing to help me improve. Thanks to my family, my children for understanding when dad is studying and sacrificing family time, and my wife for motivating me to improve and supporting me in my endeavors!
I hope this review helps someone.