±à¼ÍƼö: |
±¾ÎĽ«Ö÷Òª½éÉܸ÷·ÖÎö¹¤¾ßÔÚ¶ÔAPK½øÐо²Ì¬¡¢¶¯Ì¬·ÖÎöʱ£¬Ê¹Óõ½µÄ¼¼Êõ½øÐзÖÎö¡£ ±¾ÎÄÀ´×ÔÓÚ¸öÈË΢²©£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£
|
|
MobSF
MobSF£¬È«³Æ£¨Mobile-Security-Framework£©£¬ÊÇÒ»¿îÓÅÐãµÄ¿ªÔ´Òƶ¯Ó¦ÓÃ×Ô¶¯·ÖÎöƽ̨¡£¸Ãƽ̨¿É¶Ô°²×¿¡¢Æ»¹ûÓ¦ÓóÌÐò½øÐжñÒâ´úÂë×Ô¶¯·ÖÎö£¬²¢ÔÚweb¶ËÊä³ö±¨¸æ¡£¸Ãƽ̨ͬʱ°üº¬¾²Ì¬·ÖÎöºÍ¶¯Ì¬·ÖÎö¹¦ÄÜ£¬¾²Ì¬·ÖÎöÊÊÓÃÓÚ°²×¿¡¢Æ»¹ûÓ¦ÓóÌÐò£¬¶ø¶¯Ì¬·ÖÎöÔÝʱֻ֧³Ö°²×¿Ó¦ÓóÌÐò¡££¨PS£ºÆäweb½çÃæÏ൱ÃÀ¹Û£¬¶øÇÒÖ§³Ö·ÖÎö½á¹û´æÈëÊý¾Ý¿â£¬·½±ã¼ìË÷£©
¾²Ì¬·ÖÎöʵÏÖÔÀí
MobSFʵÏÖ¾²Ì¬·ÖÎöµÄ´úÂëλÓÚStaticAnalyzerĿ¼Ï£¬ÆäĿ¼ÖÐÎļþÈçÏ£º

¾²Ì¬·ÖÎöͬʱ֧³Ö¶ÔAPK¡¢IPAÁ½ÖÖÎļþ¸ñʽµÄÖ§³Ö£¬±¾ÎÄÖ÷Òª·ÖÎöÆä´¦ÀíAPKÎļþµÄÁ÷³Ì¼°¼¼Êõ¡£ÆäÖ÷Òª´¦ÀíÁ÷³ÌÔÚandroid.pyÖС£Ïȶ¨Î»µ½StaticAnalyzerº¯ÊýÖУ¬ºöÊÓËùÓÐweb´¦Àí·½ÃæµÄÄÚÈÝ£¬µÃµ½Æä¹Ø¼ü´úÂëÒÔ¼°Á÷³ÌÈçÏ£º

·ÖÎöÉÏÊöÖ÷´úÂëÁ÷³Ì¿ÉÖª£¬MobSFÖÐÖ÷Òª½øÐжñÒâ´úÂë·ÖÎöµÄº¯ÊýÓУºManifestAnalysis¡¢CodeAnalysisStrings¡£¶Ôapk½øÐд¦ÀíµÄÁ÷³ÌÈçÏ£º
a. ½âѹapk
b. »ñÈ¡Îı¾Ä£Ê½AndroidManifest.xml
c. ×Ô¶¯·ÖÎöAndroidManifest.xmlÖÐÐÅÏ¢
d. dexתjar
e. dexתsmali
f. jarתjava
g. ×Ô¶¯·ÖÎö·´±àÒëµÃµ½µÄjava´úÂë
ÆäÖÐManifestAnalysisº¯ÊýÖ÷Òª¹¦ÄÜ´óÖÂÈçÏ£º

