Top Banner
QARK
22

Qark DefCon 23

Jan 15, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Qark DefCon 23

QARK

Page 2: Qark DefCon 23

WHO are we?

PENETRATION TESTERS AT LINKEDIN

• STAFF INFORMATION SECURITY ENGINEER

TONY TRUMMER

• SENIOR INFORMATION SECURITY ENGINEER

TUSHAR DALVI

Page 3: Qark DefCon 23

WHAT IS QARK?

QUICK ANDROID REVIEW KIT

AN AUDITING AND ATTACK FRAMEWORK

A PROGRESSION OF OTHER TOOLS/IDEAS

A PINCH OF INNOVATION

LOTS OF (HORRIBLY WRITTEN) PYTHON

Page 4: Qark DefCon 23

QARK’s mission

RAISE THE BAR

SHARE KNOWLEDGE

COMMUNITY INVOLVMENT

MOTIVATE OTHERS

Page 5: Qark DefCon 23

ANDROID ISSUES

FRAGMENTATION

USERS DON’T UPDATE

IMPROPER TLS, IF ANY

NUMEROUS TAINTED SOURCES

CLIENT SIDE FAIL – NO ONE WILL KNOW

Page 6: Qark DefCon 23

MOTIVATION

WE’RE LAZY OUR BOSS IS CRAZY

WE HAVE LOTS OF APPS TO

PROTECT

DEVELOPERS ARE EVEN

LAZIER THAN US

WE HATE REPEATING

BUGS

LOTS OF SMALL DEV SHOPS

(AKA NO SECURITY)

Page 7: Qark DefCon 23

UNDER THE HOOD PARSING: PLYJ, BEAUTIFULSOUP, MINIDOM

REVERSING: PROCYON, JD-CORE, CFR, DEX2JAR, APKTOOL

CODE: PYTHON

TOOLS & BUILDING: ANDROID SDK

Page 8: Qark DefCon 23

APK STRUCTURE

APKRESOURCES

.ARSC

/RES

ANDROID

MANIFEST.XML

CLASSES�.DEX

/META-INF

/LIB

/ASSETS

Page 9: Qark DefCon 23

REVERSING APKs GET

MANIFEST • APKTOOL D FOO.APK

UNZIP APK • APK TO ZIP; UNZIP

DALVIK BYTECODE • DEX2JAR CLASSES.DEX

JAVA BYTECODE

•  JD-GUI

RAW JAVA FILES

Page 10: Qark DefCon 23

ACQUISITION SIMPLIFIES APK RETRIEVAL FROM DEVICES

DECOMPRESSES APK

CONVERTS ANDROIDMANIFEST.XML TO TEXT

PARSES ANDROIDMANIFEST.XML

FINDS PERMISSIONS ISSUES

FINDS EXPORTED COMPONENTS, SUPPORTED VERSIONS, ETC.

Page 11: Qark DefCon 23

COMMUNICATION

SOURCES

WEBVIEWS

INTENTS NETWORK REQUESTS

DEEPLINK URLSAIDL

MESSAGES

Page 12: Qark DefCon 23

ACTIVITY

ONCREATE()

ONSTART()

ONRESUME()

ONPAUSE()

ONSTOP()

ONDESTROY()

ONRESTART()

SERVICE

ONCREATE()

ONBIND()

ONSTARTCOMMAND()

ONUNBIND()

ONDESTROY()

PROVIDER

ONCREATE()

RECEIVER

ONRECEIVE()

COMPONENTS

Page 13: Qark DefCon 23

PARSE STRUCTURE

MAPS MANIFEST TO CLASSES

PARSES JAVA CLASSES

LOCATES “ENTRY POINT” METHODS

Page 14: Qark DefCon 23

SOURCE TO SINK

FINDS SOURCES OF TAINTED INPUT

TRACKS POTENTIALLY TAINTED INPUT

RECORDS ANY “SINKS” ENCOUNTERED

STORES INFORMATION GATHERED ALONG WITH MANIFEST DETAILS FOR LATER USE

SECURITY MAGIC

Page 15: Qark DefCon 23

QARK CHECKS EXAMINES WEBVIEW CONFIGURATIONS AND

PROVIDES TEMPLATED HTML FILES FOR VALIDATION OF VULNERABILITIES

LOOKS FOR COMMON X.509 CERTIFICATE VALIDATION ISSUES

LOOKS FOR VULNERABILITIES ORIGINATING FROM WITHIN THE APP, INSPECTING

BROADCAST, STICKY AND PENDING INTENTS

LOOKS FOR EMBEDDED PRIVATE KEYS AND INCORRECTLY IMPLEMENTED CRYPTO ISSUES

LOOKS FOR WORLDREADABLE AND WORLDWRITEABLE FILES

Page 16: Qark DefCon 23

DEMO TIME !!

Page 17: Qark DefCon 23

UNIQUE FEATURES USES MULTIPLE DECOMPILERS TO PROVIDE

BETTER RESULTS

BUILDS AN APK FOR MANUAL TESTING

CONTAINS SWISS-ARMY KNIFE STYLE SET OF FUNCTIONALITIES

CREATES ADB COMMANDS TO EXPLOIT DISCOVERED VULNERABILITIES

CREATES CUSTOM EXPLOIT APK FOR POINT-AND-CLICK PWNAGE

Page 18: Qark DefCon 23

QARK Is NOT (YET)

A FORENSICS TOOL

A DYNAMIC ANALYSIS TOOL

PERFECT

FINISHED

Page 19: Qark DefCon 23

FUTURE PLANS DYNAMIC ANALYSIS FUNCTIONALITY

SMALI INSPECTION

NON-ANDROID SPECIFIC JAVA VULNS

ODEX SUPPORT

IMPROVE EXTENSIBILITY

ASK FOR YOUR HELP

Page 20: Qark DefCon 23

ACKNOWLEDGEMENTS MWR LABS: DROZER�

RAFAY BLALOCH, ET AL, FOR THE WEBVIEW EXPLOITS

NVISIUM: TAPJACKING CODE

THE AUTHORS AND MAINTAINERS OF ALL THE OPENSOURCE PROJECTS USED IN QARK

JASON HADDIX, SAM BOWNE, ET AL, FOR SUPPLYING SOME VULNERABLE APKS

Page 21: Qark DefCon 23

CONTACT INFO

WWW.SECBRO.COM

•  WWW.LINKEDIN.COM/IN/TONYTRUMMER@SECBRO1

TONY TRUMMER

•  WWW.LINKEDIN.COM/IN/TDALVI@TUSHARDALVI

TUSHAR DALVI

Page 22: Qark DefCon 23

WHERE TO GET QARK?

LINKEDIN’S GIT REPO

HTTPS://GITHUB.COM/LINKEDIN/QARK