Attacking services
Services may not seem very dangerous, and they stick to working in the background. But they are developed to support the other application components, and could potentially perform very sensitive operations such as logging into an online profile, resetting a password, or even facilitating some potentially dangerous processes by serving as a proxy to the system services of the host device. Either way, they must not be overlooked during an application assessment.
When is a service vulnerable? Well, a service is exploitable when you can use its functionality to abuse the user, escalate the privileges of another application/user, or use it to extract sensitive information. This means that you need to be able to interact with the service, which means it must be exported, or respond/accept input from message formats like intents, files, or the network stack. Another thing to consider is what kind of permission is required to interact with the service—whether it's a potentially...