在 Android 上使用 OpenVPN 拦截 HTTP 流量

admin 2024年10月12日08:47:40评论30 views字数 5557阅读18分31秒阅读模式

总结

在本文中,我们将向您展示如何在 Android 上拦截 HTTP 流量。我们的方法基于 VPN 隧道方法。

免責聲明

本文仅供参考和教育目的,适合那些愿意并好奇地了解和学习安全和渗透测试的人。不得将内容用于非法目的。如果您准备好学习新事物,请继续阅读。

在 Android 应用程序中使用 Burp 代理拦截 HTTP 流量并不像在传统浏览器 Web 应用程序中那样容易。在传统 Web 应用程序中拦截 HTTP 流量就像使用代理服务器配置浏览器一样简单。Android(和 iOS)应用程序没有代理服务器配置。这使得很难将 HTTP 流量重定向到 Burp Suite 等代理服务器。这很困难,但并非不可能。通常,有三种方法可以将流量从您的移动应用程序重定向到您的代理服务器。Jeroen Beckers 写了一篇很棒的文章,解释了 iOS 的所有三种方法 (https://blog.nviso.eu/2020/06/12/intercepting-flutter-traffic-on-ios/)。

本文介绍如何在移动应用程序和攻击 (渗透测试器) 计算机之间使用 VPN 连接。此外,我们还将展示如何将 Burp 代理服务器证书传输到移动设备,并配置 Burp 代理以进行移动设备流量拦截。

POC 由 1 台移动设备和 Kali Linux 组成:受害者 (Samsung J3) 和一台攻击者机器 (Kali Linux 2022.3)。

受害者:

— 三星 J3(Android 5.1,未 root)
— IP 地址:192.168.43.136

攻击者(用于 Burp 代理):
— Kali Linux
— IP 地址:192.168.43.136

以下部分向您展示如何在 Kali 机器上安装 OpenVPN 服务器、如何在移动设备上安装 OpenVPN 客户端、如何导入打嗝代理证书以及如何使用 burp 代理拦截 HTTP 流量。

准备 PoC 环境

在我们开始 PoC 之前,让我先向您展示 PoC 要求。为了执行这些步骤,您必须:
- 使用物理移动设备(无法使用 Android 虚拟设备)
- 启用 Android 开发者选项
- 在 Kali 攻击者机器和移动设备之间建立 TCP 连接(例如,两者都连接到同一个 Wifi 网络或通过 USB 连接)

在此 PoC 中,我们将使用 USB 连接与我们的 Kali 主机建立 TCP 连接。您也可以使用 WiFi 而不是使用 USB 连接。在这种情况下,您的移动设备和 Kali Linux 系统都必须连接到同一个 WiFi 网络。如果您选择使用 WiFi 网络,则可以跳过此部分并从步骤 7 继续。

1. 在 192.168.43.1(受害者,三星 J3)上执行。

在我们的移动设备上启用 Developer 选项。

转到“设置”
点击“关于设备”或“关于手机”点击
“软件信息”
点击“内部版本号”七次。...
可选:输入您的图案、PIN 或密码以启用 Developer options (开发人员选项) 菜单。
“开发者选项”菜单现在将出现在您的设置菜单中。

https://www.samsung.com/uk/support/mobile-devices/how-do-i-turn-on-the-developer-options-menu-on-my-samsung-galaxy-device/

注意:这些步骤特定于 Samsung J3 设备。查看您的供应商网站以获取您的说明。

2. 在 192.162.43.1(受害者,Samsung J3)上执行。

启用 USB 调试 在 开发者选项 中。

确保 Developer options 开关(位于右上角)打开 Switch on 图标。

轻敲 USB 调试开关将其打开。

3. 在 192.162.43.1(受害者,三星 J3)上执行。

将移动设备连接到 Kali 攻击者机器的空闲 USB 端口。选择 Linux 作为要连接的目标设备。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

4. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

如果尚未完成,请安装 Android Debug Bridge 工具。打开 Bash 终端选项卡并执行:

sudo apt install android-tools-adb

5. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

使用 adb 列出可用设备。您应该会看到 Samsung J3 设备。

adb devices

在 Android 上使用 OpenVPN 拦截 HTTP 流量

6. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

使用 adb 测试 shell 对移动设备的访问。尝试使用 ping 来测试与我们的 Kali 攻击(渗透测试)机器和 Internet 的连接。

adb shell

在 Android 上使用 OpenVPN 拦截 HTTP 流量

ping -c 2 192.168.43.136

在 Android 上使用 OpenVPN 拦截 HTTP 流量

总结
:我们将受害者设备(三星 J3)通过 USB 连接到我们的 Kali 机器。该设备与我们的 Kali 攻击者机器有 TCP 连接。

PoC 安装 OpenVPN 服务器

我们具备在 Kali 渗透测试机和移动设备之间设置 VPN 的所有要求。

7. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

安装 OpenVPN 服务器。我们将使用 Jeroen Beckers 的安装脚本。

wget https://git.io/vpn -O openvpn-install.sh
sed -i "$(($(grep -ni "debian is too old" openvpn-install.sh | cut -d : -f 1)+1))d" ./openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh

在 Android 上使用 OpenVPN 拦截 HTTP 流量

8. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

OpenVPN 安装脚本向导:选择连接到 Internet 的网络设备。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

9. 在 192.168.43.136(攻击者机器,Kali Linux)上执行。

OpenVPN 安装脚本向导:键入应终止 VPN 的 IP 地址。在我们的例子中,它是 IP 地址 192.168.43.136。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

10. 在 192.168.43.136(攻击者机器,Kali Linux)上执行。

OpenVPN 安装脚本向导:选择 UDP 作为首选协议。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

11. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

OpenVPN 安装脚本向导:我们将对下一个选项使用默认设置。按 ENTER 键可查看端口规范、系统解析程序和客户端名称。按任意键继续...

在 Android 上使用 OpenVPN 拦截 HTTP 流量

在 Android 上使用 OpenVPN 拦截 HTTP 流量

我们已经安装了我们的 VPN 服务器。我们的客户端配置文件存储在 /root/client.ovpn 中。

12. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

启动 OpenVPN 服务

sudo service openvpn start

在 Android 上使用 OpenVPN 拦截 HTTP 流量

我们的 OpenVPN 服务器现已启动并运行。是时候在我们的移动设备上安装 OpenVPN 客户端软件了。

PoC 安装 OpenVPN 客户端

在接下来的部分中,我们会将文件从 Kali Linux 计算机复制到您的移动设备。它涉及以下文件:

  • client.ovpn (OpenVPN 配置文件)
    - openvpn-connect-3-3-0.apk (OpenVPN 客户端软件)
    - cert-pro.cer (Burp Suite 服务器证书)

接下来部分中的步骤基于在您的移动设备和 Kali Linux 系统之间使用 USB 连接。如前所述,不需要 USB 连接。也可以使用共享 WiFi 网络。使用 WifI 网络时,可以通过将文件放在 Kali Linux 系统的 /tmp 目录中并通过临时 http 服务器(python3 -m http.server 80 — 目录 /tmp)为该目录提供服务,将必要的文件复制到移动设备。然后,可以使用现有的 Web 浏览器从移动设备下载所需的文件。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

可以访问 http://192.168.43.136 的三星 J3

13. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

使用 adb 将配置文件 client.ovpn 复制到我们 Android 设备的 sdcard 中。

sudo cp /root/client.ovpn /tmp
adb push /tmp/client.ovpn /sdcard/Download/client.ovpn

在 Android 上使用 OpenVPN 拦截 HTTP 流量

14. 在 192.168.43.136(攻击者机器,Kali Linux)上执行。

下载 OpenVPN 客户端 *.apk 安装包。打开 Web 浏览器 (Firefox) 并导航到:https://openvpn-connect.en.uptodown.com/android/download。点击绿色的 [下载] 按钮。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

来源: https://openvpn.net/community-downloads/

将下载的 apk 文件移动到 /tmp。

mv ~/Downloads/openvpn-connect-3–3–0.apk /tmp

15. 在 192.168.43.136(攻击者机器,Kali Linux)上执行。

使用 adb 在我们的 Android 设备上安装 openvpn-connect-3–3–0.apk。

adb install /tmp/openvpn-connect-3–3–0.apk

在 Android 上使用 OpenVPN 拦截 HTTP 流量

16. 在 192.168.43.1 上执行(受害者,三星 J3)。

打开内置的文件资源管理器应用程序并浏览到 /sdcard/Downloads/client.ovpn。

点击 client.ovpn 并安装 OpenVPN 配置文件。继续执行安装步骤。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

点击 [同意]

在 Android 上使用 OpenVPN 拦截 HTTP 流量

点击 [确定]

在 Android 上使用 OpenVPN 拦截 HTTP 流量

点击 [添加]

在 Android 上使用 OpenVPN 拦截 HTTP 流量

我们在移动设备和 Kali Linux 之间有一个成功的 VPN 隧道

我们在移动设备和 Kali 攻击者机器之间有一个成功的 VPN 隧道。从现在开始,我们能够拦截来自 Android 设备的流量。我们仍然需要导入 Burp 代理服务器证书,才能使用 Burp 代理进行 HTTPS 拦截。

PoC 安装 Burp 服务器证书

17. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

启动 Burp 社区版。保留默认代理设置 (127.0.0.1:8080)。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

单击 Next(下一步)开始在 TCP 端口 8080 上进行 Burp 侦听。

18. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

使用 wget 下载 Burp 服务器证书。重要提示:证书文件需要 *.cer 扩展名。

wget http://127.0.0.1:8080/cert -O /tmp/cert-pro.cer

在 Android 上使用 OpenVPN 拦截 HTTP 流量

19. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

使用 adb 将 Burp 证书 (cert-pro.cer) 复制到我们 Android 设备的 SD 卡中。

adb push /tmp/cert-pro.cer sdcard/Download/cert-pro.cer

20. 在 192.168.43.1 上执行(受害者,三星 J3)。

在我们的移动设备上安装 Burp 证书。

打开内置的文件资源管理器应用程序并浏览到 /sdcard/Downloads/cert-pro.cer。检查是否选择了“用于 VPN 和应用程序”。点击 cert-pro.cer 并导入服务器证书。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

21. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

配置 Burp 代理以侦听所有接口。进入代理> 选项 > 选择界面> [编辑] > 选项卡绑定;为 “alle interfaces” 选择。点击 [确定]

在 Android 上使用 OpenVPN 拦截 HTTP 流量

22. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

将 Burp 代理配置为使用“不可见代理”。进入代理>选项>选择界面> [编辑] > 请求处理 标签页;为“支持不可见代理 ”选择。单击 [确定]。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

23. 在 192.168.43.136(攻击者计算机,Kali Linux)上执行。

配置 iptables 以将端口 80 和 443 上的传入流量重定向到侦听端口 8080 的 Burp 代理。

sudo iptables -A PREROUTING -t nat -i tun0 -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -A PREROUTING -t nat -i tun0 -p tcp --dport 443 -j REDIRECT --to-port 8080

PoC 使用手机 App 拦截流量

24. 在 192.168.43.1 上执行(受害者,三星 J3)。

现在,您可以拦截来自移动设备应用程序的 HTTP 流量。出于演示目的,我们将使用荷兰公司 Talpa 拥有的 Radio10 应用程序。您可以使用通过 TCP 端口 80 或 443 通信 HTTP 的任何其他应用程序。您不得将此应用程序用于实际的渗透测试或任何其他(其他)滥用它的方式。请首先咨询 Talpa 关于他们的漏洞赏金计划和负责任的披露。

在 Android 上使用 OpenVPN 拦截 HTTP 流量

在 Android 上使用 OpenVPN 拦截 HTTP 流量

如您所见,我们捕获了移动应用程序的流量。User-Agent 被识别为 okhttp/4.4.1。

就是这样!我希望你喜欢它。在我的下一篇博客中,我将向您展示您可以使用 Burp Suite 做的一些有趣的事情。

功劳
- Jeroen Beckers 出色的 OpenVPN 安装脚本。

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

其它课程

QT开发底层原理与安全逆向视频教程(2024最新)

在 Android 上使用 OpenVPN 拦截 HTTP 流量

linux恶意软件开发对抗与基于ebpf网络安全视频教程(2024最新)

在 Android 上使用 OpenVPN 拦截 HTTP 流量

linux文件系统存储与文件过滤安全开发视频教程(2024最新)

在 Android 上使用 OpenVPN 拦截 HTTP 流量

linux高级usb安全开发与源码分析视频教程

在 Android 上使用 OpenVPN 拦截 HTTP 流量

linux程序设计与安全开发

在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • windows恶意软件开发与对抗视频教程

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • windows

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • windows()

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • USB()

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • ()

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • ios

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • windbg

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • ()

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量在 Android 上使用 OpenVPN 拦截 HTTP 流量在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

  • 在 Android 上使用 OpenVPN 拦截 HTTP 流量

原文始发于微信公众号(安全狗的自我修养):在 Android 上使用 OpenVPN 拦截 HTTP 流量

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月12日08:47:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   在 Android 上使用 OpenVPN 拦截 HTTP 流量https://cn-sec.com/archives/3256978.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息