登陆

QCSuper:在高通手机猫上捕获无线2G/3G/4G数据包

admin 2019-08-06 221人围观 ,发现0个评论

QCSuper是一种依据高通(Qualcomm)手机和调制解调器(俗称“猫”)通讯的东西,能够捕获原始的2G/3G/4G无线电帧等数据内容。它答应你运用已root的安卓手机,usbdongle加密狗或其他格局的现有捕获数据包生成PCAP文件。

装置完结后,你能够将已root的手机刺进USB,并履行以下指令来运用它:

./qcsuper.py --adb --wireshark-live

它运用的是高通Diag协议,也称为QCDM或DM(确诊监控),以与手QCSuper:在高通手机猫上捕获无线2G/3G/4G数据包机的基带进行通讯。

假如你想要支撑或陈述你设备的作业情况,又或是想参加Diag协议的开发研讨,那么你能够(Freenode的#qcsuper)或是翻开。

装置

QCSuper已在Ubuntu 16.04,18.04和Windows 7进步行了测验开发。它依赖于一些Python模块。

想要运用它,你的手机有必要root或经过USB露出diag服务端口。为了查看手机的兼容性,请在GSMArena等网站上查找手机的类型,并查看它是否配有高通处理器。

想要翻开QCSuper生成的PCAP文件,关于2G/3G帧你能够运用Wireshark 2.x的任何版别。但关于4G帧,你则需求至少Wireshark 2.5.x以上的版别(关于4G帧中解密的单个NAS音讯则需求2.6.x以上))。Ubuntu现在已为一切版别供给了其最新版。

Ubuntu 和 Debian 装置

翻开终端并键入以下内容:

# Download QCSuper git clone git@github.com:P1sec/QCSuper.git qcsuper cd qcsuper # Install dependencies sudo apt install python3-pip wireshark sudo pip3 install --upgrade pyserial crcmod https://github.com/P1sec/pycrate/archive/master.zip Windows 装置

在Wi全本小说ndows上,你需求依据你的手机类型下载并装置手机的USB驱动。没有通用的办法,在Google上查找你手机的类型 +“USB驱动(USB driver)”或“ADB驱动(ADB driver)”以获取相关的阐明。

然后,你需求保证你的设备能够运用adb进行拜访。你能够在此处找到有关怎么下载和设置adb的教程。adb shell指令有必要正常作业才干持续。

然后,依照以下链接进行操作:

或更高版别(请保证已将其包括到PATH中,并勾选install it for all users(体系用户下一切用户可发动)并装置pip)

或更高版别

或更高版别(请保证已将其包括到PATH中,并勾选install it for all users(体系用户下一切用户可发动)并装置pip)

或更高版别

装置所需Python模块,请翻开指令提示符并键入:

pip3 install --upgrade pyserial crcmod https://github.com/P1sec/pycrate/archive/master.zip

仍在指令提示符下,运用cd指令移动到包括QCSuper的目录。然后你能够履行指令(发动指令应为qcsupper.py,而不是/qcsupper.py)。

支撑的协议

QSuper支撑捕获少数的移动无线协议。这些协议在之后,规范报头(被封装到UDP/IP中)答应辨认协议,GSMTAP报文被放在中,该文件能够运用Wireshark进行剖析。

2G/3G/4G协议可分为几个“layers(层)”:layer 1数字无线电调制和多路复用,layer 2处理比如分片和ACK等问题,layer 3是信令或用户数据。

QCSuper答应在第3层捕获,由于它是运用Wireshark进行剖析最有用和有价值的,而且是Diag协议自身所供给的(这里有一些风趣的信息)。

2G(GSM):第3层及以上(RR/…)

2.5G(GPRS和EDGE):第2层及以上(MAC-RLC/…)用于数据承认

3G(UMTS):第3层及以上(RRC/…)

此外,它还支撑在独自的GSMTAP帧中重组SIB(体系信息块,向一切用户播送的数据),由于Wireshark现在无法自行完结:flag –reassemble-sibs

