MobSF框架分析
总体
mobSF使用django框架开发,使用sqlite进行的存储,可以上传代码、app、zip进行扫描,可以进行静态分析和动态分析
静态扫描
静态扫描就是反编译apk的过程,对反编译后的代码进行四大组件的分析,在AndroidManifest中把所有能被调用的组建进行查找;后面对代码进行分析,通过工具获取到反编译后的代码,使用正则对代码提取关键子。
过程:
上传apk后,首先进行zip的解压,而后使用AXMLPrinter2.jar提取app中的AndroidManifest.xml文件,对AndroidManifest.xml进行分析,获取暴露出来的
SERVICES,ACTIVITIES,RECEIVERS,PROVIDERS,LIBRARIES,PERM,PACKAGENAME,MAINACTIVITY,MIN_SDK,MAX_SDK,TARGET_SDK,ANDROVER,ANDROVERNAME MANIFEST_ANAL,EXPORTED_ACT,EXPORTED_CNT
分析权限找到危险的权限行为
使用CertPrint.jar分析证书问题
后面使用Dex2Jar将dex转变为jar文件,使用到的enjarify
使用Dex2Smali(baksmali.jar)将dex转变为smali代码
使用jd-core.jar、cfr_0_115.jar、procyon-decompiler-0.5.30.jar将jar包转为为可读的java代码
对代码中的字符进行分析,获取app中的url、email等信息
动态分析
动态分析的架构比较麻烦,惨用了virtualbox构造app的运行环境,并使用了virtualbox的操作api,利用adb相关操作,设置代理等操作,获取app的运行相关信息
过程:
创建虚拟运行环境
获取VM的uuid和Snapshot UUID、运行虚拟机的ip等设置在setting里面。
设置代理
startTornado?
连接虚拟运行环境
adb, "connect",getIdentifier()
重新挂载
if settings.REAL_DEVICE: subprocess.call([adb, "-s", getIdentifier(), "shell", "su", "-c", "mount", "-o", "rw,remount,rw", "/system"]) else: subprocess.call([adb, "-s", getIdentifier(), "shell", "su", "-c", "mount", "-o", "rw,remount,rw", "/system"]) #This may not work for VMs other than the default MobSF VM subprocess.call([adb, "-s", getIdentifier(), "shell", "mount", "-o", "rw,remount", "-t", "rfs", "/dev/block/sda6", "/system"])
安装app并启动
adb -s 设备id install -r apk_path adb -s deviceid shell am start -n app
获取运行窗口
[adb, "-s", getIdentifier(), "shell", "dumpsys" ,"window"]
抓取运行窗口
subprocess.call([adb, "-s", getIdentifier() ,"shell", "screencap", "-p", "/data/local/screen.png"]) subprocess.call([adb, "-s", getIdentifier() ,"pull", "/data/local/screen.png", SCRDIR + "screenshot-"+str(r)+".png"])
启动暴露出的activity和模拟点击
subprocess.call([adb, "-s", getIdentifier(), "shell", "am","start", "-n", PKG+"/"+line]) Wait(4) subprocess.call([adb, "-s", getIdentifier(), "shell", "screencap", "-p", "/data/local/screen.png"]) #? get appended from Air :-() if activity names are used subprocess.call([adb, "-s", getIdentifier(), "pull", "/data/local/screen.png", SCRDIR + "expact-"+str(n)+".png"]) print " [INFO] Activity Screenshot Taken" subprocess.call([adb, "-s", getIdentifier(), "shell", "am", "force-stop", PKG]) print " [INFO] Stopping App"
args=[adb, "-s", getIdentifier(), "shell","input","tap",x_axis,y_axis]
安装xposed框架和证书
os.system(adb+" -s "+getIdentifier()+" logcat -d dalvikvm:W ActivityManager:I > ""+APKDIR + "logcat.txt"") print " [INFO] Downloading Logcat logs" #os.system(adb+" -s "+getIdentifier()+" logcat -d Xposed:I *:S > ""+APKDIR + "x_logcat.txt"") subprocess.call([adb, "-s", getIdentifier(), "pull", "/data/data/de.robv.android.xposed.installer/log/error.log", APKDIR + "x_logcat.txt"]) print " [INFO] Downloading Droidmon API Monitor Logcat logs" #Can"t RCE os.system(adb+" -s "+getIdentifier()+" shell dumpsys > ""+APKDIR + "dump.txt""); print " [INFO] Downloading Dumpsys logs" subprocess.call([adb, "-s", getIdentifier(), "shell", "am", "force-stop", PACKAGE]) print " [INFO] Stopping Application" subprocess.call([adb, "-s", getIdentifier(), "shell", "am", "force-stop", "opensecurity.screencast"]) print " [INFO] Stopping ScreenCast Service"
若有收获,就点个赞吧
面向未来!5G标杆旗舰荣耀V30系列发布11月26日下午,荣耀在北京举办新品发布会,正式发布旗下首款5G旗舰荣耀V30系列。外观方面,荣耀V30系列采用经典秩序之美的设计理念,采用四曲面3D玻璃机身,提供魅海星蓝曙光之橙
一轮会员疯涨之后,爱奇艺要涨价了近日,爱奇艺会员及海外业务群总裁杨向华对外公开表示爱奇艺正在酝酿会员费用上涨,不排除会员率先提价,但并无时间表。爱奇艺第三季度财报显示,Q3爱奇艺营收约74亿元,会员费收入占50达
华为P40明年3月发布,设计前所未有近日有媒体报道,对于P40系列,华为消费者CEO余承东最近在接受法国媒体采访P40系列还是海外发,此外1华为P40P40Pro将于2020年3月在法国发布,而且P40P40Pro系
OPPOReno3要来,ColorOS7和双模5G助力,采用挖孔屏设计今天上午,非知名爆料网友(OPPO副总裁沈义人小号)自信的眉毛通过微博投稿表示OPPOReno3Pro将采用正背双3D玻璃,厚度仅为7。7mm(不含镜头凸起部分),大概可能是同期同
给程序员的15条日常小技巧浮云00吃掉那只青蛙浮云作者BrianTracy曾经说过吃掉那只青蛙意思是说,最难的任务要最先做。比如,你有一些编程任务需要完成,而且你事先知道这项工作非做不可,甚至需要更多的学习
2020年中国动漫产业研究报告核心摘要从发展阶段看,以4K超高清制式和定格动画为代表,全世界正进行新一轮动画制作产业升级周期,而AI等新技术在动漫工业中的研发使用则是必然的趋势,因此技术也同样决定着未来中国动漫
精彩回顾中小微企业终将走上数字化转型之路2020年,新冠疫情逐渐蔓延开来,为中国乃至全球的经济前景带来了巨大的不确定性,同时给中小微企业也带来了巨大的生存危机,如何快速实现复工复产成为了中小微企业迫在眉睫的难题。5月26
2020年中国企业服务研究报告核心摘要本质是社会分工及复用企业服务的本质是社会的分工,而社会分工的本质是智力资产(知识经验工作流等)的复用。这种本质决定了企业服务是不可逆的,种种顾虑(如对安全的担心)只能推迟不
中国古代三大工程中国古代三大工程是指新疆的坎儿井和万里长城和京杭大运河。坎儿井坎儿井,是井穴的意思,早在史记中便有记载,时称井渠,而新疆维吾尔语则称之为坎儿孜。坎儿井是荒漠地区一特殊灌溉系统,普遍
古代十大乐器古代十大乐器一般是指琵琶二胡编钟箫笛瑟琴埙笙和鼓这十种民族乐器。中国古典乐器一般按八音分类。八音就是我国最早按乐器的制造材料来对乐器进行分类的方法,最早见于周礼春宫,分为金石土革丝
世界四大切花切花通常是指从植物体上剪切下来的花朵花枝叶片等的总称。它们为插花的素材,也被称为花材。用于插花或制作花束花篮花圈等花卉装饰。传统的四大切花为月季菊花香石竹(即康乃馨)唐菖蒲(即剑兰