´ÓManifestAnalysisº¯ÊýÖ÷ÒªµÄ×÷ÓÃÊǶÔAndroidManifest.xml½øÐнâÎö£¬ÌáÈ¡ÆäÖÐpermission¡¢granturipermissions¡¢application¡¢activties¡¢services¡¢intents¡¢actionsµÈ£¬½«·ÖÎö½á¹ûÖ±½Óͳ¼Æ²¢·µ»Øµ½Ç°¶ËÒ³Ãæ½øÐÐչʾ¡£
CodeAnalysis¹¦ÄÜ´óÖÂÈçÏ£º

ÆäÔ´Âë·ÖÎö²¿·ÖÖ÷ÒªÀûÓÃÕýÔò±í´ïʽ¶ÔjavaÔ´Âë½øÐÐÆ¥ÅäÀ´ÊµÏֵġ£Ö÷Ҫͨ¹ýÆ¥Åä³£¼û·½·¨ÖеĹؼü´ÊÀ´ÌáȡԴÂëÖÐÓõ½µÄ·½·¨£¬Í¨¹ýÆ¥ÅäÃô¸Ð¹Ø¼ü´ÊÀ´ÌáÈ¡Õ˺ÅÃÜÂëµÈÐÅÏ¢£¬Í¨¹ýÆ¥Åä³£¼ûAPI×Ö·û´®À´Åж¨ÊÇ·ñÓе÷ÓÃÕâЩAPI£¬Í¨¹ýÆ¥ÅäURL¡¢EmailµÄ¸ñʽÀ´ÌáȡԴÂëÖеÄURLºÍÓÊÏäÐÅÏ¢¡£
Æ¥ÅäµÃµ½½á¹ûºó£¬ÕûºÏ½á¹û£¬Êä³öµ½Ç°¶Ëչʾ³öÀ´¡£ÖÁ´Ë£¬¶¯Ì¬·ÖÎö½á¹ûÈ«²¿Êä³ö¡£Ç°¶ËչʾÈçͼËùʾ£º

¶¯Ì¬·ÖÎöʵÏÖÔÀí
¡¡¡¡MobSFͬʱ»¹Ö§³Ö¶Ô°²×¿³ÌÐò½øÐж¯Ì¬·ÖÎö£¬Ö÷ÒªÊÇÀûÓð²×¿ÐéÄâ»ú£¬°²×°ÀýÈçxposedµÈ¿ò¼Ü£¬¶øºó°²×°²¢ÔËÐÐÐè·ÖÎöµÄÑù±¾¡£µÃµ½Ñù±¾Êä³öµÄÈÕÖ¾£¬·ÖÎöÈÕÖ¾²¢ÔÚǰ¶Ëչʾ³öÀ´¡£
¡¡¡¡Æä¶¯Ì¬·ÖÎöÖ÷ҪĿ¼½á¹¹ÈçÏÂͼ£º

¡¡¡¡DynamicAnalyzer/viewsĿ¼ÏµÄandroid.pyÔòÕýÊÇÐèÒªÖØµã·ÖÎöµÄ£¬¸ù¾ÝÆäǰ¶ËÕ¹Ê¾Ò³Ãæ¿ÉÖªÆäÖ÷Òª¹¦ÄÜÓУº

1.Environment Created
2.Start / Stop Screen
3.Install / Remove MobSF RootCA
4.Start Exported Activity Tester
5.Start Activity Tester
6.Take a Screenshot
7.Finish
½ÓÏÂÀ´¶ÔÔ´ÂëÖÐÕë¶Ô¸÷¹¦ÄܵÄʵÏÖ¹ý³Ì½øÐзÖÎö¡£
Environment Created
Õⲿ·Ö£¬Ö÷ÒªÊÇ×öһЩ»·¾³µÄ¼ì²â£¬ÒÔ¼°ÉèÖÃweb´úÀí¡¢ÉèÖÃadbÁ¬½Ó¡¢Ñù±¾°²×°ÔËÐй¤×÷£¬Ö÷Òª´úÂëÈçÏ£º

