【Android取证篇】渗透测试工具apk2url快速提取APK内的IP和URL地址

【Android取证篇】渗透测试工具apk2url快速提取APK内的IP和URL地址

通过渗透测试工具apk2url快速检索APK开发过程中没有删掉的URL地址,来发现一些搜索引擎、子域名查找不到的资源,从而进一步收集信息查找后台等—【蘇小沐】

1、实验环境

系统环境
Windows 11 专业工作站版,[23H2(22631.3085)]
Kali linux ,[v2023.4]
apk2url,[v1.2]

2、apk2url功能

apk2url 可以轻松地从 APK 文件中提取 URL 和 IP 端点,并对.txt输出进行过滤。这适用于红队、渗透测试人员和开发人员收集信息,以快速识别与应用程序关联的端点。

注意:为什么使用 apk2url?与 APKleaks、MobSF 和 AppInfoScanner 相比,apk2url 识别出具有附加功能的端点数量明显更多。

  • 子域枚举:查找唯一域和子域

  • URL + URI 路径查找器:查找带有路径和 GET 参数的有趣 URL

  • IP 地址查找器:查找 IP 地址

  • 日志端点源 :APK中发现端点的日志文件名

  • 易于安装:运行 install.sh

  • 多APK支持:单次运行在多个APK上运行

【apk2url网址:https://github.com/n0mi1k/apk2url】

图片

(一)安装apk2url源码

【拉取apk2url源码命令:git clone https://github.com/n0mi1k/apk2url

git clone https://github.com/n0mi1k/apk2url

图片

(二)安装apk2url依赖环境

【注意:apk2url 需要安装 apktool 和 jadx环境,可通过 apt 安装】

1、安装apktool

【安装apktool命令:sudo apt install apktool

sudo apt install apktool

需root权限运行,没切换root权限的记得加上sudo,已经是root权限可以不需要加sudo。

图片

遇到Y,继续执行完毕如下:

图片

2、安装jadx

【安装jadx命令:sudo apt install jadx

sudo apt install jadx

需root权限运行,没切换root权限的记得加上sudo,已经是root权限可以不需要加sudo。

图片

【注意事项:Unable to locate packet】

安装报错:Unable to locate packet,即无法找到包,可以使用命令sudo apt-get update升级下系统。

**常见于系统刚安装或有组件未更新报错,软件源还来不及更新,所以才会无法找到包。**等命令执行完后,再继续执行sudo apt-get install安装就可以了。

【升级命令:sudo apt-get update

sudo apt-get update

图片

3、运行 install.sh 安装apk2url

图片

【直接安装命令:./install.sh

./install.sh

进入./install.sh所在目录,以root权限运行。

图片

至此,apk2url安装完成,输入apk2url显示如下。

图片

(三)实战应用

以某"传销"APP为例。

1、开始分析

【启用apk2url命令:apk2url

apk2url

【提取APK的url命令:apk2url /path/to/apk/file.apk

apk2url /path/to/apk/file.apk

图片

2、分析完成:输出endpoints

默认情况下,“endpoints”目录中有 2 个输出文件:

  • _uniqurls.txt //包含唯一的终结点域和 IP

  • _endpoints.txt //包含具有完整 URL 路径的终结点

图片

endpoints文件夹

图片

uniqurls.txt 内容,包含唯一的终结点域和 IP。

图片

endpoints.txt内容,包含具有完整 URL 路径的终结点。

图片

【*启用日志记录】

默认情况下,程序不会记录发现端点的 Android 文件名/路径。若要启用日志记录,请按如下方式运行:

apk2url /path/to/apk/file.apk log

总结

工具不是终点,而是起点,好的侦查案件思维、分析能力,分析方向都需要不断的积累进步!

需要更专业的还是比较推荐取证厂商的产品,省时省力。

书写片面,纯粹做个记录,有错漏之处欢迎指正。
公众号回复关键词【APK提取】自动获取资源合集;如需专业技术服务、业务合作等欢迎联系!!!
【声明:欢迎转发收藏,个人创作不易,喜欢记得点点赞,投币随缘!!!转载引用请注明出处,著作所有权归作者 [蘇小沐] 所有】
【注:资源文件收集于官网或互联网公开材料,仅供学习研究,如有侵权请联系删除,谢谢!】

记录
开始编辑:2024年 02月 27日
最后编辑:2024年 02月 28日

【往期精彩回顾】

图片

▲ 【逆向分析篇】APK逆向脱壳过程

图片

▲ 【Android取证篇】利用QuickLook插件快速预览APK信息

  • 22
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个需求可以通过以下步骤实现: 1. 使用多线程或异步库(如asyncio)并发请求十万个url,并使用pyppeteer对每个url进行截图; 2. 对每个截图进行图像识别,找到点击下载的地方进行点击; 3. 在pyppeteer中使用拦截器,拦截包含.apkurl并将其保存到数据库; 4. 当数据库中.apk数量达到一定阈值后,停止所有线程。 以下是一个可能的实现代码: ``` python import asyncio import re from io import BytesIO from PIL import Image from pyppeteer import launch MAX_APK_COUNT = 1000 # 停止下载的阈值 apk_count = 0 # 已下载的apk数量 async def scrape_page(url): global apk_count browser = await launch() page = await browser.newPage() await page.goto(url) content_type = await page.evaluate('() => document.contentType') if 'html' not in content_type and \ 'javascript' not in content_type and \ 'css' not in content_type and \ 'image' not in content_type: # 如果不是html,js,css,img等类型,则进行截图 screenshot = await page.screenshot(fullPage=True) image = Image.open(BytesIO(screenshot)) # 进行图像识别,找到点击下载的地方进行点击 # ... # 在pyppeteer中使用拦截器,拦截包含.apkurl并将其保存到数据库 requests = await page.content() apk_urls = re.findall(r'https?:\/\/.*\.apk', requests) for apk_url in apk_urls: # 将apk_url保存到数据库 # ... apk_count += 1 if apk_count >= MAX_APK_COUNT: # 如果已下载的apk数量达到阈值,停止所有线程 await browser.close() return await browser.close() async def main(): urls = [...] # 十万个url tasks = [] for url in urls: task = asyncio.create_task(scrape_page(url)) tasks.append(task) await asyncio.gather(*tasks) if __name__ == '__main__': asyncio.run(main()) ``` 需要注意的是,由于pyppeteer是基于Chromium的,因此在并发请求大量页面时,可能会占用大量的内存和CPU资源。如果遇到性能问题,可以尝试使用分布式或者其他解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DFIR蘇小沐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值