4G(LTEQCSuper:在高通手机猫上捕获无线2G/3G/4G数据包):第3层及以上(RRC/…)

此外,它还支撑将解密的NAS音讯放入其他帧中:flag –decrypt-nas

默许情况下,你设备发送的IP流量不包括在内,你只能看到信令帧。你能够运用–include-ip-traffic选项包括你生成的IP流量(在2G/3G/4G中,IP简直不属于数据流量的第3层,其头部或许被紧缩(ROHC),而且或许包括一个很小的PPP报头)。

你发送的数据流量运用与信令流量不同的信道,此信道经过信令流量树立;因而,QCSuper应向你显现与此信道相关的一切详细信息。

运用

运用QCSuper,你需求指定一个输入(例如:–adb(Android手机),–usb-modem)和一个或多个模块(–wireshark-live用于翻开Wireshark,–pcap-dump用于写入流量到PCAP文件,–info获取有关设备的一般信息…)。

示例:

# Open Wireshark directly, using a rooted Android phone as an input ./qcsuper.py --adb --wireshark-live # Same, but dump to a PCAP file instead of opening Wireshark direQCSuper:在高通手机猫上捕获无线2G/3G/4G数据包ctly ./qcsuper.py --adb --pcap-dump /tmp/my_pcap.pcap # Same, but using an USB modem exposing a Diag serial port sudo ./qcsuper.py --usb-modem /dev/ttyHS2 --wireshark-live

以下是QCSuper当时一切可用选项:

usage: qcsuper.py [-h] [--cli] [-v] (--adb | --usb-modem TTY_DEV | --dlf-read DLF_FILE | --json-geo-read JSON_FILE) [--info] [--pcap-dump PCAP_FILE] [--wireshark-live] [--memory-dump OUTPUT_DIR] [--dlf-dump DLF_FILE] [--json-geo-dump JSON_FILE] [--decoded-sibs-dump] [--reassemble-sibs] [--decrypt-nas] [--include-ip-traffic] [--start MEMORY_START] [--stop MEMORY_STOP] A tool for communicating with the Qualcomm DIAG protocol (also called QCDM or DM). optional arguments: -h, --help show this help message and exit --cli Use a command prompt, allowing for interactive completion of commands. -v, --verbose Add output for each received or sent Diag packet. Input mode: Choose an one least input mode for DIAG data. --adb Use a rooted Android phone with USB debugging enabled as input (requires adb). --usb-modem TTY_DEV Use an USB modem exposing a DIAG pseudo-serial port through USB. --dlf-read DLF_FILE Read a DLF file generated by QCSuper or QXDM, enabling interoperability with vendor software. --json-geo-read JSON_FILE Read a JSON file generated using --json-geo-dump. Modules: Modules writing to a file will append when it already exists, and consider it Gzipped if their name contains ".gz". --info Read generic information about the baseband device. --pcap-dump PCAP_FILE Generate a PCAP file containing GSMTAP frames for 2G/3G/4G, to be loaded using Wireshark. --wireshark-live Same as --pcap-dump, but directly spawn a Wireshark instance. --memory-dump OUTPUT_DIR Dump the memory of the device (may not or partially work with recent devices). --dlf-dump DLF_FILE Generate a DLF file to be loaded using QCSuper or QXDM, with network protocols logging. --json-geo-dump JSON_FILE Generate a JSON file containing both raw log frames and GPS coordinates, for further reprocessing. To be used in combination with --adb. --decoded-sibs-dump Print decoded SIBs to stdout (experimental, requires pycrate). PCAP generation options: To be used along with --pcap-dump or --wireshark-live. --reassemble-sibs Include reassembled UMTS SIBs as supplementary frames, also embedded fragmented in RRC frames. --decrypt-nas Include unencrypted LTE NAS as supplementary frames, also embedded ciphered in RRC frames. --includQCSuper:在高通手机猫上捕获无线2G/3G/4G数据包e-ip-traffic Include unframed IP traffic from the UE. Memory dumping options: To be used along with --memory-dump. --start MEMORY_START Offset at which to start to dump memory (hex number), by default 00000000. --stop MEMORY_STOP Offset at which to stop to dump memory (hex number), by default ffffffff.

