会议黑帽。 如何制作间谍电话。 第一部分接下来需要修改的是清单。 这就是说应用程序涉及哪些服务,它们具有什么权限等等。
因此,我们将从代码本身开始,从smali目录的代码开始。 如果查看“愤怒的小鸟”目录树,您将看到许多包含各种组件的文件夹,这些文件夹以子目录的形式排列。

我什至不知道我真正需要这些东西中的哪些,以及它们做什么,但是我不需要。 现在,我将进行一项非常复杂的技术工作-从此处将droidwhisperer目录从SearchableDictionary目录(此处)复制到smali目录的com / burstly / example / android子目录。 仅此而已,我希望您理解了重点。
因此,已在必要时插入了我们的代码的副本,但还有更多事情要做。 我再次查看我的备忘清单,发现现在有必要对清单进行更改。 首先,当我们处理清单时,我们需要找出应用程序的名称-我将其用红色突出显示,稍后我们将需要它,因为我们在现有代码中插入了一些内容。
因此,更新清单是必需的,以便在应用程序中包括嵌入式间谍服务及其权限。 它包括以下步骤:
-记住原始应用程序的名称以备后用,
-Droidwhisperer服务定义
-定义Droidwhisperer工作所需的权限。

所以我拿这份宣言并将其拖到笔记本中。 我在应用程序中要做的第一件事就是定义我们的服务。 为此,我在目标应用程序的主要操作的清单中找到onCreate函数。 就《愤怒的小鸟》而言,它是com / rovio / ka3d / App。 之后,我剪掉了以黄色突出显示的代码部分,并在onCreate中调用involk-super之后将其立即放置。
因此,我们在清单中声明将拥有Droidwhisperer服务,该服务应在可用后立即启动。 这就是为什么我们需要原始com.rovio.ka3d.App应用程序的名称的原因,我们使用它来输入com.rovio.ka3d应用程序的新名称。 service.Droid窃窃私语。
接下来,我将间谍应用程序的权限复制并粘贴到清单中的适当位置-这些是绿色突出显示的行。

进行更改后,我们将保存清单,清单已经包含了我们所需的权限,并且定义了应在手机启动时启动的服务,因此可以。
Android需要某种东西来启动应用程序,因此Angry Birds应用程序必须包含一个代码,该代码将在原始游戏启动后立即启动我的间谍服务。 现在,我进入游戏目录并在其中找到ka3d文件夹,将其打开并将其中包含的App文件复制到记事本中。 这是smali代码,它是Dalvik汇编代码的一个版本。 我们使用Android中包含的onCreate函数。 我使用笔记本搜索来查找此功能的位置。 在这里,您需要一些有关Android OS如何工作的知识-例如,onCreate函数用于调用超类,即创建或重新启动应用程序活动。 这是我插入代码的地方,应该会启动间谍服务的启动。 我返回备忘单,从此处复制必要的行并将其粘贴到此处。
我怎么知道要在此处插入哪些代码? 我只是从我编写的原始应用程序中复制了它。 我说过,关于smali的文档非常出色,因此您无需深入研究即可做到。

就在最近,一些“连接”集被宣布,使您可以自动接收必要的代码。 就在几周前,发布了此类Android开发人员工具包,使您可以创建任何服务并将其实现在现有应用程序中。 所有这些都可以手动完成。
因此,一旦onCreate函数被调用,它将激活我们的服务。 不要忘记,此后您需要保存修改后的文件。 因此,在我们进行了适当的技术培训之后,我们需要组装修改后的应用程序。 因此,我回到Apk_tool并将“愤怒的小鸟”目录中的零件收集到birds.apk目录中。 因此,我们重建了原始应用程序,对其进行了必要的更改,然后将新程序集放置在名为birds.apk的文件中。
如果您尝试立即在Android手机上安装此修改后的应用程序,他会通知您该应用程序尚未签名,因此我们需要对其进行签名。 为此,我使用相应的公钥创建一个自签名数字证书,并将其保存在我的注入工作目录中。 这是一个称为密钥的文件。

这只是我自己创建的证书。 现在,我将回过头来,从我的婴儿床接受以下强大而简洁的命令:
jarsigner -verbose -keystore密钥birds.apk alias_name
为了不混淆任何内容,我将其剪下并放在正确的位置。 因此,我将使用自己的密钥对bird.apk文件进行签名,这非常简单。 然后,我给出命令并使用此数字密钥对所有应用程序组件进行签名。 现在,我可以将其放置在AppStore的Google Play上的任何位置。
正如我已经说过的,该电话没有任何界面可以显示签署者的身份。 应用程序签名后,即可安装。 没有人可以告诉谁签署了此应用程序,这很棒。
因此,“愤怒的小鸟”的修改版与原始游戏和功能完全相同,不同之处在于它包含了我的间谍代码。 现在,您会在屏幕上看到Kindsite的Kevin McNami制作的数字签名。
我将向您展示的另一件有趣的事情是回来。 我们看一下原始应用程序-它是由Rovio Mobile Ltd.签署的。看一下签署日期-该数字证书的有效期至2010年8月26日,但毫无疑问,该应用程序已安装在手机上。 因此,即使您的数字证书已变成垃圾,它仍然赋予您安装应用程序的权利,即没有人检查它。 我认为这是Android安全模型的严重缺陷之一。
事实是,没有严格验证所使用的数字证书。 通过要求那些想要接收数字证书的人进行注册可以解决此问题。 因此,回到我们的演示。 我想再次谈谈数字签名。

