Linux留后门程序

今天在freeBuf上看到一个给Linux留后门的办法, 挺不错的, 看完之后身体力行的在ubuntu下面试了下效果还不错!

阅读全文… 

android 6.0三星5.1.1Root

现在google是越来越不给我们留活路了… 从android 6.0开始, 三星的5.1.1开始. 默认都开启了data分区的forceencryption, 也就是强制加密. 也开启了/system分区验证. 所以目前市面上都没有针对android 6.0和三星5.1.1以上的root方案..

国外的supersu的作者chainfire, 搞cf-auto-root那哥们, 也没有针对三星5.1.1和android 6.0的方案. 不过他私下搞了个修改android内核的root方案.. 这个可能是目前唯一可以root 6.0的办法.

阅读全文… 

getprop与dumpsys命令

拿到Android手机以后, 想查看一些手机信息. 其实Android获取手机信息就是两个命令, 一个是getprop 一个是dumpsys.

阅读全文… 

ida调试Dalvik显示局部变量

用ida进行Dalvik调试还是有很大的优势, 最关键的是可以不用打包. 现在有很多app都开始检查是否重新打包的. 虽然也可以去pass调这些地方. 但是显然很麻烦.. 另外一些app还加壳了. 搞起来更加麻烦… 所以可以用ida进行调试还是一种选择. 不过原来用ida调试Dalvik的时候有一个致命问题. locals窗口变量都没法显示.. 最近纠结了几次. 算是找到了一个解决办法.

阅读全文… 

[转]android手机内核提取及逆向分析

Android手机获得Root权限,可以让/system和/data分区获得读写的权限.这两个分区的权限配置,一般在根分区的init.rc文件中,修改这个文件可永久获得root权限.

众所周知,市面上绝大部分的Android手机文件系统有三个分区,分别是/,/system,/data.根分区(/)是打包为ramdisk.img后,再与kernel的zImage打包为boot.img. boot.img在EMMC/NAND中以RAW DATA的形式存在,且除使用烧写工具外,无法读写.正因如此,根分区(/)在每次开机时都会从存储器中加载到RAM, 所以根分区(/)是难以不被刷机破解的.

阅读全文… 

[转]android一批漏洞

arm exploits 技术教程:

Learning Pentesting for Android Devices

CVE-2015-1530 ,CVE-2015-1474 两个android整数溢出漏洞 分析

An integer overflow in Android media could be exploited to get media_server permission(CVE-2015-1530)

Integer overflow leading to heap corruption while unflattening GraphicBuffer In Android(CVE-2015-1474)

 CVE-2014-0196-inux pty race condition slab overflow-漏洞分析

Exploiting CVE-2014-0196 a walk-through of the Linux pty race condition PoC

SLAB 溢出攻击 & CVE-2014-0196 exploit for Android 

http://www.phrack.org/issues/64/6.html

pty/tty设备竞争条件漏洞 (CVE-2014-0196)

 

CVE-2013-2597 adcb 驱动栈溢出漏洞分析

Stack-based buffer overflow in acdb audio driver (CVE-2013-2597)

Stack-based buffer overflow in acdb audio driver (CVE-2013-2597) 

这份利用代码关键是要理解struct nl_portid_hash 结构的成员unsigned longrehash_time;利用的时候将这个unsigned long变量当作void* 函数指针来用,这样call到nl_portid_hash ->rehash_time时pc寄存器装入rehash_time 的值,而在linux系统上,这个rehash_time变量的值是有范围的,其范围0x10000-0x130000,如果当作地址,刚好是用户空间的地址,可以由mmap申请.这样,可以将提取代码写入申请的0x10000-0x130000 范围地址内,内核溢出后调用rehash_time地址,实际上就是调用到用户空间填充的代码了.

linux kernel 本地提权漏洞CVE-2013-1763 exploit 代码分析

CVE-2015-3636 三星S6 pingpong

5月2号, Keen Team 向CVE曝出了一个非常劲爆的漏洞, 编号是CVE-2015-3636, 这个漏洞的细节可以关注这个链接

https://loudong.sjtu.edu.cn/show/CNVD-2015-02891