指定 – 支撑来自stdin或stdout的管道数据运送(或许无法检测到gzip紧缩的内容)。

运用(USB猫)

你能够将QCSuper与USB猫一同运用–usb-modem 选项露出Diag端口,其间是Linux上伪串行设备(如/dev/ttyUSB0,/dev/ttyHS2和其他或许的设备)或Windows上的COM端口(例如COM3)的称号。

留意,在大多数设置中,你需求以root用户身份运转QCSuper才干运用此形式,尤其是处理串口搅扰问题。

假如你不清楚/dev下哪些设备露出了Diag端口,你或许需求对其间的设备进行逐个的测验。你能够测验经过中止ModemManager看护进程(sudo systemctl stop ModemManager)并运用以下指令来自动检测:sudo ModemManager –debug 2>&1 | grep -i ‘port is QCDM-capable’ 然后运用Ctrl-C。

留意,假如你的设备不能与ModemManager一同运用,那么它很或许没有进行彻底的设置,而且也不能与QCSuper一同运用。一些或许的问题是

你没有为设备运用正确的形式切换(mode switching)指令。

假如你购买的设备之前有来自不同运营商的SIM卡,则你的设备或许会被确定。你或许有必要运用前一个运营商的解QCSuper:在高通手机猫上捕获无线2G/3G/4G数据包锁代码并将其提交给设备:sudo mmcli -i 0 –pin=

你没有为设备运用正确的形式切换(mode switching)指令。

假如你购买的设备之前有来自不同运营商的SIM卡,则你的设备或许会被确定。你或许有必要运用前一个运营商的解锁代码并将其提交给设备:sudo mmcli -i 0 –pin=

假如默许情况下,依据高通的USB设备未露出Diag端口,则或许需求经过AT端口键入以下指令来启用Diag端口:

AT$QCDMG

留意,只要一个客户端能够一起与Diag端口通讯。这适用于两个QCSuper实例,或QCSuper和ModemManager实例。

假如你体系上的ModemManager处于活动状况,QCSuper将测验动态增加udev规矩以避免它拜访Diag端口并重启其看护进程。它将在封闭时禁用此规矩。

支撑的设备

QCSuper已在以下设备成功测验:

Sony Xperia Z (Phone) – 4G – root启用adb后开箱即用

ZTE MF823 (USB Modem) – 4G – 或许需求,将设备设置为,然后履行上述AT指令

ZTE MF667 (USB Modem) – 3G, 2011 – 应该开箱即用(或许需求形式切换)

Option Icon 225 (USB Modem) – 3G, 2008

Novatel Ovation MC998D(USB猫)

ZTE WCDMA TechQCSuper:在高通手机猫上捕获无线2G/3G/4G数据包nologies MSM MF110/MF627/MF636(USB猫)

Sony Xperia Z (Phone) – 4G – root启用adb后开箱即用

ZTE MF823 (USB Modem) – 4G – 或许需求,将设备设置为,然后履行上述AT指令

ZTE MF667 (USB Modem) – 3G, 2011 – 应该开箱即用(或许需求形式切换)

Option Icon 225 (USB Modem) – 3G, 2008

Novatel Ovation MC998D(USB猫)

ZTE WCDMA Technologies MSM MF110/MF627/MF636(USB猫)

但是,它的方针是与依据高通芯片组的最广泛的设备兼容,用于捕获部分。

不要犹疑和小气,请经过咱们陈述你的设备是否成功运转,或翻开。

运用 Diag 协议的相关东西

以下是一些相同运用Diag协议,用于不同意图的东西:

*参阅来历:GitHub,FB小编secist编译,转载请注明来自FreeBuf.COM

请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP