演讲人: Kevin McNami是贝尔实验室安全研究实验室的主任,该实验室是阿尔卡特朗讯的一部分。 他的演讲叫做“如何制作间谍电话”,如果您有任何疑问,请保存到演讲结束,以使我们知道我们有足够的时间为他们服务。
凯文·麦克纳米:我欢迎大家,我很高兴今天在这里讲话。 我将讨论如何制作一款出色的间谍电话,但我认为,您的主要兴趣是如何将这个SpyPhone间谍电话模块放入Android应用程序。

我的演讲将包括3个部分。 首先是对SpyPhone的实际演示,然后我们将讨论“间谍电话”的特殊设计。 对话的第三部分将专门介绍如何将SpyPhone服务注入到应用程序中,最后,我将喜欢结果并回答问题。
下一张幻灯片显示了人们过去如何感知“间谍电话”。 基本上,他们认为这样的电话可以让您监视其他人。

现代间谍电话看起来与众不同;它是运行Android OS的常规智能手机。 Android是一个非常易于使用的非常灵活的平台,它非常开放,可以让您做很多事情。 因此,这就是现代SpyPhone的外观。 我认为运行iOS的手机可以完成相同的操作,但是我将精力集中在Android上。

以前,要组织室外监视,您将需要各种设备,从录音机到电话录音,再到录音带,最后是带有隐蔽监视设备的汽车。 今天,您所需要的只是一部Android手机。 您使用这样的电话并安装了特殊软件,就可以跟踪拥有此电话的人。 您可以控制他的电话,可以控制他的位置,甚至可以从此人的电话发送消息,查看联系人列表等。

这是一种非常强大的网络监视设备。 如果某人的电话感染了此间谍软件应用程序,并且此人将其带到办公室,则您可以在工作中跟随该人,观看商务会议等。 间谍设备的管理和控制是通过Internet进行的。 间谍模块不需要任何特殊的附加设备,所有组件都位于手机内部。 当他有东西要传达有趣的东西时,他会通过命令与控制网站与您联系并传输信息。 稍后,我将向您演示如何运行。
现在考虑对策。 在古代,人们使用所谓的“沉默锥”来防止窃听。 如果有人在监视您,您总是可以输入“沉默的锥体”并与您的对话者完全自由地交流。

今天的“沉默之锥”看起来有些不同。 我工作的公司开发了一种可以放在网络上的技术,该技术可以自动检测由Android手机介导的命令和控制等流量。

这就是为什么我们创建了SpyPhone模块的原因,当我们向客户(主要是移动通信服务和移动Internet的提供商)提供服务时,我们将其用作演示。 我们向他们展示了一个“间谍电话”,以表明移动网络中存在巨大的安全问题。 该威胁仍处于起步阶段,但将来可能会造成巨大破坏。 我们使用此模块对客户进行危险教育,因此,演示的第二部分很自然地展示了我们的产品,可以承受这些危险。
智能手机是非常强大的设备。 它提供了对您的位置的访问,几乎可以在任何地方连接到Internet,具有麦克风,摄像头,并且可以通过Wi-Fi连接到本地网络,所有这些使它成为理想的间谍平台。
我想说,智能手机是理想的网络间谍工具,可用于跟踪受害者的位置,下载个人信息,拦截和发送消息,记录对话并在所有者不知情的情况下拍照。 在BYOD和APT的背景下,它是在公司或政府网络上发起内部攻击的理想平台。
我想我已经讨论了足够多的内容,所以让我们继续进行演示。 在左侧,您会从手机屏幕上看到一个屏幕截图,该屏幕截图很快就会成为间谍软件,这是我当前正在使用的手机。 在右侧,您将看到命令和控制台,跟踪此电话的人员将使用该命令和控制台。

因此,我们采用了SpyPhone模块作为恶意软件,并在非常受欢迎的游戏Angry Birds的副本中实现了该软件。 然后我们给一个人发送了一封电子邮件,说他可以下载并玩这个很酷的游戏。 我们还可以将此受感染的游戏放在用户可以从其下载的第三方站点上。 现在,我将在手机上的浏览器中查看收到的信件。
因此,当这个人收到这封信时,他单击链接,进入我们游戏页面上“ Android”应用程序的真实工作存储区。 我们决定将其称为“非常愤怒的小鸟”,因为它包含SpyPhone模块。

因此,用户下载了该游戏。 在您的Android手机上,当您安装该应用程序时,它会为您提供其工作所需的所有权限的列表。

它表示该应用程序需要访问您的位置,个人信息,网络通信,数据存储,付费服务,电话。 由于用户要安装该应用程序,因此他通常不会注意所有这些权限,这些权限在安装程序时会不断出现,只需单击“安装”按钮即可。 现在,屏幕显示了应用程序安装过程的进展情况。 接下来,我们启动已安装的应用程序。 现在,在左侧您会看到正在运行的游戏,在右侧-您正在控制智能手机的命令和控制网站的信息,并且您可以听到伴随游戏的声音。

我会静音,因为它使我烦恼。 因此,请注意,游戏照常进行,没有什么特别的东西可以引起用户的注意。 没有证据表明电话发生了任何奇怪的事情。
用户玩游戏很酷,但是即使他停止玩游戏并关闭游戏,间谍模块也将继续在后台运行。 即使重新启动电话,SpyPhone服务也将重新启动,现在该智能手机上一直存在该服务。 因此,此电话感染了网络间谍,现在显示在命令与控制网站的控制台中。 如果我单击此行,站点将为我提供存储在此设备上的信息。 我们可以获得带有该设备位置的地图-这是拉斯维加斯。

让我强调一下,这里电话和计算机之间的连接不是直接进行的,而是使用位于我工作所在的渥太华的Web服务器通过Internet进行的。 我用电缆将此手机连接到计算机的唯一原因是需要截屏。 控制台显示我们有其他电话同时工作。 这是其中一个位于中国的站点,因此您可以创建一个由“间谍电话”组成的国际网络,并在其在线状态下始终对其进行监视。
所以,回到我们在拉斯维加斯的电话。 您会看到这里是电话所有者帐户的电子邮件地址,电话号码,CDMA通信标准,网络类型,IMEI,移动运营商所在的国家/地区,其名称,SIM卡状态,位置坐标和电话所有者联系人。 所有这些信息都被上载到命令和控制服务器,我们可以每周7天,每天24小时跟踪该电话的所有者,并使用电话提供的所有信息,包括下载该特定人员的联系人列表。 如果我们要使用某种工业网络间谍活动,当我们想了解电话所有者正在与谁通话以及与谁进行业务往来时,这将为我们提供其他潜在目标的列表。 我们可以使用此联系人列表来定位特定的人。
可以想象,攻击者将该游戏分发到了所有Android应用商店,人们下载了该游戏之后,您将注意力集中在特定公司的某些员工,他的联系人列表上,等等。
我们可以做的另一件事是更新已安装的间谍软件,并向受感染的手机发送消息。 您可以将其用于其他目的,例如,用这些消息吓people人们。 我们可以访问SMS消息和电子邮件,确定手机的位置。 所有这些操作都在控制台上部用于管理捕获的电话;这些操作以蓝色突出显示。 可以做的另一件事是打开手机的摄像头,我现在尝试尝试打开它。 我将手机拿在手中,然后单击控制台中的“窥视”功能,这将花费一些时间,因为您需要拍照并将其发送到命令与控制网站。 如您所见,首先出现的照片是使用前置摄像头拍摄的,然后是这个房间的图像,是使用前置摄像头拍摄的。 因此,我可以在受感染的手机上远程拍照并接收这些照片。
如果您注意到,游戏仍在屏幕上运行,那么该人甚至不会注意到照片已拍摄。 这是在没有用户了解的情况下在后台完成的。 我们可以使用相同的技术来拍摄视频。 我想演示的最后一件事是监听功能。 因此,我在电话中说:“这是一个测试,一,二,三,这是一个测试,一,二,三。” 然后,我单击“播放音频”按钮,连接花费了一些时间,现在您听到了我的单词的重复。

因此,我通过手机的麦克风录制了对话,并将其上传到了命令与控制网站,所以一切都很酷。 因此,这是SpyPhone技术可以做什么的演示。
现在,让我们谈谈我们如何开发软件的设计和技术以及为什么做出这样的设计决策。 我将回到上一张幻灯片。

首先,我们希望将恶意软件与手机的原始功能结合在一起,并创建可与Android手机配合使用的具有远程访问权限的Trojan型间谍软件程序。 我们以一个名为“可搜索字典”的演示应用程序为基础,并对其进行了修改,以便可以将间谍软件模块插入其中,并将其实现为Android的常规应用程序。
也就是说,我们坚持使用Java设计原始的Android程序。 我们需要它在其内部包含所有必需的组件,以便在后台工作,即使应用程序停止运行,它也可以在手机加载时启动。 我们的第二个任务是将SpyPhone轻松集成到官方应用程序中。 这样可以正常工作,并且我们的恶意软件不会干扰手机上安装的其他应用程序的运行。 作为命令和控制服务器的命令和控制,我们选择了通过HTTP进行数据传输的NodJS Web服务器。 对于程序的控制命令,我们使用了JS接口,命令本身看起来像这样:
更新-将信息发送到服务器,
吐司-在屏幕上显示一条消息,
关闭-停止SpyPhone,
短信-向联系人发送短信,
位置-将电话位置信息发送到服务器,
窥视-拍摄照片并将其发送到服务器,
听-记录声音并发送到服务器。
所有这些都很容易编程,因为Android的创建者为他们的系统提供了相当强大的全套SDK开发工具。 该工具包提供了所需的界面。 我们从未开发过Android程序,但是由于有了此SDK,我们什至不必学习任何东西,并且在几周内就开发了该程序。
下一张幻灯片显示了Searchable字典的初始设计,在此基础上,我们使用您在此处看到的Java代码创建了SpyPhone。 我们向该应用程序添加了一个名为droidwhisper的部分。

