TippingPoint Digital Vaccine Laboratories
DID YOU KNOW... DVLabs team members gave 20 presentations throughout 2010. Abstracts and slides are available here.

MOBOTS: WeatherFist Exposed

Last week, San Francisco was kind enough to play host to the annual RSA Security Conference. As you may remember from Jason Avery's last post, several TippingPointers were on-hand for the festivities. My colleague Derek Brown and I were fortunate to be granted an engagement in the "Research Revealed" track. We presented our case study in mobile phone botnets entitled "MOBOTS: A Pocketful of Pwnage." Catchy, right? We both felt that the talk was a great success and, despite the modest yet respectable attendance, the audience seemed to enjoy our antics as much as we did. As is the norm for such things, our live demonstration ran long and we didn't get to parlance with the audience for as long as we'd hoped. To that end, and for the benefit of those not fortunate enough to make it to The City by the Bay, we would like to expound on some of the specifics of the talk that have garnered the much of the post-RSA interest.

WeatherFist

WeatherFist, the harmless proof-of-concept application featured in the MOBOTS presentation, is a quick app we wrote for displaying weather information. In order to know what location to pull weather information for, the program uses a phone home technique to submit the user's current GPS coordinates in return for the local ZIP code. Phoning home is a typical way for a botnet to get in contact with a command and control server, so we wanted to see whether this technique would be allowed to slip through into the iPhone/Android marketplace via popular repositories like ModMyI and SlideMe. WeatherFist is not in any way a trojan or a backdoor and can easily be uninstalled via regular uninstallation mechanisms. No functionality or data will persist once the uninstall takes place. It is simply a proof-of-concept that allowed us to collect statistics for the case study. We submitted WeatherFist to the ModMyI (iPhone) and SlideMe (Android) repositories, where users downloaded and ran the application from their own phones. We currently have ~8400 unique downloads of WeatherFist (7700 iPhone and 700 Android) with 22000 hits with statistical data in our database. Even though WeatherFist did not collect any personally identifiable information, our research database will not be available to the public, nor do we have any plans to make it so.

We first decided to the take a run at this project last summer, while we were both enjoying the honeymoon with our respective smartphones. It took us a couple of months to dive into the different smartphone programming languages, but we were able to produce a multi-platform weather forecast display application. We split the development duty evenly - Derek wrote the Android application and I wrote the iPhone application. The purpose of the application is straight forward: deliver relevant demographic information to our host server and return relevant meteorological information to the client. Of course, this is nothing novel or particularly interesting; even as we employed the ubiquitous HTTP query string convention that you've all come to know and love. Google, for example, loves to stuff demographic data into their search query strings:

http://www.google.com/search?q=RSA+Conference&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a

In this case, Google is packing the query string with information pertaining to my search request, "RSA Conference." The tokens break down thusly:
q=the+thing+i+searched+for
ie=input encoding
oe=output encoding
aq=used firefox toolbar for search ((t)rue or (f)alse)
rls=location information from source
client=brand of web browser

Well, this is pretty much the type of information that we decided we would need to have in our possession in order to substantiate our claims as proof, rather than purely conjecture. Since we were seeking to demonstrate the feasibility of deploying a mobile botnet, we opted to send the following statistically germane demographics to our server with each request:

http://weatherfist/gps2zip?lat=10.101010&long=20.1234&d=a&n=abcdef12345678900987654321fedcba

For our purposes, the query string breaks down thusly:
lat=current latitude
long=current longitude
d=device type ((a)ndroid or (i)phone)
n=phone number MD5 hash

The latitude and longitude values serve two purposes. Firstly, the values are passed to a reverse geocoding method in order to obtain a ZIP code for the weather forecast request. Secondly, it provided us with data points with which to populate a distribution map. The device type data is used in precisely the way Google's "client" parameter is used: in order to track market share between our available application platforms. Finally, we opted to utilize an MD5 hashing algorithm with the client device's phone number (hence the "n") so that we would have a unique, but otherwise meaningless, device identification token. It would be very difficult for us to reverse the standard hashing algorithm to get the number back, and honestly, we have better things to do with our time.

Once we had the demographic data in our hands, we gave the client what they asked for: their local weather forecast. That is, the nice folks over at Weather Underground provided the client with the local weather after we populated the request string with the ZIP code we calculated from the "lat" and "long" query string parameters.

