新技术论坛
搜索
查看: 1870|回复: 0
打印 上一主题 下一主题

移动应用渗透测试的军火库清单(转自FreeBuf)

[复制链接]
  • TA的每日心情
    无聊
    2016-7-18 08:29
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    扫一扫,手机访问本帖
    楼主
    跳转到指定楼层
    发表于 2016-2-4 21:45:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 shouwang 于 2016-2-4 21:47 编辑

    本文将针对主流移动平台(Android和iOS)的渗透测试工具按照类别整理出来,同时对每个工具进行了简短介绍并列出推荐指数,方便大家快速找到自己需要的工具,进一步提高渗透测试的工作效率。如果需要进一步了解工具的安装及其使用方法,你可以打开工具相关的链接。对于希望涉足这个领域的朋友,可以通过学习参考本文列出的工具,建立初步的认识。


    一、All-in-One移动安全框架

    MobSF:一款开源的智能化、集成化、自动化的移动应用(Android/iOS)渗透测试框架,可以执行静态和动态分析。(★★★★★)

    python manage.py runserver 127.0.0.1:1337二、Android应用渗透测试1. 渗透仿真环境

    Appie:一款便携式的Android渗透测试工具包,是现有虚拟机的绝佳替代者。(★★★★☆)

    Android Tamer:一个面向Android安全人员的虚拟/在线的平台。(★★★☆☆)

    AppUse:一款AppSec实验室开发的虚拟机。(★★★☆☆)

    Andro14b:也是一款虚拟机,主要目的是Android应用程序的评估、逆向工程以及恶意代码分析。(★★★☆☆)

    Mobisec:一个移动安全在线测试环境。(★★★☆☆)

    Santoku:一款操作系统,可以脱离虚拟机作为一个独立的操作系统运行。主要功能是逆向工程和静态分析。(★★★☆☆)

    2. 逆向工程和静态分析

    APKInspector:一款强大的Android应用程序分析的图形化工具。(★★★☆☆)

    APKTool:一款逆向分析二进制Android应用的工具。它可以将资源解码成原始格式,修改之后在重新打包成安装包。(★★★★☆)

    -反汇编- apk文件

    apktool d APK文件

    -使用数字签名把解码后的资源重新打包成APK/JAR文件

    apktool b 修改后的文件夹keytool -genkey -v -keystore keys/test.keystore -alias Test -keyalg RSA -keysize 1024 -sigalg SHA1withRSA -validity 10000jarsigner -keystore keys/test.keystore dist/test.apk -sigalg SHA1withRSA -digestalg SHA1 Test

    Dex2jar:一款将.dex文件转换成.class文件的工具(可通过zip压缩成jar)。(★★★★☆)

    -把apt文件转换成jar文件

    dex2jar apk文件

    Oat2dex:一款将.oat文件转成.dex文件的工具。

    -Boot类反优化(Deoptimize) (输出会在“odex” 和 “dex”文件夹)

    java -jar oat2dex.jar boot [boot.oat file]

    -应用反优化(Deoptimize)

    java -jar oat2dex.jar [app.odex] [boot-class-folder output from above]

    -从oat获取odex文件

    java -jar oat2dex.jar odex [oat file]

    -从oat/odex获取odex smali (优化过的操作码)

    java -jar oat2dex.jar smali [oat/odex file]

    JD-Gui:一款反编译和分析Java代码的工具。(★★★☆☆)

    FindBugs + FindSecurityBugs:FindeSecurityBugs是FindBugs的一个扩展,包含了Java应用程序的安全规则。(★★★☆☆)

    Qark:此工具是通过源码或已打包的APK文件来挖掘Android应用安全相关的漏洞。(★★★☆☆)

    AndroBugs:AndroBugs框架是一款高效的Android漏洞扫描器,可以帮助开发人员或渗透测试人员在Android应用程序查找潜在的安全漏洞。不需要在Windows上安装。(★★★☆☆)

    Simplify:该工具可以将Android程序包解混淆并生成Class.dex,然后我们使用Dex2jar和JD-GUI工具查看dex文件的内容。(★★★☆☆)

    simplify.jar :输入的smali文件或文件夹 -o 输出的dex文件。

    ClassNameDeobfuscator:一个简单脚本,可以解析由apktool生成的.smali文件,提取.source注释行。

    3.动态和运行时分析

    Introspy-Android:黑盒测试工具,帮助我们理解Android应用程序在运行时的行为,协助我们识别潜在的安全问题。(★★★☆☆)

    Cydia Substrate:允许开发人员修改现有的应用程序,它通过将Substrate扩展注入到目标进程内存的方式实现。(★★★☆☆)

    Xposed Framework:Xposed框架可以在未修改任何Android应用程序包(APK)或重新刷机的情况下更改系统或应用配置,以及运行时的行为。(★★★☆☆)

    CatLog:Android日志图形化阅读器。(★★★☆☆)

    Droidbox:可用于动态分析Android应用程序。

    Frida:这个工具包工作在CS模式下,可以注入到正在运行的进程中,不仅适用于Android平台,还适用于iOS,WIndows和Mac平台。(★★★☆☆)

    Drozer:可以在应用程序和设备上搜索安全漏洞,它通过评估移动应用的角色,以及与Dalvik 虚拟机,其他应用程序的IPC端点、底层操作系统的进行交互。(★★★★☆)

    -开启一个会话

    adb forward tcp:31415 tcp:31415drozer console connect

    -检索安装包信息

    run app.package.list -f [app name]run app.package.info -a [package name]

    -识别攻击面

    run app.package.attacksurface [package name]

    -利用Activities

    run app.activity.info -a [package name] -urun app.activity.start --component [package name] [component name]

    -利用内容提供器(Content Provider)

    run app.provider.info -a [package name]run scanner.provider.finduris -a [package name]run app.provider.query [uri]run app.provider.update [uri] --selection [conditions] [selection arg] [column] [data]run scanner.provider.sqltables -a [package name]run scanner.provider.injection -a [package name]run scanner.provider.traversal -a [package name]

    -利用广播接收器(Broadcast Receivers)

    run app.broadcast.info -a [package name]run app.broadcast.send --component [package name] [component name] --extra [type] [key] [value]run app.broadcast.sniff --action [action]

    -利用服务

    run app.service.info -a [package name]run app.service.start --action [action] --component [package name] [component name]run app.service.send [package name] [component name] --msg [what] [arg1] [arg2] --extra [type] [key] [value] --bundle-as-obj4.网络分析和服务端测试

    Tcpdump:一款网络抓包的命令行工具。(★★★★☆)

    Wireshark:一款开源数据包分析工具。(★★★★☆)

    -实时在线捕获数据包

    adb shell "tcpdump -s 0 -w - | nc -l -p 4444“adb forward tcp:4444 tcp:4444nc localhost 4444 | sudo wireshark -k -S -i –

    Canape:面向任意协议的网络测试工具。

    Mallory:可以实施中间人攻击(MiTM)的攻击,监听和修改移动设备及应用的网络流量。

    Burp Suite:一款可以实施应用安全测试的集成平台。

    Proxydroid:一款Android系统的全局代理应用程序。

    5. 绕过Root检测和SSL证书绑定(Pinning)

    Android SSL Trust Killer:可用于绕过大部分应用程序的SSL证书绑定的黑盒测试工具。(★★★★☆)

    Android-ssl-bypass:一款Android调试工具,可以用来绕过SSL,即使应用程序实现证书绑定也能绕过,还包括其他的调试功能。这款工具以交互终端方式运行。(★★★☆☆)

    RootCoak Plus:这款工具可以绕过已知常见的root识别机制。(★★★☆☆)

    6. 安全库

    PublicKey Pinning:在Android设备上通过自定义的X509TrustManager实现证书绑定。除了执行绑定配置之外,X509TrustManager还需要实现自定义的X509证书检查。(★★★☆☆)

    Android Pinning:一个Android平台上实现证书绑定的独立库项目。(★★★☆☆)

    Java AES Crypto:一个加密&解密字符串的简单Android类,目标是避免大多数类出现的典型错误。

    Proguard:一款免费的Java类文件压缩、优化、混淆以及校验工具。它会检测和移除未使用的类、字段、方法以及属性。(★★★☆☆)

    SQL Cipher:一款开源的SQLite数据库的扩展,可以为数据库文件提供透明的256位AES加密。(★★★☆☆)

    Secure Preferences:Android共享配置封装器,而不是加密共享配置的密钥及其值。(★★★☆☆)

    Trusted Intents:可以实现应用程序之间灵活信任的交互。(★★★☆☆)

    三、iOS应用渗透测试1. 访问iDevice的文件系统

    FileZilla:可提供FTP、SFTP以及FTPS(FTP over SLL/TLS)通信。(★★★☆☆)

    Cyberduck:Mac和Windows平台上通过FTP, SFTP, WebDAV, S3, Azure & OpenStack Swift进行文件浏览。(★★★☆☆)

    itunnel:通过USB转发SSH。(★★★☆☆)

    iFunbox:iPhone,iPad&iPod Touch设备的文件及应用管理工具。(★★★☆☆)

    2.逆向工程和静态分析

    otool:可以显示对象(object)文件或库文件指定部分的内容。(★★★★☆)

    Clutch:解密应用程序,然后将指定的bundleID转储成二进制文件或.ipa文件。(★★★☆☆)

    Dumpdecrypted:在内存中从加密iPhone应用程序解密出mach-o文件,然后转储到磁盘上。这个工具需要研究人员能够了解背后的加密机制。(★★★★☆)

    iPod:~ root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Applications/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Scan.app/Scan

    class-dump:一款检查Mach-O文件中Objective-C运行时信息的命令行工具。(★★★☆☆)

    Weak Classdump:一个Cycript脚本,可以生成相应类的头文件。尤其当你无法转储类或已加密类,或当二进制文件经过加密时,这个工具最为有用。(★★★☆☆)

    iPod:~ root# cycript -p Skype weak_classdump.cy; cycript -p Skype#cy weak_classdump_bundle([NSBundle mainBundle],"/tmp/Skype")

    IDA Pro:一个Windows,Linux或Mac OS X跨平台多处理器的反汇编和调试的工具,由于它可以提供如此多的功能,我们无法在此一一表述。(★★★☆☆)

    HopperApp:一款面向OS X和Linux系统的逆向分析工具,可以反汇编、反编译、调试32/64位 Intel Mac、Linux、Windows及iOS系统的可执行程序。(★★★☆☆)

    iRET:一款iOS逆向工程的工具箱,主要是自动化执行与iOS渗透测试相关的大量通用任务。(★★★☆☆)

    3.动态和运行时分析

    cycript:允许开发人员使用Objective-C++和Javascript混合语法来检测和修改iOS或Mac OS X系统上正在运行的应用程序。它通过一个交互式命令终端,提供语法高明和tab自动补齐的功能。(★★★★☆)

    -显示当前视图

    cy# UIApp.keyWindow.rootViewController.topViewController.visibleViewControllerGet an array of existing objects of a certain classcy# choose(UIViewController)

    -列举运行时的方法

    cy# [classname].messages orcy# function printMethods(className) { var count = new new Type("I"); var methods = class_copyMethodList(objc_getClass(className), count); var methodsArray = []; for(var i = 0; i < *count; i++) { var method = methods; methodsArray.push({selector:method_getName(method), implementation:method_getImplementation(method)}); } free(methods); free(count); return methodsArray; }cy# printMethods("[classname]")

    -输出所有实例变量

    cy# function tryPrintIvars(a){ var x={}; for(i in a){ try{ x = (a); } catch(e){} } return x; }cy# a=#0x15d0db80cy# tryPrintIvars(a)

    -通过属性进行控制

    cy# [a pinCode]cy# [a setPinCode: @"1234"]cy# [a isValidPin]cy# a->isa.messages['isValidPin'] = function(){return 1;}

    iNalyzer:AppSec实验室研发的iNalyzer是一个控制iOS应用程序和监听参数及方法的框架。(★★★☆☆)

    idb:一款简化iOS渗透及研究工作中常见任务的工具。(★★★☆☆)

    snoop-it:一款协助iOS应用安全评估和动态分析的工具。(★★★☆☆)

    Introspy-iOS:一款黑盒测试工具,帮助研究人员了解iOS应用运行时的行为,识别潜在安全问题。(★★★☆☆)

    gdb:一款分析iOS应用运行时行为的工具。(★★★★☆)

    keychaindumper:一旦iOS设备越狱过,这款工具会检查keychain项是否可用。(★★★☆☆)

    BinaryCookieReader:从二进制文件Cookies.binarycookies中转储(dump)所有的cookie。(★★★☆☆)

    4. 网络分析和服务端测试

    Canape:面向任意协议的网络测试工具。(★★★☆☆)

    Mallory:可实施中间人攻击(MiTM)的攻击,监听和修改移动设备及应用的网络流量。(★★★★☆)

    Burp Suite:一款可以实施应用安全测试的集成化平台。(★★★★☆)

    Charles Proxy:HTTP代理/HTTP监听/反向代理,帮助监听和修改设备与互联网之间所有的HTTP及SSL/HTTPS流量。(★★★☆☆)

    5. 绕过Root检测和SSL证书绑定(Pinning)

    SSL Kill Switch 2:一款黑盒测试工具,可以禁用iOS和OSX应用程序的SSL证书验证,包括证书绑定。(★★★☆☆)

    iOS TrustMe:禁用iOS设备的证书信任检测。(★★★☆☆)

    Xcon:一款绕过越狱检测的工具。(★★★☆☆)

    tsProtector:另一款绕过越狱检测的工具。(★★★☆☆)

    6. 安全库

    PublicKey Pinning:通过NSURLConnectionDelegate实现iOS证书绑定。委托(delegate,此处指应用程序)必须在connection:didReceiveAuthenticationChallenge:内实现connection:canAuthenticateAgainstProtectionSpace:和connection:didReceiveAuthenticationChallenge:,还需要调用SecTrustEvaluate来执行自定义的X509证书检测。(★★★☆☆)

    四、总结

    本文所列工具可能会有所遗漏,希望大家多多补充。还有如果大家对本文列出的某个工具感兴趣,可以尽情在下面留言,我们会根据反馈的情况在后续文章中详细介绍。

    参考来源:tanprathan,FB资深作者Rabbit_Run整理报道,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)


    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    手机版|Archiver|开发者俱乐部 ( ICP/ISP证:辽B-2-4-20110106号 IDC证:辽B-1-2-20070003号 )

    GMT+8, 2024-12-23 04:10 , Processed in 0.127256 second(s), 22 queries .

    X+ Open Developer Network (xodn.com)

    © 2009-2017 沈阳讯网网络科技有限公司

    快速回复 返回顶部 返回列表