*严正声明:本文仅用于技术探讨,严禁用于其他非法途径。
记得在我刚入行安全行业的初期阶段,我便接手了一项非常棘手的任务。一个客户想要测试他们的电话网络是否存在与调制解调器相关的安全问题。然而,这对我来说是一个极大的挑战。因为我对调试解调器相关的渗透技术几乎一无所知。
但幸运的是,在正式任务开始之前我大约拥有两周的时间,让我去学习了解有关的技术知识。经过两周左右的折腾,我学到了许多关于调制解调器的安全测试技术,以及电话和Asterisk的知识。最重要的是,我学会了如何更改主叫号码来迷惑用户,起初我认为这顶多是一种恶作剧,但后来我发现,这是一门很实用的社会工程方法。
有些服务可以为你自动完成此过程 - 有些服务甚至包含具有其他功能的移动应用程序,如通话录音和语音更改。但是,这些服务的每次通话费用可能高达25美分。这对于那些每年需要拨打上千次电话的人来说,绝对是无法接受的。
而当我们使用自己的欺骗工具,即便拨打超过了2000个多电话,SIP服务提供商的账单最终也只显示了不到10美元的花销。
在此声明,我并不是什么PBX或电话方面的专家,也没有管理Asterisk的背景。只是希望通过我的分享,能为那些与我面临同样困扰的业内人士提供帮助。
在开始构建我们的VoIP来电显示欺骗工具之前,我们先来简单了解一下一些基本的术语:
SIP(会话发起协议)—— VoIP通信的实际标准,用于连接时的初始身份验证和会话协议。
RTP(实时传输协议)—— Chatty,用于在认证和协商后传输音频。
IAX(Inter-Asterisk Exchange)—— Legacy,必须有中继才能从IAX转换为SIP服务提供商。
DISA(直接向内系统接入)——这有点像你的内部系统的VPN,以便你可以安全通话。
DID(直接向内拨号)——这是你的服务提供商分配的电话号码,类似于外部IP地址。
你需要将Asterisk服务器设置为可访问的位置 - 理想情况下为外部IP。但是,如果你打算使用VPN电话,softphone或端口转发,则内部NAT将起作用。FreePBX可以为AWS AMI提供镜像。在开销方面如果你像我一样,始终保持开机状态,弹性计算每月大约10美元左右,具体取决于PBX的使用情况。
一旦拥有了你的FreePBX虚拟机,你就可以启动并运行了。具体过程如下:
启动:
打开服务提供商的SIP TCP/UDP 5060
你的公共IP地址的RTP UDP 10000-20000
设置 → Asterisk SIP设置
确保外部地址和本地网络的准确性
确保ulaw,alaw,gsm,g726编解码器复选框被勾选
一旦你选择了你认为合适的提供商,你就需要在Asterisk中设置你的SIP中继:
连接→中继→添加中继
点击添加SIP(chan_sip)中继
设置你的中继名称
设置拨号号码操作规则
1 + NXXNXXXXXX
1NXXNXXXXXX
设置你的中继名称
设置对等细节(peer detail)
设置用户使用环境和用户详细信息
“Host”和“FromDomain”是由服务提供商提供的,通常位于其网站的支持部分。
在服务提供商的网站上,你需要创建SIP中继并指定你的外部IP地址,以允许入站连接,示例如下。
为了拨打你的Asterisk,你首先需要为外部DISA创建某种唯一标识符,以将其传递到内部的PBX。注意,Asterisk的扩展函数要与用户名相同。如下:
应用程序→扩展→添加扩展
选择默认的“通用CHAN SIP设备”
显示名称应是用户名,且应该是数字(例如4位数字)
出局主叫CID(Outbound CID)是应是来电显示,然后你可以根据需要对其进行自定义
注意:这是你手动设置主叫ID的方式。目前,它可以随意设置,因为你可以在以后通过配置文件进行更改。
出局并发限制(Outbound Concurrency Limit )代表可以与该扩展同时进行的出局呼叫的数量。如果有多人拨打电话,你需要确保这个号码可以被多人使用。
为扩展名设置密码,其他一切都可以保持默认值
现在,我们已经创建了一个SIP中继,通过我们的VoIP服务提供商对其进行配置,并设置了扩展和密码。现在我们可以使用softphone来拨打我们的Asterisk。
你首先需要下载Linphone softphone,它可以安装在Windows,Mac和Linux上:
一旦你安装了Linphone,打开程序并点击“Account Assistant”。
接下来,点击“使用SIP帐户”。
使用我们以前创建的扩展,你将登录到Asterisk。如果你已经在外部的VPS上安装了Asterisk,就可以直接使用IP地址。否则,你将需要确保你已经设置了用于SIP和RTP的内部Asterisk服务器的端口转发。
输入用户名(扩展名),Asterisk的公共IP以及为扩展名配置的密码,其他所有内容均为默认值。
点击“使用”后,你将返回到Linphone主屏幕。接着,点击左上角将显示你的Linphone帐户。
然后,选择我们在Asterisk注册的新创建的SIP帐户。
最后,你可以通过在程序顶部的文本框中输入想显示的电话号码来调用Linphone客户端。
本文我已经介绍了这个项目的设置部分,比如如何设置Asterisk,如何配置Asterisk来代替原电话号码,以及如何使用softphone客户端来与Asterisk服务器进行交互。在下一篇文章中,我将深入探讨如何创建自定义的扩展配置和自动化功能,以实现来电显示的动态欺骗。
*参考来源:rapid7,FB小编 secist 编译,转载请注明来自FreeBuf.COM