Android逃逸技术汇编

摘    要

  • 传统逃逸技术涉及网络攻防和病毒分析两大领域,网络攻防领域涉及的逃逸技术主要为网络入侵逃逸技术,病毒分析领域涉及到的逃逸技术主要包括针对静态分析、动态分析的木马逃逸技术。
  • 本文介绍的Android木马逃逸技术研究了针对用户感知、杀软查杀、沙箱动态养殖和人工分析的各种逃逸技术。
  • 大多数Android木马的作恶途径是长期留存用户终端,通过持续性作恶获取收益。
  • 为达到稳定留存的目的,大多数Android木马使用的逃逸技术多为复杂的组合技术,并且通过木马的自更新技术不断升级逃逸技术。
  • 总结了Android木马逃逸模型来描述Android木马逃逸的一般性原理。
  •  我们将Android木马生命周期内的每个环节串联起来,形成了Android木马逃逸链,而[……]

MORE

阿里聚安全扫描器之本地拒绝服务检测详解

阿里聚安全的Android应用漏洞扫描器有一个检测项是本地拒绝服务漏洞的检测,采用的是静态分析加动态模糊测试的方法来检测,检测结果准确全面。本文将讲一下应用漏洞扫描器在针对本地拒绝服务的检测方法。

一、本地拒绝服务产生原因和影响

Android应用使用Intent机制在组件之间传递数据,如果应用在使用getIntent(),getAction(),Intent.getXXXExtra()获取到空数据、异常或者畸形数据时没有进行异常捕获,应用就会发生Crash,应用不可使用(本地拒绝服务)。恶意应用可通过向受害者应用发送此类空数据、异常或者畸形数据从而使应用产生本地拒绝服务。

阿里聚安全的博客以前有一篇文章《Android应用本地拒绝服务漏洞浅析》,里面详细讲了产生本地拒[……]

MORE

Android系统新权限模型剖析与预警

一、    新权限模型介绍

(一)Android版本演变与权限模型变更

前不久Google发布了新的系统版本Android 7.0。在之前发布的6.0版本中,引入了一种新的权限模型。新权限模型在旧模型基础上加入了运行时动态权限检查,权限不再是安装时一次性全部授予,而是运行时动态申请与授予,如果开发者未按要求动态申请权限或者权限申请未被用户许可,应用程序的相应行为将无法实施;同时,用户可以在应用程序权限管理中随时撤销掉已授予的权限。这样的动态权限模型让用户对应用程序运行时权限拥有更强的可视性与控制性,赋予了用户更多权限管理主动权,增强了权限模型的安全性。在最新的7.0版本中,依旧沿用了此权限模型。各版本Android系统所占比例如图1所示。

image3

图1 2016年9月Android[……]

MORE

农民斗地主——Binder fuzz安全研究

0.为什么要研究Binder fuzz

以目前最热门的指纹方案为例。

soter

TZ:Trustzone(请自行百度)
CA:Trustzone框架中的Clinet App
TA:Trustzone框架中的Trustzone APP

上层APP通过Binder机制调用keystore和FingerprintService两个底层系统服务,来获取密钥存储和指纹的能力。底层服务再通过CA跟TZ驱动通信,调用TZ中TA提供的服务,如指纹识别等安全性要求较高的服务。

我们今天只看Android侧的Binder体系。

Binder其实是提供了一种进程间通信(IPC)的功能。这些系统服务,通过binder协议抽象出一个个的“接口”,供其他进程调用,是一个重要的潜在的攻击面。如果没有做[……]

MORE

Android安全开发之安全使用HTTPS

1、HTTPS简介

阿里聚安全的应用漏洞扫描器中有证书弱校验、主机名弱校验、webview未校验证书的检测项,这些检测项是针对APP采用HTTPS通信时容易出现风险的地方而设。接下来介绍一下安全使用HTTPS的相关内容。

1.1 为何需要HTTPS

HTTP协议是没有加密的明文传输协议,如果APP采用HTTP传输数据,则会泄露传输内容,可能被中间人劫持,修改传输的内容。如下图所示就是典型的APP HTTP通信被运营商劫持修改,插入广告:

上图是在我的住处,用WiFi打开某APP,页面底部出现了一个拆红包的广告,点开以后是一个安装APP的页面,如果我用联通的4G网络打开,就不会出现这种情况,说明小区运营商劫持了HTTP通信,往APP的通信中加入了自己的推广内容,还有[……]