When we pushed the applications out for consumption a couple of months ago, we were mostly interested in discovering which avenues brought users to our door. We quickly discovered that the alternative application markets were bringing in volumes more traffic than our shameless self-promotion via social networking sites. In fact, merely placing our application in one of the alternative repositories effectively subsumed our previous efforts. Within hours of publishing the WeatherFist applications we saw tweets, retweets and various hashtag postings on several social networking sites. The Social Media Machine was doing our work for us; huzzah! In truth, I think we were both surprised by how quickly our download volume increased while the application was still fresh meat.

WeatherFistBadMonkey

It goes without saying that the only interesting things we got out this particular endeavor are the usage statistics. We didn't want to do anything particularly "interesting" to our loyal user base, either. For that we wrote the WeatherFistBadMonkey version and tested it on our own smartphones for this experiment.

WeatherFistBadMonkey is an extension to WeatherFist that allows us to take complete control over the userís phone. WeatherFistBadMonkey was not distributed publicly, it only serves as proof that it is possible to convert a mobile phone into a bot. To the user, there would be no difference between WeatherFist and WeatherFistBadMonkey. Behind the scenes, however, there is a substantial difference between the two. The malicious version will first submit the user's entire address book to our simulated command and control server including the contact's first name, last name, all email addresses, and all physical addresses. The functionality of the MOBOT includes polling our command and control server every five minutes for instructions. The instructions currently supported are: send an email, perform a DDoS of a website, and give us a reverse shell. The first two are pretty standard botnet functionality, while the third is the one that is most interesting. Opening a reverse shell gives us direct remote control over the phone. We are able to browse the entire file system, steal personal data (SMS text messages, browser cookies, etc), as well as deny access to vital applications such as "Phone" or "Messages". The possibilities are pretty much only bound by how malicious we intend to be. Since this happens over the Internet, both 3G and Wifi connectivity would satisfy our connectivity needs.

Closing Thoughts

The concepts of trojans, botnets, and backdoors is nothing new. With the explosive growth of smartphone technology in recent years, a massive amount of always-on and always-connected computers have appeared with little inherent protection against malicious programs. We are still working on doing some interesting things with the private WeatherFistBadMonkey code to show how dangerous a real world mobile phone botnet could be. We plan to continue exploring the security models associated with the mobile computing platforms, especially as they become even more prevalent in the complexion of contemporary enterprise networks.
Tags:
Published On: 2010-03-10 11:41:28

Comments post a comment

  1. Ibex the Fish commented on 2010-06-10 @ 12:38

    "It would be very difficult for us to reverse the standard hashing algorithm to get the number back..."

    Sure. But given that there are only a little over 5.5 billion legitimate phone numbers for the United States and Canada, it would be relatively trivial to create a hash table of all the hash values containing all the phone numbers and the values they hash to (although it might take most of a hard drive to store it). On a good GForce graphics card it would take less than half an hour to compute all of the hashes, although it would take longer to store them on the disk. Call it three hours to be on the safe side.

    Since the hash table is precomputed, you could do real-time matching of the phone numbers using the information you're sending.

    "... and honestly, we have better things to do with our time."

    I won't quibble with that. But it's probably just as well that you didn't make your database open to the public.

  2. Simon commented on 2010-07-11 @ 06:00

    Interesting experiment.

    However, unless you included the "BadMonkey" code in the distributed app, you're not getting an accurate representation about whether the malicious code would be spotted by whatever security measures exist on the iPhone or Android markets ?

    For example on Android market, I'd get suspicious when your weather app asked for access to my contacts ...

    Would be intrigued to see a demonstration of a phone app like this used for portscanning and compromising corporate networks - which we all know is possible.

  3. gpstracking commented on 2010-11-25 @ 16:13

    "the program uses a phone home technique to submit the user's current GPS coordinates in return for the local ZIP code." wow thats just great :) Smartphones are getting better and better...


