)
文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载在 Android 应用安全测试中确认应用当前与哪些远程端点建立连接是判断数据外传、验证网络行为、定位可疑通信链路的关键一步。本文基于 OWASP Mobile Application Security Testing GuideMASTG中的 Android 技术条目 Get Open Connections系统讲解两种获取系统级与进程级开放连接信息的方法——直接解析 Linux 内核暴露的/proc/net伪文件系统以及使用更易读的netstat命令并深入拆解输出字段的语义与十六进制地址换算方法。读完本文你将能在测试设备上独立定位指定应用的 TCP/UDP 连接、识别连接状态并据此展开下一步的流量分析与中间人MITM测试。为什么需要获取开放连接在移动应用安全测试流程中获取开放连接信息通常服务于以下场景网络通信测试确认应用启动后实际连接的服务器 IP 与端口与 Testing Network Communication 中描述的预期通信目标进行比对判断是否存在隐蔽的端点外连行为MITM 测试准备建立中间人测试位置后参见 Achieving a MITM Position Using a Rogue Access Point通过观察连接建立与否验证流量是否按预期经过拦截点反逆向分析验证某些应用会通过检查开放端口来探测逆向工具例如检测默认监听在 TCP 27042 端口的frida-server理解开放连接信息的读取方式也是分析这类检测逻辑的基础见 Reverse Engineering Tool Detection。方法一直接读取/proc/net与/proc/pid/netLinux 内核会通过 procfs 暴露大量运行时信息。MASTG 指出系统级的网络信息可以在/proc/net中找到也可以直接查看/proc/pid/net目录需要注意这些目录下的内容在某种程度上并非进程专属——不同进程的/proc/pid/net实际指向同一套内核网络统计。在这些目录中存在多个文件其中从测试人员视角看tcp、tcp6和udp三个文件最值得关注它们分别对应 IPv4 TCP 连接表、IPv6 TCP 连接表与 UDP 连接表。查看某个进程例如 PID 为 7254 的应用进程的 TCP 连接表# cat /proc/7254/net/tcp sl local_address rem_address st tx_queue rx_queue tr tm-when retrnsmt uid timeout inode ... 69: 1101A8C0:BB2F 9A447D4A:01BB 01 00000000:00000000 00:00000000 00000000 10093 0 75412 1 0000000000000000 20 3 19 10 -1 70: 1101A8C0:917C E3CB3AD8:01BB 01 00000000:00000000 00:00000000 00000000 10093 0 75553 1 0000000000000000 20 3 23 10 -1 71: 1101A8C0:C1E3 9C187D4A:01BB 01 00000000:00000000 00:00000000 00000000 10093 0 75458 1 0000000000000000 20 3 19 10 -1 ...字段解析对于上述输出MASTG 明确指出了对测试人员最有价值的三个字段rem_address远端地址与端口号对以十六进制表示。这是判断应用与谁通信的直接依据解读方法见下文“十六进制地址换算”tx_queue与rx_queue分别表示发送队列与接收队列的内核内存占用情况。队列数值持续较大通常意味着连接正被活跃使用可用于粗略评估连接的活动程度uid创建该 socket 的进程的有效 UIDeffective UID。通过uid可以反向关联到具体应用——使用ps -A -o USER,PID,NAME | grep uid或在 Android 上结合dumpsys package查询该 UID 对应的应用包名。十六进制地址换算/proc/net/tcp中的地址字段遵循十六进制IP:十六进制端口格式且 IP 字节序为小端little-endian。以示例中的rem_address值9A447D4A:01BB为例端口01BB十六进制 1×256 187 443即 HTTPS 端口IP 地址将9A 44 7D 4A按小端字节序反转得到4A 7D 44 9A换算为十进制即为74.125.68.154。同理本地地址1101A8C0:BB2F表示本地 IP 为192.168.1.17C0 A8 01 11反转后为C0 A8 01 11→ 192.168.1.17本地端口BB2F 47887。可见该进程正在与74.125.68.154:443保持一条 TLS 连接。连接状态st 字段首行表头中的st是连接状态字段十六进制数值01表示ESTABLISHED已建立02表示SYN_SENT03表示SYN_RECV04表示FIN_WAIT105表示FIN_WAIT206表示TIME_WAIT07表示CLOSE08表示CLOSE_WAIT09表示LAST_ACK0A表示LISTEN监听。示例输出中的st 01说明这三条连接均处于已建立状态。方法二使用netstat获取可读输出直接解析/proc/pid/net的输出虽然信息完整但十六进制格式对人工阅读并不友好。MASTG 推荐的另一种做法是使用netstat命令——它提供整个系统网络活动的汇总信息格式更易读并且可以按需求方便地过滤。例如按 PID 过滤查看 YouTube 应用PID 24685的所有连接# netstat -p | grep 24685 Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program Name tcp 0 0 192.168.1.17:47368 172.217.194.103:https CLOSE_WAIT 24685/com.google.android.youtube tcp 0 0 192.168.1.17:47233 172.217.194.94:https CLOSE_WAIT 24685/com.google.android.youtube tcp 0 0 192.168.1.17:38480 sc-in-f100.1e100.:https ESTABLISHED 24685/com.google.android.youtube tcp 0 0 192.168.1.17:44833 74.125.24.91:https ESTABLISHED 24685/com.google.android.youtube tcp 0 0 192.168.1.17:38481 sc-in-f100.1e100.:https ESTABLISHED 24685/com.google.android.youtube ...相比/proc/pid/net的原始输出netstat的输出显然更加友好。与前面类似对测试人员最有价值的字段是Foreign Address远端地址与端口号对。端口号可以显示为与该端口关联协议的通用名称例如https代替443便于快速识别Recv-Q与Send-Q接收与发送队列的相关统计用于判断连接的使用活跃程度Statesocket 的当前状态例如连接处于活跃使用ESTABLISHED还是已关闭CLOSED等。上例中 YouTube 应用同时存在两条ESTABLISHED视频流连接与两条CLOSE_WAIT连接后者通常提示服务端已关闭连接但本地尚未完成关闭可作为分析网络行为的辅助信号。netstat 常用过滤组合在实际测试中netstat通常与以下参数组合使用以缩小范围参数作用-p显示 PID 与程序名称示例中即PID/Program Name列-t仅显示 TCP 连接-u仅显示 UDP 连接-n以数字形式显示地址与端口不进行 DNS 反向解析与服务名替换解析速度更快-a显示所有 socket包括监听中的服务-l仅显示处于 LISTEN 状态的监听端口例如要查看某个应用进程PID 24685的所有 TCP 连接并保持纯数字输出可执行# netstat -tnp | grep 24685补充ss命令的现代替代方案在较新的 Android 系统API 级别较高或基于较新内核的环境中ss命令是netstat的功能更丰富的替代品输出同样直观且支持按 PID 过滤# ss -tnp | grep 24685ss的-tTCP、-uUDP、-n数字输出、-p显示进程信息参数语义与netstat一致。测试环境中若设备或模拟器缺少netstat可以优先尝试ss两者的字段含义可以相互对照理解。需要说明的是具体可用性取决于测试设备 ROM 中是否预装了对应工具这一点应在测试开始前先行确认。实战将开放连接信息与测试流程衔接获取开放连接信息后可以立即将其用于以下实战环节按 UID 关联应用在/proc/net/tcp输出中提取目标应用 UID 对应的行得到其全部活跃连接的远端端点清单将该清单与 Testing Network Communication 中预期的域名/IP 集合比对发现清单外的端点即构成进一步深挖的线索。衔接 MITM 拦截在 Achieving a MITM Position Using a Rogue Access Point 描述的代理或 AP 场景中先记录拦截前的连接快照启动拦截后再对比netstat输出验证新连接是否已建立、状态是否正常从而确认流量确实经过拦截点。识别反逆向检测行为如 Reverse Engineering Tool Detection 所述应用可能主动扫描 localhost 上frida-server默认监听的 TCP 27042 端口来探测分析环境。测试人员也可以反过来用本文方法检查该端口是否被占用判断自身工具部署是否留下了可被检测的痕迹。小结本文完整覆盖了 MASTG 的 Get Open Connections 技术条目在 Android 上获取开放连接有两条主线——底层方式直接读取/proc/net与/proc/pid/net下的tcp、tcp6、udp文件掌握rem_address、tx_queue/rx_queue、uid等核心字段并理解十六进制小端地址换算上层方式使用netstat获取更可读的全局视图聚焦Foreign Address、Recv-Q/Send-Q、State等字段并可按 PID 精确过滤。两条路径互为补充前者信息最原始完整后者阅读效率最高再配合ss等现代工具与端口号/服务名换算足以支撑应用网络行为分析、MITM 验证与反逆向检测等典型移动安全测试任务。赞分享文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载相关推荐OWASP MASTG 实战使用 apksigner 获取与核验 Android APK 签名信息MASTG-TECH-0116OWASP MASTG 实战使用 apksigner 获取与核验 Android APK 签名信息MASTG TECH 0116 APK 数字签名是 An文档教程网络安全OWASP MASTG 实战使用 aapt、adb 与 Manifest 提取获取 Android 应用权限清单OWASP MASTG 实战使用 aapt、adb 与 Manifest 提取获取 Android 应用权限清单 本篇技术指南源自 OWASP MASTGM文档教程网络安全OWASP MASTG Android 动态分析使用 lsof 获取进程打开文件列表Get Open FilesOWASP MASTG Android 动态分析使用 lsof 获取进程打开文件列表Get Open Files lsof 是 Linux 平台最经典的文文档教程网络安全上一篇MLX-Examples项目中的Stable Diffusion图像转换功能修复分析下一篇LightRAG 依赖锁定实战uv.lock 的更新时机、Docker 集成与离线依赖生成全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考