如何使用阿里云搭建ss搭建并使用便携式 4g/lte 伪基站研究移动安全

版权声明:如果网站侵犯了您的合法著作权宜,请发送邮件至我,经核实后,我会在24小时内删除该资源!在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
标签:至少1个,最多5个
来自 GitChat 作者:Seeker更多IT技术分享,尽在微信公众号:GitChat技术杂谈
在移动互联网深入普及和物联网开始规模应用的今天,网络安全公司怎能不研究移动安全,要研究移动安全,怎能没有4G/LTE伪基站研究测试环境?
本文介绍如何利用开源项目和SDR,合法的搭建并使用便携式4G/LTE伪基站,用于实验室的安全研究,或者用于用户授权的物理渗透测试。
合法开展研究活动
根据国家无线电管理法规,我们需要先取得频率、设备和人员许可才能合法的在通信业务频段进行收发。而已经分配给运营商的频段,需要该运营商同意才能使用。因此,我们做通信实验时,通常的做法不是申请许可,而是构造一个封闭的电磁空间,即法拉第笼,在这个空间里进行无线信号的发射和接收不会影响到外部世界。
法拉第笼是由金属或金属网包围形成的一个空间,大可以到一个大房子,小可能就是一个小箱子。测试时,如果法拉第笼比较小,我们就只把发射和接收无线电信号的天线放在法拉第笼里面,其它部分仍可放在外面,内外通过馈线连接。
SBC:UP Board, Intel Atom x5-Z8350 四核CPU,4GB RAM,64GB eMMC
SDR:USRP B200mini + USB电缆
天线+馈线+双工器
充电宝:5V 3A(非常重要)
Ubuntu 16.04 LTS
安装之后更新
sudo apt-get update
sudo apt-get upgrade
必备软件:Git
sudo apt-get install git
国内专享:Shadowsocks、Privoxy
sudo apt-get install privoxy python-gevent python-pip
sudo pip install shadowsocks
科学上网配置略。
eNodeB: OpenAirInterface
cd openairinterface5g
git checkout develop
source oaienv
cd cmake_targets
./build_oai -I --eNB -x --install-system-files -w USRP
EPC: OpenAir-CN
cd openair-cn
git checkout develop
cd scripts
./build_hss -i
./build_mme -i
./build_spgw -i
./build_hss
./build_mme
./build_spgw
找到 ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf进行如下修改,并另存为enb.band3.tm1.usrpb200.conf。
tracking_area_code
mobile_country_code =
mobile_network_code =
////////// MME parameters:
mme_ip_address
= ( { ipv4
= "127.0.1.10";
= "192:168:30::17";
preference = "ipv4";
NETWORK_INTERFACES :
ENB_INTERFACE_NAME_FOR_S1_MME
ENB_IPV4_ADDRESS_FOR_S1_MME
= "127.0.1.2/8";
ENB_INTERFACE_NAME_FOR_S1U
ENB_IPV4_ADDRESS_FOR_S1U
= "127.0.6.2/8";
ENB_PORT_FOR_S1U
= 2152; # Spec 2152
修改hosts文件和hostname,然后重新启动。
sudo gedit /etc/hosts
mini.openair4G.eur mini
127.0.33.1
hss.openair4G.eur hss
sudo gedit /etc/hostname
复制EPC配置文件:
sudo mkdir -p /usr/local/etc/oai/freeDiameter
sudo cp ~/openair-cn/etc/mme.conf /usr/local/etc/oai
sudo cp ~/openair-cn/etc/hss.conf /usr/local/etc/oai
sudo cp ~/openair-cn/etc/spgw.conf /usr/local/etc/oai
sudo cp ~/openair-cn/etc/acl.conf /usr/local/etc/oai/freeDiameter
sudo cp ~/openair-cn/etc/mme_fd.conf /usr/local/etc/oai/freeDiameter
sudo cp ~/openair-cn/etc/hss_fd.conf /usr/local/etc/oai/freeDiameter
编辑hss.conf
## MySQL mandatory options
MYSQL_server = "127.0.0.1";
MYSQL_user
MYSQL_pass
= "linux";
= "oai_db";
编辑mme.conf
REALM = "openair4G.eur";
= "/usr/local/etc/oai/freeDiameter/mme_fd.conf"; # YOUR MME freeDiameter config file path
HSS_HOSTNAME
# THE HSS HOSTNAME
GUMMEI_LIST = (
{MCC="460" ; MNC="01"; MME_GID="4" ; MME_CODE="13"; }
# YOUR GUMMEI CONFIG HERE
TAI_LIST = (
{MCC="460" ; MNC="01";
TAC = "13"; }
# YOUR PLMN CONFIG HERE
NETWORK_INTERFACES :
# MME binded interface for S1-C or S1-MME
communication (S1AP), can be ethernet interface, virtual ethernet interface, we don't advise wireless interfaces
MME_INTERFACE_NAME_FOR_S1_MME
# YOUR NETWORK CONFIG HERE
MME_IPV4_ADDRESS_FOR_S1_MME
= "127.0.1.10/8";
# YOUR NETWORK CONFIG HERE
# MME binded interface for S11 communication (GTPV2-C)
MME_INTERFACE_NAME_FOR_S11_MME
# YOUR NETWORK CONFIG HERE
MME_IPV4_ADDRESS_FOR_S11_MME
= "127.0.8.11/8";
# YOUR NETWORK CONFIG HERE
MME_PORT_FOR_S11_MME
# YOUR NETWORK CONFIG HERE
# S-GW binded interface for S11 communication (GTPV2-C), if none selected the ITTI message interface is used
SGW_IPV4_ADDRESS_FOR_S11
= "127.0.8.1/8";
# YOUR NETWORK CONFIG HERE
编辑spgw.conf
NETWORK_INTERFACES :
# S-GW binded interface for S11 communication (GTPV2-C), if none selected the ITTI message interface is used
SGW_INTERFACE_NAME_FOR_S11
# YOUR NETWORK CONFIG HERE
SGW_IPV4_ADDRESS_FOR_S11
= "127.0.8.1/8";
# YOUR NETWORK CONFIG HERE
# S-GW binded interface for S1-U communication (GTPV1-U) can be ethernet interface, virtual ethernet interface, we don't advise wireless interfaces
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
# YOUR NETWORK CONFIG HERE, USE "lo" if S-GW run on eNB host
SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP
= "127.0.6.1/8";
# YOUR NETWORK CONFIG HERE
SGW_IPV4_PORT_FOR_S1U_S12_S4_UP
# PREFER NOT CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING
# S-GW binded interface for S5 or S8 communication, not implemented, so leave it to none
SGW_INTERFACE_NAME_FOR_S5_S8_UP
# DO NOT CHANGE (NOT IMPLEMENTED YET)
SGW_IPV4_ADDRESS_FOR_S5_S8_UP
= "0.0.0.0/24";
# DO NOT CHANGE (NOT IMPLEMENTED YET)
NETWORK_INTERFACES :
# P-GW binded interface for S5 or S8 communication, not implemented, so leave it to none
PGW_INTERFACE_NAME_FOR_S5_S8
# DO NOT CHANGE (NOT IMPLEMENTED YET)
PGW_IPV4_ADDRESS_FOR_S5_S8
= "0.0.0.0/24";
# DO NOT CHANGE (NOT IMPLEMENTED YET)
# P-GW binded interface for SGI (egress/ingress internet traffic)
PGW_INTERFACE_NAME_FOR_SGI
# YOUR NETWORK CONFIG HERE
PGW_IPV4_ADDRESS_FOR_SGI
= "192.168.12.82/24";
# YOUR NETWORK CONFIG HERE
PGW_MASQUERADE_SGI
# YOUR NETWORK CONFIG HERE
# DNS address communicated to UEs
DEFAULT_DNS_IPV4_ADDRESS
= "192.168.106.12";
# YOUR NETWORK CONFIG HERE
DEFAULT_DNS_SEC_IPV4_ADDRESS = "192.168.12.100";
# YOUR NETWORK CONFIG HERE
编辑HSS freediameter配置文件 (/usr/local/etc/oai/freeDiameter/hss_fd.conf):
Identity = "hss.openair4G.eur";
Realm = "openair4G.eur";
编辑MME freediameter配置文件 (/usr/local/etc/oai/freeDiameter/mme_fd.conf):
Identity = "mini.openair4G.eur";
Realm = "openair4G.eur";
ConnectPeer= "hss.openair4G.eur" { ConnectTo = "127.0.33.1"; No_SCTP ; No_IPv6; Prefer_TCP; No_TLS; port = 3868;
realm = "openair4G.eur";};
安装证书:
cd ~/openair-cn/scripts
./check_hss_s6a_certificate /usr/local/etc/oai/freeDiameter/ hss.openair4G.eur
./check_mme_s6a_certificate /usr/local/etc/oai/freeDiameter/ mini.openair4G.eur
首次运行HSS:
cd ~/openair-cn/scripts
./run_hss -i ~/openair-cn/src/oai_hss/db/oai_db.sql
之后每次运行HSS:
cd ~/openair-cn/scripts
cd ~/openair-cn/scripts
安全测试通常不需要运行SP-GW。
cd ~/openairinterface5g
source oaienv
cd cmake_targets/lte_build_oai/build
sudo -E ./lte-softmodem -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb200.conf
对TD-LTE的支持
OAI本身支持TD-LTE。但是因为TD系统全网收发同步的要求,伪基站要正常工作,就必须与运营商现网同步。OAI已含有部分通过空中接口信号实现TD同步的代码,需要进一步修改才能完成与现网同步。
如果我们只做网络安全研究,不做通信研究,就不需要完整的EPC。大部分公司只是研究空口的DoS攻击和RRC重定向攻击,每次只有少量固定格式的网络报文从MME返回,因此可以修改代码,直接返回我们想要的报文,或者执行我们想要的逻辑,就可以精简掉EPC,只运行lte-softmodem一个进程就好了。
连接运营商核心网
如果能从运营商核心网获得安全认证四元组:Kasme、AUTN、RAND、XRES,就能通过双向鉴权,让LTE手机相信我们的基站是真基站。这需要修改MME的代码和freeDiameter的配置来实现。
同一硬件集成LTE+GSM伪基站
架设自己的测试网
如果你对某一种高级玩法感兴趣,并且知道大体怎么实现,欢迎找我组队,可以一起做点有意思的(开源)通信安全项目,我的微信:。
在万物互联时代,了解LTE可用性和安全性的边界,事关我们每个人的人身安全和数据安全。
不管你是在开发无人驾驶汽车、医疗设备、智能电表,还是普通的移动应用,过于相信运营商网络的可用性和安全性都会带来安全威胁。不只是网络安全公司需要研究无线通信的安全,产品开发者同样需要。
6 收藏&&|&&10
你可能感兴趣的文章
8 收藏,833
这个略高级,先mark
这个略高级,先mark
分享到微博?
我要该,理由是:您的位置: &
利用伪基站进行传播感染手机的恶意木马程序
优质期刊推荐

我要回帖

更多关于 4g免流服务器搭建教程 的文章

 

随机推荐