Links To This Post

  1. TechTips » TechTips: Can My Smartphone Get a Virus?
    linked on 2010-03-29 @ 10:42 Show Comment

    As phones evolve to include even greater functionality the more vulnerable they are becoming to the same threats that plague our desktops and laptops. At a security conference in early March 2010, researchers demonstrated how they could send the malicious version of an application to smartphones via an auto-update feature.

  2. Roundtable: Apple iPad and Security vs. Freedom
    linked on 2010-04-07 @ 11:23 Show Comment

    Once the device is jail broken it can use apps that aren’t Apple-reviewed. TippingPoint researchers released a phony weather application called WeatherFist for jail broken iPhones (and Android phones). WeatherFist collected the owner’s user information, including their phone number and GPS coordinates. A malicious version, WeatherFistBadMonkey, could subvert a Droid or jail broken iPhone into a bot to send spam emails or launch DDoS attacks on Web sites. It was considered too dangerous to release into the wild and was kept in the lab.

  3. Mobile Bots – Smartphones beware - jayferron
    linked on 2010-04-21 @ 11:18 Show Comment

    or you can click here Technorati Tags: MOBOTS,Iphone,Andriod,Security exploit Smartphone

  4. All your smartphones are belong to us « The FORWARD project blog
    linked on 2010-04-28 @ 04:00 Show Comment

    Derek Brown and Daniel Tijerina, security researchers with TippingPoint’s Digital Vaccine Group, presented their findings from a research project called MOBOTS: Pocketful of Pwnage, which was designed to show how easy it would be to create a large mobile botnet. They wrote an application titled WeatherFist, which fetched local and other weather forecast information for its users from the Weather Underground Website. To do so, the ...

  5. Google uses remote delete to remove Android apps from smartphones
    linked on 2010-06-25 @ 07:18 Show Comment

    ... has, for the first time, used the "Remote Application Removal" security feature implemented in Android to remove apps from users' smartphones. The two applications in question were created by TippingPoint security researchers who had deployed the apps to demonstrate how easy it is to inject malicious applications into Android smartphones and jailbroken iPhones. Although the researchers had removed the applications from the Android Market, some users still had the apps installed on their phones, prompting Google to delete them remotely. In such cases users are notified that the deletion will occur. Google points out that the removed applications didn't cause any damage, having been designed to show how easy it was to infect smartphones rather than to cause any malicious infection. Other mobile device vendors also reserve the option for remote deletion and some ...

  6. Google uses remote delete to remove Android apps from smartphonesv « Codealis
    linked on 2010-06-25 @ 13:59 Show Comment

    Google uses remote delete to remove Android apps from smartphonesv Google has, for the first time, used the “Remote Application Removal” security feature implemented in Android to remove apps from users’ smartphones. The two applications in question were created by TippingPoint security researchers who had deployedthe apps to demonstrate how easy it is to injectmalicious applications into Android smartphones and jailbroken iPhones.

  7. heise online – Google löscht Android-App auf Smartphones aus der Ferne [Update] | Lengemanns Welt
    linked on 2010-06-27 @ 05:01 Show Comment

    ... implementierte Sicherheitsfunktion “Remote Application Removal” Apps auf Smartphones von Anwendern zu löschen. Konkret handelte es sich um zwei Anwendungen von Sicherheitsforschern von TippingPoint, die die Apps in Umlaufgebracht hatten, um zu zeigen, wie leicht sich eine bösartige Anwendung auf Tausenden von Android-Smartphones und per Jailbreak modifizierten iPhonesbringen lässt.” Weiter lest Ihr hier: heise online – Google löscht Android-App auf Smartphones aus der Ferne [Update].

  8. Google löscht Android-App auf Smartphones aus der Ferne - Seite 6 - Android-Hilfe.de
    linked on 2010-06-28 @ 05:22 Show Comment

    AW: Google löscht Android-App auf Smartphones aus der Ferne ich Zitire "um zu zeigen, wie leicht sich eine bösartige Anwendung auf Tausenden von Android-Smartphones und per Jailbreak modifizierten iPhones bringen lässt." die zwei haben gezeigt wie leicht es geht und google hat gezeit wie schnell sie sie entfernen können.. mit wäre es auch lieber wenn ich entscheiden kann wer was bei mir auf dem handy macht aber um "normale" User zu schützen muss man einem konzern ...

  9. Android-Apps und ihre Zugriffswünsche ... ScareWare.de
    linked on 2010-08-19 @ 10:27 Show Comment

    Tipping Point über die hauseigenen Versuchen, mit PoC-Apps Android zu infiltrieren: dvlabs.tippingpoint.com


Trackback