这是我们稍后将剪切并粘贴到合适的应用程序中的部分。 我们没有创建可利用应用程序漏洞的特殊利用程序的经验,因此我们导入了Android提供的标准API:
用户信息
-导入android.accounts.Account;
-导入android.accounts.AccountManager。
电话和短信
–导入android.telephony.SmsManager;
–导入android.telephony.TelephonyManager。
所在位置
–导入android.location.Location;
–导入android.location.LocationListener;
–导入android.location.LocationManager;
录制媒体文件(音频和视频)
-导入android.media.MediaRecording。
摄影机
–导入android.hardware.Camera;
–导入android.hardware.Camera.PictureCallback;
–导入android.hardware.Camera.PreviewCallback;
–导入android.hardware.Camera.Size;
–导入android.media.AudioManager;
–导入android.view.SurfaceHolder;
–导入android.view.SurfaceView。
互联网
–导入org.apache.http.HttpResponse;
–导入org.apache.http.NameValuePair;
–导入org.apache.http.client.ClientProtocolException;
–导入org.apache.http.client.HttpClient。
有人说,将手机放在用户的口袋中时录制视频和拍照不是很好。 因此,如果您想拍摄一张好照片,请发送短信给所有者,因为我们有他的电话号码。 他收到一条消息,将手机对着自己阅读,然后您用前置摄像头拍照。 如果您只是打电话给他,他会把电话带到他的耳朵,这时您可以使用后置摄像头拍照。

使摄像头工作起来稍微复杂一些,因此我们使用了一整套类,例如AudioManager,SurfaceHolder等。 我们必须提供一个在拍照时暂时关闭咔嗒声的功能,以免在相机设置中激活此功能时引起用户的注意。 另外,我们设想所拍摄的间谍照片或视频应在手机图库中以1像素大小的缩略图显示,以便用户看不到它们。 因此,我们必须使用一些技巧来确保间谍模块的操作不显眼。 正如我已经注意到的,电话本身几乎包含用于与命令和控制服务器进行通信的所有内容。 我们还使用了一些Android安全漏洞。
如您所知,必须对这些应用程序进行签名才能在手机上安装,但这不是问题,因为您可以使用任何旧证书进行签名,因为主要是该应用程序无论哪个证书都具有证书。 稍后我将详细讨论。
因此,这是我们在创建应用程序时使用的设计的简短描述。 现在,我将向您介绍实施过程,即我们如何将恶意模块插入到应用程序中。
我们要做的第一件事是选择《愤怒的小鸟》游戏。 我们选择它不是因为它是一款非常出色的游戏,而是因为它的受欢迎程度。 我们的SpyPhone模块可以输入到几乎任何应用程序中。 首先,我们需要原始.apk文件的副本。 这是一个包含所有应用程序组件的存档。 在应用程序文件中是Java代码,或者说不是Java代码-这是Dalvik虚拟机的代码。 该代码可以替换为其他内容,称为“主密钥”漏洞。 因此,我们必须打开此.apk文件并对其进行反汇编,即,具有要反汇编的所有组件的列表。
因此,首先,我们提取《愤怒的小鸟2000》应用程序的所有组件。

然后,在smali目录中,插入我们的示例/ android / droidwhisper目录,并且在最终的droidwhisper文件夹中,包含我们的间谍模块的修改后的Searchable字典应用程序文件所在。

我们从Google Play市场下载了愤怒的小鸟游戏,并制作了它的副本。 接下来我们要担心的是签名密钥。 您会在我们称为inject的目录中看到所有这些文件。
在拆卸过程中,我们使用了Apk_tools程序,该程序是用于管理.apk文件的工具。 现在,使用命令行显示如何开始拆卸《愤怒的小鸟》。

接下来,我们直接着手拆卸应用程序。 我们创建了愤怒的小鸟目录,在其中插入了所有应用程序组件。 由于这是一个演示,因此您必须稍等片刻,直到分解过程结束。 因此,您会看到很多目录,资产文件夹首先位于,它包含诸如声音之类的内容,然后是资源文件夹,lib库,但是对我们而言,关键是smali目录,其中包含代码和汇编语言格式。
23:00分钟
会议黑帽。 如何制作间谍电话。 第二部分感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的资料吗? 通过下订单或将其推荐给您的朋友来支持我们,
为我们为您发明的入门级服务器的独特模拟,为Habr用户提供
30%的折扣: 关于VPS(KVM)E5-2650 v4(6核)的全部真相10GB DDR4 240GB SSD 1Gbps从$ 20还是如何划分服务器? (RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。
VPS(KVM)E5-2650 v4(6核)10GB DDR4 240GB SSD 1Gbps至1月,直到 6个月的付款期
免费 ,您可以
在此处订购。
戴尔R730xd便宜2倍? 仅
在荷兰和美国,我们有
2台Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100电视(249美元起) ! 阅读有关
如何构建基础架构大厦的信息。 使用价格为9000欧元的Dell R730xd E5-2650 v4服务器的上等课程?