如何使用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 idconfig

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 40 -l 40

稍作等待,即出现下图所示情况

打开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/

时间: 2024-10-27 15:22:54

如何使用HackRF做一个简单的IMSI捕获器的相关文章

c#做一个简单的视频播发器 都用什么控件啊

问题描述 我是一个人新手做一个简单的视屏播放器但是我不知道该从什么地方开始下手用什么控件虚心求教 解决方案 解决方案二:视频播放器的com组件,例如windowsmideaplayer解决方案三:支持1楼的呢帮顶解决方案四:windowsmideaplayer记载迅雷看看播放器.参考解决方案五:楼主你需要在项目内引用一个windowsmideaplayer然后在工具箱里拖动出来就可以实现了,windowsmideaplayer内有个URL连接源就可以了哦!解决方案六:看你要播放什么了.如果是播放

使用Python制作一个简单的刷博器

   呵呵,不得不佩服Python的强大,寥寥几句代码就能做一个简单的刷博器. import webbrowser as web import time import os count=0 while count<10: count=count+1 #你要刷的博客 web.open_new_tab("http://www.cnblogs.com/smiler/archive/2010/04/20/1716418.html#2856973") time.sleep(1) else:

如何做一个简单的小网站

如何做一个简单的小网站,请注意:拥有域名不代表你就有了网站.做之前要想一下,网站用来干什么?静态的还是动态的,自己至少要懂一点代码知识,不懂程序的话,也要对html多少了解一些. 不然,我建议你还是到各大网站申请个Blog写日志算了:) 如果你: 1.做个简历式的小网站 上面就放些文章,图片或者资料,且文件不多,那么选择静态空间就搞定.你可以自己或者找人来做个网页的模版,自己套内容就 可以. 整体下来只要99元,包括域名和空间.在http://www.nicenic.com/design/?s=

源码-用javaSSH框架做一个简单的登录功能

问题描述 用javaSSH框架做一个简单的登录功能 用SSH框架做一个简单的登录功能,登录成功则跳转到一个页面,登录失败则跳转到一个失败页面,MySQL数据库.求大神指点,最好能提供源码 解决方案 Spring 3.x 企业应用开发实战的第一个例子就符合你的要求了.Mysql+srping3 解决方案二: 告诉我你的扣扣邮箱,我发你邮箱 解决方案三: 主要还是在struts2 里面,处理业务逻辑,再跳转到指定页面,关键在struts,xml配置文件里面

用php做一个简单的表单

PHP最有用的特性之一是它能够自动将表单中的变量值赋予PHP变量.这使得表单处理变得非常快捷. 因此,如果你送出一个内含输入栏位值的表单如下: <INPUT TYPE=TEXT NAME="name" VALUE="Glen Morris"> 当你用PHP处理此页面,$name变量的值就会是 Glen Morris. 因此,你可以用如下的方式把值打印出来: echo "Hi $name!"; 或者像这样测试其值: if ($name

静态网页-求大哥们帮做一个简单的购物网页。

问题描述 求大哥们帮做一个简单的购物网页. 小弟本人是IT新手加菜鸟,刚上大一,这学期初学习了HTML静态网页制作,现在有道结课作业,要求如下: 至少应该有主页.注册登陆页面及其他商品介绍的页面.主页要求有导航栏区.登陆注册区.以及其他主题功能图片预览区:主页命名为index.html; 3. 完成注册.登陆功能,网站主页使用合理的框架结构: 4. 用户的注册功能利用表单来完成,注册用户登陆后可以上传本地其他图片到某某文件夹中: 5. 网站中的其他页面和功能可以根据自己能力水平进行其他方面设计,

java web新闻管理系统-谁用java web做一个简单的新闻管理系统啊,急用!!!

问题描述 谁用java web做一个简单的新闻管理系统啊,急用!!! 增删改,分页,有前台和后台.后台就是管理员的增删改,前台就是显示新闻的标题和内容.用oracle数据库链接.有的请发在我邮箱825091682@qq.com.谢谢了 解决方案 smarty实现简单的新闻管理系统smarty实现简单新闻管理系统 解决方案二: 不用框架,仅用java web

string-在vs2013用MFC做一个简单的视图

问题描述 在vs2013用MFC做一个简单的视图 解决方案 CString对象需要显示的创建 解决方案二: 注意字符类型 pDC->TextOutW(10 10 L""ONE WORLD ONE DREAM""); 解决方案三: 一般这样写pDC->TextOut(10 10 _T(""ONE WORLD ONE DREAM""));

asp.net mvc项目:做一个简单的购物网站,如何实现让多个用户同时在线购物?

问题描述 asp.net mvc项目:做一个简单的购物网站,如何实现让多个用户同时在线购物? 请知道的同行具体给晚辈吐槽点经验知识(asp.net mvc项目:做一个简单的购物网站,如何实现让多个用户同时在线购物?) 解决方案 每个用户的信息放在session里面,互不干扰的.在数据库中,通过用户id区分不同的用户,所以做网站天然就可以支持多个用户在线购物. 微软专门做了一个asp.net mvc的例子,叫mvcmusicstore,是一个音乐购物网站,你可以google下,有关于它全部的源代码