simtrace之探秘SIM卡中的世界
0×00 关于SIM卡
众所周知SIM卡是一张插在手机上的小卡,其全称为Subscriber Identity Module 客户识别模块。不过,这个世界上并没有多少人知道SIM卡中的操作系统是基于jvm的。该系统简称SCF(Smart Card Filesystem)又称SAT(SIM Application Toolkit)。
那么这个系统能够做什么呢?
- 允许运营商给你的SIM卡下载固件
- 加密解密
- 读取手机数据
- 获取用户输入
- 甚至截取你的微信聊天记录
SAT系统中的文件不像Windows或Linux,它的文件名是一串8或16字节的编号,它的文件结构也十分独特,如下图:
SAT中的系统指令
- READ 读取
- SELECT 修改
- DOWN 下载
- GET 接收
- 等等等等....
那么你一定会说:既然是系统就一定会安全问题
确实,根据国外媒体,曾有黑客通过自制发射器录制运营商加密信息后修改,造成巴西大量市民SIM卡属性泄露,之后便再也没有报道
说了那么多,那怎么访问这个系统呢?
0×01 SIMtrace介绍
这块板使用T=0 线+ AT91SAM7 微控.
它主动接收SIM卡与手机间交流的内容并上传到电脑通过电脑程序解密转换成TCP/UDP协议的包,可以通过Wireshark获得可视化内容。
特性:
- 完全的主动式扫描器
- 能够检测到RST和ATR
- 支持PPS / PTS
- 能够分割APDUs
- 作为手机与卡的中间人
0×02 使用方法
将SIMtrace如下连接:
安装:
- sudo apt-get install libusb-1.0--dev
- git clone git://git.osmocom.org/simtrace.git
- cd simtrace/host/
- make
- sudo groupadd osmocom
- sudo adduser $USERNAME osmocom
- sudo tee /etc/udev/rules.d/-osmocom.rules << EOF
- # to use, install this file in /etc/udev/rules.d as -osmocom.rules
- # rule to grant read/write access on SIMtrace to group named osmocom.
- SUBSYSTEM=="usb", ATTR{idProduct}=="", ATTRS{idVendor}=="16c0", MODE="", GROUP="osmocom"
- EOF
- sudo service udev reload
运行:
- sudo ./simtrace
- APDU: (): a0 a4 6f 9f 0fAPDU: (): a0 c0 0f 6f 78APDU: (): a0 a4 6f 9f 0fAPDU: (): a0 c0 0f 6f 78APDU: (): a0 b0 ff 3f ff ff 3f 78APDU: (): a0 a4 6f ad 9f 0fAPDU: (): a0 b0 78APDU: (): a0 a4 6f 9f 0fAPDU: (): a0 b0 78APDU: (): a0 a4 6f 7e 9f 0fAPDU: (): a0 b0 0b ff ff ff ff f0 ff fe 78APDU: (): a0 a4 6f 9f 0fAPDU: (): a0 b0 78APDU: (): a0 a4 6f 9f 0fAPDU: (): a0 b0 78APDU: (): a0 a4 6f 9f 0fAPDU: (): a0 b0 ff ff ff ff ff ff ff ff 78APDU: (): a0 a4 6f 9f 0fAPDU: (): a0 c0 0f f0 6f
使用wireshark
- socat -u udp-recv: /dev/null
- ./simtrace -i 192.168.0.1
接下来,就能看见你的手机和SIM卡是怎么交流的
比如SIM卡告诉手机他能干嘛
有兴趣的朋友可以继续深入研究,如给SIM卡刷入系统等,不过这一领域是毫无资料的
附上simtrace购买地址:
- 官方:http://shop.sysmocom.de/products/simtrace –90欧元
- freebuf:http://shop.freebuf.com/item/51 –20FB
simtrace之探秘SIM卡中的世界的更多相关文章
- sim卡中的汉字存储格式
Sim卡中的ucs2格式 Sim卡中的中文都是以ucs2格式存储的,ucs2和unicode只是字节序不同,unicode是小头在前,ucs2是大头在前. Ucs2与GB2312互换可以用VC中的Wi ...
- SIM卡中UCS2编码的三种格式(80,81,82)分析
网上看到一篇比较好的说ucs2编码的文章,保存一下,原文地址: http://hi.baidu.com/youren4548/blog/item/fa08bd1bf61005058618bf1d.ht ...
- android中判断sim卡状态和读取联系人资料的方法
在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. Pho ...
- 十九、android中判断sim卡状态和读取联系人资料的方法
在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. Pho ...
- Android向手机通讯录中的所有的联系人(包括SIM卡),向手机通讯录中插入联系人
package com.example.myapi.phonepersion; import java.util.ArrayList; import java.util.List; import an ...
- Android 判断SIM卡属于哪个移动运营商
第一种方法:获取手机的IMSI码,并判断是中国移动\中国联通\中国电信 TelephonyManager telManager = (TelephonyManager) getSystemServic ...
- Android本机号码及Sim卡状态的获取
SIM卡存储的数据可分为四类:第一类是固定存放的数据.这类数据在移动电话机被出售之前由SIM卡中心写入,包括国际移动用户识别号(IMSI).鉴权密钥(KI).鉴权和加密算法等等.第二类是暂时存放的有关 ...
- SIM卡应用-OPN,PLMN,SPN
SIM卡应用 移动运营商已经将SIM卡用於很多不同的应用,下面列出了其中最主要的应 用∶ ·漫游应用∶确保手机可以在漫游之後选择缺省的运营商网络.一个SIM应用是可以在手机漫游到某个合作夥伴运营商网络 ...
- SIM卡里的文件
SIM卡里的所有文件按树来组织:主文件MF(Master File)——每一块SIM卡只有一个唯一的主文件, 其他所有文件都是它的子孙, 主文件只有文件头,里面存放着整个SIM卡的控制和管理信息专用文 ...
随机推荐
- Windows下安装并设置Redis
Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定.详情请参考: http://redis.io/download 但有时候又想在windows下 ...
- datagridview 中添加了一个button类型的列,怎么写button的事件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- JAVA 接口与继承作业——动手动脑以及课后实验性问题
一.继承条件下的构造方法调用 运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构 ...
- 20145236 《Java程序设计》第7周学习总结
20145236 <Java程序设计>第7周学习总结 教材学习内容总结 第十三章 时间与日期 认识时间与日期 时间的度量 格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点 ...
- journal
dec 5 rpt prep exam dec 4 lie to me dec 3 exam dec 2 preparation for exam dec 1 preparation for exam ...
- 使用openssl库实现RSA、AES数据加密
openssl是可以很方便加密解密的库,可以使用它来对需要在网络中传输的数据加密.可以使用非对称加密:公钥加密,私钥解密.openssl提供了对RSA的支持,但RSA存在计算效率低的问题,所 ...
- freemarker实例2
下面演示一个简单的使用项目过程:1. 使用myeclipse创建一个web项目testFM2. 把下载到的jar包(freemarker-2.3.9.jar)放到/WebRoot/WEB-INF/li ...
- redhat enterprixe 5.0 下DHCP服务器rpm安装配置及其测试
一.了解DHCP DHCP服务提供动态指定IP地址和配置参数的机制.有动态和静态两种方式. 二.rpm安装 因为配过Samba,所以感觉挺简单. 首先找到主程序和几个附属程序的rpm的安装包.应该都是 ...
- IISExpress配置文件的一个坑
现象: 昨天在处理PBS系统问题的时候意外发现两个js错误(而同样的代码在同事机器上都没有问题),如下图. 图1 图2 图3 原因分析: 初步看起来是因为页面上没有id为'form1'的form和id ...
- 让你的WPF程序使用多线程——BackgroundWorker
在wpf中可以使用许多方法执行异步操作.利用.NET的芳芳就是手动创建一个新的System.Threading.Thread对象,提供一步代码,并使用THread.Start()方法加载代码.这种方法 ...