MORE

智能设备非常规端口测试经验

大多数网络(信息)安全工程师对系统65535个端口中常见的各种系统服务、应用服务烂熟于心,也很了解针对这些端口的测试,很多人对于web服务端口着重关注,因为web服务所运行的网站应用往往是一个优质的突破点。

在现实生产环境中,多数目标,特别是一些所谓的“智能设备”、“智能家居”,除了对外开放web服务端口,还会开放一些nmap也没办法识别的端口,这些端口跑着厂商自家定义的一些服务,很多人因为没办法测试这些服务,就放弃针对这些端口进行测试,这也就放弃了很多突破目标的可能性。

本文主要针对这些nmap无法识别出来的端口服务介绍一些测试经验,仅供参考。

一、端口状态

当我们使用nmap针对目标进行端口扫描后,结果中基本会包含以下示例中的三种端口状态:

PORT   [……]

MORE

iOS冰与火之歌(番外篇) – 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权

 

0x00 序

这段时间最火的漏洞当属阿联酋的人权活动人士被apt攻击所使用的iOS PEGASUS(又称Trident三叉戟)0day漏洞了。为了修复该漏洞,苹果专门发布了一个iOS 9.3.5版本。这个漏洞的厉害之处在于可以直接从沙盒内对内核进行攻击(无需沙盒逃逸),并且同时影响iOS(9.3.4)和OS X (10.11.6)。因此,本篇文章将会从PEGASUS漏洞形成的原因开始分析,然后一步一步教大家写出OS X上利用PEGASUS提权的攻击代码。

《iOS冰与火之歌》这一系列文章的目录如下:

1. Objective-C Pwn and iOS arm64 ROP

2. 在非越狱的iOS上进行App Hook(番外篇)

3. Ap[……]

MORE

常见app加固厂商脱壳方法研究

目录

  1. 简述(脱壳前学习的知识、壳的历史、脱壳方法)
  2. 第一代壳
  3. 第二代壳
  4. 第三代壳
  5. 第N代壳

简述

  1. Apk文件结构
  2. Dex文件结构
  3. 壳史
  4. 壳的识别

Apk文件结构

1

Dex文件结构

2

壳史

第一代壳 Dex加密

  1. Dex字符串加密
  2. 资源加密
  3. 对抗反编译
  4. 反调试
  5. 自定义DexClassLoader

第二代壳 Dex抽取与So加固

  1. 对抗第一代壳常见的脱壳法
  2. Dex Method代码抽取到外部(通常企业版)
  3. Dex动态加载
  4. So加密

第三代壳 Dex动态解密与So混淆

  1. Dex Method代码动态解密
  2. So代码膨胀混淆
  3. 对抗[……]

MORE

Hook Android C代码

创建一个目标apk
编写目标项目,用于本次实操过程的hook对象
1.创建项目
android create project –target android-23 –path targetapp –package com.example.targetapp –activity Mainactivity
//执行命令,在当前目录下创建Android项目


2.编写C程序
在项目下创建jni目录,并新建targetlib.c文件,其代码如下:
点击图片以查看大图

图片名称:	Image 1.png
查看次数:	0
文件大小:	83.0 KB
文件 ID :	107319

其中doThings()方法将对应Java层中的声明的native daThings(),而arc4random()是系统上的仿生标准库(bionic standard library),生成随机数
3.编写Andro[……]

MORE

Android虚拟机调试器原理与实现

本文主要讲解Android虚拟机动态调试背后涉及到的技术原理,除了JDWP协议细节,还包括任意位置断点、堆栈输出、变量值获取等基础调试功能的具体实现。另外本文提供了一款新的android动态调试工具——AVMDBG,提供调试API接口,支持python脚本扩展。作为android调试技术研究过程中的实验项目,AVMDBG功能尚不完善,开源出来仅供参考,如过有bug或其他疑问反馈欢迎提交issue。

一、Android动态调试方案

在讲解android动态调试实现之前,先回顾下针对apk进行动态调试常用的几种方法,比较下不同解决方案的特点和存在的问题:

1)smali插桩大法,反编译apk后在关键位置插入smali代码,通过打印日志的形式进行调试跟踪。但是这个方法非常繁琐,除了需要[……]

MORE