ËùÒÔ£¬Õû¸öÁ÷³Ì´óÖÂΪ£º
1.ÀûÓÃpyWebProxyÖÐÌṩµÄ¹¦ÄÜÉèÖÃweb´úÀí¡£ÓÃÀ´×¥È¡APP·ÃÎÊÁ÷Á¿¡£
2.½¨Á¢adbÁ¬½Ó adb connect ip:port
3.°²×°ÔËÐгÌÐò adb install -r xxx.apk adb
shell am start -m xxx
4.»ñÈ¡ÆÁÄ»´óС adb shell dumpsys windows
| grep mUnrestrictedScreen
Start / Stop Screen¡¡¡¡
MobSFÖÐÌṩʵʱ²Ù×÷¹¦ÄÜ£¬ÆäʵÏÖÖ÷ÒªÀûÓÃÆÁÄ»Â¼ÖÆÈí¼þscreencastÌṩµÄ·þÎñ£¬ÆäʵÏÖ´úÂëÈçÏ£º

ÔÚÆäÖпªÆô·þÎñºó£¬ÁíÆðÁËÒ»¸öÏß³ÌScreenCastServiceÀ´¶Ôscreencast·þÎñ½øÐд¦Àí£º

ScreenCastService²»Í£µØ·ÃÎÊSCREEN_DIR£¬¶ÁÈ¡¸ÃÎļþ¼ÐϵÄͼƬÎļþ£¬²¢ÇÒ½«Í¼Æ¬Êý¾ÝÊä³öµ½web¶Ë½øÐÐÏÔʾ¡£´Ó¶øÍê³ÉÔ¶³ÌʵʱÏÔʾµÄ¹¦ÄÜ¡£Í¬Ê±MobSF»¹ÌṩԶ³Ì²Ù×÷µÄ¹¦ÄÜ£¬¾ßÌåʵÏÖ´úÂëÔÚTouchº¯ÊýÖУ¬¾ßÌåʵÏÖÈçÏ£º

ÓÉÔ´Âë¿ÉÖªÆäÖ÷ҪʵÏÖ¹ý³ÌÊÇ£¬»ñÈ¡ÆÁÄ»µã»÷ʱµÄ×ø±ê£¬Í¨¹ýadb shell
input tapÀ´Íê³Éµã»÷²Ù×÷¡£
Install / Remove MobSF RootCA
°²×°¡¢Ð¶ÔØRootCA£¬Ö÷ÒªÊÇΪÁË·½±ã¶ÔÑù±¾ÖÐHTTPSÁ÷Á¿½øÐнػñ¡£Ö÷ҪʵÏÖ¹ý³ÌÈçÏ£º
1.adb push ca.crt /data/local/tmp/xxx
2.adb shell su -c cp /data/local/tmp/xxx
/system/etc/security/cacerts/
3.Start /Stop Exported Activity Tester
Õⲿ·ÖÖ÷ÒªÊÇÏ뾡Á¿¶àµÄ´¥·¢Ñù±¾ÖÐËùÓÐÐÐΪ£¬MobSFµÄ×ö·¨ÊÇ£º±éÀúAndroidManifest.xmlÖеÄËùÓÐExported
Activity£¬²¢ÀûÓÃam startÀ´ÒÀ´ÎÆô¶¯£¬ÒÔ·½±ãxposedÄÜ»ñÈ¡µ½¸ü¶àµÄÈÕÖ¾¡£

