01
what's 伪基站
“伪基站”即假基站,设备一般由主机和笔记本电脑组成,通过短信群发器、短信发信机等相关设备能够搜取以其为中心、一定半径范围内的手机卡信息,通过伪装成运营商的基站,冒用他人手机号码强行向用户手机发送诈骗、广告推销等短信息。--《百度百科》
02
有什么危害?
03
伪基站分析
从目前发现的伪基站来说,基本架构:发信软件+Openbts +Gnuradio+USRP+功放天线。设备大小已经由以前的不方便携带发展到现在一个背包尽可,且支持手机端远程控制,(见下图)
先从伪基站的组成来分析由底层到上层:usrp(射频设备)→【Gunradio→OpenBTS→发信应用(发信软件+数据库+apche)】,操作系统一般均为Ubuntu。
Usrp:USRP(Universal Software Radio Peripheral,通用软件无线电外设)旨在使普通计算机能像高带宽的软件无线电设备一样工作。从本质上讲,它充当了一个无线电通讯系统的数字基带和中频部分。
USRP由 USRP母板、连同各种子板以及相应的天线组成。一个典型的 USRP 产品系列包括两部分:一个带有高速信号处理的 FPGA 母板,和一个或者多个覆盖不同频率范围的可调换的子板。它们共同实现把比特流数据从天线传到主机电脑(即接收),或者从主机电脑传送到天线(即发送)。在各种子板中,USRP 系列涵盖从直流到 5.9GHz 的整个范围,这包括了从调幅广播到超过 Wi‐Fi 的所有频率。
伪基站会模拟运营商的频段进行信号调制,900MHZ频段和1800MHZ频段,功率高于一般小区基站的正常功率。
Gnuradio:
GNU Radio是一个完全开源的软件无线电结构平台,它可以用来设计和仿真,也可以用来连接真实的无线电系统。GNU Radio是一个高度模块化,采用流图类形式的软件架构平台,它本身提供了许多模块库,使用者可以很快速的使用这些模块来建立关于信号处理的流程, GNU Radio是一个信号处理块和开发者互动的发展框架。它有一个广泛的标准库的块,并且有很多系统可供开发人员参考。
Openbts:
OpenBTS是英语:Open Base Transceiver Station的缩写, OpenBTS[1] 取代了传统的GSM运营商的核心网络基础设施从第三层向上,而不是依靠外部无线电资源管理、基站控制器OpenBTS单位内部执行这个函数。代替转发呼叫业务通过运营商的移动交换中心,OpenBTS的提供经由呼叫SIP到VoIP软交换(例如FreeSWITCH或yate)或PBX(如Asterisk)。该VOIP交换机或PBX软件可以安装用于运行的OpenBTS本身相同的计算机,形成一个单一的计算机系统的一个独立的蜂窝网络。多OpenBTS单元也可以共享一个共同的VOIP或PBX形成更大的网络。
通过工程手机获取到附近小区的频点,赋值给伪基站,模拟附近小区频点,通过增大基站功率和优化C2小区优选算法,使手机在扫描搜索周边基站信息时只考虑信号强度,迫使手机优先连接伪基站(GSM单向鉴权),断开原始正常基站,来推送短信
一般手机默认网络模式为2G/3G或者2G/3G/4G,如果收到伪基站短信骚扰,可以手工将手机调到仅3G或仅4G模式,
Openbts为伪基站取证的关键点之一;只要是Openbts的数据库文件和日志文件,统计受影响手机的IMSI和通过解码日志文件的短信内容。以目前的一个案例来大概说下取证的几个要点:
BTS配置路径: /etc/Openbts/
OpenBTS.db和TMSI.db
OpenBTS.db: 可用sqlite3打开.文件主要是bts的配置文件,
TMSI.db:主要存放发送TMSI历史记录和短信服务的信息
同样可以使用SQLite3打开
其中包括三个表:TMSI_TABLESMS SMS_SENT
TMSI:临时移动用户识别码,它是IMSI的临时“代表”,出于IMSI的安全考虑,为尽量避免在空中接口传递IMSI,由VLR给用户分配的,TMSI在当前VLR中是唯一的。
当用户漫游至其它VLR时,当前VLR向前一VLR查询用户TMSI,查询成功后当前VLR完成对用户的鉴权,并重新给用户分配一个新的TMSI,前一VLR将用户的过期TMSI和用户信息删除;如果查询失败,则当前VLR向用户归属HLR查询用户IMSI,完成鉴权。
TMSI_TABLE受影响手机
SMS_SENT 发送次数
通过查看TMSI数量可以为统计受影响手机数作为参考
Openbts日志:
/var/log/Openbts.log
/var/log/syslog
Openbts相关的调试,从受影响手机接入,连接,短信发送。踢出手机等一些列操作信息
关键字【RPDU】【IMSI】【ADDSMS】【raw】
统计收短信手机数量:
Cat Openbts.log |grep id=IMSI= |wc –l
Cat Openbts.log|grep ‘POWERON|POWEROFF’
根据USRP的启停时间来判断发信的时间,还有其他更准确的方法来判断,此处仅举一例
短信内容:
短信编码分为RPDU和二进制直接解码
1. Cat Openbts.log|grep ‘addsms’
2. cat OpenBTS.log|grep -n 'raw=(.{60,})' >RPDU.TXT 将rpdu格式的短信内容输出解码
cat OpenBTS.log |grep -n 'raw=(.{60,})' |wc –l统计条目数
http://www.multisilicon.com/blog/a22201774~/pdu.htm
Syslog*日志也会记录bts的相关信息,由于logrotate会覆盖掉以前的日志,但是内容有限且杂,就不说了。
发信软件:
目前市面上伪基站使用见到的包括:华为软件GSMS,2014迅驰版,华为应急通讯完美版,2014c2破解版,gsms等,基本架构为apache+mysql+php
发信软件信息主要是数据库和apche日志
许多发信软件的短信内容保存在mysql数据库,有时候会被清,有的会保留
如果还想获取到更多信息的请分析 mysql【/var/log/mysql】日志apache【/var/log/apache2】日志syslog*等日志
有必要的时候做个系统的数据恢复!!!可能会有意外的收获哟
04
如何防范?
伪基站并非防不住,细心的人都会从收到垃圾短信的号码、内容等判断,下面简单说下如何区分。
1、细看收到短信的号码是否可信。
2、细看短信内容中的网址是否真实。
3、收到短息不乱回复。
4、收到朋友借钱等信息,请先电话确认。
5、使用可信度较高垃圾短信屏蔽软件。
6、总之,收到短信请细看、请三思。
资讯/漏洞/插件/心得
关注“七安全”
微信ID:qi_anquan
长按二维码关注七安全
原文始发于微信公众号(雁行安全团队):谈谈伪基站架构及取证分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论