构建一个小巧的来电显示迷惑工具

*严正声明:本文仅用于技术探讨,严禁用于其他非法途径。

Asterisk介绍

记得在我刚入行安全行业的初期阶段,我便接手了一项非常棘手的任务。一个客户想要测试他们的电话网络是否存在与调制解调器相关的安全问题。然而,这对我来说是一个极大的挑战。因为我对调试解调器相关的渗透技术几乎一无所知。

但幸运的是,在正式任务开始之前我大约拥有两周的时间,让我去学习了解有关的技术知识。经过两周左右的折腾,我学到了许多关于调制解调器的安全测试技术,以及电话和Asterisk的知识。最重要的是,我学会了如何更改主叫号码来迷惑用户,起初我认为这顶多是一种恶作剧,但后来我发现,这是一门很实用的社会工程方法。

有些服务可以为你自动完成此过程 - 有些服务甚至包含具有其他功能的移动应用程序,如通话录音和语音更改。但是,这些服务的每次通话费用可能高达25美分。这对于那些每年需要拨打上千次电话的人来说,绝对是无法接受的。

而当我们使用自己的欺骗工具,即便拨打超过了2000个多电话,SIP服务提供商的账单最终也只显示了不到10美元的花销。

在此声明,我并不是什么PBX或电话方面的专家,也没有管理Asterisk的背景。只是希望通过我的分享,能为那些与我面临同样困扰的业内人士提供帮助。

在开始构建我们的VoIP来电显示欺骗工具之前,我们先来简单了解一下一些基本的术语:

SIP(会话发起协议)—— VoIP通信的实际标准,用于连接时的初始身份验证和会话协议。 RTP(实时传输协议)—— Chatty,用于在认证和协商后传输音频。 IAX(Inter-Asterisk Exchange)—— Legacy,必须有中继才能从IAX转换为SIP服务提供商。 DISA(直接向内系统接入)——这有点像你的内部系统的VPN,以便你可以安全通话。 DID(直接向内拨号)——这是你的服务提供商分配的电话号码,类似于外部IP地址。

Asterisk设置

你需要将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地址,以允许入站连接,示例如下。

设置SIP扩展

为了拨打你的Asterisk,你首先需要为外部DISA创建某种唯一标识符,以将其传递到内部的PBX。注意,Asterisk的扩展函数要与用户名相同。如下:

应用程序→扩展→添加扩展

选择默认的“通用CHAN SIP设备”

显示名称应是用户名,且应该是数字(例如4位数字)

出局主叫CID(Outbound CID)是应是来电显示,然后你可以根据需要对其进行自定义

注意:这是你手动设置主叫ID的方式。目前,它可以随意设置,因为你可以在以后通过配置文件进行更改。

出局并发限制(Outbound Concurrency Limit )代表可以与该扩展同时进行的出局呼叫的数量。如果有多人拨打电话,你需要确保这个号码可以被多人使用。

为扩展名设置密码,其他一切都可以保持默认值

使用Zoiper与Asterisk进行交互

现在,我们已经创建了一个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

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏macOS 开发学习

SimuLooker 一款用于iOS开发的小工具

在iOS日常开发中,Xcode的模拟器作为调试App的必备工具,使用频度很高,一些app需要对数据进行持久化,因此就需要经常访问模App内的Doucment,C...

1104
来自专栏写代码的海盗

Nodejs课堂笔记—第一课:修改Webstorm的默认主题

    最近小半年一直在忙于研究Docker源码,也在写相关的分析文章。但受限于某些条件不能发布到网上,甚为郁闷。而最近几天,接到新的开发任务,需要使用node...

2775
来自专栏极客猴

爬取网易云音乐精彩评论

故事的小黄花 从出生那年就飘着 童年的荡秋千 随记忆一直晃到现在 Re So So Si Do Si La So La Si Si Si Si La Si L...

1102
来自专栏游戏杂谈

【转】Android开发在路上:少去踩坑,多走捷径

本文是我订阅“腾讯大讲堂”公众帐号时,他们推送的一篇文章,但在腾讯大讲堂官网上我并没有找到这篇文章,不过其它专门“爬”公众号文章的网站倒是有。我觉得写的很不错。...

1183
来自专栏思考的代码世界

Python网络数据采集之单元测试|第11天

运行一套测试方法能够保证你的代码按照既定的目标运行,不仅可以节约你的时间,减少你对bug 的忧虑,还可以让新版本升级变得更加简单。

4738
来自专栏CSDN技术头条

皮一下,给自己做个打卡系统

2018 年微信小程序开发者逐渐多了起来,微信平台也推出了很多红利,鼓励开发者参与到小程序开发中。

5675
来自专栏Jerry的SAP技术分享

JavaScript的语音识别

有没有想过给您的网站增添语音识别的功能?比如您的用户不用点鼠标,仅仅通过电脑或者手机的麦克风发布命令,比如"下拉到页面底部”,或者“跳转到下一页”,您的网站就会...

3311
来自专栏铭毅天下

Elasticsearch全文检索实战小结——复盘我带的第二个项目

一、项目概述 这是一个被我称之为“没有枪、没有炮,硬着头皮自己造”的项目。项目是和其它公司合作的三个核心模块开发。 使用ES的目的是: 1)、采集数据、网...

76510
来自专栏IT大咖说

一位前端专家构建GraphQL工程的心路历程

内容来源:2018 年 6 月 9 日,国内某大型电商公司用户体验部门前端开发专家邓若奇在“杭州第一届 GraphQLParty—GraphQL与领域驱动带来的...

9461
来自专栏铭毅天下

Elasticsearch全文检索实战小结——复盘我带的第二个项目

一、项目概述 这是一个被我称之为“没有枪、没有炮,硬着头皮自己造”的项目。项目是和其它公司合作的三个核心模块开发。 使用ES的目的是: 1)、采集数据、网站...

4519

扫码关注云+社区

领取腾讯云代金券