ÆäÖ÷ÒªÁ÷³ÌÊÇ£º
1.»ñÈ¡¾²Ì¬·ÖÎöµÃµ½µÄexported activityÁбí
2.±éÀúactivity£¬²¢ÓÃadb -s IP:PORT shell
am start -n PACKAGE/ACTIVITY Æô¶¯ÏàÓ¦µÄactivity
3.»ñÈ¡µ±Ç°activityÔËÐÐʱµÄÆÁÄ»½ØÍ¼ adb -s IP:PORT
shell screencap -p /data/local/screen.png
4.±£´æ¸Ã½ØÆÁ
5.Ç¿ÖÆ¹Ø±Õ¸ÃÓ¦Óà adb -s IP:PORT shell am
force-stop PACKAGE
Start / Stop Activity Tester
ÓëExported Activity²»Í¬µÄÊÇ£¬Õâ¸ö²âÊÔ½«»á±éÀúAndroidManifest.xmlÖÐËùÓÐActivity£¬¶ø²»µ¥µ¥ÊÇExported¡£ÆäÁ÷³ÌÓë´¦ÀíExported
ActivityÒ»Ö¡£ËùÒÔ²»×öÖØ¸´²ûÊö¡£
Take a Screenshot
¼´£¬½ØÆÁ£¬È»ºó±£´æµ½±¾µØ¡£¾ßÌåʵÏÖÊÇ£º
1.adb -s IP:PORT shell screencap
-p /data/local/screen.png
2.adb -s IP:PORT pull /data/local/screen.png
xxxx/xxx.png
Finish
³ýÁËÇ°Ãæ½éÉܵö¹¦ÄÜÍ⣬»¹ÐèÒª½éÉÜÆäÖ÷Òª¶¯Ì¬ÐÅÏ¢»ñÈ¡ÒÔ¼°Êä³öÈÕÖ¾·ÖÎöʱÓõ½µÄһЩº¯Êý¡£
ÔÚFinialTestÖУ¬Ö÷Òª×öһЩɨβµÄ¹¤×÷£¬½«³ÌÐòÔËÐйý³ÌÖÐËùÓÐdalvikvmµÄ
Warning ºÍActivityManager µÄ Information ÊÕ¼¯ÆðÀ´£ºadb -s
IP:PORT logcat -d dalvikvm :W ActivityManager:I >
logcat.txt¡£Í¬Ê±£¬½«XposedĿ¼ÏµÄAPI¼à¿ØÈÕÖ¾ÌáÈ¡³öÀ´£ºadb -s IP:PORT
pull / data /data / de.robv.android.xposed.installer
/ log / error.log x_logcat.txt¡£ÔÙ dumpsys £ºadb -s IP:PORT
shell dumpsys > dump.txt ¡£
³ý´ËÖ®Í⣬ƽ̨»¹»áÀûÓÃdatapusherÀ´´ò°üÑù±¾°²×°ÔËÐкóÁôϵÄÎļþ£ºadb
-s IP : PORT shell am startservice -a PACKAGE opensecurity
. ajin.datapusher / .GetPackageLocation ¡£
MobSF¶ÔÈÕÖ¾µÄ·ÖÎö¹¦ÄÜÖ÷ÒªÔÚAPIAnalysisºÍRunAnalysisÁ½¸öº¯ÊýÖУ¬ºÍ¾²Ì¬ÈÕÖ¾·ÖÎöÒ»Ñù£¬¶¯Ì¬ÈÕÖ¾·ÖÎöÒ²ÊÇÒÔÕýÔòÆ¥ÅäΪÖ÷£¬APIAnalysisÖ÷Òª¶Ôx_logcat.txtÖÐDroidmon.apk²úÉúµÄÈÕÖ¾½øÐд¦Àí£¬Ö÷Òª½øÐÐAPIµ÷Ó÷ÖÎö£¬Ö÷Òª´úÂëÈçÏ£º

ÆäRunAnalysisº¯ÊýÖ÷Òª´¦ÀíÑù±¾ÔËÐкóÁôϵÄWebTraffic.txt¡¢logcat.txt¡¢x_logcat.txtÖÐ

ÔÚRunAnalysisÖУ¬MobSFÊ×ÏÈÓÃÕýÔòÆ¥Åä³öËùÓпÉÄܵÄurl£¬¶øºóÔÙ´ÓÍøÉÏͬ²½ÏÂÀ´×îеĶñÒâurl¼¯ºÏ£¬È»ºóÔÙÒ»Ò»¶Ô±ÈÍê³É¶ÔurlµÄ¼ø¶¨¡£
´ËÍ⣬RunAnalysis»¹»á¶ÔÑù±¾ÔËÐвúÉúÊý¾Ý½øÐзÖÀ࣬ͬʱƥÅä³ö¿ÉÄܵÄÓÊÏä¡£
ÖÁ´Ë£¬MobSFÍê³ÉÁËËùÓеļì²âºÍ·ÖÎö¹¤×÷£¬²¢ÇÒ½«ËùÓпÉÓÃÐÅÏ¢Êä³öµ½web½çÃæ£¬·½±ã·ÖÎöÈËÔ±½øÐзÖÎö¡£Æä¶¯Ì¬·ÖÎö½á¹û½çÃæÈçͼ£º

