Drozer is a security testing for android system and android applications. It allows you to search for security vulnerabilities in apps and devices by assuming the role of an app and interacting with the Dalvik VM, other apps' IPC endpoints and the underlying OS.
You can copy the apk package the way you want, I use AirDroid application or using adb way
Step #3 Connecting to Drozer
As we know, by default drozer agent listens on port 31415 so we need to ask adb to bind forward any communications come to our machine on that port to be forwarded to our device on the same port.
Now we can connect drozer framework to the agent.
You'll see somthing similar to this
Drozer Usage
Command Reference
Command
Description
run
Executes a drozer module
list
Show a list of all drozer modules that can be executed in the current session. This hides modules that you do not have suitable permissions to run.
shell
Start an interactive Linux shell on the device, in the context of the Agent process.
cd
Mounts a particular namespace as the root of session, to avoid having to repeatedly type the full name of a module.
clean
Remove temporary files stored by drozer on the Android device.
contributors
Displays a list of people who have contributed to the drozer framework and modules in use on your system.
echo
Print text to the console.
exit
Terminate the drozer session.
help
Display help about a particular command or module.
load
Load a file containing drozer commands, and execute them in sequence.
module
Find and install additional drozer modules from the Internet.
permissions
Display a list of the permissions granted to the drozer Agent.
set
Store a value in a variable that will be passed as an environment variable to any Linux shells spawned by drozer.
unset
Remove a named variable that drozer passes to any Linux shells that it spawns.
List
dz> list
app.activity.forintent Find activities that can handle the given intent
app.activity.info Gets information about exported activities.
app.activity.start Start an Activity
app.broadcast.info Get information about broadcast receivers
app.broadcast.send Send broadcast using an intent
app.broadcast.sniff Register a broadcast receiver that can sniff particular intents
app.package.attacksurface Get attack surface of package
app.package.backup Lists packages that use the backup API (returns true on FLAG_ALLOW_BACKUP)
app.package.debuggable Find debuggable packages
app.package.info Get information about installed packages
app.package.launchintent Get launch intent of package
app.package.list List Packages
app.package.manifest Get AndroidManifest.xml of package
app.package.native Find Native libraries embedded in the application.
app.package.shareduid Look for packages with shared UIDs
app.provider.columns List columns in content provider
app.provider.delete Delete from a content provider
app.provider.download Download a file from a content provider that supports files
app.provider.finduri Find referenced content URIs in a package
app.provider.info Get information about exported content providers
app.provider.insert Insert into a Content Provider
app.provider.query Query a content provider
app.provider.read Read from a content provider that supports files
app.provider.update Update a record in a content provider
app.service.info Get information about exported services
app.service.send Send a Message to a service, and display the reply
app.service.start Start Service
app.service.stop Stop Service
auxiliary.webcontentresolver Start a web service interface to content providers.
exploit.jdwp.check Open @jdwp-control and see which apps connect
exploit.pilfer.general.apnprovider Reads APN content provider
exploit.pilfer.general.settingsprovider Reads Settings content provider
information.datetime Print Date/Time
information.deviceinfo Get verbose device information
information.permissions Get a list of all permissions used by packages on the device
scanner.activity.browsable Get all BROWSABLE activities that can be invoked from the web browser
scanner.misc.native Find native components included in packages
scanner.misc.readablefiles Find world-readable files in the given folder
scanner.misc.secretcodes Search for secret codes that can be used from the dialer
scanner.misc.sflagbinaries Find suid/sgid binaries in the given folder (default is /system).
scanner.misc.writablefiles Find world-writable files in the given folder
scanner.provider.finduris Search for content providers that can be queried from our context.
scanner.provider.injection Test content providers for SQL injection vulnerabilities.
scanner.provider.sqltables Find tables accessible through SQL injection vulnerabilities.
scanner.provider.traversal Test content providers for basic directory traversal vulnerabilities.
shell.exec Execute a single Linux command.
shell.send Send an ASH shell to a remote listener.
shell.start Enter into an interactive Linux shell.
tools.file.download Download a File
tools.file.md5sum Get md5 Checksum of file
tools.file.size Get size of file
tools.file.upload Upload a File
tools.setup.busybox Install Busybox.
tools.setup.minimalsu Prepare 'minimal-su' binary installation on the device.
As we can see, there are 5 activities and 1 content provider exported. Let's inspect some of them.
Identify the Application activity
As we know, Android's activity component isthe application screen(s) and the action(s) that applied on that screen(s) when we use the application. So, let's inspect these screens.