应该是比去年那个CVE-2014-3153还要霸道的漏洞, 几乎android设备都受到影响. 一年没出劲爆的漏洞了. android 5 以上一直都没太好的漏洞利用工具. 这下有活干了. 8号的时候又放出了一个工具.

http://forum.xda-developers.com/galaxy-s6/general/root-pingpongroot-s6-root-tool-t3103016

叫做pingpong root 看起来像是中国人弄的.

阅读全文… 

Android分区查看

android 下面没有像以前windows 那样那么方便的查看分区情况. 前两天提到说查看android 下面的分区情况. 今天好好的看了下. 发现android下面查看分区也挺简单的..

阅读全文… 

为什么会有mov edi, edi

原来一直被windows上的一些固定汇编指令搞的有点糊涂, 各种说法其实都有, 比如这个mov edi, edi. 实际这个指令是干什么用的呢? 每个人都有不同的说法, 今天了解到一种比较靠谱的说法!

阅读全文… 

Windows CrashDump

在自动化测试过程中,如果碰到应用程序崩溃,往往会弹出一个”error reporting”的对话框,如果不人工关闭这个对话框的话会导致程序无法继续进行下去。所以需要禁止弹出这个对话框并启用Windows CrashDump来收集错误日志。采用如下方法进行:

阅读全文… 

Android Linux内核编译调试

对于在Windows上写代码写习惯的人,调试是必不可少的手段,但是转到Android以后,发现调试手段异常简陋,Windows简直不是一个级别,特别是Android的内核调试,网上资料也相对较少,不过通过一段时间的倒腾,我终于找到了还算靠谱的调试方法.就是利用Emulator + Eclipse进行Android Linux内核调试.

  阅读全文… 

android 刷机

1. 刷一个合适的Recovery
Clockwork Recovery
http://www.clockworkmod.com/rommanager/

adb reboot bootloader // 启动进入bootloader模式
fastboot flash recovery recovery_package // 刷入recovery

阅读全文… 

IDA 6.6中文字体解决办法

这个是编码问题,需要手动添加GBK编码之类。先找到Options->ASCII String Style..。选择Change Encoding。打开的窗口中有至少四个选项:<default>,<no conversion>,UTF8,UTF16LE。很显然是没有GBK什麽的。在列表上右键,选择Insert。添加编码的名字,如GBK,OK。编码加入后需要选中他。ASCII String Style的窗体上,Change Encoding右侧有Set Default Encodings。8位宽的选择对应的OEM集,如刚刚加入的GBK,16位宽的选择UTF16LE之类或者保持no Convertion不变。这个办法刚纔个人在IDA65上测试通过。

Ida 调试so文件

Eclipse配合NDK写so文件不错, 但是调试是个麻烦事, 老是报错. 一会这样一会那样. 目前可能用NDK写so并且调试的毕竟还是太少啊. 调试体验非常差, 所以如果在有源码的情况下, 我一般还是用VisualGDB这个软件来写so文件, 这个软件的调试体验比Eclipse好多了. 而且是用Visual Studio来写, 更习惯些.

在没有源码的情况下, 一般就是使用ida 来进行调试, ida的6.6已经可以支持调试apk了, 不过现在我手上还没有拿到. 目前只能用网上泄露的6.5, ida 6.5调试android 的so文件已经是非常好的体验了. 使用6.1的时候老是有莫名其妙的错误. 其实调试so文件也分成两种情况, 一种是apk运行起来以后慢慢才会调用so文件中的函数, 比如按钮单击什么的. 一种是在程序初始化的时候就调用so文件. 这种麻烦一些.

阅读全文… 

ARM汇编联合C语言

GUN arm汇编不能像MASM那样支持类C那样的函数写法. 也不支持结构体, 所以注定了GUN汇编不能像MASM那样写大型的程序, 不能像Windows下面那样, 用MASM来写较大型的程序, 所以用C和汇编联合成了一个妥协的办法. 所以这篇写一点GCC和和GUN汇编联合的问题.

联合的话,我们直接可以使用ndk-build进行编译了, 不用再输入arm-linux-androideabi-as.exe这么长的命令. 另外一个调试也可以使用ida来调试了. 最近ida 6.5 泄露出来了, 可以很方便的调试android的arm汇编代码, 不用再用gdb进行调试了. gdb调试真恶心.

阅读全文…