Introduction to Windows Mobile Application Penetration Testing
This is the first article in a series of articles aimed at discussing Windows Mobile Application Penetration Testing. Let us begin with knowing some details about Windows Phone 8.1 and Windows 10 Mobile.
Windows Phone 8.1:
Windows Phone 8.1 is the third generation of Microsoft’s Windows Phone mobile operating system, succeeding Windows Phone 8. All Windows Phones running Windows Phone 8 can be upgraded to Windows Phone 8.1, with release dependent on carrier rollout dates.
Windows Phone 8.1 is also the last version that uses the Windows Phone brand name as it was succeeded by Windows 10 Mobile. Some Windows Phone 8.1 devices can be upgraded to Windows 10 Mobile.
Windows 10 Mobile:
Windows 10 Mobile is a mobile operating system developed by Microsoft. It is an iteration of the Windows Phone product line and a successor to Windows Phone 8.1 and is an edition of Windows 10, Microsoft’s operating system for personal computers, as part of Microsoft’s plans to unify Windows’ application platform across multiple device classes.
Windows 10 Mobile aims to provide greater consistency with its counterpart for personal computers, including more extensive synchronization of content, a new universal application platform that allows one app to run on multiple Windows 10 devices such as PCs, mobile devices, and Xbox, as well as the capability, on supported hardware, to connect devices to an external display and use a “PC-like” interface with mouse and keyboard input support. Microsoft has built tools for developers to easily port some iOS apps with minimal modifications. Windows Phone 8.1 smartphones are eligible for an upgrade to Windows 10 Mobile, under manufacturer and carrier support.
Windows 10 Mobile is designed for smartphones and phablets, running on ARM and IA-32 processor architectures.
Please note that the above details are taken from Wikipedia, and references are provided at the end of the article.
Windows Phone Application Penetration Testing:
Windows Mobile Application Penetration testing is less discussed on the Internet than Android and iOS application penetration testing.
Though Android and iOS are leading the smartphone market, Microsoft’s investment in developing free training materials for developers and the efforts made to bring Universal Windows Apps to life is remarkable. It is known that Windows Phone OS is relatively closed and secure compared to Android & iOS and, thus, their apps.
This series of articles will discuss some common Windows Mobile Application Penetration Testing tools & techniques. We will begin with the basics of Windows Phone apps and their security and slowly move into assessment techniques. We will begin the series by testing everything on emulators. Later, we will also discuss the concepts of a real device.
How to practice the techniques we learn here
We learned from the Android Application penetration testing series we published that many readers are looking for vulnerable apps where they can practice all the vulnerabilities discussed here. As far as I know, there are no test beds available on the Internet to practice Windows Phone application penetration testing. So, we have developed vulnerable Windows Phone apps, which can be used for practicing these concepts while you learn them here.
What platforms will be covered?
We will provide vulnerable apps that run on
- Windows Phone 8.1
- Windows 10 Mobile (UWP App)
- Windows 10 Desktop (UWP App)
In a future article of this series, we will discuss more details about Windows Phone 8.1 apps and Windows 10 Mobile Applications.
What do you need to get started with the series?
Though it may look unnecessary for some readers to have lab setup instructions, I have decided to provide them as these are not as straight as Android. The following sections show that setting up Windows Emulators needs some additional steps.
According to Microsoft’s documentation for Universal Windows Apps, the following requirements must be satisfied to run an emulator for windows 10 mobile.
- Hardware-assisted virtualization.
- Second Level Address Translation (SLAT).
- Hardware-based Data Execution Prevention (DEP).
- Windows 8 or higher (Windows 10 strongly recommended)
- Pro edition or higher
- 4 GB RAM or more
The following is the setup I have while writing these articles; having the same with you is recommended. Both Windows Phone 8.1 apps and Windows 10 apps are tested using this setup.
Windows 10 Pro. (Yes, you need to pay for it.)
Note: Windows 10 Pro is required to run Windows Phone Emulators. If you consider practicing the techniques on a real device, you may skip this section.
To run Windows Phone emulators, you must ensure that Hyper-V is enabled on your Windows 10 machine.
Hyper-V support requires Windows 10 Pro. Windows 10 Home doesn’t support Hyper-V.
Assuming that you have Windows 10 Pro, make sure that Virtualization is enabled in BIOS settings, as shown in the figure below.
To learn more information about BIOS settings for emulators, please follow the URL here.
Now, search for Turn Windows features on or off and open it.
Now, select Hyper-V, and its subsections, as shown in the figure below.
Now, a restart is required on the machine for the changes to take effect, and this will enable Hyper-V on your machine.
Setting up a development environment is recommended while learning any application penetration testing concepts. Visual Studio is the IDE used in most app development associated with Microsoft Technologies. Download Microsoft Visual Studio Community 2015 and install it.
We can use Visual Studio to load the source code of the applications being tested when you are given the source code.
Windows Phone SDKs and Emulators
After installing Visual Studio, we need to install SDKs and emulators for Windows Phone 8.1 and Universal Windows Platform App development.
This can be done by navigating to Control Panel | Uninstall a program.
Next, choose Microsoft Visual Studio Community 2015 and click Change | Modify.
Next, select the features to be updated.
Click UPDATE and wait till the selected features are added to Visual Studio.
Lastly, we need vulnerable apps for practicing the concepts. All the Apps we use in this series will be provided to the readers. We will also see the App installation instructions later in this series.
This article covers the introduction and background required to start learning Windows Mobile Application Penetration Testing. We have also seen the requirements for setting up Windows Phone 8.1 emulators and Windows 10 mobile emulators.