×ܽá
´ÓÉÏÎĶÔÔ´ÂëµÄ·ÖÎö´óÖ¿ÉÖªMobSFµÄ¹¤×÷ÔÀíÒÔ¼°Á÷³Ì¡£
ÔÚ¶ÔÑù±¾½øÐо²Ì¬·ÖÎöʱ£¬MobSFÖ÷ҪʹÓÃÁËÏÖÓеÄdex2jar¡¢dex2smali¡¢jar2java¡¢AXMLPrinter¡¢CertPrintµÈ¹¤¾ß¡£ÆäÖ÷ÒªÍê³ÉÁËÁ½Ï×÷£º½âÎöAndroidManifest.xmlµÃµ½ÁËÓ¦ÓóÌÐòµÄ¸÷ÀàÏà¹ØÐÅÏ¢¡¢¶Ôapk½øÐз´±àÒëµÃµ½java´úÂ룬¶øºóÀûÓÃÕýÔòÆ¥ÅäÕÒ³ö¸ÃÑù±¾Ö÷Òª½øÐÐÁËÄÄЩ¹¤×÷¡£
¶øÔÚ¶ÔÑù±¾½øÐж¯Ì¬·ÖÎöʱ£¬MobSFÖ÷ÒªÀûÓõ½ÁËXposed¿ò¼Ü¡¢DroidmonʵÏÖ¶ÔÓ¦ÓóÌÐòµ÷ÓÃAPIµÄÇé¿ö½øÐÐ¼à¿Ø£¬²¢ÇÒ¿ÉÁé»îά»¤Ò»·ÝÐèÒªhookµÄAPIÁÐ±í¡£Í¬Ê±£¬MobSF»¹Ê¹ÓÃÁËDataPusherÀ´¶ÔÑù±¾Êý¾Ý½øÐдò°ü¡¢Ê¹ÓÃÁËScreenCast½áºÏadb
shell inputÍê³É¶ÔÊÖ»úµÄÔ¶³Ì¿ØÖƹ¦ÄÜ¡£µ±È»£¬ÆäÖл¹Ê¹ÓÃÒþ²ØrootȨÏÞ¡¢Î±Ôì³ÉÕýʽ»úÆ÷µÈ¼¼ÊõÀ´Ó¦¶ÔһЩ·´ÐéÄâ»úµÄ³ÌÐò¡£ÆäÖ÷Òª×öÁËһϼ¸¼þÊ£º1¡¢ÀûÓÃwebproxyʵÏÖ´úÀí½ø¶øÀ¹½ØÑù±¾Á÷Á¿¡£2¡¢°²×°Ö¤ÊéÒÔ±ãÀ¹½ØhttpsÁ÷Á¿¡£3¡¢±éÀúËùÓÐactivity£¬¾¡Á¿¶àµÄ»ñÈ¡¸÷activityÔËÐеõ½µÄÈÕÖ¾¡£4¡¢ÀûÓÃÕýÔòÆ¥Åä³öAPI¼°²ÎÊýºÍ·µ»ØÖµ¡£5¡¢ÊµÊ±¸üжñÒâurl¿â£¬ÒÔurlÐÅÏ¢ÌØÕ÷½øÐвéɱ¡£
Æäʵ£¬×î×î×îÖØÒªµÄÒ»µãÊÇ£¬MobSFËùÓзÖÎö½á¹û¶¼ÔÚweb¶Ëչʾ£¬¹Ø¼üÊÇ£¬½çÃæºÜÃÀ¡¢ºÜÃÀ¡¡
|