所有应用程序都必须签名。 如果是旧的自签名,则旧的签名仍然有效。 仅在安装应用程序时检查签名。 也就是说,我可以更改手机上已经安装的任何.apk文件,并且系统不会对此作出任何反应。 这是一个非常重要的漏洞。 如果要更改手机上的.apk文件,则必须有权更改存储这些文件的目录,但是要获得root权限对手机执行任何操作并不困难。
使我困扰的第二件事是,没有用户界面显示谁签署了该应用程序。 例如,在安装应用程序时,应显示一个题词,该题词由Kindsite的Kevin McNami签名。 我注意到签名必须与移动或更新的现有应用程序匹配,因此,如果我未更改间谍软件的名称,则无法替换现有版本的《愤怒的小鸟》。 但是,一旦我这样做,就不会出现任何问题。 Android开发人员声称证书不需要由授权中心进行签名,并且Android应用程序大多使用自签名。
在开始回答问题之前,我想说的是整个手机间谍软件行业。 它们旨在监视您的亲人,孩子或商业伙伴。

以前,他们用来监视不忠的配偶,但现在他们的目的已经改变。 例如,您可以监视孩子以确保他们的安全,这是完全合法的。 但是我认为间谍电话更适合在BYOD系统中使用。 您可以为间谍模块提供任何功能,然后将其插入任何应用程序,用户对此一无所知。 这是用于工业间谍活动的理想选择,因此这些设备扩大了持续的安全威胁的范围。
因此,这是一个功能齐全的网络设备,如果我在工作时连接到Wi-Fi,则可以在此手机中安装软件,该软件将扫描网络中的漏洞。 同时,将在必要时进行更新,并将所窃取的信息发送到命令与控制网站。 也就是说,受感染的手机是具有强大攻击能力的持续安全威胁的扩展平台。 例如,某人只是用这种电话走进建筑物内部,扫描网络,然后从内部对其进行攻击。 当然,人们可以通过防火墙和类似的防火墙来保护其Internet连接,但是此设备可以通过空中直接连接到网络,间谍电话可以在有接入点的任何地方连接到网络,这里没有防火墙可以提供帮助。 实际上,电话通过后门进入网络。 间谍电话非常酷,但是这里有一个远程访问木马,我认为这很危险。
我想我已经说了所有想谈的事情,现在我准备回答任何问题。
因此,第一个问题是该特定应用程序是否正在试图隐藏其存在。 答案是否定的,事实并非如此,因为如果您查看电话上运行的服务,就会在那里看到它。 我认为这可能是一个隐藏的过程,但是在这种情况下,我们创建的“间谍电话”只是为了演示威胁的概念。
防病毒程序可以检测到我们的应用程序吗? 不,防病毒软件不计算此间谍模块,因为它对此一无所知。 可以进一步混淆代码,然后将其插入应用程序,这样的过程可以自动化。
有什么可以与这样的间谍软件相对的? 在任何情况下,您都可以使用可检测到已知恶意应用程序的防病毒软件,但我们专注于发送到命令与控制网站的流量。 可能可以使代码混淆过程自动化,但是要动态更改与命令和控制服务器的通信协议非常困难,您将需要更改服务器本身,更改客户端以及所有这些。 因此,我们建议结合以下两种保护方法:对已知恶意应用程序进行防病毒和监视间谍设备发送到命令与控制网站的网络流量。

我将回答以下问题:在移动或更新应用程序时,对数字签名重合的要求意味着什么? 如果这是您第一次在手机上安装该应用程序,那么它不会有任何问题。 但是,如果电话已经具有原始应用程序,并且您想要用具有不同数字签名的新副本或具有相同名称的修改后的应用程序替换它,则您将不会成功,因为电话将能够比较应用程序中的原始签名及其修改后的版本和注释。他们不匹配。 在这种情况下,我通过简单地将原始应用程序名称替换为其他名称来规避保护。
命令与控制服务器可以与所有Android功能进行交互并使用其API。 您可以远程获得root用户访问权限,将文件上传到手机上,然后通常自行决定处置它,因为Android提供了充足的机会通过网络对手机进行开放访问。 我认为iOS平台上也可以使用相同的功能,只是此OS的开发人员更认真地检查新应用程序的安全性。 例如,您应该从他们那里获得证书,以证明您的个人为应用程序开发人员,并且该应用程序本身将在进入他们的App Store之前进行检查,而Google会在应用程序发布到Play Market之后对其进行检查。
我不知道Google Play应用商店的详细信息,但是我认为,如果开发者的信誉不好或应用受到侵害,它将不会出现在商店中。 但是,在许多其他在线移动应用商店中,攻击者可能在其中托管恶意应用。 当我们迫使用户通过滑动链接到任何地方来下载该应用程序时,这是一种网络钓鱼攻击。
事实是,间谍软件应用程序中的所有功能都像往常一样,该应用程序不会尝试犯任何非法行为。 安装后,要求它具有与合法应用程序相同的权限。 另一件事是这些功能以后将如何使用。 当然,如果有人报告droidwhisperer是一种病毒,则手机上安装的所有防病毒软件都将不允许安装包含它的应用程序。
如我之前所说,间谍软件可以从第三方站点下载。 在这种情况下,网络钓鱼攻击包括将详细的安装说明告知您,并提供免费下载此游戏的功能,因为它是一款非常酷的游戏,您无需通过在Google商店中下载原始版本来付费。 通常,用户被这样的提议所吸引。
我注意到,我们并未打算渗透受加密保护的网络,而只是连接到任何可用的网络。 感谢您的关注!
感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的资料吗? 通过下订单或将其推荐给您的朋友来支持我们,
为我们为您发明的入门级服务器的独特模拟,为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服务器的上等课程?