如何使用HackRF做一个简单的IMSI捕获器
关于IMSI
IMSI为国际用户识别码(International Mobile Subscriber Identity)的缩写,是用于区分蜂窝网络中不同用户的,在所在蜂窝网络中不重复的识别码。IMSI可以用于在归属位置寄存器(HLR)和拜访位置寄存器(VLR)中查询用户信息,为了避免被监听者识别并追踪特定用户,有些情形下手机与网络之间的通信会使用随机生成的临时移动用户识别码(TMSI)代替IMSI。
如图,IMSI由MCC(移动国家代码),MNC(移动网络代码)以及MSIN(移动用户识别代码)组成,一般为15位。
准备工作
所需硬件
HackRF one
安装IMSI-catcher,gr-gsm,gnuradio及其他
安装过程可以参考这里,步骤基本相同。
apt-get install gnuradio gnuradio-dev gr-osmosdr sudo apt-get install git cmake libboost-all-dev libcppunit-dev swig doxygen liblog4cpp5-dev python-scipy
git clone https://github.com/ptrkrysik/gr-gsm.git
cd gr-gsm
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig git clone https://github.com/Oros42/IMSI-catcher.git
在/root/.gnuradio中创建文件config.conf并粘贴以下内容:
[grc]
local_blocks_path=/usr/local/share/gnuradio/grc/blocks
最后安装kalibrate-hackrf(可以不装,不装的话直接看下面)
apt-get install automake autoconf
git clone https://github.com/scateu/kalibrate-hackrf.git
cd kalibrate-hackrf
./bootstrap
./configure
make
make install
确定频率
如果安装了kalibrate-hackrf:
cd kalibrate-hackrf
cd src
./kal -s GSM900 -g -l
稍作等待,即出现下图所示情况
打开gr-gsm_livemon,选择刚刚获取的其中一个频率并进行微调,直到终端显示数据。
grgsm_livemon
出现数据就会像下图一样
如果没有装kalibrate-hackrf,那只能从一开始给的频率慢慢调了。
获取IMSI
切换目录
cd IMSI-catcher/
修改权限
chmod u+x simple_IMSI-catcher.py
运行
./simple_IMSI-catcher.py
稍等片刻,即可显示信息
打开wireshark可以查看更详细的信息
sudo wireshark -k -Y 'gsmtap && !icmp' -i lo
另:根据LAC和cellId可进行基站定位,点击这里进入定位网站
IMSI查询可以点击这里
参考来源:
https://zh.wikipedia.org/wiki/国际移动用户识别码
http://www.rtl-sdr.com/using-an-rtl-sdr-as-a-simple-imsi-catcher/
如何使用HackRF做一个简单的IMSI捕获器的更多相关文章
- 使用Python制作一个简单的刷博器
呵呵,不得不佩服Python的强大,寥寥几句代码就能做一个简单的刷博器. import webbrowser as web import time import os count=0 while co ...
- 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎
Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...
- 使用React并做一个简单的to-do-list
1. 前言 说到React,我从一年之前就开始试着了解并且看了相关的入门教程,而且还买过一本<React:引领未来的用户界面开发框架 >拜读.React的轻量组件化的思想及其virtual ...
- 【 D3.js 入门系列 --- 3 】 做一个简单的图表!
前面说了几节,都是对文字进行处理,这一节中将用 D3.js 做一个简单的柱形图. 做柱形图有很多种方法,比如用 HTML 的 div 标签,或用 svg . 推荐用 SVG 来做各种图形.SVG 意为 ...
- 一起用HTML5 canvas做一个简单又骚气的粒子引擎
前言 好吧,说是"粒子引擎"还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看demo 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单 ...
- Jmeter初步使用二--使用jmeter做一个简单的性能测试
经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍 ...
- 用EF DataBase First做一个简单的MVC3报名页面
使用EF DataBase First做一个简单的MVC3报名网站 ORM(Object Relational Mapping)是面向对象语言中的一种数据访问技术,在ASP.NET中,可以通过ADO. ...
- 【 D3.js 入门系列 — 3 】 做一个简单的图表!
图1. 柱形图 1. 柱形图 前几章的例子,都是对文字进行处理.本章中将用 D3 做一个简单的柱形图.制作柱形图有很多种方法,比如用 HTML 的 <div> 标签,或在 SVG 上绘制 ...
- Windows Phone开发(21):做一个简单的绘图板
原文:Windows Phone开发(21):做一个简单的绘图板 其实我们今天要说的就是一个控件--InkPresenter,这个控件并不是十分强大,没办法和WPF中的InkCanvas相比,估计在实 ...
随机推荐
- DataTable插件报错:Uncaught TypeError: Cannot read property 'style' of undefined
DataTable插件报错:Uncaught TypeError: Cannot read property 'style' of undefined 原因:table 中定义的列和aoColumns ...
- java面试题汇总(有的题无视即可,没什么实际用途)
相关概念 面向对象的三个特征 封装,继承,多态,这个应该是人人皆知,有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消 ...
- UI自动化(八)xpath
由于最新版火狐不在支持FireBug等开发工具,可以通过https://ftp.mozilla.org/pub/firefox/releases/下载49版本以下的火狐就可以增加Firebug等扩展了 ...
- JS设计模式(11)中介者模式
什么是中介者模式? 中介者模式:对象和对象之间借助第三方中介者进行通信. 定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的 ...
- Java并发系列之Synchronized
每一个刚接触多线程并发编程的同学,当被问到,如果多个线程同时访问一段代码,发生并发的时候,应该怎么处理? 我相信闪现在脑海中的第一个解决方案就是用synchronized,用锁,让这段代码同一时间只能 ...
- Java 批量导入大量数据
项目上线测试.产品说导入太慢了,一样的数据量另外一个系统只需要1分钟,我们要5分钟.... 开始以为是因为POI在解析07版本的Excel时候,因为数据量太多所以慢了,后面看下日志,发现是在入库的时候 ...
- Nat Med:单独使用anti-CTLA4治疗前列腺癌效果差的原因
肿瘤细胞能够分泌特定的细胞因子,结合T细胞表面的受体抑制其活性,从而来影响免疫细胞杀死肿瘤细胞的能力.这一类细胞因子被冠名为抗肿瘤免疫反应的“check point”.针对这类check point信 ...
- Selenium的使用
https://blog.csdn.net/qq_21445981/article/details/78386699 https://blog.csdn.net/duzilonglove/articl ...
- scp免密操作
scp免密操作 2.1服务器(本机)从目标服务器上传/下载文件或者文件夹 2.2生成秘钥 本机执行:ssh-keygen -t rsa 遇到提示,直接回车就OK,秘钥生成在用户的根目录的.ssh目录下 ...
- [flask]gunicorn配置文件
配置文件 #!/home/xx/.virtualenvs/xx/bin/python # encoding: utf-8 import multiprocessing # 监听端口 bind = '0 ...